]> source.dussan.org Git - vaadin-framework.git/commitdiff
Moved tests/sass to sass/tests (#9299)
authorArtur Signell <artur@vaadin.com>
Thu, 30 Aug 2012 12:22:06 +0000 (15:22 +0300)
committerArtur Signell <artur@vaadin.com>
Thu, 30 Aug 2012 12:22:06 +0000 (15:22 +0300)
133 files changed:
build/build.xml
sass/tests/resources/basic/empty_block.css [new file with mode: 0644]
sass/tests/resources/basic/media.css [new file with mode: 0644]
sass/tests/resources/basic/properties.css [new file with mode: 0644]
sass/tests/resources/basic/reindeer.css [new file with mode: 0644]
sass/tests/resources/basic/selectors.css [new file with mode: 0644]
sass/tests/resources/css/comments.css [new file with mode: 0644]
sass/tests/resources/css/control-directives.css [new file with mode: 0644]
sass/tests/resources/css/extends.css [new file with mode: 0644]
sass/tests/resources/css/functions.css [new file with mode: 0644]
sass/tests/resources/css/imports.css [new file with mode: 0644]
sass/tests/resources/css/microsoft-extensions.css [new file with mode: 0644]
sass/tests/resources/css/mixins.css [new file with mode: 0644]
sass/tests/resources/css/nested-properties.css [new file with mode: 0644]
sass/tests/resources/css/nesting.css [new file with mode: 0644]
sass/tests/resources/css/parent-import.css [new file with mode: 0644]
sass/tests/resources/css/parent-selector.css [new file with mode: 0644]
sass/tests/resources/css/semicolons.css [new file with mode: 0644]
sass/tests/resources/css/var-guarded.css [new file with mode: 0644]
sass/tests/resources/css/variables.css [new file with mode: 0644]
sass/tests/resources/scss/_partial-for-import.scss [new file with mode: 0644]
sass/tests/resources/scss/comments.scss [new file with mode: 0644]
sass/tests/resources/scss/control-directives.scss [new file with mode: 0644]
sass/tests/resources/scss/extends.scss [new file with mode: 0644]
sass/tests/resources/scss/folder-test/parent-import.scss [new file with mode: 0644]
sass/tests/resources/scss/folder-test2/base-imported.scss [new file with mode: 0644]
sass/tests/resources/scss/folder-test2/base.scss [new file with mode: 0644]
sass/tests/resources/scss/folder-test2/url.scss [new file with mode: 0644]
sass/tests/resources/scss/folder-test2/variables.scss [new file with mode: 0644]
sass/tests/resources/scss/functions.scss [new file with mode: 0644]
sass/tests/resources/scss/imports.scss [new file with mode: 0644]
sass/tests/resources/scss/interpolation.scss [new file with mode: 0644]
sass/tests/resources/scss/microsoft-extensions.scss [new file with mode: 0644]
sass/tests/resources/scss/mixins.scss [new file with mode: 0644]
sass/tests/resources/scss/nested-properties.scss [new file with mode: 0644]
sass/tests/resources/scss/nesting.scss [new file with mode: 0644]
sass/tests/resources/scss/parent-selector.scss [new file with mode: 0644]
sass/tests/resources/scss/reference-parent-selector.css [new file with mode: 0644]
sass/tests/resources/scss/semicolons.scss [new file with mode: 0644]
sass/tests/resources/scss/var-guarded.scss [new file with mode: 0644]
sass/tests/resources/scss/variables.scss [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/AbstractTestBase.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/parser/ParserTest.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/css/EmptyBlock.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/css/Interpolation.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/css/Media.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/css/Properties.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/css/Reindeer.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/css/Selectors.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Comments.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/ControlDirectives.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Extends.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Functions.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Imports.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/MicrosoftExtensions.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Mixins.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/NestedProperties.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Nesting.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/ParentImports.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/ParentSelector.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Semicolons.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/VariableGuarded.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/scss/Variables.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/visitor/ImportVisitorTest.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/visitor/MixinVisitorTest.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/testcases/visitor/NestedPropertiesVisitorTest.java [new file with mode: 0644]
sass/tests/src/com/vaadin/sass/tree/ImportNodeTest.java [new file with mode: 0644]
tests/sass/resources/basic/empty_block.css [deleted file]
tests/sass/resources/basic/media.css [deleted file]
tests/sass/resources/basic/properties.css [deleted file]
tests/sass/resources/basic/reindeer.css [deleted file]
tests/sass/resources/basic/selectors.css [deleted file]
tests/sass/resources/css/comments.css [deleted file]
tests/sass/resources/css/control-directives.css [deleted file]
tests/sass/resources/css/extends.css [deleted file]
tests/sass/resources/css/functions.css [deleted file]
tests/sass/resources/css/imports.css [deleted file]
tests/sass/resources/css/microsoft-extensions.css [deleted file]
tests/sass/resources/css/mixins.css [deleted file]
tests/sass/resources/css/nested-properties.css [deleted file]
tests/sass/resources/css/nesting.css [deleted file]
tests/sass/resources/css/parent-import.css [deleted file]
tests/sass/resources/css/parent-selector.css [deleted file]
tests/sass/resources/css/semicolons.css [deleted file]
tests/sass/resources/css/var-guarded.css [deleted file]
tests/sass/resources/css/variables.css [deleted file]
tests/sass/resources/scss/_partial-for-import.scss [deleted file]
tests/sass/resources/scss/comments.scss [deleted file]
tests/sass/resources/scss/control-directives.scss [deleted file]
tests/sass/resources/scss/extends.scss [deleted file]
tests/sass/resources/scss/folder-test/parent-import.scss [deleted file]
tests/sass/resources/scss/folder-test2/base-imported.scss [deleted file]
tests/sass/resources/scss/folder-test2/base.scss [deleted file]
tests/sass/resources/scss/folder-test2/url.scss [deleted file]
tests/sass/resources/scss/folder-test2/variables.scss [deleted file]
tests/sass/resources/scss/functions.scss [deleted file]
tests/sass/resources/scss/imports.scss [deleted file]
tests/sass/resources/scss/interpolation.scss [deleted file]
tests/sass/resources/scss/microsoft-extensions.scss [deleted file]
tests/sass/resources/scss/mixins.scss [deleted file]
tests/sass/resources/scss/nested-properties.scss [deleted file]
tests/sass/resources/scss/nesting.scss [deleted file]
tests/sass/resources/scss/parent-selector.scss [deleted file]
tests/sass/resources/scss/reference-parent-selector.css [deleted file]
tests/sass/resources/scss/semicolons.scss [deleted file]
tests/sass/resources/scss/var-guarded.scss [deleted file]
tests/sass/resources/scss/variables.scss [deleted file]
tests/sass/src/com/vaadin/sass/AbstractTestBase.java [deleted file]
tests/sass/src/com/vaadin/sass/parser/ParserTest.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/css/EmptyBlock.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/css/Interpolation.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/css/Media.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/css/Properties.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/css/Reindeer.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/css/Selectors.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Comments.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/ControlDirectives.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Extends.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Functions.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Imports.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/MicrosoftExtensions.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Mixins.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/NestedProperties.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Nesting.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/ParentImports.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/ParentSelector.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Semicolons.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/VariableGuarded.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/scss/Variables.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/visitor/ImportVisitorTest.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/visitor/MixinVisitorTest.java [deleted file]
tests/sass/src/com/vaadin/sass/testcases/visitor/NestedPropertiesVisitorTest.java [deleted file]
tests/sass/src/com/vaadin/sass/tree/ImportNodeTest.java [deleted file]

index 01775520d0e8e81c94b56f5d23e3305e6d6bf813..3e5f688245856fed0eca09e3d7d516ff6b8ee002 100644 (file)
         </copy>
         <copy todir="${result-src-sass-junit}">
             <filterset refid="version-and-license"/>
-            <fileset dir="tests/sass/src">
+            <fileset dir="sass/tests/src">
                 <patternset refid="preprocessable-files" />
             </fileset>
         </copy>
             </fileset>
         </copy>
         <copy todir="${result-src-sass-junit}">
-            <fileset dir="tests/sass/src">
+            <fileset dir="sass/tests/src">
                 <patternset refid="non-preprocessable-files" />
             </fileset>
-            <fileset dir="tests/sass/resources">
+            <fileset dir="sass/tests/resources">
                <!-- test resources (files to compile and compare etc.) -->
             </fileset>
         </copy>
diff --git a/sass/tests/resources/basic/empty_block.css b/sass/tests/resources/basic/empty_block.css
new file mode 100644 (file)
index 0000000..31c0b47
--- /dev/null
@@ -0,0 +1,2 @@
+.v-panel-deco {
+}
\ No newline at end of file
diff --git a/sass/tests/resources/basic/media.css b/sass/tests/resources/basic/media.css
new file mode 100644 (file)
index 0000000..f118883
--- /dev/null
@@ -0,0 +1,27 @@
+.v-view {
+       height: 100%;
+       width: 100%;
+       overflow: auto;
+       outline: none;
+       margin-top: -1px;
+       border-top: 1px solid transparent;
+       position: relative;
+}
+
+@media print {
+       .v-generated-body {
+               height: auto;
+               min-height: 20cm;
+               overflow: visible;
+       }
+       .v-app {
+               height: auto;
+               min-height: 20cm;
+       }
+       .v-view {
+               overflow: visible;
+       }
+       .v-gridlayout {
+               overflow: visible !important;
+       }
+}
\ No newline at end of file
diff --git a/sass/tests/resources/basic/properties.css b/sass/tests/resources/basic/properties.css
new file mode 100644 (file)
index 0000000..946ee3a
--- /dev/null
@@ -0,0 +1,67 @@
+.all-the-properties {
+       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+       position: absolute;
+       overflow: hidden;
+       outline: none;
+       text-align: left;
+       zoom: 1;
+       white-space: nowrap;
+       background: #123456;
+       border-bottom: 1px solid #ffffff;
+       filter: alpha(opacity = 30);
+       cursor: pointer;
+       overflow: auto;
+       width: 100%;
+       display: inline-block;
+}
+
+.lexical-value-test {
+       margin: none;
+       margin: 0px;
+       margin: 0;
+       margin: 0.5px;
+       margin: 2px;
+       margin: -0.5px;
+       margin: -2px;
+       margin: 10px 20px;
+       margin: -10px 20px;
+       margin: 20px -10px -20px 40px;
+       margin-right: -0.5px;
+}
+
+.background-positioning {
+       background-position: 0 0;
+       background-position: left top;
+       background-position: left 40px;
+       background-position: 50px left;
+       background-position: right -286px;
+}
+
+.user-select-rules {
+       user-select: none;
+       -ie-user-select: none;
+}
+
+.box-sizing-rules {
+       box-sizing: border-box;
+       -moz-box-sizing: border-box;
+}
+
+.user-select-and-box-sizing-combined {
+       -khtml-user-select: none;
+       -moz-user-select: none;
+       -ie-user-select: none;
+       user-select: none;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       -ms-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
+@media print {
+       .v-generated-body {
+               height: auto;
+               min-height: 20cm;
+               overflow: visible;
+       }
+}
diff --git a/sass/tests/resources/basic/reindeer.css b/sass/tests/resources/basic/reindeer.css
new file mode 100644 (file)
index 0000000..4f1cd47
--- /dev/null
@@ -0,0 +1,5891 @@
+.v-theme-version:after {
+       content: "6_8_0_dev-20120306";
+}
+
+.v-theme-version-6_8_0_dev-20120306 {
+       display: none;
+}
+
+.v-absolutelayout-wrapper {
+       position: absolute;
+       overflow: hidden;
+}
+
+.v-accordion {
+       position: relative;
+       outline: none;
+       overflow: hidden;
+       text-align: left;
+}
+
+.v-accordion-item {
+       position: relative;
+       zoom: 1;
+}
+
+.v-accordion-item-caption {
+       overflow: hidden;
+       white-space: nowrap;
+       background: #eeeeee;
+       border-bottom: 1px solid #dddddd;
+}
+
+.v-accordion-item-caption .v-caption {
+       cursor: pointer;
+}
+
+.v-accordion-item-open .v-accordion-item-caption .v-caption {
+       cursor: default;
+}
+
+.v-accordion-item-content {
+       position: absolute;
+       overflow: auto;
+       width: 100%;
+}
+
+.v-button {
+       display: inline-block;
+       zoom: 1;
+       text-align: center;
+       text-decoration: none;
+       border: 2px outset #dddddd;
+       background: #eeeeee;
+       cursor: pointer;
+       white-space: nowrap;
+       margin: 0;
+       padding: 0.2em 1em;
+       color: inherit;
+       font: inherit;
+       line-height: normal;
+       -khtml-user-select: none;
+       -moz-user-select: none;
+       -ie-user-select: none;
+       user-select: none;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       -ms-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
+.v-button.v-disabled {
+       cursor: default;
+}
+
+.v-ie6 .v-button {
+       display: inline;
+}
+
+.v-ie7 .v-button {
+       display: inline;
+}
+
+.v-button-wrap, .v-button-caption {
+       vertical-align: middle;
+       white-space: nowrap;
+       font: inherit;
+       color: inherit;
+       line-height: normal;
+}
+
+.v-button .v-icon, .v-nativebutton .v-icon {
+       vertical-align: middle;
+       margin-right: 3px;
+       border: none;
+}
+
+.v-button .v-errorindicator, .v-nativebutton .v-errorindicator {
+       display: inline-block;
+       zoom: 1;
+       vertical-align: middle;
+       float: none;
+}
+
+.v-button-link, .v-nativebutton-link {
+       border: none;
+       text-align: left;
+       background: transparent;
+       padding: 0;
+       color: inherit;
+       -khtml-user-select: text;
+       -moz-user-select: text;
+       -ie-user-select: text;
+       user-select: text;
+}
+
+.v-sa .v-button-link:focus {
+       outline-offset: -3px;
+}
+
+.v-button-link .v-button-caption, .v-nativebutton-link .v-nativebutton-caption {
+       text-decoration: underline;
+       color: inherit;
+       text-align: left;
+}
+
+.v-nativebutton {
+       text-align: center;
+       cursor: pointer;
+       white-space: nowrap;
+       margin: 0;
+       color: inherit;
+       font: inherit;
+       line-height: normal;
+}
+
+.v-nativebutton .v-nativebutton-caption {
+       vertical-align: middle;
+       white-space: nowrap;
+       font: inherit;
+       color: inherit;
+}
+
+.v-nativebutton .v-icon {
+       vertical-align: middle;
+       margin-right: 3px;
+}
+
+.v-nativebutton .v-errorindicator {
+       display: inline-block;
+       zoom: 1;
+       float: none;
+}
+
+.v-ie6 .v-nativebutton {
+       width: 1px;
+}
+
+.v-ie .v-nativebutton {
+       overflow: visible;
+       padding-left: 1em;
+       padding-right: 1em;
+}
+
+.v-ie .v-nativebutton-link {
+       padding: 0;
+}
+
+.v-checkbox {
+       display: block;
+}
+
+.v-checkbox, .v-checkbox label, .v-checkbox input, .v-checkbox .v-icon {
+       vertical-align: middle;
+       white-space: nowrap;
+}
+
+.v-ie6 .v-checkbox, .v-ie7 .v-checkbox {
+       vertical-align: baseline;
+}
+
+.v-checkbox .v-icon {
+       margin: 0 2px;
+}
+
+.v-checkbox .v-errorindicator {
+       float: none;
+       display: inline;
+       display: inline-block;
+       zoom: 1;
+}
+
+.v-captionwrapper {
+       text-align: left;
+}
+
+.v-caption {
+       overflow: hidden;
+       white-space: nowrap;
+}
+
+.v-errorindicator {
+       float: left;
+}
+
+.v-caption .v-icon {
+       float: left;
+       padding-right: 2px;
+       vertical-align: middle;
+}
+
+.v-caption .v-captiontext {
+       float: left;
+       overflow: hidden;
+       vertical-align: middle;
+}
+
+.v-caption .v-required-field-indicator {
+       float: left;
+}
+
+.v-caption-clearelem {
+       clear: both;
+       width: 0;
+       height: 0;
+       overflow: hidden;
+}
+
+.v-ie6 .v-errorindicator, .v-ie6 .v-icon, .v-ie6 .v-captiontext, .v-ie6 .v-required-field-indicator {
+       display: inline;
+}
+
+.v-ie9 .v-gridlayout-margin > div > div > .v-caption, .v-ie9 .v-verticallayout > div > div > .v-caption, .v-ie9 .v-horizontallayout > div > div > .v-caption {
+       margin-right: -0.5px;
+}
+
+.v-generated-body {
+       width: 100%;
+       height: 100%;
+       border: 0;
+       margin: 0;
+       overflow: hidden;
+}
+
+.v-app {
+       height: 100%;
+}
+
+.v-app, .v-window, .v-popupview-popup, .v-label, .v-caption {
+       cursor: default;
+}
+
+div.v-app-loading {
+       background-image: url(../base/common/img/loading-indicator.gif);
+       background-repeat: no-repeat;
+       background-position: 50%;
+       width: 100%;
+       height: 100%;
+}
+
+.v-view {
+       height: 100%;
+       width: 100%;
+       overflow: auto;
+       outline: none;
+       margin-top: -1px;
+       border-top: 1px solid transparent;
+       position: relative;
+}
+
+@media print {
+       .v-generated-body {
+               height: auto;
+               min-height: 20cm;
+               overflow: visible;
+       }
+       .v-app {
+               height: auto;
+               min-height: 20cm;
+       }
+       .v-view {
+               overflow: visible;
+       }
+       .v-gridlayout {
+               overflow: visible !important;
+       }
+}
+
+.v-view:active, .v-view:focus {
+       outline: none;
+}
+
+.v-app select, .v-window select {
+       margin: 0;
+}
+
+.v-disabled {
+       opacity: 0.3;
+       filter: alpha(opacity = 30);
+       cursor: default;
+}
+
+.v-disabled * {
+       cursor: default;
+}
+
+.v-disabled .v-disabled {
+       opacity: 1;
+}
+
+.v-required-field-indicator {
+       padding-left: 2px;
+       color: red;
+}
+
+.v-form fieldset {
+       border: none;
+       padding: 0;
+       margin: 0;
+}
+
+.v-tooltip {
+       cursor: default;
+       background: #ffffff;
+}
+
+.v-tooltip-text {
+       overflow: auto;
+}
+
+.v-tooltip .v-errormessage {
+       overflow: auto;
+}
+
+.v-contextmenu {
+       background: #ffffff;
+}
+
+.v-contextmenu .gwt-MenuItem {
+       cursor: pointer;
+       vertical-align: middle;
+       padding: 0;
+       border: 0;
+       margin: 0;
+}
+
+.v-contextmenu .gwt-MenuItem div {
+       cursor: pointer;
+       vertical-align: middle;
+       white-space: nowrap;
+}
+
+.v-contextmenu .gwt-MenuItem-selected div {
+       background: #aaaaaa;
+       color: #ffffff;
+}
+
+.v-contextmenu table {
+       border-collapse: collapse;
+       margin: 0;
+       padding: 0;
+}
+
+.v-contextmenu .gwt-MenuItem img {
+       margin-right: 1em;
+       vertical-align: middle;
+}
+
+.v-label pre {
+       margin: 0;
+}
+
+.v-label-undef-w {
+       white-space: nowrap;
+}
+
+.v-label h1, .v-label h2, .v-label h3, .v-label h4, .v-label h5, .v-label h6 {
+       line-height: normal;
+}
+
+.v-loading-indicator, .v-loading-indicator-delay, .v-loading-indicator-wait {
+       position: absolute;
+       top: 0;
+       right: 0;
+       z-index: 30000;
+       width: 31px;
+       height: 31px;
+       background: transparent url(../base/common/img/loading-indicator.gif);
+       margin-right: 5px;
+       margin-top: 5px;
+}
+
+.v-loading-indicator-delay {
+       background-image: url(../base/common/img/loading-indicator-delay.gif);
+}
+
+.v-loading-indicator-wait {
+       background-image: url(../base/common/img/loading-indicator-wait.gif);
+}
+
+.v-debug-console {
+       background: #ffffff;
+       opacity: 0.9;
+       border: 1px solid #000000;
+       font-family: sans-serif;
+}
+
+.v-debug-console-caption {
+       background: #000000;
+       border-bottom: 1px solid grey;
+       color: white;
+       font-weight: bold;
+}
+
+.v-debug-console-content {
+       font-size: x-small;
+       overflow: auto;
+       white-space: pre;
+}
+
+.v-debug-console-content input {
+       font-size: xx-small;
+}
+
+.v-app .invalidlayout, .v-app .invalidlayout * {
+       background: #ff9999 !important;
+}
+
+.v-app input[type="text"], .v-app input[type="password"], .v-app input[type="reset"], .v-app select, .v-app textarea, .v-window input[type="text"], .v-window input[type="password"], .v-window input[type="reset"], .v-window select, .v-window textarea {
+       padding: 2px;
+}
+
+.v-drag-element {
+       z-index: 60000;
+       position: absolute;
+       opacity: 0.5;
+       filter: alpha(opacity = 50);
+       cursor: default;
+}
+
+.v-csslayout {
+       overflow: hidden;
+}
+
+.v-csslayout-margin-top {
+       padding-top: 12px;
+}
+
+.v-csslayout-margin-bottom {
+       padding-bottom: 12px;
+}
+
+.v-csslayout-margin-left {
+       padding-left: 12px;
+}
+
+.v-csslayout-margin-right {
+       padding-right: 12px;
+}
+
+.v-customcomponent {
+       overflow: hidden;
+}
+
+.v-customlayout {
+       overflow: hidden;
+}
+
+.v-datefield {
+       white-space: nowrap;
+       float: left;
+}
+
+.v-datefield-textfield {
+       vertical-align: top;
+}
+
+.v-datefield-button {
+       cursor: pointer;
+}
+
+.v-datefield-prompt .v-datefield-textfield {
+       color: #999999;
+       font-style: italic;
+}
+
+.v-datefield .v-datefield-button-readonly {
+       display: none;
+}
+
+.v-datefield-calendarpanel table {
+       width: 100%;
+}
+
+.v-datefield-calendarpanel td {
+       padding: 0;
+       margin: 0;
+}
+
+.v-datefield-calendarpanel:focus {
+       outline: none;
+}
+
+.v-datefield-calendarpanel-header td {
+       text-align: center;
+}
+
+.v-datefield-calendarpanel-month {
+       text-align: center;
+       white-space: nowrap;
+}
+
+.v-datefield-calendarpanel-weeknumber {
+       color: #999999;
+       border-right: 1px solid #dddddd;
+       font-size: 0.9em;
+}
+
+.v-datefield-calendarpanel-day, .v-datefield-calendarpanel-day-today {
+       cursor: pointer;
+}
+
+.v-datefield-calendarpanel-day-today {
+       border: 1px solid #dddddd;
+}
+
+.v-disabled .v-datefield-calendarpanel-day, .v-disabled .v-datefield-calendarpanel-day-today {
+       cursor: default;
+}
+
+.v-datefield-calendarpanel-day-disabled {
+       cursor: default;
+       opacity: 0.5;
+}
+
+.v-datefield-calendarpanel-day-selected {
+       cursor: default;
+       background: #333333;
+       color: #ffffff;
+}
+
+.v-datefield-calendarpanel-day-focused {
+       outline: 1px dotted black;
+}
+
+.v-datefield-calendarpanel-day-offmonth {
+       color: #666666;
+}
+
+.v-ie6 .v-datefield-calendarpanel-day, .v-ie7 .v-datefield-calendarpanel-day {
+       margin: 1px;
+}
+
+.v-ie6 .v-datefield-calendarpanel-day-focused, .v-ie7 .v-datefield-calendarpanel-day-focused {
+       border: 1px dotted black;
+       margin: 0px;
+}
+
+.v-datefield-time {
+       white-space: nowrap;
+}
+
+.v-datefield-time .v-label {
+       display: inline;
+}
+
+.v-datefield-popup {
+       background: #ffffff;
+}
+
+.v-ie6 .v-disabled .v-datefield-button, .v-ie6 .v-disabled .v-datefield-textfield, .v-ie7 .v-disabled .v-datefield-button, .v-ie7 .v-disabled .v-datefield-textfield {
+       filter: alpha(opacity = 30);
+}
+
+.v-ddwrapper {
+       padding: 2px;
+       -moz-border-radius: 4px;
+       -webkit-border-radius: 4px;
+       border-radius: 4px;
+       position: relative;
+}
+
+[draggable=true] {
+       -khtml-user-drag: element;
+       -webkit-user-drag: element;
+       -khtml-user-select: none;
+       -webkit-user-select: none;
+}
+
+.v-ie .v-ddwrapper a.drag-start {
+       display: block;
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       width: 100%;
+       height: 100%;
+       opacity: 0;
+       background-color: cyan;
+       filter: alpha(opacity = 0);
+}
+
+.v-ddwrapper-over {
+       border: 2px solid #1d9dff;
+       background-color: #bcdcff;
+       padding: 0;
+}
+
+.v-ddwrapper-over {
+       background-color: rgba(169, 209, 255, 0.6);
+}
+
+.no-box-drag-hints .v-ddwrapper-over {
+       border: none;
+       background-color: transparent;
+       padding: 2px;
+}
+
+.v-app .v-ddwrapper-over-top, .v-window .v-ddwrapper-over-top, .v-popupview-popup .v-ddwrapper-over-top {
+       border: none;
+       border-top: 2px solid #1d9dff;
+       background-color: transparent;
+       padding: 2px;
+       padding-top: 0;
+       -moz-border-radius: 0;
+       -webkit-border-radius: 0;
+       border-radius: 0;
+}
+
+.v-app .v-ddwrapper-over-bottom, .v-window .v-ddwrapper-over-bottom, .v-popupview-popup .v-ddwrapper-over-bottom {
+       border: none;
+       border-bottom: 2px solid #1d9dff;
+       background-color: transparent;
+       padding: 2px;
+       padding-bottom: 0;
+       -moz-border-radius: 0;
+       -webkit-border-radius: 0;
+       border-radius: 0;
+}
+
+.v-app .v-ddwrapper-over-left, .v-window .v-ddwrapper-over-left, .v-popupview-popup .v-ddwrapper-over-left {
+       border: none;
+       border-left: 2px solid #1d9dff;
+       background-color: transparent;
+       padding: 2px;
+       padding-left: 0;
+       -moz-border-radius: 0;
+       -webkit-border-radius: 0;
+       border-radius: 0;
+}
+
+.v-app .v-ddwrapper-over-right, .v-window .v-ddwrapper-over-right, .v-popupview-popup .v-ddwrapper-over-right {
+       border: none;
+       border-right: 2px solid #1d9dff;
+       background-color: transparent;
+       padding: 2px;
+       padding-right: 0;
+       -moz-border-radius: 0;
+       -webkit-border-radius: 0;
+       border-radius: 0;
+}
+
+.v-ddwrapper, .v-ddwrapper-over, .v-app .v-ddwrapper-over-top, .v-window .v-ddwrapper-over-top, .v-popupview-popup .v-ddwrapper-over-top, .v-app .v-ddwrapper-over-bottom, .v-window .v-ddwrapper-over-bottom, .v-popupview-popup .v-ddwrapper-over-bottom, .v-app .v-ddwrapper-over-left, .v-window .v-ddwrapper-over-left, .v-popupview-popup .v-ddwrapper-over-left, .v-app .v-ddwrapper-over-right, .v-window .v-ddwrapper-over-right, .v-popupview-popup .v-ddwrapper-over-right {
+       border-color: rgba(0, 109, 232, 0.6);
+}
+
+.v-ddwrapper-over-top:before, .v-ddwrapper-over-bottom:after, .v-ddwrapper-over-left:before, .v-ddwrapper-over-right:before {
+       display: block;
+       content: "";
+       position: absolute;
+       width: 6px;
+       height: 6px;
+       margin-top: -4px;
+       margin-left: -2px;
+       background: transparent url(../base/common/img/drag-slot-dot.png) no-repeat;
+}
+
+.v-ddwrapper-over-bottom:after {
+       margin-top: -2px;
+}
+
+.v-ddwrapper-over-left:before, .v-ddwrapper-over-right:before {
+       background-position: 0 -6px;
+       margin-top: -2px;
+       margin-left: -4px;
+}
+
+.v-ddwrapper-over-right:before {
+       position: relative;
+       margin-bottom: -4px;
+       margin-right: -4px;
+       margin-left: 0;
+       width: auto;
+       background-position: 100% -6px;
+}
+
+.no-horizontal-drag-hints .v-ddwrapper-over-left {
+       padding-left: 2px;
+       border-left: none;
+}
+
+.no-horizontal-drag-hints .v-ddwrapper-over-right {
+       padding-right: 2px;
+       border-right: none;
+}
+
+.no-vertical-drag-hints .v-ddwrapper-over-top {
+       padding-top: 2px;
+       border-top: none;
+}
+
+.no-vertical-drag-hints .v-ddwrapper-over-bottom {
+       padding-bottom: 2px;
+       border-bottom: none;
+}
+
+.no-horizontal-drag-hints .v-ddwrapper-over-left:before, .no-horizontal-drag-hints .v-ddwrapper-over-right:before, .no-vertical-drag-hints .v-ddwrapper-over-top:before, .no-vertical-drag-hints .v-ddwrapper-over-bottom:after {
+       display: none;
+}
+
+.v-table .v-embedded-image {
+       display: inline-block;
+}
+
+.v-formlayout-cell .v-errorindicator {
+       display: block;
+}
+
+.v-formlayout-error-indicator {
+       width: 12px;
+}
+
+.v-formlayout-captioncell {
+       text-align: right;
+       white-space: nowrap;
+}
+
+.v-formlayout-captioncell .v-caption {
+       overflow: visible;
+}
+
+.v-formlayout-spacing .v-formlayout-row .v-formlayout-captioncell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-contentcell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-errorcell {
+       padding-top: 6px;
+}
+
+.v-formlayout-spacing .v-formlayout-firstrow .v-formlayout-captioncell, .v-formlayout-spacing .v-formlayout-firstrow .v-formlayout-contentcell, .v-formlayout-spacing .v-formlayout-firstrow .v-formlayout-errorcell {
+       padding-top: 0;
+}
+
+.v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-captioncell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-contentcell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-errorcell {
+       padding-top: 12px;
+}
+
+.v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-captioncell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-contentcell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-errorcell {
+       padding-bottom: 12px;
+}
+
+.v-formlayout-margin-left .v-formlayout-captioncell {
+       padding-left: 12px;
+}
+
+.v-formlayout-margin-right .v-formlayout-contentcell {
+       padding-right: 12px;
+}
+
+.v-formlayout-captioncell .v-caption .v-required-field-indicator {
+       float: none;
+}
+
+.v-gridlayout-margin-top {
+       padding-top: 12px;
+}
+
+.v-gridlayout-margin-bottom {
+       padding-bottom: 12px;
+}
+
+.v-gridlayout-margin-left {
+       padding-left: 12px;
+}
+
+.v-gridlayout-margin-right {
+       padding-right: 12px;
+}
+
+.v-gridlayout-spacing-on {
+       padding-left: 6px;
+       padding-top: 6px;
+       overflow: hidden;
+}
+
+.v-gridlayout-spacing, .v-gridlayout-spacing-off {
+       padding-left: 0;
+       padding-top: 0;
+}
+
+.v-gridlayout-spacing-off {
+       overflow: hidden;
+}
+
+.v-ie6 .v-gridlayout, .v-ie7 .v-gridlayout {
+       overflow: hidden;
+}
+
+.v-link {
+       white-space: nowrap;
+}
+
+.v-link a {
+       vertical-align: middle;
+       text-decoration: none;
+}
+
+.v-link span {
+       text-decoration: underline;
+       vertical-align: middle;
+}
+
+.v-disabled a {
+       cursor: default;
+}
+
+.v-link img {
+       vertical-align: middle;
+       border: none;
+}
+
+.v-loginform {
+       height: 140px;
+       width: 200px;
+}
+
+.v-app-loginpage .v-button, .v-app-loginpage .v-button {
+       float: left;
+}
+
+.v-menubar {
+       float: left;
+       white-space: nowrap;
+}
+
+.v-menubar .v-menubar-menuitem {
+       cursor: default;
+       vertical-align: middle;
+       white-space: nowrap;
+       display: inline;
+       display: inline-block;
+       zoom: 1;
+}
+
+.v-menubar .v-menubar-menuitem-caption .v-icon {
+       vertical-align: middle;
+       white-space: nowrap;
+}
+
+.v-menubar-submenu {
+       background: #ffffff;
+}
+
+.v-menubar-menuitem-selected {
+       background: #333333;
+       color: #ffffff;
+}
+
+.v-menubar-submenu .v-menubar-menuitem {
+       cursor: default;
+       display: block;
+       position: relative;
+       padding-right: 1.5em;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-caption {
+       display: block;
+}
+
+.v-menubar-submenu .v-menubar-menuitem *, .v-menubar-submenu .v-menubar-menuitem-caption * {
+       white-space: nowrap;
+}
+
+.v-menubar-submenu-indicator {
+       display: none;
+       font-family: arial, helvetica, sans-serif;
+}
+
+.v-menubar-submenu .v-menubar-submenu-indicator {
+       display: block;
+       position: absolute;
+       right: 0;
+       width: 1em;
+       height: 1em;
+       font-size: 0.9em;
+}
+
+.v-menubar-menuitem-disabled, .v-menubar span.v-menubar-menuitem-disabled:hover, .v-menubar span.v-menubar-menuitem-disabled:focus, .v-menubar span.v-menubar-menuitem-disabled:active {
+       color: #999999;
+}
+
+.v-menubar-more-menuitem {
+       font-family: arial, helvetica, sans-serif;
+}
+
+.v-menubar-separator {
+       overflow: hidden;
+}
+
+.v-menubar-separator span {
+       display: block;
+       text-indent: -9999px;
+       font-size: 1px;
+       line-height: 1px;
+       border-top: 1px solid #dddddd;
+       margin: 3px 0 2px;
+       overflow: hidden;
+}
+
+.v-menubar .v-icon, .v-menubar-submenu .v-icon {
+       margin-right: 3px;
+}
+
+.v-menubar:focus, .v-menubar-popup:focus, .v-menubar-popup .popupContent:focus, .v-menubar-popup .popupContent .v-menubar-submenu:focus {
+       outline: none;
+}
+
+.v-menubar-submenu-check-column .v-menubar-menuitem {
+       padding-left: 6px;
+}
+
+.v-menubar-submenu-check-column .v-menubar-menuitem-caption {
+       padding-left: 18px;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-checked .v-menubar-menuitem-caption {
+       background: transparent url(../base/menubar/img/check.gif) no-repeat left;
+}
+
+.v-Notification {
+       background: #999999;
+       color: #ffffff;
+       cursor: pointer;
+       overflow: hidden;
+       padding: 1em;
+       max-width: 85%;
+}
+
+.v-Notification h1, .v-Notification p, .v-Notification-error h1, .v-Notification-error p, .v-Notification-warning h1, .v-Notification-warning p {
+       display: inline;
+       margin: 0 0.5em 0 0;
+}
+
+.v-Notification-warning {
+       background: orange;
+}
+
+.v-Notification-error {
+       background: red;
+}
+
+.v-Notification-tray h1 {
+       display: block;
+}
+
+.v-Notification-tray p {
+       display: block;
+}
+
+.v-Notification-system {
+       background-color: red;
+       opacity: 0.7;
+       filter: alpha(opacity = 70);
+}
+
+.v-Notification-system h1 {
+       display: block;
+       margin: 0;
+}
+
+.v-orderedlayout-margin-top, .v-horizontallayout-margin-top, .v-verticallayout-margin-top {
+       padding-top: 12px;
+}
+
+.v-orderedlayout-margin-right, .v-horizontallayout-margin-right, .v-verticallayout-margin-right {
+       padding-right: 12px;
+}
+
+.v-orderedlayout-margin-bottom, .v-horizontallayout-margin-bottom, .v-verticallayout-margin-bottom {
+       padding-bottom: 12px;
+}
+
+.v-orderedlayout-margin-left, .v-horizontallayout-margin-left, .v-verticallayout-margin-left {
+       padding-left: 12px;
+}
+
+.v-orderedlayout-spacing-on, .v-horizontallayout-spacing-on, .v-verticallayout-spacing-on {
+       padding-top: 6px;
+       padding-left: 6px;
+}
+
+.v-orderedlayout-spacing-off, .v-horizontallayout-spacing-off, .v-verticallayout-spacing-off {
+       padding-top: 0;
+       padding-left: 0;
+}
+
+.v-ie6 .v-orderedlayout, .v-ie6 .v-horizontallayout, .v-ie6 .v-verticallayout, .v-ie7 .v-orderedlayout, .v-ie7 .v-horizontallayout, .v-ie7 .v-verticallayout {
+       overflow: hidden;
+}
+
+.v-panel, .v-panel-caption, .v-panel-content, .v-panel-deco, .v-panel-light, .v-panel-caption-light, .v-panel-content-light, .v-panel-deco-light {
+       outline: none;
+       text-align: left;
+}
+
+.v-panel-caption .v-errorindicator {
+       float: none;
+       display: inline;
+}
+
+.v-panel-caption .v-icon {
+       display: inline;
+       vertical-align: middle;
+}
+
+.v-panel-caption span {
+       vertical-align: middle;
+}
+
+.v-panel-caption {
+       white-space: nowrap;
+       overflow: hidden;
+       font-weight: bold;
+}
+
+.v-panel-nocaption {
+       overflow: hidden;
+}
+
+.v-panel-content {
+       overflow: auto;
+}
+
+.v-panel-deco {
+}
+
+.v-popupview {
+       cursor: pointer;
+       text-decoration: underline;
+       white-space: nowrap;
+}
+
+.v-popupview-popup {
+       overflow: auto;
+}
+
+.v-popupview-loading {
+       width: 30px;
+       height: 30px;
+       background: transparent url(../base/common/img/ajax-loader-medium.gif) no-repeat 50%;
+}
+
+.v-progressindicator {
+       overflow: hidden;
+       width: 150px;
+}
+
+.v-progressindicator-wrapper {
+       overflow: hidden;
+       height: 7px;
+       border: 1px solid #dddddd;
+}
+
+.v-progressindicator-indicator {
+       height: 7px;
+       overflow: hidden;
+       background: #dddddd;
+}
+
+div.v-progressindicator-indeterminate {
+       height: 20px;
+       width: 20px;
+       overflow: hidden;
+       background: #ffffff url(../base/common/img/ajax-loader-medium.gif) no-repeat 50%;
+       border-radius: 4px;
+       -webkit-border-radius: 4px;
+       -moz-border-radius: 4px;
+}
+
+.v-progressindicator-indeterminate .v-progressindicator-wrapper, .v-progressindicator-indeterminate .v-progressindicator-indicator, .v-progressindicator-indeterminate-disabled .v-progressindicator-wrapper, .v-progressindicator-indeterminate-disabled .v-progressindicator-indicator {
+       display: none;
+}
+
+div.v-progressindicator-indeterminate-disabled {
+       height: 20px;
+       width: 20px;
+       overflow: hidden;
+       background: transparent;
+}
+
+.v-select {
+       text-align: left;
+}
+
+.v-select-optiongroup .v-select-option {
+       display: block;
+       white-space: nowrap;
+}
+
+.v-select-optiongroup .v-icon {
+       vertical-align: middle;
+       white-space: nowrap;
+       margin: 0 2px;
+}
+
+.v-ie .v-select-optiongroup .v-select-option {
+       zoom: 1;
+}
+
+.v-select-select {
+       display: block;
+}
+
+.v-select-twincol {
+       white-space: nowrap;
+}
+
+.v-select-twincol-options {
+       float: left;
+}
+
+.v-select-twincol-caption-left {
+       float: left;
+       overflow: hidden;
+       text-overflow: ellipsis;
+}
+
+.v-select-twincol-selections {
+       font-weight: bold;
+}
+
+.v-select-twincol-caption-right {
+       float: right;
+       overflow: hidden;
+       text-overflow: ellipsis;
+}
+
+.v-select-twincol-buttons {
+       float: left;
+       text-align: center;
+}
+
+.v-select-twincol-buttons .v-select-twincol-deco {
+       clear: both;
+}
+
+.v-select-twincol .v-textfield {
+       display: block;
+       float: left;
+       clear: left;
+}
+
+.v-select-twincol .v-button {
+       float: left;
+}
+
+.v-select-twincol-buttons .v-button {
+       float: none;
+}
+
+.v-filterselect {
+       white-space: nowrap;
+       text-align: left;
+}
+
+.v-filterselect .v-icon {
+       float: left;
+}
+
+.v-app .v-filterselect-input, .v-window .v-filterselect-input, .v-popupview-popup .v-filterselect-input {
+       float: left;
+       -webkit-border-radius: 0px;
+}
+
+.v-filterselect-prompt .v-filterselect-input {
+       color: #999999;
+       font-style: italic;
+}
+
+.v-filterselect-button {
+       float: right;
+       cursor: pointer;
+       width: 1em;
+       height: 1em;
+       background: transparent url(../base/common/img/sprites.png) no-repeat -5px -8px;
+}
+
+.v-filterselect.v-readonly .v-filterselect-button {
+       display: none;
+}
+
+.v-filterselect.v-readonly, .v-filterselect.v-readonly .v-filterselect-input {
+       background: transparent;
+}
+
+.v-filterselect-suggestpopup {
+       background: #ffffff;
+       border: 1px solid #eeeeee;
+}
+
+.v-filterselect-suggestmenu table {
+       border-collapse: collapse;
+       border: none;
+}
+
+.v-filterselect-suggestmenu .gwt-MenuItem {
+       white-space: nowrap;
+}
+
+.v-filterselect-suggestmenu .gwt-MenuItem .v-icon {
+       margin-right: 3px;
+       vertical-align: middle;
+}
+
+.v-filterselect-suggestmenu .gwt-MenuItem span {
+       vertical-align: middle;
+}
+
+.v-filterselect-suggestmenu .gwt-MenuItem-selected {
+       background: #333333;
+       color: #ffffff;
+}
+
+.v-filterselect-nextpage, .v-filterselect-nextpage-off, .v-filterselect-prevpage-off, .v-filterselect-prevpage {
+       width: 100%;
+       background: #aaaaaa;
+       text-align: center;
+       overflow: hidden;
+       cursor: pointer;
+}
+
+.v-filterselect-nextpage-off, .v-filterselect-prevpage-off {
+       color: #666666;
+       opacity: 0.5;
+       filter: alpha(opacity = 50);
+       cursor: default;
+}
+
+.v-filterselect-nextpage-off span, .v-filterselect-prevpage-off span {
+       cursor: default;
+}
+
+.v-filterselect-status {
+       white-space: nowrap;
+       text-align: center;
+}
+
+.v-filterselect-no-input .v-filterselect-input {
+       cursor: default;
+}
+
+.v-shadow {
+       position: absolute;
+}
+
+.v-shadow .top-left {
+       position: absolute;
+       overflow: hidden;
+       top: -3px;
+       left: -5px;
+       width: 10px;
+       height: 10px;
+       background: transparent url(../base/shadow/img/top-left.png);
+}
+
+.v-shadow .top {
+       position: absolute;
+       overflow: hidden;
+       top: -3px;
+       left: 5px;
+       height: 10px;
+       right: 5px;
+       background: transparent url(../base/shadow/img/top.png);
+}
+
+.v-shadow .top-right {
+       position: absolute;
+       overflow: hidden;
+       top: -3px;
+       right: -5px;
+       width: 10px;
+       height: 10px;
+       background: transparent url(../base/shadow/img/top-right.png);
+}
+
+.v-shadow .left {
+       position: absolute;
+       overflow: hidden;
+       top: 7px;
+       left: -5px;
+       width: 10px;
+       bottom: 3px;
+       background: transparent url(../base/shadow/img/left.png);
+}
+
+.v-shadow .center {
+       position: absolute;
+       overflow: hidden;
+       top: 7px;
+       left: 5px;
+       bottom: 3px;
+       right: 5px;
+       background: transparent url(../base/shadow/img/center.png);
+}
+
+.v-shadow .right {
+       position: absolute;
+       overflow: hidden;
+       top: 7px;
+       right: -5px;
+       width: 10px;
+       bottom: 3px;
+       background: transparent url(../base/shadow/img/right.png);
+}
+
+.v-shadow .bottom-left {
+       position: absolute;
+       overflow: hidden;
+       bottom: -7px;
+       left: -5px;
+       width: 10px;
+       height: 10px;
+       background: transparent url(../base/shadow/img/bottom-left.png);
+}
+
+.v-shadow .bottom {
+       position: absolute;
+       overflow: hidden;
+       bottom: -7px;
+       left: 5px;
+       right: 5px;
+       height: 10px;
+       background: transparent url(../base/shadow/img/bottom.png);
+}
+
+.v-shadow .bottom-right {
+       position: absolute;
+       overflow: hidden;
+       bottom: -7px;
+       right: -5px;
+       width: 10px;
+       height: 10px;
+       background: transparent url(../base/shadow/img/bottom-right.png);
+}
+
+.v-ie6 .v-shadow * {
+       display: none;
+}
+
+.v-slider {
+       margin: 5px 0;
+}
+
+.v-slider-base {
+       height: 2px;
+       border-top: 1px solid #dddddd;
+       background: #eeeeee;
+       border-left: 1px solid #dddddd;
+       border-right: 1px solid #eeeeee;
+}
+
+.v-slider-handle {
+       background: #aaaaaa;
+       width: 12px;
+       height: 12px;
+       margin-top: -5px;
+       font-size: 0;
+}
+
+.v-slider-vertical {
+       width: 2px;
+       height: auto;
+       margin: 0 5px;
+       border: none;
+       border-left: 1px solid #cccfd0;
+       border-right: 1px solid #cccfd0;
+}
+
+.v-slider-vertical .v-slider-base {
+       width: 2px;
+       border-bottom: 1px solid #eeeeee;
+       border-right: none;
+}
+
+.v-slider-vertical .v-slider-handle {
+       width: 12px;
+       height: 12px;
+       font-size: 0;
+       margin-left: -5px;
+}
+
+.v-slider-feedback {
+       padding: 2px 5px;
+       background: #444444;
+       color: #ffffff;
+       font-size: 11px;
+       line-height: 13px;
+       font-weight: bold;
+       font-family: Arial, Helvetica, sans-serif;
+       border-radius: 4px;
+       -webkit-border-radius: 4px;
+       -moz-border-radius: 4px;
+       margin: -2px 0 0 2px;
+       text-shadow: 0 1px 0 #000000;
+}
+
+.v-ie6 .v-slider, .v-ie6 .v-slider-vertical {
+       margin: 0;
+}
+
+.v-ie6 .v-slider .v-slider-handle {
+       margin: -1px 0;
+}
+
+.v-ie6 .v-slider-vertical .v-slider-handle {
+       margin: 0 -1px;
+}
+
+.v-splitpanel-horizontal, .v-splitpanel-vertical {
+       overflow: hidden;
+}
+
+.v-splitpanel-hsplitter {
+       width: 6px;
+       font-size: 1px;
+}
+
+.v-splitpanel-hsplitter div {
+       width: 6px;
+       font-size: 1px;
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       background: #dddddd;
+       cursor: e-resize;
+       cursor: col-resize;
+}
+
+.v-disabled .v-splitpanel-hsplitter div {
+       cursor: default;
+}
+
+.v-splitpanel-vsplitter {
+       height: 6px;
+       font-size: 1px;
+}
+
+.v-splitpanel-vsplitter div {
+       height: 6px;
+       font-size: 1px;
+       background: #dddddd;
+       cursor: s-resize;
+       cursor: row-resize;
+}
+
+.v-disabled .v-splitpanel-vsplitter div {
+       cursor: default;
+}
+
+.v-ie6 .v-splitpanel-hsplitter div {
+       height: 99%;
+}
+
+.v-ie6 .v-splitpanel-first-container, .v-ie6 .v-splitpanel-second-container, .v-ie7 .v-splitpanel-first-container, .v-ie7 .v-splitpanel-second-container {
+       position: relative;
+}
+
+.v-table {
+       overflow: hidden;
+       text-align: left;
+}
+
+.v-ie7 .v-table {
+       overflow: visible;
+}
+
+.v-table-header-wrap {
+       overflow: hidden;
+       border: 1px solid #aaaaaa;
+       border-bottom: none;
+       background: #efefef;
+}
+
+.v-table-header table, .v-table-table {
+       border-spacing: 0;
+       border-collapse: separate;
+       margin: 0;
+       padding: 0;
+       border: 0;
+}
+
+.v-table-header td {
+       padding: 0;
+}
+
+.v-table-header-cell, .v-table-header-cell-asc, .v-table-header-cell-desc {
+       cursor: pointer;
+}
+
+.v-table.v-disabled .v-table-header-cell, .v-table.v-disabled .v-table-header-cell-asc, .v-table.v-disabled .v-table-header-cell-desc {
+       cursor: default;
+}
+
+.v-table-footer-wrap {
+       overflow: hidden;
+       border: 1px solid #aaaaaa;
+       border-top: none;
+       background: #efefef;
+}
+
+.v-table-footer table {
+       border-spacing: 0;
+       border-collapse: collapse;
+       margin: 0;
+       padding: 0;
+       border: 0;
+}
+
+.v-table-footer td {
+       padding: 0;
+       border-right: 1px solid #aaaaaa;
+}
+
+.v-table-footer-cell {
+       cursor: pointer;
+}
+
+.v-table-footer-container {
+       float: right;
+       padding-right: 6px;
+       overflow: hidden;
+       white-space: nowrap;
+}
+
+.v-table-resizer {
+       display: block;
+       height: 1.2em;
+       float: right;
+       background: #aaaaaa;
+       cursor: e-resize;
+       cursor: col-resize;
+       width: 1px;
+       overflow: hidden;
+}
+
+.v-table.v-disabled .v-table-resizer {
+       cursor: default;
+}
+
+.v-table-caption-container {
+       overflow: hidden;
+       white-space: nowrap;
+       margin-left: 6px;
+}
+
+.v-ie7 .v-table-caption-container-align-right {
+       margin-left: 0px;
+       padding-left: 6px;
+}
+
+.v-table-caption-container-align-right {
+       float: right;
+}
+
+.v-table-sort-indicator {
+       width: 0px;
+       height: 1.2em;
+       float: right;
+}
+
+.v-table-header-cell-asc .v-table-sort-indicator, .v-table-header-cell-desc .v-table-sort-indicator {
+       width: 16px;
+       height: 1.2em;
+       float: right;
+}
+
+.v-table-header-cell-asc .v-table-sort-indicator {
+       background: transparent url(../base/common/img/sprites.png) no-repeat right 6px;
+}
+
+.v-table-header-cell-desc .v-table-sort-indicator {
+       background: transparent url(../base/common/img/sprites.png) no-repeat right -10px;
+}
+
+.v-table-caption-container-align-center {
+       text-align: center;
+}
+
+.v-table-caption-container-align-right {
+       text-align: right;
+}
+
+.v-table-caption-container .v-icon, .v-table-header-drag .v-icon {
+       vertical-align: middle;
+}
+
+.v-table-body {
+       border: 1px solid #aaaaaa;
+}
+
+.v-table-row-spacer {
+       height: 10px;
+       overflow: hidden;
+}
+
+.v-table-row, .v-table-row-odd {
+       background: #ffffff;
+       border: 0;
+       margin: 0;
+       padding: 0;
+       cursor: pointer;
+}
+
+.v-table-generated-row {
+       background: #efefef;
+}
+
+.v-table-body-noselection .v-table-row, .v-table-body-noselection .v-table-row-odd {
+       cursor: default;
+}
+
+.v-table .v-selected {
+       background: #999999;
+       color: #ffffff;
+}
+
+.v-table-cell-content {
+       white-space: nowrap;
+       overflow: hidden;
+       padding: 0 6px;
+       border-right: 1px solid #aaaaaa;
+}
+
+.v-table-cell-wrapper {
+       white-space: nowrap;
+       overflow: hidden;
+}
+
+.v-table-cell-wrapper-align-center {
+       text-align: center;
+}
+
+.v-table-cell-wrapper-align-right {
+       text-align: right;
+}
+
+.v-table-column-selector {
+       float: right;
+       background: transparent url(../base/common/img/sprites.png) no-repeat 4px -37px;
+       margin: -1.2em 0 0 0;
+       height: 1.2em;
+       width: 14px;
+       position: relative;
+       cursor: pointer;
+}
+
+.v-table.v-disabled .v-table-column-selector {
+       cursor: default;
+}
+
+.v-ie6 .v-table-column-selector, .v-ie7 .v-table-column-selector {
+       position: static;
+}
+
+.v-table-focus-slot-left {
+       border-left: 2px solid #999999;
+       float: none;
+       margin-bottom: -1.2em;
+       width: auto;
+       background: transparent;
+       border-right: 1px solid #aaaaaa;
+}
+
+.v-table-focus-slot-right {
+       border-right: 2px solid #999999;
+       margin-left: -2px;
+}
+
+.v-table-header-drag {
+       position: absolute;
+       background: #efefef;
+       border: 1px solid #eeeeee;
+       opacity: 0.9;
+       filter: alpha(opacity = 90);
+       margin-top: 20px;
+       z-index: 30000;
+}
+
+.v-table-header-drag .v-icon {
+       vertical-align: middle;
+}
+
+.v-table-scrollposition {
+       width: 160px;
+       background: #eeeeee;
+       border: 1px solid #aaaaaa;
+}
+
+.v-table-scrollposition span {
+       display: block;
+       text-align: center;
+}
+
+.v-table-body:focus, .v-table-body-wrapper:focus {
+       outline: none;
+}
+
+.v-table-body.focused {
+       border-color: #388ddd;
+}
+
+.v-table-focus .v-table-cell-content {
+       border-top: 1px dotted #0066bd;
+       border-bottom: 1px dotted #0066bd;
+}
+
+.v-table-focus .v-table-cell-wrapper {
+       margin-top: -1px;
+       margin-bottom: -1px;
+}
+
+.v-on {
+}
+
+.v-off {
+       color: #dddddd;
+}
+
+.v-table-drag .v-table-body {
+       border-color: #1d9dff;
+}
+
+.v-table-row-drag-middle .v-table-cell-content {
+       background-color: #bcdcff;
+}
+
+.v-table-row-drag-top .v-table-cell-content {
+       border-top: 2px solid #1d9dff;
+}
+
+.v-table-row-drag-top .v-table-cell-wrapper {
+       margin-top: -2px;
+}
+
+.v-table-row-drag-bottom .v-table-cell-content {
+       border-bottom: 2px solid #1d9dff;
+}
+
+.v-table-row-drag-bottom .v-table-cell-wrapper {
+       margin-bottom: -2px;
+}
+
+.v-table-row-drag-top .v-table-cell-content:first-child:before, .v-table-row-drag-bottom .v-table-cell-content:first-child:after {
+       display: block;
+       content: "";
+       position: absolute;
+       width: 6px;
+       height: 6px;
+       margin-top: -4px;
+       margin-left: -6px;
+       background: transparent url(../base/common/img/drag-slot-dot.png);
+}
+
+.v-ff .v-table-row-drag-bottom .v-table-cell-content:first-child:after, .v-ie .v-table-row-drag-bottom .v-table-cell-content:first-child:after {
+       margin-top: -2px;
+}
+
+.v-tabsheet, .v-tabsheet-content, .v-tabsheet-deco {
+       outline: none;
+       text-align: left;
+}
+
+.v-tabsheet-tabs {
+       empty-cells: hide;
+       border-collapse: collapse;
+       margin: 0;
+       padding: 0;
+       border: 0;
+       width: 100%;
+       overflow: hidden;
+}
+
+.v-tabsheet-tabitemcell:focus {
+       outline: none;
+}
+
+.v-tabsheet-tabitemcell, .v-tabsheet-spacertd {
+       margin: 0;
+       padding: 0;
+       vertical-align: bottom;
+}
+
+.v-tabsheet-spacertd {
+       width: 100%;
+}
+
+.v-tabsheet-spacertd div {
+       border-left: 1px solid #aaaaaa;
+       border-bottom: 1px solid #aaaaaa;
+       height: 1em;
+       padding: 0.2em 0;
+}
+
+.v-tabsheet-hidetabs .v-tabsheet-tabcontainer {
+       display: none;
+}
+
+.v-tabsheet-scroller {
+       white-space: nowrap;
+       text-align: right;
+       margin-top: -1em;
+}
+
+.v-ff2 .v-tabsheet-scroller {
+       position: relative;
+}
+
+.v-disabled .v-tabsheet-scroller {
+       display: none;
+}
+
+.v-tabsheet-scrollerPrev, .v-tabsheet-scrollerNext, .v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerNext-disabled {
+       border: 1px solid #aaaaaa;
+       background: #ffffff;
+       width: 12px;
+       height: 1em;
+       cursor: pointer;
+}
+
+.v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerNext-disabled {
+       opacity: 0.5;
+       cursor: default;
+}
+
+.v-tabsheet-tabs .v-caption, .v-tabsheet-tabs .v-caption span {
+       white-space: nowrap;
+}
+
+.v-tabsheet-caption-close {
+       display: inline;
+       display: inline-block;
+       zoom: 1;
+       width: 16px;
+       height: 16px;
+       text-align: center;
+       font-weight: bold;
+       cursor: pointer;
+       vertical-align: middle;
+       user-select: none;
+       -khtml-user-select: none;
+       -ms-user-select: none;
+       -moz-user-select: none;
+       -webkit-user-select: none;
+}
+
+.v-tabsheet .v-disabled .v-tabsheet-caption-close {
+       cursor: default;
+       visibility: hidden;
+}
+
+.v-tabsheet-tabitem:hover .v-tabsheet-caption-close, .v-ie6 .v-tabsheet-caption-close {
+       visibility: visible;
+}
+
+.v-ie6 .v-tabsheet-caption-close {
+       float: right;
+}
+
+.v-tabsheet-tabitem {
+       border: 1px solid #aaaaaa;
+       border-right: none;
+       cursor: pointer;
+       padding: 0.2em 0.5em;
+}
+
+.v-tabsheet-tabitem .v-caption {
+       cursor: inherit;
+}
+
+.v-tabsheet.v-disabled .v-tabsheet-tabitem, .v-tabsheet-tabitemcell-disabled .v-tabsheet-tabitem {
+       cursor: default;
+}
+
+.v-tabsheet-tabitem-selected {
+       cursor: default;
+       border-bottom-color: #ffffff;
+}
+
+.v-tabsheet-tabitem-selected .v-caption {
+       cursor: default;
+}
+
+.v-tabsheet-content {
+       border: 1px solid #aaaaaa;
+       border-top: none;
+       border-bottom: none;
+       position: relative;
+}
+
+.v-ie6 .v-tabsheet-content, .v-ie7 .v-tabsheet-content {
+       zoom: 1;
+}
+
+.v-tabsheet-deco {
+       height: 1px;
+       background: #aaaaaa;
+       overflow: hidden;
+}
+
+.v-tabsheet-hidetabs .v-tabsheet-content {
+       border: none;
+}
+
+.v-tabsheet-hidetabs .v-tabsheet-deco {
+       height: 0;
+}
+
+.v-textfield {
+       text-align: left;
+}
+
+.v-textarea {
+       resize: none;
+}
+
+.v-textfield-focus, .v-textarea-focus {
+}
+
+input.v-textfield-prompt, textarea.v-textarea-prompt {
+       color: #999999;
+       font-style: italic;
+}
+
+input.v-textfield-readonly, textarea.v-textarea-readonly {
+       background: transparent;
+       border: none;
+       resize: none;
+}
+
+input.v-disabled, textarea.v-disabled {
+       resize: none;
+}
+
+input.v-textfield-readonly:focus, textarea.v-textarea-readonly:focus {
+       outline: none;
+}
+
+.v-sa input:focus, .v-sa textarea:focus {
+       outline-width: medium;
+}
+
+.v-richtextarea {
+       border: 1px solid #aaaaaa;
+       overflow: hidden;
+}
+
+.v-richtextarea .gwt-RichTextArea {
+       background: #ffffff;
+       border: none;
+}
+
+.v-richtextarea .gwt-RichTextToolbar {
+       white-space: nowrap;
+       background: #959595 url(../base/textfield/img/richtext-toolbar-bg.png) repeat-x 0 -42px;
+       border-bottom: 1px solid #7d7d7d;
+       padding: 2px;
+       overflow: hidden;
+}
+
+.v-richtextarea .gwt-RichTextToolbar-top {
+       padding-bottom: 1px;
+       overflow: hidden;
+       white-space: normal;
+}
+
+.v-richtextarea .gwt-RichTextToolbar-bottom {
+       clear: left;
+       overflow: hidden;
+       white-space: nowrap;
+}
+
+.v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton {
+       float: left;
+       display: inline;
+       width: 22px;
+       height: 21px;
+       overflow: hidden;
+       background: transparent url(../base/textfield/img/richtext-toolbar-bg.png) repeat-x;
+       cursor: pointer;
+       margin-right: 2px;
+       text-align: center;
+}
+
+.v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton-down, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton-down, .v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton-down-hovering, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton-down-hovering {
+       background-position: 0 -21px;
+}
+
+.v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton img, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton img {
+}
+
+.v-richtextarea .gwt-RichTextToolbar .gwt-ListBox {
+       width: 24.5%;
+       margin-right: 2px;
+}
+
+.v-richtextarea-readonly {
+       border: none;
+}
+
+.v-tree {
+       text-align: left;
+       overflow: hidden;
+       padding: 1px 0;
+       outline: none;
+}
+
+.v-tree-node {
+       background: transparent url(../base/common/img/sprites.png) no-repeat 5px -37px;
+       padding: 1px 0;
+}
+
+.v-tree-node-caption:focus {
+       outline: none;
+}
+
+div.v-tree-node-leaf {
+       background: transparent;
+}
+
+.v-tree-node-expanded {
+       background: transparent url(../base/common/img/sprites.png) no-repeat -5px -10px;
+}
+
+.v-tree-node-caption {
+       margin-left: 1em;
+}
+
+.v-tree-node span {
+       cursor: pointer;
+}
+
+.v-tree-node-caption div {
+       white-space: nowrap;
+}
+
+.v-tree-node-caption span, .v-tree-node-caption .v-icon {
+       vertical-align: middle;
+}
+
+.v-tree-node-selected span {
+       background: #999999;
+       color: #ffffff;
+}
+
+.v-tree-node-children {
+       padding-left: 1em;
+}
+
+.v-tree-node-ie6compatnode {
+       display: none;
+}
+
+.v-ie6 .v-tree-node-ie6compatnode {
+       display: inline;
+       float: left;
+       background: orange;
+       margin: 0;
+       width: 0.8em;
+       height: 0.8em;
+       padding: 0.1em;
+       filter: alpha(opacity = 0);
+}
+
+.v-ie6 .v-tree-node, .v-ie6 .v-tree-node-children {
+       clear: left;
+}
+
+.v-tree .v-tree-node-drag-top {
+       border-top: 2px solid #1d9dff;
+       margin-top: -1px;
+       padding-top: 0;
+}
+
+.v-tree .v-tree-node-drag-bottom {
+       border-bottom: 2px solid #1d9dff;
+       margin-bottom: -1px;
+       padding-bottom: 0;
+}
+
+.v-tree .v-tree-node-drag-top:before, .v-tree .v-tree-node-drag-bottom:after, .v-tree .v-tree-node-caption-drag-center:after {
+       display: block;
+       content: "";
+       position: absolute;
+       width: 6px;
+       height: 6px;
+       margin-top: -4px;
+       background: transparent url(../base/common/img/drag-slot-dot.png);
+}
+
+.v-tree .v-tree-node-drag-bottom:after {
+       margin-top: -2px;
+}
+
+.v-tree .v-tree-node-caption-drag-center:after {
+       margin-left: 14px;
+}
+
+.v-ff .v-tree .v-tree-node-caption-drag-center:after, .v-ie .v-tree .v-tree-node-caption-drag-center:after {
+       margin-top: -2px;
+}
+
+.v-tree .v-tree-node-drag-top {
+       background-position: 5px -38px;
+}
+
+.v-tree .v-tree-node-drag-top.v-tree-node-expanded {
+       background-position: -5px -11px;
+}
+
+.v-tree .v-tree-node-caption-drag-center div {
+       border: 2px solid #1d9dff;
+       -moz-border-radius: 4px;
+       -webkit-border-radius: 4px;
+       border-radius: 4px;
+       margin: -2px 2px -2px -2px;
+       background-color: #bcdcff;
+}
+
+.v-ie6 .v-tree .v-tree-node-caption-drag-center div {
+       margin: -2px;
+}
+
+.v-tree .v-tree-node-caption-drag-center div {
+       background-color: rgba(169, 209, 255, 0.6);
+}
+
+.v-tree .v-tree-node-caption-drag-center div, .v-tree .v-tree-node-drag-top, .v-tree .v-tree-node-drag-bottom {
+       border-color: rgba(0, 109, 232, 0.6);
+}
+
+.v-tree-connectors .v-tree-node-caption {
+       padding-top: 1px;
+}
+
+.v-tree-connectors .v-tree-node {
+       background: transparent url(../base/tree/img/connector-expand.png) no-repeat 2px -52px;
+}
+
+.v-tree-connectors .v-tree-node-expanded {
+       background: transparent url(../base/tree/img/connector-collapse.png) no-repeat 2px -52px;
+}
+
+.v-tree-connectors .v-tree-node-last {
+       background: transparent url(../base/tree/img/connector-expand-last.png) no-repeat 2px -52px;
+}
+
+.v-tree-connectors .v-tree-node-expanded.v-tree-node-last {
+       background: transparent url(../base/tree/img/connector-collapse-last.png) no-repeat 2px -52px;
+}
+
+.v-tree-connectors .v-tree-node-leaf {
+       background: transparent url(../base/tree/img/connector-leaf.png) repeat-y 2px 50%;
+}
+
+.v-tree-connectors .v-tree-node-leaf-last {
+       background: transparent url(../base/tree/img/connector-leaf-last.png) repeat-y 2px 50%;
+}
+
+.v-tree-connectors .v-tree-node-children {
+       background: transparent url(../base/tree/img/connector.png) repeat-y 2px 0;
+}
+
+.v-tree-connectors .v-tree-node-children-last {
+       background: transparent;
+}
+
+.v-tree-connectors .v-tree-node-drag-top, .v-tree-connectors .v-tree-node-expanded.v-tree-node-drag-top {
+       background-position: 2px -53px;
+}
+
+.v-tree-connectors .v-tree-node-drag-top.v-tree-node-leaf {
+       background-position: 2px 50%;
+}
+
+.v-ie6 .v-tree-connectors .v-tree-node {
+       background: transparent url(../base/tree/img/connector-expand-ie6.png) no-repeat 2px -52px;
+}
+
+.v-ie6 .v-tree-connectors .v-tree-node-expanded {
+       background: transparent url(../base/tree/img/connector-collapse-ie6.png) no-repeat 2px -52px;
+}
+
+.v-ie6 .v-tree-connectors .v-tree-node-last {
+       background: transparent url(../base/tree/img/connector-expand-last-ie6.png) no-repeat 2px -52px;
+}
+
+.v-ie6 .v-tree-connectors .v-tree-node-last.v-tree-node-expanded {
+       background: transparent url(../base/tree/img/connector-collapse-last-ie6.png) no-repeat 2px -52px;
+}
+
+.v-treetable-treespacer {
+       display: inline-block;
+       background: transparent;
+       height: 10px;
+       width: 18px;
+}
+
+.v-ie7 .v-treetable-treespacer {
+       height: 100%;
+}
+
+.v-treetable-node-closed {
+       background: url(../base/treetable/img/arrow-right.png) right center no-repeat;
+}
+
+.v-ie6 .v-treetable-node-closed {
+       background-image: url(../base/treetable/img/arrow-right.gif);
+}
+
+.v-treetable-node-open {
+       background: url(../base/treetable/img/arrow-down.png) right center no-repeat;
+}
+
+.v-ie6 .v-treetable-node-open {
+       background-image: url(../base/treetable/img/arrow-down.gif);
+}
+
+.v-treetable .v-checkbox {
+       display: inline-block;
+       padding-bottom: 4px;
+}
+
+.v-treetable .v-table-row .v-table-cell-content, .v-treetable .v-table-row-odd .v-table-cell-content {
+       position: relative;
+       z-index: 10;
+}
+
+.v-treetable .v-table-body .v-table-table .v-table-row-animating {
+       zoom: 1;
+       z-index: 1;
+}
+
+.v-treetable .v-table-body .v-table-table .v-table-row-animating, .v-treetable .v-table-body .v-table-table .v-table-row-animating .v-table-cell-content {
+       background: transparent;
+}
+
+.v-treetable-animation-clone {
+       border-spacing: 0;
+       zoom: 1;
+}
+
+div.v-treetable-animation-clone-wrapper {
+       position: absolute;
+       z-index: 2;
+       background-color: #ffffff;
+}
+
+div.v-treetable-animation-clone-wrapper table.v-treetable-animation-clone {
+       background-color: #ffffff;
+}
+
+div table.v-treetable-animation-clone tr.v-table-row, div table.v-treetable-animation-clone tr.v-table-row-odd, div table.v-treetable-animation-clone tr.v-table-row td.v-table-cell-content, div table.v-treetable-animation-clone tr.v-table-row-odd td.v-table-cell-content {
+       visibility: visible;
+}
+
+.v-upload {
+       white-space: nowrap;
+}
+
+.v-ie6 .v-upload, .v-ie7 .v-upload {
+       margin: 0;
+}
+
+.v-upload-immediate {
+       position: relative;
+       margin: 0;
+       overflow: hidden;
+}
+
+.v-ff .v-upload-immediate, .v-op .v-upload-immediate {
+       display: inline-block;
+}
+
+.v-upload-immediate input {
+       opacity: 0;
+       filter: alpha(opacity = 0);
+       z-index: 2;
+       position: absolute;
+       right: 0;
+       height: 21px;
+       text-align: right;
+       border: none;
+       background: transparent;
+}
+
+.v-upload-immediate button {
+       position: relative;
+       left: 0;
+       top: 0;
+       width: 100%;
+       text-align: left;
+}
+
+.v-window {
+       background: #ffffff;
+}
+
+.v-window-outerheader {
+       padding: 0.3em 1em;
+       height: 1em;
+}
+
+.v-window-outerheader, .v-window-draggingCurtain {
+       cursor: move;
+}
+
+.v-window-header {
+       font-weight: bold;
+}
+
+div.v-window-header {
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       -ms-text-overflow: ellipsis;
+       overflow: hidden;
+       padding: 0;
+}
+
+.v-ie6 .v-window-header {
+       width: 100%;
+}
+
+.v-window-header .v-icon {
+       vertical-align: middle;
+}
+
+.v-window-contents, x:-moz-any-link {
+       overflow: hidden;
+}
+
+.v-window-contents, x:-moz-any-link, x:default {
+       overflow: visible;
+}
+
+.v-window-contents > div {
+       outline: none;
+}
+
+.v-window-footer {
+       overflow: hidden;
+       zoom: 1;
+       height: 10px;
+       position: relative;
+       cursor: move;
+}
+
+.v-window-resizebox {
+       width: 10px;
+       height: 10px;
+       background: #dddddd;
+       overflow: hidden;
+       position: absolute;
+       right: 0;
+}
+
+.v-window-resizebox, .v-window-resizingCurtain {
+       cursor: se-resize;
+}
+
+.v-window div.v-window-footer-noresize {
+       height: 0;
+}
+
+.v-window-resizebox-disabled {
+       cursor: default;
+       display: none;
+}
+
+.v-window-closebox {
+       position: absolute;
+       top: 0;
+       right: 0;
+       width: 1em;
+       height: 1em;
+       background: red;
+       cursor: pointer;
+       overflow: hidden;
+}
+
+.v-window-modalitycurtain {
+       top: 0;
+       left: 0;
+       background: #999999;
+       opacity: 0.5;
+       position: fixed;
+       width: 100%;
+       height: 100%;
+       filter: alpha(opacity = 50);
+}
+
+.v-ie6 .v-window-modalitycurtain {
+       position: absolute;
+       top: expression(document.documentElement.scrollTop +   "px");
+}
+
+.v-ie6 .v-window {
+       width: 0;
+}
+
+.v-shadow-window {
+       position: absolute;
+}
+
+.v-shadow-window .top-left {
+       position: absolute;
+       overflow: hidden;
+       top: -10px;
+       left: -15px;
+       width: 28px;
+       height: 28px;
+       background: transparent url(../base/window/img/shadow/top-left.png);
+}
+
+.v-shadow-window .top {
+       position: absolute;
+       overflow: hidden;
+       top: -10px;
+       left: 13px;
+       height: 28px;
+       right: 13px;
+       background: transparent url(../base/window/img/shadow/top.png);
+}
+
+.v-shadow-window .top-right {
+       position: absolute;
+       overflow: hidden;
+       top: -10px;
+       right: -15px;
+       width: 28px;
+       height: 28px;
+       background: transparent url(../base/window/img/shadow/top-right.png);
+}
+
+.v-shadow-window .left {
+       position: absolute;
+       overflow: hidden;
+       top: 18px;
+       left: -15px;
+       width: 28px;
+       bottom: 10px;
+       background: transparent url(../base/window/img/shadow/left.png);
+}
+
+.v-shadow-window .center {
+       position: absolute;
+       overflow: hidden;
+       top: 18px;
+       left: 13px;
+       bottom: 10px;
+       right: 13px;
+       background: transparent url(../base/window/img/shadow/center.png);
+}
+
+.v-shadow-window .right {
+       position: absolute;
+       overflow: hidden;
+       top: 18px;
+       right: -15px;
+       width: 28px;
+       bottom: 10px;
+       background: transparent url(../base/window/img/shadow/right.png);
+}
+
+.v-shadow-window .bottom-left {
+       position: absolute;
+       overflow: hidden;
+       bottom: -18px;
+       left: -15px;
+       width: 28px;
+       height: 28px;
+       background: transparent url(../base/window/img/shadow/bottom-left.png);
+}
+
+.v-shadow-window .bottom {
+       position: absolute;
+       overflow: hidden;
+       bottom: -18px;
+       left: 13px;
+       right: 13px;
+       height: 28px;
+       background: transparent url(../base/window/img/shadow/bottom.png);
+}
+
+.v-shadow-window .bottom-right {
+       position: absolute;
+       overflow: hidden;
+       bottom: -18px;
+       right: -15px;
+       width: 28px;
+       height: 28px;
+       background: transparent url(../base/window/img/shadow/bottom-right.png);
+}
+
+.v-ie6 .v-shadow-window * {
+       display: none;
+}
+
+.v-accordion {
+       border: 1px solid #bebebe;
+       border-radius: 2px;
+       -webkit-border-radius: 2px;
+       -moz-border-radius: 2px;
+       overflow: hidden;
+}
+
+.v-accordion-item {
+       background-color: #ffffff;
+}
+
+.v-accordion-item-caption {
+       height: 19px;
+       background: #e4e4e4 repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -0px;
+       font-size: 11px;
+       line-height: normal;
+       border-top: 1px solid #bebebe;
+       text-shadow: #ffffff 0 1px 0;
+}
+
+.v-accordion-item-first .v-accordion-item-caption {
+       border-top: none;
+}
+
+.v-accordion-item-caption .v-caption {
+       padding: 3px 0 5px 10px;
+}
+
+.v-ie .v-accordion-item-caption .v-caption {
+       padding: 2px 0 6px 10px;
+}
+
+.v-accordion-item-open .v-accordion-item-caption {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -19px;
+       border-bottom: 1px solid #bbbbbb;
+}
+
+.v-accordion-item-caption .v-icon {
+       margin-top: -1px;
+}
+
+.v-ie .v-accordion-item-caption .v-icon {
+       vertical-align: top;
+}
+
+.v-accordion-borderless {
+       border: none;
+       border-radius: 0;
+       -webkit-border-radius: 0;
+       -moz-border-radius: 0;
+}
+
+.v-button:focus {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -0px;
+       outline: none;
+}
+
+.v-button:focus .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -26px;
+       outline: none;
+}
+
+.v-button:active, .v-button.v-pressed {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -52px;
+       outline: none;
+}
+
+.v-button:active .v-button-wrap, .v-button.v-pressed .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -78px;
+       outline: none;
+}
+
+.v-button, .v-disabled.v-button {
+       height: 26px;
+       padding: 0 0 0 6px;
+       background-color: transparent;
+       background-repeat: no-repeat;
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -104px;
+       border: none;
+       cursor: default;
+}
+
+.v-button-wrap, .v-disabled.v-button .v-button-wrap {
+       display: block;
+       height: 22px;
+       padding: 4px 15px 0 9px;
+       background-color: transparent;
+       background-repeat: no-repeat;
+       background-position: right top;
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -130px;
+}
+
+.v-button-caption {
+       color: #222222;
+       text-shadow: #ffffff 0 1px 0;
+       font-weight: bold;
+       font-size: 11px;
+       line-height: 16px;
+}
+
+.black .v-button:focus {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -0px;
+}
+
+.black .v-button:focus .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -26px;
+}
+
+.black .v-button:active, .black .v-button.v-pressed {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -52px;
+}
+
+.black .v-button:active .v-button-wrap, .black .v-button.v-pressed .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -78px;
+}
+
+.black .v-button, .black .v-disabled.v-button {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -104px;
+}
+
+.black .v-button-wrap, .black .v-disabled.v-button .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -130px;
+}
+
+.black .v-button-caption {
+       color: #c9ccce;
+       text-shadow: #121314 0 -1px 0;
+}
+
+.v-button-primary:focus {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -156px;
+}
+
+.v-button-primary:focus .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -182px;
+}
+
+.v-button-primary:active, .v-button-primary.v-pressed {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -208px;
+}
+
+.v-button-primary:active .v-button-wrap, .v-button-primary.v-pressed .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -234px;
+}
+
+.v-button-primary, .v-disabled.v-button-primary {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -260px;
+}
+
+.v-button-primary .v-button-wrap, .v-disabled.v-button-primary .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -286px;
+}
+
+.black .v-button-primary:focus {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -156px;
+}
+
+.black .v-button-primary:focus .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -182px;
+       color: #eaf4fb;
+}
+
+.black .v-button-primary:active, .black .v-button-primary.v-pressed {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -208px;
+}
+
+.black .v-button-primary:active .v-button-wrap, .black .v-button-primary.v-pressed .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -234px;
+}
+
+.black .v-button-primary, .black .v-disabled.v-button-primary {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -260px;
+}
+
+.black .v-button-primary .v-button-wrap, .black .v-disabled.v-button-primary .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -286px;
+}
+
+.v-button-small:focus {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -312px;
+}
+
+.v-button-small:focus .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -332px;
+}
+
+.v-button-small:active, .v-button-small.v-pressed {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -352px;
+}
+
+.v-button-small:active .v-button-wrap, .v-button-small.v-pressed .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -372px;
+}
+
+.v-button-small, .v-disabled.v-button-small {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: left -392px;
+       height: 20px;
+}
+
+.v-button-small .v-button-wrap, .v-disabled.v-button-small .v-button-wrap {
+       background-image: url(button/img/button-sprites.png);
+       -background-image: url(button/img/button-sprites-ie6.png);
+       background-position: right -412px;
+       height: 19px;
+       padding: 1px 14px 0 8px;
+}
+
+.v-button-small .v-button-caption {
+       font-weight: normal;
+}
+
+.black .v-button-small:focus {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -312px;
+}
+
+.black .v-button-small:focus .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -332px;
+}
+
+.black .v-button-small:active, .black .v-button-small.v-pressed {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -352px;
+}
+
+.black .v-button-small:active .v-button-wrap, .black .v-button-small.v-pressed .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -372px;
+}
+
+.black .v-button-small, .black .v-disabled.v-button-small {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: left -392px;
+}
+
+.black .v-button-small .v-button-wrap, .black .v-disabled.v-button-small .v-button-wrap {
+       background-image: url(button/img/black-button-sprites.png);
+       -background-image: url(button/img/black-button-sprites-ie6.png);
+       background-position: right -412px;
+}
+
+.v-button.v-button-link, .v-button.v-button-link:focus, .v-button.v-button-link:active, .v-button-link.v-pressed, .v-disabled.v-button.v-button-link, .v-button.v-button-link .v-button-wrap, .v-button.v-button-link:focus .v-button-wrap, .v-button.v-button-link:active .v-button-wrap, .v-button-link.v-pressed .v-button-wrap, .v-disabled.v-button.v-button-link .v-button-wrap {
+       background: transparent;
+       height: auto;
+       padding: 0;
+       cursor: pointer;
+       line-height: inherit;
+}
+
+.v-button.v-button-link.v-disabled, .v-button.v-button-link.v-disabled .v-button-wrap {
+       cursor: default;
+}
+
+.v-button-link .v-button-caption, .v-nativebutton-link .v-nativebutton-caption {
+       line-height: inherit;
+       font-weight: normal;
+       color: #1b699f;
+       font-size: 12px;
+       text-shadow: none;
+}
+
+.v-button-link:focus .v-button-caption, .v-nativebutton-link:focus .v-nativebutton-caption {
+       outline: 1px dotted #1b699f;
+}
+
+.v-ff2 .v-button .v-button-caption {
+       display: -moz-inline-box;
+       padding-top: 6px;
+       height: 20px;
+}
+
+.v-ie6 .v-nativebutton-link, .v-ie7 .v-nativebutton-link, .v-ie8 .v-nativebutton-link {
+       padding: 0;
+       text-align: left;
+}
+
+.v-ie6 .v-button {
+       border: 1px solid #b3b3b3;
+       border-bottom-color: #9a9a9a;
+       background: #d8d8d8 url(button/img/right.png) no-repeat 0 -1px;
+       padding: 0 15px;
+       height: 23px;
+}
+
+.v-ie6 .v-button .v-button-wrap {
+       background: transparent;
+       height: 20px;
+       padding: 3px 0 0;
+       display: inline;
+       zoom: 1;
+}
+
+.v-ie6 .v-button-primary {
+       background-image: url(button/img/primary-right.png);
+}
+
+.v-ie6 .v-button-small {
+       background-image: url(button/img/small-right.png);
+       height: 17px;
+}
+
+.v-ie6 .v-button-small .v-button-wrap {
+       height: 17px;
+       padding: 0;
+}
+
+.v-ie6 .v-button.v-pressed {
+       background: transparent url(button/img/right-pressed.png) no-repeat 0 -1px;
+}
+
+.v-ie6 .blue .v-button {
+       border-color: #84949c;
+       border-top-color: #83939b;
+       border-bottom-color: #888d91;
+}
+
+.v-ie6 .black .v-button {
+       border: 1px solid #0d0e0f;
+       background: #202224 url(button/img/black/right.png) no-repeat 0 -1px;
+       color: #c9ccce;
+}
+
+.v-ie6 .black .v-button-primary {
+       background-image: url(button/img/black/primary-right.png);
+}
+
+.v-ie6 .black .v-button-small {
+       background-image: url(button/img/black/small-right.png);
+}
+
+.v-ie6 .black .v-button.v-pressed {
+       background-image: url(button/img/black/right-pressed.png);
+}
+
+.v-ie6 .v-button-link, .v-ie6 .black .v-button-link {
+       background: transparent;
+       border: none;
+       height: auto;
+       line-height: normal;
+       padding: 0;
+}
+
+.v-ie6 .v-button-link .v-button-wrap, .v-ie6 .black .v-button-link .v-button-wrap {
+       padding: 0;
+       height: auto;
+}
+
+.v-generated-body, .v-app {
+       background: #f5f5f5;
+}
+
+.v-app, .v-window, .v-popupview-popup, .v-tooltip, .v-app input, .v-app select, .v-app button, .v-app textarea, .v-window input, .v-window select, .v-window button, .v-window textarea, .v-popupview-popup input, .v-popupview-popup select, .v-popupview-popup button, .v-popupview-popup textarea, .v-filterselect-suggestpopup, .v-datefield-popup, .v-contextmenu, .v-Notification, .v-menubar-submenu, .v-drag-element, .v-table-header-drag {
+       font-family: Arial, Helvetica, Tahoma, Verdana, sans-serif;
+       font-size: 12px;
+       line-height: normal;
+       color: #222222;
+}
+
+.v-app .black, .v-window-black, .v-window .black, .v-popupview-popup .black {
+       color: #c9ccce;
+       text-shadow: #000000 0 0 1px;
+}
+
+.v-errorindicator {
+       width: 13px;
+       height: 16px;
+       background: transparent url(common/icons/error.png) no-repeat 50%;
+}
+
+.v-ie6 .v-errorindicator {
+       background-image: url(common/icons/error-ie6.png);
+}
+
+.v-tooltip {
+       background-color: #fffcdd;
+       border: 1px solid #b8b295;
+       font-size: 11px;
+       color: #222222;
+}
+
+.v-tooltip-text {
+       padding: 2px 4px;
+}
+
+.v-tooltip .v-errormessage {
+       padding: 3px 4px;
+       background: #ffecc6;
+       color: #b74100;
+       border: none;
+       border-top: 1px solid #fff3dc;
+}
+
+.v-tooltip .v-errormessage h2 {
+       font-size: 16px;
+       font-weight: normal;
+       color: #ab3101;
+       margin: 2px 0 8px 0;
+}
+
+.v-tooltip .v-errormessage h3 {
+       font-size: 13px;
+       font-weight: bold;
+       margin: 1px 0 4px 0;
+}
+
+.v-contextmenu {
+       background: #f8f8f9;
+       border: none;
+       border-radius: 3px;
+       -webkit-border-radius: 3px;
+       -moz-border-radius: 3px;
+       -o-border-radius: 3px;
+       overflow: hidden;
+       padding: 4px 0;
+}
+
+.v-contextmenu .gwt-MenuItem {
+       padding: 1px 12px 1px 8px;
+       height: 16px;
+       user-select: none;
+       -moz-user-select: none;
+       -webkit-user-select: none;
+       cursor: default;
+}
+
+.v-contextmenu .gwt-MenuItem .v-icon {
+       margin-right: 3px;
+}
+
+.v-contextmenu .gwt-MenuItem-selected {
+       background: transparent repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -38px;
+       color: #ffffff;
+       text-shadow: #3b5a7a 0 1px 0;
+}
+
+.v-ie .v-contextmenu .gwt-MenuItem-selected {
+       background-image: url(common/img/sel-bg.png);
+       background-position: left top;
+}
+
+.v-contextmenu .gwt-MenuItem-selected div {
+       background: transparent;
+       cursor: default;
+}
+
+.portlet .v-app {
+       background: transparent;
+}
+
+.portlet .v-app .v-radiobutton input, .portlet .v-window .v-radiobutton input, .portlet .v-popupview-popup .v-radiobutton input, .portlet .v-app .v-checkbox input, .portlet .v-window .v-checkbox input, .portlet .v-popupview-popup .v-checkbox input {
+       margin-right: 3px;
+       background: transparent;
+}
+
+input.v-textfield-readonly:focus {
+       background-color: transparent;
+}
+
+.v-datefield-calendarpanel {
+       border-collapse: collapse;
+       margin: 0;
+       padding: 0;
+       height: auto !important;
+}
+
+.v-datefield-year .v-datefield-calendarpanel-prevmonth, .v-datefield-year .v-datefield-calendarpanel-nextmonth {
+       display: none;
+}
+
+.v-datefield-calendarpanel td {
+       vertical-align: top;
+}
+
+td.v-datefield-calendarpanel-month {
+       height: 23px;
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -58px;
+}
+
+span.v-datefield-calendarpanel-month {
+       display: block;
+       text-align: center;
+       height: 16px;
+       padding: 3px 10px 0 10px;
+       border-left: 1px solid #efefef;
+       border-right: 1px solid #d8d8d8;
+       text-shadow: #ffffff 0 1px 0;
+       overflow: hidden;
+       margin-top: 1px;
+}
+
+.v-datefield-year .v-datefield-calendarpanel-month {
+       width: 35px;
+}
+
+.v-datefield-month .v-datefield-calendarpanel-month, .v-datefield-day .v-datefield-calendarpanel-month, .v-datefield-full .v-datefield-calendarpanel-month {
+       width: 124px;
+}
+
+.v-datefield-month, .v-datefield-day, .v-datefield-full {
+       min-width: 240px;
+}
+
+.v-ff2 .v-datefield-month, .v-ff2 .v-datefield-day, .v-ff2 .v-datefield-full {
+       min-width: 254px;
+}
+
+.v-datefield-popupcalendar, .v-ff2 .v-datefield-popupcalendar {
+       min-width: 0;
+}
+
+.v-datefield-year .v-datefield-calendarpanel {
+       width: 100px;
+}
+
+td.v-datefield-calendarpanel-prevyear {
+       text-align: right;
+}
+
+td.v-datefield-calendarpanel-nextyear {
+       text-align: left;
+}
+
+.v-datefield-calendarpanel-prevyear button, .v-datefield-calendarpanel-nextyear button, .v-datefield-calendarpanel-prevmonth button, .v-datefield-calendarpanel-nextmonth button {
+       width: 24px;
+       height: 23px;
+       border: none;
+       background: transparent;
+       background-repeat: no-repeat;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -81px;
+       overflow: hidden;
+       padding: 0;
+       text-indent: -9999px;
+       outline: none;
+       -webkit-border-radius: 0;
+       -moz-border-radius: 0;
+       border-radius: 0;
+}
+
+.v-ie .v-datefield-calendarpanel-prevyear button, .v-ie .v-datefield-calendarpanel-nextyear button, .v-ie .v-datefield-calendarpanel-prevmonth button, .v-ie .v-datefield-calendarpanel-nextmonth button {
+       text-indent: 0;
+       font-size: 1px;
+}
+
+.v-datefield-calendarpanel-nextyear button {
+       background-position: left top;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -104px;
+}
+
+.v-datefield-calendarpanel-prevyear button:active, .v-ie .v-datefield-calendarpanel-prevyear button.v-pressed {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -127px;
+}
+
+.v-datefield-calendarpanel-nextyear button:active, .v-ie .v-datefield-calendarpanel-nextyear button.v-pressed {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -150px;
+}
+
+.v-datefield-calendarpanel-prevmonth, .v-datefield-calendarpanel-nextmonth {
+       width: 24px;
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -173px;
+}
+
+.v-datefield-calendarpanel-prevmonth button, .v-datefield-calendarpanel-nextmonth button {
+       width: 100%;
+       height: 21px;
+       border-left: 1px solid #efefef;
+       border-right: 1px solid #d8d8d8;
+       background: transparent;
+       background-position: center top;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -196px;
+       min-width: 24px;
+       margin-top: 1px;
+}
+
+.v-ie .v-datefield-calendarpanel-prevmonth button, .v-ie .v-datefield-calendarpanel-nextmonth button {
+       border: none;
+}
+
+.v-ie6 .v-datefield-calendarpanel-prevmonth button, .v-ie6 .v-datefield-calendarpanel-nextmonth button {
+       width: 24px;
+}
+
+.v-datefield-calendarpanel-nextmonth button {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -217px;
+}
+
+.v-datefield-calendarpanel-prevmonth button:active, .v-ie .v-datefield-calendarpanel-prevmonth button.v-pressed {
+       background-position: center top;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -238px;
+}
+
+.v-datefield-calendarpanel-nextmonth button:active, .v-ie .v-datefield-calendarpanel-nextmonth button.v-pressed {
+       background-position: center top;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -259px;
+}
+
+.v-datefield-calendarpanel-body, .v-datefield-calendarpanel-time {
+       text-align: center;
+       vertical-align: top;
+}
+
+.v-datefield-calendarpanel-body table {
+       border-collapse: collapse;
+       margin: 0;
+       padding: 0;
+       width: 220px;
+       margin: 0 auto;
+}
+
+.v-datefield-calendarpanel-weekdays td {
+       width: 14.2%;
+       overflow: hidden;
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -280px;
+       font-size: 10px;
+       line-height: normal;
+       text-transform: uppercase;
+       color: #eaeff1;
+       text-shadow: #3b4651 0 -1px 0;
+       vertical-align: top;
+}
+
+.v-datefield-calendarpanel-weeknumbers td {
+       width: 12.4%;
+}
+
+.v-datefield-calendarpanel-weekdays strong {
+       display: block;
+       text-align: right;
+       padding: 1px 5px 0 0;
+       height: 14px;
+       border-top: 1px solid #596775;
+}
+
+.v-datefield-calendarpanel-weekdays .v-first {
+       background-repeat: no-repeat;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -299px;
+}
+
+.v-datefield-calendarpanel-weekdays .v-last {
+       background-repeat: no-repeat;
+       background-position: right top;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -318px;
+}
+
+.v-ie .v-datefield-calendarpanel-weekdays td {
+       background: url(datefield/img/weekday-bg.png) repeat-x;
+       background-position: left top;
+}
+
+.v-ie .v-datefield-calendarpanel .v-first {
+       background: url(datefield/img/weekday-first.png) no-repeat;
+}
+
+.v-ie .v-datefield-calendarpanel .v-last {
+       background: url(datefield/img/weekday-last.png) no-repeat right top;
+}
+
+.v-datefield-calendarpanel-body td {
+       text-align: right;
+       height: 19px;
+}
+
+.v-datefield-calendarpanel-day, .v-datefield-calendarpanel-weeknumber, .v-datefield-calendarpanel-day-today {
+       padding: 2px 5px 2px 0;
+       display: block;
+       margin: 1px 0 0 5px;
+}
+
+.v-datefield-calendarpanel-weeknumber {
+       margin: 0;
+       padding-top: 4px;
+       padding-bottom: 3px;
+}
+
+.v-datefield-calendarpanel-day-today {
+       color: #4095d1;
+       border: none;
+}
+
+.v-datefield-calendarpanel-day-selected {
+       background: #507ba3;
+       color: #ffffff;
+       text-shadow: #3b5b79 0 1px 0;
+       border-radius: 2px;
+       -webkit-border-radius: 2px;
+       -moz-border-radius: 2px;
+}
+
+.v-datefield-calendarpanel-time select {
+       padding: 0;
+       font-size: 11px;
+}
+
+.v-datefield-popup {
+       background: #f8f8f9;
+       padding: 8px 4px;
+       border-radius: 3px;
+       -webkit-border-radius: 3px;
+       -moz-border-radius: 3px;
+}
+
+.v-sa .v-datefield-popup, .v-ff3 .v-datefield-popup, .v-op .v-datefield-popup {
+       background: rgba(255, 255, 255, 0.95);
+}
+
+.v-datefield-year .v-datefield-textfield {
+       width: 4em;
+}
+
+.v-datefield-month .v-datefield-textfield {
+       width: 5em;
+}
+
+.v-datefield-day .v-datefield-textfield {
+       width: 5.5em;
+}
+
+.v-datefield-full .v-datefield-textfield {
+       width: 12em;
+}
+
+.v-datefield-popupcalendar input.v-datefield-textfield {
+       border-right-width: 0;
+       -moz-border-radius-topright: 0;
+       -moz-border-radius-bottomright: 0;
+       -webkit-border-top-right-radius: 0;
+       -webkit-border-bottom-right-radius: 0;
+       height: 14px;
+}
+
+.v-datefield.v-readonly input.v-datefield-textfield {
+       border-right-width: 1px;
+       border-radius: 3px;
+       -moz-border-radius: 3px;
+       -webkit-border-radius: 3px;
+}
+
+.v-datefield-prompt .v-datefield-textfield {
+       color: #999999;
+       font-style: normal;
+}
+
+.v-datefield-popupcalendar .v-datefield-button {
+       width: 24px;
+       height: 23px;
+       background: transparent;
+       border: none;
+       padding: 0;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -337px;
+       cursor: pointer;
+       -webkit-border-radius: 0;
+       -moz-border-radius: 0;
+       border-radius: 0;
+}
+
+.v-datefield-popupcalendar .v-datefield-button:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -360px;
+}
+
+.black .v-datefield-popupcalendar .v-datefield-button {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -0px;
+}
+
+.black .v-datefield-popupcalendar .v-datefield-button:active {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -23px;
+}
+
+.v-ie6 .v-datefield-popupcalendar .v-datefield-button {
+       margin-top: 1px;
+}
+
+.black td.v-datefield-calendarpanel-month {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -46px;
+       height: 21px;
+}
+
+.black span.v-datefield-calendarpanel-month {
+       border-left: 1px solid #333638;
+       border-right: 1px solid #232527;
+       color: #c9ccce;
+       text-shadow: #000000 0 -1px 0;
+       padding: 4px 10px 1px 10px;
+       margin-top: 0;
+}
+
+.black .v-datefield-calendarpanel-prevyear button, .black .v-datefield-calendarpanel-nextyear button, .black .v-datefield-calendarpanel-prevmonth button, .black .v-datefield-calendarpanel-nextmonth button {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -67px;
+       height: 21px;
+}
+
+.black .v-datefield-calendarpanel-nextyear button {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -88px;
+}
+
+.black .v-datefield-calendarpanel-prevyear button:active, .v-ie .black .v-datefield-calendarpanel-prevyear button.v-pressed {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -109px;
+}
+
+.black .v-datefield-calendarpanel-nextyear button:active, .v-ie .black .v-datefield-calendarpanel-nextyear button.v-pressed {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -130px;
+}
+
+.black .v-datefield-calendarpanel-prevmonth, .black .v-datefield-calendarpanel-nextmonth {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -151px;
+}
+
+.black .v-datefield-calendarpanel-prevmonth button, .black .v-datefield-calendarpanel-nextmonth button {
+       border-left: 1px solid #333638;
+       border-right: 1px solid #232527;
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: center -172px;
+       margin-top: 0;
+}
+
+.black .v-datefield-calendarpanel-nextmonth button {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: center -193px;
+}
+
+.black .v-datefield-calendarpanel-prevmonth button:active, .v-ie .black .v-datefield-calendarpanel-prevmonth button.v-pressed {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: center -214px;
+}
+
+.black .v-datefield-calendarpanel-nextmonth button:active, .v-ie .black .v-datefield-calendarpanel-nextmonth button.v-pressed {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: center -235px;
+}
+
+.v-ie .black .v-datefield-calendarpanel-prevmonth button, .v-ie .black .v-datefield-calendarpanel-nextmonth button {
+       border: none;
+}
+
+.black .v-datefield-calendarpanel-weekdays td {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -256px;
+       color: #0a0b0b;
+       text-shadow: #5a5c5e 0 1px 0;
+}
+
+.black .v-datefield-calendarpanel-weekdays strong {
+       border-top-color: #1b1c1d;
+}
+
+.black .v-datefield-calendarpanel .v-first {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -275px;
+}
+
+.black .v-datefield-calendarpanel .v-last {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: right -294px;
+}
+
+.black .v-datefield-prompt .v-datefield-textfield {
+       color: #5f6366;
+}
+
+.v-formlayout-errorcell {
+       width: 13px;
+}
+
+.v-formlayout-cell .v-errorindicator {
+       width: 13px;
+       height: 16px;
+       background: transparent url(common/icons/error.png) no-repeat 50%;
+}
+
+.v-ie6 .v-formlayout-cell .v-errorindicator {
+       background-image: url(common/icons/error-ie6.png);
+}
+
+.v-formlayout-captioncell {
+       text-align: right;
+       white-space: nowrap;
+}
+
+.v-formlayout-spacing .v-formlayout-row .v-formlayout-captioncell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-contentcell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-errorcell {
+       padding-top: 8px;
+}
+
+.v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-captioncell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-contentcell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-errorcell {
+       padding-top: 15px;
+}
+
+.v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-captioncell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-contentcell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-errorcell {
+       padding-bottom: 15px;
+}
+
+.v-formlayout-margin-left .v-formlayout-captioncell {
+       padding-left: 18px;
+}
+
+.v-formlayout-margin-right .v-formlayout-contentcell {
+       padding-right: 18px;
+}
+
+.v-form-errormessage {
+       background: transparent url(common/icons/error.png) no-repeat 3px 2px;
+       padding-left: 20px;
+       margin-bottom: 5px;
+       margin-top: 5px;
+       min-height: 20px;
+}
+
+.v-ie6 .v-form-errormessage {
+       height: 20px;
+       background-image: url(common/icons/error-ie6.png);
+}
+
+.v-form fieldset {
+       border: none;
+       border-top: 1px solid #babfc0;
+}
+
+.v-form-nocaption fieldset {
+       border: none;
+}
+
+.v-form-nocaption legend {
+       display: none;
+}
+
+.v-form legend {
+       margin: 0 0 0 20px;
+       padding: 0 5px;
+       font-weight: bold;
+       color: #222222;
+}
+
+.black .v-form legend {
+       color: #e3e6e8;
+}
+
+.v-label {
+       line-height: 18px;
+}
+
+.white .black, .blue .black {
+       color: #c9ccce;
+       text-shadow: 0 0 1px #000000;
+}
+
+.black .v-label-h1, .black .v-label-h2, .black .v-caption-h1, .black .v-caption-h2, .white .black .v-label-h1, .white .black .v-label-h2, .white .black .v-caption-h1, .white .black .v-caption-h2, .blue .black .v-label-h1, .blue .black .v-label-h2, .blue .black .v-caption-h1, .blue .black .v-caption-h2 {
+       color: #ffffff;
+       text-shadow: rgba(0, 0, 0, 0.8) 0 2px 2px;
+}
+
+.black .v-label-light, .white .black .v-label-light {
+       color: #72787c;
+}
+
+.black .v-label hr, .white .black .v-label hr {
+       background: #0c0d0e;
+       color: #0c0d0e;
+       border-bottom-color: #292b2e;
+}
+
+.v-app .white, .v-window .white, .v-app .blue, .v-window .blue {
+       color: #222222;
+       text-shadow: none;
+}
+
+.blue .v-label-h1, .blue .v-label-h2, .blue .v-caption-h1, .blue .v-caption-h2, .white .blue .v-label-h1, .white .blue .v-label-h2, .white .blue .v-caption-h1, .white .blue .v-caption-h2 {
+       color: #ffffff;
+       text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px;
+}
+
+.blue .v-label-light, .white .blue .v-label-light {
+       color: #6e7c83;
+}
+
+.blue .v-label hr, .white .blue .v-label hr {
+       background: #a3bcc9;
+       color: #a3bcc9;
+       border-bottom-color: #cfe2eb;
+}
+
+.v-label-h1, .v-label-h2, .v-caption-h1, .v-caption-h2, .white .v-label-h1, .white .v-label-h2, .white .v-caption-h1, .white .v-caption-h2 {
+       font-family: Helvetica, Arial, "Lucida Grande", Geneva, Tahoma, Verdana, sans-serif;
+       font-size: 24px;
+       line-height: 30px;
+       font-weight: bold;
+       color: #44698b;
+       letter-spacing: -0.02em;
+       text-shadow: #ffffff 0 -1px 1px;
+}
+
+.v-label-h2, .v-caption-h2, .white .v-label-h2, .white .v-caption-h2 {
+       font-size: 16px;
+       line-height: 22px;
+}
+
+.v-label-light, .white .v-label-light {
+       font-size: 11px;
+       line-height: 13px;
+       color: #707070;
+}
+
+.v-label hr, .white .v-label hr {
+       height: 2px;
+       overflow: hidden;
+       background: #dcdcdc;
+       color: #dcdcdc;
+       border: none;
+       border-bottom: 1px solid #ffffff;
+}
+
+.v-sa .v-label hr, .v-ie8 .v-label hr {
+       height: 1px;
+}
+
+.v-table .v-label {
+       line-height: normal;
+}
+
+.v-orderedlayout-margin-top, .v-horizontallayout-margin-top, .v-verticallayout-margin-top {
+       padding-top: 18px;
+}
+
+.v-orderedlayout-margin-right, .v-horizontallayout-margin-right, .v-verticallayout-margin-right {
+       padding-right: 18px;
+}
+
+.v-orderedlayout-margin-bottom, .v-horizontallayout-margin-bottom, .v-verticallayout-margin-bottom {
+       padding-bottom: 18px;
+}
+
+.v-orderedlayout-margin-left, .v-horizontallayout-margin-left, .v-verticallayout-margin-left {
+       padding-left: 18px;
+}
+
+.v-orderedlayout-spacing-on, .v-horizontallayout-spacing-on, .v-verticallayout-spacing-on {
+       padding-top: 7px;
+       padding-left: 6px;
+}
+
+.v-gridlayout-margin-top {
+       padding-top: 24px;
+}
+
+.v-gridlayout-margin-bottom {
+       padding-bottom: 24px;
+}
+
+.v-gridlayout-margin-left {
+       padding-left: 24px;
+}
+
+.v-gridlayout-margin-right {
+       padding-right: 24px;
+}
+
+.v-gridlayout-spacing-on {
+       padding-left: 12px;
+       padding-top: 12px;
+}
+
+.v-verticallayout-blue, .v-horizontallayout-blue, .v-orderedlayout-blue, .v-gridlayout-blue, .v-csslayout-blue, .v-formlayout-blue, .v-splitpanel-vertical-blue, .v-splitpanel-horizontal-blue {
+       background-color: #bcd3de;
+}
+
+.v-panel-content > div.blue {
+       background-color: #bcd3de;
+}
+
+.v-verticallayout-white, .v-horizontallayout-white, .v-orderedlayout-white, .v-gridlayout-white, .v-csslayout-white, .v-formlayout-white, .v-splitpanel-vertical-white, .v-splitpanel-horizontal-white {
+       background-color: #ffffff;
+       color: #222222;
+}
+
+.v-panel-content > div.white {
+       background-color: #ffffff;
+       color: #222222;
+}
+
+.v-verticallayout-black, .v-horizontallayout-black, .v-orderedlayout-black, .v-gridlayout-black, .v-csslayout-black, .v-formlayout-black, .v-splitpanel-vertical-black, .v-splitpanel-horizontal-black {
+       background: #1e2022 url(layouts/img/black-bg.png) repeat-x;
+}
+
+.v-panel-content > div.black {
+       background: #1e2022 url(layouts/img/black-bg.png) repeat-x;
+}
+
+.v-link a:link span {
+       color: #1b699f;
+}
+
+.v-link a:visited span {
+       color: #5c7485;
+}
+
+.v-link a:hover span {
+       color: #2483c4;
+}
+
+.v-menubar {
+       height: 23px;
+       background: #323336 repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -383px;
+       color: #d1d3d6;
+       text-shadow: rgba(0, 0, 0, 0.9) 0 1px 0;
+       padding: 0 8px;
+}
+
+.v-menubar .v-menubar-menuitem {
+       padding: 3px 8px;
+       height: 17px;
+       line-height: 16px;
+}
+
+.v-menubar .v-menubar-menuitem:hover {
+       color: #ffffff;
+}
+
+.v-menubar-submenu {
+       background: #f8f8f9;
+       border: none;
+       border-radius: 3px;
+       -webkit-border-radius: 3px;
+       -moz-border-radius: 3px;
+       -o-border-radius: 3px;
+       overflow: hidden;
+       padding: 4px 0;
+}
+
+.v-menubar-submenu .v-menubar-menuitem {
+       padding: 1px 26px 1px 10px;
+       line-height: 16px;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-caption .v-icon {
+       vertical-align: middle;
+}
+
+.v-menubar .v-menubar-menuitem-selected, .v-menubar-submenu .v-menubar-menuitem-selected {
+       background: #4d749f repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -406px;
+       color: #ffffff;
+       text-shadow: 0 1px 0 #3b5a7a;
+}
+
+.v-menubar .v-menubar-menuitem-selected {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -426px;
+}
+
+.v-menubar-submenu .v-menubar-submenu-indicator {
+       background: transparent url(menubar/img/submenu-icon.png) no-repeat right 70%;
+       width: 26px;
+       height: 16px;
+       text-indent: -9999px;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-selected .v-menubar-submenu-indicator {
+       background-image: url(menubar/img/submenu-icon-hover.png);
+}
+
+.v-menubar-submenu-check-column .v-menubar-menuitem {
+       padding-left: 6px;
+}
+
+.v-menubar-submenu-check-column .v-menubar-menuitem-caption {
+       padding-left: 18px;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-checked .v-menubar-menuitem-caption {
+       background: transparent url(menubar/img/checked.png) no-repeat left;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-unchecked .v-menubar-menuitem-caption {
+       background: transparent url(menubar/img/unchecked.png) no-repeat left;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-selected-checked .v-menubar-menuitem-caption {
+       background: transparent url(menubar/img/checked-selected.png) no-repeat left;
+}
+
+.v-menubar-submenu .v-menubar-menuitem-selected-unchecked .v-menubar-menuitem-caption {
+       background: transparent url(menubar/img/unchecked-selected.png) no-repeat left;
+}
+
+.v-Notification {
+       color: #ffffff;
+       border-radius: 4px;
+       -moz-border-radius: 4px;
+       -webkit-border-radius: 4px;
+       font-size: 100%;
+       background: #c8ccd0;
+       font-weight: bold;
+}
+
+.v-ie9 .v-Notification H1 {
+       font-weight: bold;
+}
+
+.v-Notification p {
+       line-height: 1.3;
+}
+
+.v-Notification-warning {
+       background: #fdf3b5;
+       color: #ca9a61;
+       border: 3px solid #fee3af;
+}
+
+.v-Notification-error {
+       background: #b40000 url(notification/img/error-close.png) no-repeat right top;
+       border: 3px solid #ca3030;
+}
+
+.v-Notification-tray {
+       margin: 0 5px 5px 0;
+       background: #3b3c3e;
+       border: 2px solid #585b5c;
+       padding: 0.8em 0.9em;
+}
+
+.v-Notification-tray h1 {
+       font-size: 14px;
+       line-height: 18px;
+}
+
+.v-Notification-tray p {
+       font-size: 12px;
+       font-weight: normal;
+}
+
+.v-Notification-system {
+       background-color: #b40000;
+}
+
+.blue .v-panel-caption, .blue .v-panel-nocaption, .blue .v-panel-content {
+       border-color: #a8bcc5;
+}
+
+.v-panel-caption, .v-panel-nocaption, .white .v-panel-caption, .white .v-panel-nocaption {
+       border-bottom: 1px solid #e5e5e5;
+       line-height: 16px;
+}
+
+.v-webkit .v-panel-caption, .v-webkit .v-panel-nocaption, .v-gecko .v-panel-caption, .v-gecko .v-panel-nocaption, .v-ie9 .v-panel-caption, .v-ie9 .v-panel-nocaption {
+       border-bottom-color: rgba(0, 0, 0, 0.08);
+}
+
+.v-panel-caption {
+       padding-bottom: 2px;
+}
+
+.v-panel-content, .white .v-panel-content {
+       border: 1px solid #dcdcdc;
+       border-bottom: none;
+       border-top: none;
+}
+
+.v-webkit .v-panel-content, .v-gecko .v-panel-content, .v-ie9 .v-panel-content {
+       border-top-color: rgba(0, 0, 0, 0.07);
+}
+
+.v-panel-content > div {
+       background: #ffffff;
+       min-height: 100%;
+}
+
+.v-ie6 .v-panel-content {
+       background: #ffffff;
+}
+
+.blue .v-panel-deco {
+       border-color: #92a3ac;
+       background: #adc2cd;
+}
+
+.v-panel-deco, .white .v-panel-deco {
+       height: 1px;
+       border-top: 1px solid #bebebe;
+       background: #e2e2e2;
+       overflow: hidden;
+}
+
+.v-wekit .v-panel-deco, .v-gecko .v-panel-deco, .v-ie9 .v-panel-deco {
+       border-top-color: rgba(0, 0, 0, 0.1);
+       background: rgba(0, 0, 0, 0.08);
+}
+
+.v-panel-caption .v-errorindicator {
+       height: 16px;
+       width: 13px;
+       background: url(common/icons/error.png) no-repeat 50%;
+       display: inline;
+       display: inline-block;
+       vertical-align: middle;
+}
+
+.v-ie6 .v-panel-caption .v-errorindicator {
+       background-image: url(common/icons/error-ie6.png);
+}
+
+.v-panel-light .v-panel-caption-light, .v-panel-light .v-panel-nocaption-light {
+       border: none;
+}
+
+.v-panel-light .v-panel-content-light {
+       border: none;
+}
+
+.v-panel-content-light > div {
+       background: transparent;
+}
+
+.v-ie6 .v-panel-content-light {
+       background: transparent;
+}
+
+.v-panel-light .v-panel-deco-light {
+       height: 0;
+       border: none;
+}
+
+.v-popupview {
+       color: #1b699f;
+}
+
+.v-popupview:hover {
+       color: #2483c4;
+}
+
+.v-popupview-popup {
+       background: #ffffff;
+       padding: 3px;
+}
+
+.v-progressindicator-wrapper {
+       background: #dfe2e4 url(progressindicator/img/base.gif) repeat-x;
+       border: 1px solid #bfbfbf;
+}
+
+.v-disabled .v-progressindicator-wrapper {
+       background-image: url(progressindicator/img/disabled.gif);
+}
+
+.v-progressindicator-indicator {
+       background: #f7f9f9 url(progressindicator/img/progress.png);
+}
+
+.v-filterselect {
+       height: 24px;
+       background-repeat: no-repeat;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -450px;
+       padding-left: 2px;
+}
+
+.v-ie6 .v-filterselect {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -475px;
+}
+
+.v-app .v-filterselect-input, .v-window .v-filterselect-input, .v-popupview-popup .v-filterselect-input {
+       background: transparent repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -499px;
+       border: none;
+       height: 16px;
+}
+
+.v-app input.v-filterselect-input, .v-window input.v-filterselect-input, .v-popupview-popup input.v-filterselect-input {
+       padding: 4px 0 4px 2px;
+}
+
+.v-filterselect-prompt .v-filterselect-input {
+       font-style: normal;
+}
+
+.v-filterselect-input:focus {
+       outline: none;
+}
+
+.v-filterselect-focus {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -524px;
+}
+
+.v-ie6 .v-filterselect-focus {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -549px;
+}
+
+.v-filterselect-focus .v-filterselect-input {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -573px;
+}
+
+.v-filterselect-button {
+       overflow: hidden;
+       width: 25px;
+       height: 24px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -597px;
+       cursor: default;
+}
+
+.v-filterselect-button:hover {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -622px;
+}
+
+.v-filterselect-button:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -646px;
+}
+
+.v-filterselect-focus .v-filterselect-button {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -670px;
+}
+
+.v-filterselect-focus .v-filterselect-button:hover {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -694px;
+}
+
+.v-filterselect-focus .v-filterselect-button:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -718px;
+}
+
+.v-disabled .v-filterselect-button:hover, .v-readonly .v-filterselect-button:hover {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -742px;
+}
+
+.v-filterselect-suggestpopup {
+       background: #f8f8f9;
+       border: none;
+       border-radius: 3px;
+       -webkit-border-radius: 3px;
+       -moz-border-radius: 3px;
+       -o-border-radius: 3px;
+       overflow: hidden;
+}
+
+.v-filterselect-suggestmenu {
+       margin: 4px 0;
+}
+
+.v-filterselect-suggestmenu .gwt-MenuItem {
+       padding: 1px 8px;
+       height: 16px;
+       user-select: none;
+       -moz-user-select: none;
+       -webkit-user-select: none;
+       cursor: default;
+}
+
+.v-ff .v-filterselect-suggestmenu .gwt-MenuItem {
+       height: 18px;
+}
+
+.v-filterselect-suggestmenu .gwt-MenuItem .v-icon {
+       margin-right: 3px;
+}
+
+.v-filterselect-suggestmenu .gwt-MenuItem-selected {
+       background: transparent repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -766px;
+       color: #ffffff;
+       text-shadow: #3b5a7a 0 1px 0;
+}
+
+.v-filterselect-nextpage, .v-filterselect-nextpage-off, .v-filterselect-prevpage-off, .v-filterselect-prevpage {
+       height: 11px;
+       width: 100%;
+       background: transparent;
+       margin-bottom: -4px;
+}
+
+.v-filterselect-nextpage, .v-filterselect-nextpage-off {
+       margin: -4px 0 0;
+}
+
+.v-filterselect-nextpage:hover {
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -786px;
+}
+
+.v-filterselect-prevpage:hover {
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -797px;
+}
+
+.v-filterselect-nextpage:active {
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -808px;
+}
+
+.v-filterselect-prevpage:active {
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -819px;
+}
+
+.v-filterselect-nextpage-off span, .v-filterselect-prevpage-off span {
+       display: none;
+}
+
+.v-filterselect-nextpage span, .v-filterselect-prevpage span {
+       display: block;
+       height: 11px;
+       width: 100%;
+       overflow: hidden;
+       text-indent: -99999px;
+       background: transparent no-repeat center 3px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -830px;
+       user-select: none;
+       -moz-user-select: none;
+       -webkit-user-select: none;
+}
+
+.v-filterselect-prevpage span {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -841px;
+}
+
+.v-filterselect-nextpage:hover span {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -852px;
+}
+
+.v-filterselect-prevpage:hover span {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -863px;
+}
+
+.v-filterselect-status {
+       text-shadow: #e9eaeb 0 1px 0;
+       font-size: 11px;
+       line-height: normal;
+       width: 100%;
+       padding: 3px 0;
+       height: 11px;
+       overflow: hidden;
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -874px;
+       -moz-border-radius-bottomleft: 3px;
+       -moz-border-radius-bottomright: 3px;
+       -webkit-border-bottom-left-radius: 3px;
+       -webkit-border-bottom-right-radius: 3px;
+       user-select: none;
+       -moz-user-select: none;
+       -webkit-user-select: none;
+}
+
+.v-ie .v-filterselect-suggestmenu .gwt-MenuItem-selected {
+       background: transparent url(common/img/sel-bg.png) repeat-x;
+}
+
+.v-ie .v-filterselect-nextpage:hover {
+       background: transparent url(select/img/page-down-hover.png) repeat-x;
+}
+
+.v-ie .v-filterselect-prevpage:hover {
+       background: transparent url(select/img/page-up-hover.png) repeat-x;
+}
+
+.v-ie .v-filterselect-prevpage span {
+       background: transparent url(select/img/arrow-up.png) no-repeat center 3px;
+}
+
+.v-ie .v-filterselect-nextpage span {
+       background: transparent url(select/img/arrow-down.png) no-repeat center 3px;
+}
+
+.v-ie .v-filterselect-prevpage:hover span {
+       background: transparent url(select/img/arrow-up-hover.png) no-repeat center 3px;
+}
+
+.v-ie .v-filterselect-nextpage:hover span {
+       background: transparent url(select/img/arrow-down-hover.png) no-repeat center 3px;
+}
+
+.v-ie .v-filterselect-status {
+       background: transparent url(select/img/status-bg.png) repeat-x;
+}
+
+.v-filterselect .v-icon {
+       width: 16px;
+       position: relative;
+}
+
+.v-filterselect .v-icon + .v-filterselect-input {
+       margin-left: -16px;
+       padding-left: 18px;
+}
+
+.black .v-filterselect {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -310px;
+}
+
+.v-ie6 .black .v-filterselect {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -334px;
+}
+
+.v-app .black .v-filterselect-input, .v-window .black .v-filterselect-input, .v-window-black .v-filterselect-input, .v-popupview-popup .black .v-filterselect-input {
+       color: #c9ccce;
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -358px;
+}
+
+.black .v-filterselect-focus {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -382px;
+}
+
+.v-ie6 .black .v-filterselect-focus {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -406px;
+}
+
+.black .v-filterselect-focus .v-filterselect-input {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -430px;
+}
+
+.black .v-filterselect-button {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -454px;
+}
+
+.black .v-filterselect-button:hover {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -478px;
+}
+
+.black .v-filterselect-button:active {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -502px;
+}
+
+.black .v-filterselect-focus .v-filterselect-button {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -526px;
+}
+
+.black .v-filterselect-focus .v-filterselect-button:hover {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -550px;
+}
+
+.black .v-filterselect-focus .v-filterselect-button:active {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -574px;
+}
+
+.black .v-disabled .v-filterselect-button:hover, .black .v-readonly .v-filterselect-button:hover {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -598px;
+}
+
+.black .v-filterselect-prompt .v-filterselect-input {
+       color: #5f6366;
+}
+
+.black .v-select select, .black .v-select-twincol select {
+       border-color: #38393a;
+       border-top-color: #2c2d2e;
+       border-bottom-color: #3e3f3f;
+       background: #151717;
+       color: #c9ccce;
+}
+
+.v-ie6 .v-select-twincol-buttons .v-button {
+       padding-left: 12px;
+       padding-right: 12px;
+}
+
+.v-ie6 .v-filterselect.v-readonly, .v-ie6 .v-filterselect .v-filterselect-input-readonly {
+       background: transparent;
+}
+
+.v-slider {
+       border-top: 1px solid #9a9c9e;
+       border-bottom: 1px solid #bdbfc1;
+       margin: 4px 0;
+}
+
+.v-slider-base {
+       height: 1px;
+       background: #e0e2e2;
+       border-top: 1px solid #adb0b1;
+       border-left: 1px solid #a0a3a6;
+       border-right: 1px solid #a0a3a6;
+}
+
+.v-slider-handle {
+       background: transparent;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -891px;
+       width: 10px;
+       height: 10px;
+       margin-top: -5px;
+}
+
+.v-slider-handle-active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -901px;
+}
+
+.v-slider-vertical {
+       width: 2px;
+       margin: 0 5px;
+       border: none;
+       border-left: 1px solid #9a9c9e;
+       border-right: 1px solid #bdbfc1;
+}
+
+.v-slider-vertical .v-slider-base {
+       width: 2px;
+       border-left: 1px solid #adb0b1;
+       border-right: none;
+       border-top: 1px solid #adb0b1;
+       border-bottom: 1px solid #adb0b1;
+}
+
+.v-slider-vertical .v-slider-handle {
+       width: 10px;
+       height: 10px;
+       margin-left: -5px;
+}
+
+.v-splitpanel-hsplitter, .v-splitpanel-hsplitter-locked {
+       width: 7px;
+       background-repeat: repeat-y;
+       background-image: url(common/img/horizontal-sprites.png);
+       background-position: -0px top;
+}
+
+.v-splitpanel-hsplitter div {
+       width: 7px;
+       height: 100%;
+       background: transparent;
+       background-repeat: no-repeat;
+       background-position: 50%;
+       background-image: url(common/img/horizontal-sprites.png);
+       background-position: -7px center;
+}
+
+.v-splitpanel-vsplitter, .v-splitpanel-vsplitter-locked {
+       height: 7px;
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -911px;
+}
+
+.v-splitpanel-vsplitter div {
+       height: 7px;
+       background: transparent;
+       background-repeat: no-repeat;
+       background-position: 50%;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: center -918px;
+}
+
+.blue .v-splitpanel-hsplitter-small, .blue .v-splitpanel-hsplitter-small-locked {
+       background: #7c8a91;
+}
+
+.black .v-splitpanel-hsplitter-small, .black .v-splitpanel-hsplitter-small-locked {
+       background: #4e5253;
+}
+
+.v-splitpanel-hsplitter-small, .v-splitpanel-hsplitter-small-locked, .white .v-splitpanel-hsplitter-small, .white .v-splitpanel-hsplitter-small-locked {
+       width: 1px;
+       background: #949698;
+}
+
+.v-splitpanel-vsplitter-small, .v-splitpanel-vsplitter-small-locked, .white .v-splitpanel-vsplitter-small, .white .v-splitpanel-vsplitter-small-locked {
+       height: 1px;
+       background: #949698;
+}
+
+.v-splitpanel-hsplitter-small div {
+       width: 5px;
+       margin-left: -2px;
+       background: transparent;
+}
+
+.v-splitpanel-vsplitter-small div {
+       height: 5px;
+       margin-top: -2px;
+       background: transparent;
+}
+
+.blue .v-table-header-wrap {
+       border-color: #92a2aa;
+}
+
+.blue .v-table-body {
+       border-color: #92a2aa;
+       border-top-color: #c2c3c4;
+}
+
+.v-table-header-wrap, .white .v-table-header-wrap, .v-table-footer-wrap, .white .v-table-footer-wrap, .v-table-header-drag {
+       border-color: #c2c3c4;
+       background: transparent repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -925px;
+       height: 20px;
+       text-transform: uppercase;
+       font-size: 10px;
+       font-weight: bold;
+       color: #222222;
+       text-shadow: #f3f5f8 0 1px 0;
+       line-height: normal;
+}
+
+.v-ie6 .v-table, .v-ie6 .v-table-header-wrap, .v-ie6 .v-table-footer-wrap, .v-ie6 .v-table-column-selector {
+       position: relative;
+}
+
+.v-ie6 .v-table.v-disabled, .v-ie7 .v-table.v-disabled {
+       position: relative;
+}
+
+.v-table-footer-wrap, .white .v-table-footer-wrap {
+       text-transform: none;
+       font-size: 12px;
+       font-weight: normal;
+}
+
+.v-table-footer td, .white .v-table-footer td {
+       border-color: #c2c3c4;
+}
+
+.v-table-footer-container {
+       padding-right: 7px;
+}
+
+.v-table-header, .v-table-footer, .v-table-footer table {
+       height: 20px;
+}
+
+.v-table-caption-container, .v-table-header-drag {
+       padding-top: 4px;
+       padding-right: 4px;
+}
+
+.v-table-caption-container .v-icon, .v-table-header-drag .v-icon {
+       height: 16px;
+       margin: -4px 3px 0 0;
+       vertical-align: middle;
+}
+
+.v-ie .v-table-caption-container .v-icon, .v-ie .v-table-header-drag .v-icon {
+       margin-top: -3px;
+}
+
+.v-table-resizer {
+       height: 20px;
+       width: 2px;
+       background: transparent;
+       border-right: 1px solid #c2c3c4;
+}
+
+.v-table-sort-indicator {
+       background: transparent;
+       width: 0px;
+       height: 20px;
+}
+
+.v-table-header-cell-asc .v-table-sort-indicator {
+       background: transparent no-repeat right 7px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -945px;
+       width: 16px;
+}
+
+.v-table-header-cell-desc .v-table-sort-indicator {
+       background: transparent no-repeat right 7px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -965px;
+       width: 16px;
+}
+
+.v-table-body, .white .v-table-body {
+       border-color: #c2c3c4;
+       background: #ffffff;
+}
+
+.v-table-cell-content {
+       padding-top: 0;
+       border-right-color: #d3d4d5;
+       vertical-align: top;
+}
+
+.v-table-cell-wrapper {
+       padding-top: 3px;
+       padding-bottom: 3px;
+}
+
+.v-table-row-odd {
+       background: #eff0f1;
+}
+
+.v-table-generated-row {
+       background: #dcdee0;
+       text-transform: uppercase;
+       font-size: 10px;
+       font-weight: bold;
+       color: #222222;
+       text-shadow: #f3f5f8 0 1px 0;
+       line-height: normal;
+}
+
+.v-table-generated-row .v-table-cell-content {
+       padding-top: 1px;
+       padding-bottom: 2px;
+}
+
+.v-table-cell-content:last-child {
+       border-right-color: transparent;
+}
+
+.v-table .v-selected, .black .v-table .v-selected {
+       background: #4d749f url(common/img/sel-bg.png) repeat-x;
+       color: #ffffff;
+       text-shadow: #3b5a7a 0 1px 0;
+}
+
+.v-table .v-selected .v-table-cell-content {
+       border-right-color: #466c90;
+}
+
+.v-table-column-selector {
+       width: 16px;
+       height: 20px;
+       margin-top: -20px;
+       background: transparent no-repeat;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -985px;
+}
+
+.v-table-column-selector:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1005px;
+}
+
+.v-table-focus-slot-left {
+       border-left: 1px solid #222222;
+       margin-bottom: -20px;
+       width: auto;
+}
+
+.v-table-focus-slot-right {
+       border-right-color: #222222;
+       margin-right: 0;
+}
+
+.v-table-header-drag {
+       padding-left: 6px;
+       height: 16px;
+}
+
+.v-table-header-drag img {
+       height: 16px;
+       margin: -3px 3px 0 0;
+}
+
+.v-table-scrollposition {
+       width: auto;
+       background: transparent;
+       border: none;
+}
+
+.v-table-scrollposition span {
+       background: transparent repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1025px;
+       border: 1px solid #939494;
+       border: none;
+       border-radius-bottomleft: 4px;
+       border-radius-bottomright: 4px;
+       -moz-border-radius-bottomleft: 4px;
+       -moz-border-radius-bottomright: 4px;
+       -webkit-border-bottom-left-radius: 4px;
+       -webkit-border-bottom-right-radius: 4px;
+       height: 13px;
+       padding: 4px 30px;
+       white-space: nowrap;
+       color: #222222;
+       text-shadow: #ffffff 0 1px 0;
+       position: relative;
+       top: 1px;
+       -webkit-box-shadow: rgba(0, 0, 0, 0.5) 0 1px 2px;
+       -moz-box-shadow: rgba(0, 0, 0, 0.5) 0 1px 2px;
+}
+
+.v-table-borderless .v-table-scrollposition span {
+       top: 0;
+}
+
+.v-contextmenu .v-on, .v-contextmenu .v-off {
+       display: inline-block;
+       zoom: 1;
+       background: transparent no-repeat 0 4px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1047px;
+       padding-left: 12px;
+       padding-right: 4px;
+}
+
+.v-contextmenu .v-off {
+       background-image: none;
+       color: #666666;
+}
+
+.v-contextmenu .gwt-MenuItem-selected .v-on {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1061px;
+}
+
+.v-table-strong .v-table-header-wrap, .v-table-strong .v-table-header-drag {
+       border-color: #2b3033;
+       border-top-color: #2b3033;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1076px;
+       color: #e7e9ea;
+       text-shadow: #000000 0 -1px 0;
+}
+
+.v-table-strong .v-table-body {
+       border-top-color: #2b3033;
+}
+
+.v-table-strong .v-table-resizer {
+       border-right-color: #1c1f21;
+}
+
+.v-table-strong .v-table-header-cell-asc .v-table-sort-indicator {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -1096px;
+}
+
+.v-table-strong .v-table-header-cell-desc .v-table-sort-indicator {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -1115px;
+}
+
+.v-table-strong .v-table-column-selector {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1134px;
+}
+
+.v-table-strong .v-table-column-selector:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1154px;
+}
+
+.v-table-strong .v-table-focus-slot-left, .v-table-strong .v-table-focus-slot-right {
+       border-color: #9ca1a5;
+}
+
+.black .v-table-header-wrap, .black .v-table-header-drag {
+       border-color: #252729;
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -622px;
+       color: #e7eaee;
+       text-shadow: #000000 0 -1px 0;
+}
+
+.black .v-table-resizer {
+       border-right-color: #252729;
+}
+
+.black .v-table-header-cell-asc .v-table-sort-indicator {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: right -642px;
+}
+
+.black .v-table-header-cell-desc .v-table-sort-indicator {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: right -661px;
+}
+
+.black .v-table-column-selector {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -680px;
+}
+
+.black .v-table-column-selector:active {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -700px;
+}
+
+.black .v-table-focus-slot-left, .black .v-table-focus-slot-right {
+       border-color: #9ca1a5;
+}
+
+.black .v-table-body {
+       border-color: #252729;
+       background: transparent;
+}
+
+.black .v-table-cell-content {
+       border-right-color: #252729;
+       border-bottom: 1px solid #252729;
+}
+
+.black .v-table-cell-wrapper {
+       padding-bottom: 2px;
+}
+
+.black .v-table-row-odd {
+       background: transparent;
+}
+
+.black .v-table .v-selected .v-table-cell-content {
+       border-bottom: 1px solid #4d749f;
+}
+
+.v-table-borderless .v-table-header-wrap, .v-table-borderless .v-table-body {
+       border: none;
+}
+
+.v-tabsheet-tabitemcell, .v-tabsheet-spacertd {
+       height: 32px;
+}
+
+.v-tabsheet-tabitemcell {
+       background: no-repeat;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1174px;
+       padding-left: 3px;
+}
+
+.v-tabsheet-tabitemcell-first {
+       padding-left: 10px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1206px;
+}
+
+.v-tabsheet-tabitem, .v-tabsheet-spacertd div {
+       border: none;
+       height: 32px;
+       background: transparent repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1238px;
+       padding: 0;
+       color: #222222;
+       text-shadow: #ffffff 0 1px 0;
+}
+
+.v-tabsheet-tabitem .v-caption {
+       border: none;
+       height: 23px;
+       background: no-repeat right top;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -1270px;
+       padding: 9px 8px 0 6px;
+}
+
+.v-tabsheet-tabitem .v-caption-closable {
+       padding-right: 0;
+       padding-left: 17px;
+}
+
+.v-tabsheet-tabitem .v-captiontext {
+       height: 16px;
+       line-height: 16px;
+}
+
+.v-tabsheet-caption-close {
+       float: right;
+       width: 19px;
+       height: 18px;
+       margin: -1px -1px 0;
+       padding-left: 2px;
+       background: transparent;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1302px;
+       cursor: default;
+       text-indent: -999px;
+       overflow: hidden;
+       font-size: 14px;
+       font-weight: normal;
+}
+
+.v-ff .v-tabsheet-caption-close, .v-ie7 .v-tabsheet-caption-close {
+       margin-top: -17px;
+}
+
+.v-ie6 .v-tabsheet-caption-close {
+       float: none;
+}
+
+.v-tabsheet-caption-close:hover {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1320px;
+}
+
+.v-tabsheet-caption-close:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1338px;
+}
+
+.v-tabsheet-tabitem-selected .v-tabsheet-caption-close {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1356px;
+}
+
+.v-tabsheet-tabitem-selected .v-tabsheet-caption-close:hover {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1374px;
+}
+
+.v-tabsheet-tabitem-selected .v-tabsheet-caption-close:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1392px;
+}
+
+.v-tabsheet-tabitemcell-selected {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1410px;
+}
+
+.v-tabsheet-tabitemcell-selected-first {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1442px;
+}
+
+.v-tabsheet-tabitem-selected {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1474px;
+       color: #232930;
+}
+
+.v-tabsheet-tabitem-selected .v-caption {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -1506px;
+}
+
+.v-tabsheet-spacertd div {
+       margin-right: 4px;
+}
+
+.v-tabsheet-spacertd {
+       background: transparent no-repeat right top;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -1538px;
+}
+
+.blue .v-tabsheet-content {
+       border-color: #a8bcc5;
+}
+
+.v-tabsheet-content, .white .v-tabsheet-content {
+       border: 1px solid #dcdcdc;
+       border-bottom: none;
+       border-top: none;
+       color: #222222;
+       text-shadow: none;
+}
+
+.v-tabsheet-tabsheetpanel {
+       background: #ffffff;
+}
+
+.v-sa .v-tabsheet-content, .v-ff3 .v-tabsheet-content {
+       border-color: rgba(0, 0, 0, 0.1);
+}
+
+.blue .v-tabsheet-deco {
+       border-color: #92a3ac;
+       background: #adc2cd;
+}
+
+.v-tabsheet-deco, .white .v-tabsheet-deco {
+       height: 1px;
+       border-top: 1px solid #bebebe;
+       background: #e2e2e2;
+       overflow: hidden;
+}
+
+.v-sa .v-tabsheet-deco, .v-ff3 .v-tabsheet-deco {
+       border-top-color: rgba(0, 0, 0, 0.1);
+       background: rgba(0, 0, 0, 0.08);
+}
+
+.v-tabsheet-tabs .v-icon, .v-tabsheet-tabs .v-captiontext, .v-tabsheet-tabs .v-errorindicator {
+       display: inline;
+       float: none;
+}
+
+.v-sa .v-tabsheet-tabs .v-captiontext {
+       display: inline-block;
+}
+
+.v-tabsheet-tabs .v-icon {
+       width: 16px !important;
+       height: 16px !important;
+}
+
+.v-tabsheet-tabs .v-errorindicator {
+       display: inline-block;
+       width: 13px;
+       height: 16px;
+       background: transparent url(common/icons/error.png) no-repeat 50%;
+}
+
+.v-ff2 .v-tabsheet-tabs .v-icon, .v-ff2 .v-tabsheet-tabs .v-errorindicator {
+       display: -moz-inline-stack;
+}
+
+.v-ie6 .v-tabsheet-tabs .v-errorindicator {
+       background-image: url(common/icons/error-ie6.png);
+}
+
+.v-ie .v-tabsheet-tabs .v-errorindicator {
+       zoom: 1;
+       display: inline;
+}
+
+.v-ie8 .v-tabsheet-tabs .v-errorindicator, .v-ie9 .v-tabsheet-tabs .v-errorindicator {
+       display: inline-block;
+}
+
+.v-tabsheet-scroller {
+       height: 31px;
+       margin-top: -31px;
+       padding: 0 3px 0 4px;
+       border-right: 1px solid #c2c2c2;
+       border-left: 1px solid #cfcfcf;
+       position: relative;
+       float: right;
+       background: transparent url(tabsheet/img/framed/tab-bg.png) repeat-x left -1px;
+       width: 36px;
+}
+
+.v-tabsheet-scroller button {
+       margin-top: 7px;
+}
+
+.v-tabsheet-scrollerPrev, .v-tabsheet-scrollerNext, .v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerNext-disabled {
+       border: none;
+       background: transparent;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1570px;
+       width: 18px;
+       height: 17px;
+       overflow: hidden;
+}
+
+.v-tabsheet-scroller button::-moz-focus-inner {
+       border: none;
+}
+
+.v-tabsheet-scrollerNext {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1587px;
+}
+
+.v-tabsheet-scrollerPrev:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1604px;
+}
+
+.v-tabsheet-scrollerNext:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1621px;
+}
+
+.v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerPrev-disabled:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1638px;
+       opacity: 1;
+       filter: none;
+}
+
+.v-tabsheet-scrollerNext-disabled, .v-tabsheet-scrollerNext-disabled:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1655px;
+       opacity: 1;
+       filter: none;
+}
+
+.v-tabsheet-borderless .v-tabsheet-tabitemcell-first {
+       padding-left: 7px;
+       background: url(tabsheet/img/framed/tab-first-left.png) no-repeat -3px 0;
+}
+
+.v-tabsheet-borderless .v-tabsheet-tabitemcell-selected-first {
+       background: url(tabsheet/img/framed/tab-first-left-sel.png) no-repeat -3px 0;
+}
+
+.v-tabsheet-borderless .v-tabsheet-spacertd div {
+       margin-right: 0;
+}
+
+.v-tabsheet-borderless .v-tabsheet-spacertd {
+       background: transparent;
+}
+
+.v-tabsheet-borderless .v-tabsheet-content {
+       border: none;
+}
+
+.v-tabsheet-borderless .v-tabsheet-deco {
+       height: 0;
+       border-top: none;
+}
+
+.blue .v-tabsheet-tabs-minimal .v-tabsheet-spacertd div, .blue .v-tabsheet-tabs-minimal .v-tabsheet-tabitem, .blue .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
+       border-color: #7c8a91;
+}
+
+.blue .v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
+       color: #7c8a91;
+}
+
+.blue .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover {
+       color: #bcd3de;
+       background: #778d98;
+}
+
+.blue .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
+       background: #4f6874;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-spacertd div, .white .v-tabsheet-tabs-minimal .v-tabsheet-spacertd div {
+       border-bottom: 1px solid #bfbfbf;
+       height: auto;
+       background: transparent;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-tabitemcell, .v-tabsheet-tabs-minimal .v-tabsheet-spacertd {
+       height: auto;
+       background: transparent;
+       padding-left: 0;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-tabitem, .white .v-tabsheet-tabs-minimal .v-tabsheet-tabitem {
+       border: none;
+       border-bottom: 1px solid #bfbfbf;
+       color: #4d748f;
+       padding: 0;
+       height: auto;
+       background: transparent;
+       text-shadow: none;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-tabitem .v-caption {
+       padding: 5px 16px;
+       height: auto;
+       background: transparent;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-tabitemcell-selected {
+       background: transparent;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected, .white .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
+       background: transparent;
+       border: 1px solid #bfbfbf;
+       border-bottom: none;
+       color: #222222;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected .v-caption {
+       background: transparent;
+       padding: 4px 15px 6px 15px;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-tabitem .v-caption-closable, .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected .v-caption-closable {
+       padding-right: 6px;
+}
+
+.v-tabsheet-content-minimal, .white .v-tabsheet-content-minimal {
+       border: none;
+}
+
+.v-tabsheet-content-minimal .v-tabsheet-tabsheetpanel {
+       background: transparent;
+}
+
+.v-tabsheet-deco-minimal, .white .v-tabsheet-deco-minimal {
+       height: 0;
+       border: none;
+}
+
+.v-tabsheet-tabcontainer-minimal .v-tabsheet-scroller {
+       margin-top: -20px;
+       height: 17px;
+       padding: 0;
+       border: none;
+       background: transparent;
+}
+
+.v-tabsheet-tabcontainer-minimal .v-tabsheet-scroller button {
+       margin-top: 0;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-caption-close, .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover, .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
+       text-indent: 0;
+       background: transparent;
+       margin-left: 3px;
+       margin-right: -3px;
+       padding: 0;
+       color: #999999;
+       width: 14px;
+       height: 14px;
+       line-height: 14px;
+       -webkit-border-radius: 7px;
+       -moz-border-radius: 7px;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
+       margin-top: 1px;
+}
+
+.v-ff .v-tabsheet-tabs-minimal .v-tabsheet-caption-close, .v-ie7 .v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
+       margin-top: -15px;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover, .white .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover {
+       color: #ffffff;
+       background: #aaaaaa;
+}
+
+.v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active, .white .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
+       background: #777777;
+}
+
+.black .v-tabsheet-tabs-minimal .v-tabsheet-spacertd div, .black .v-tabsheet-tabs-minimal .v-tabsheet-tabitem, .black .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
+       border-color: #3e4044;
+       color: #6a7f89;
+}
+
+.black .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
+       color: #c9ccce;
+}
+
+.black .v-tabsheet-content-minimal, .black .v-tabsheet-content-bar {
+       color: #c9ccce;
+       text-shadow: #000000 0 0 1px;
+}
+
+.black .v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
+       color: #72787c;
+}
+
+.black .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover {
+       color: #1d2021;
+       background: #4d5154;
+}
+
+.black .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
+       background: #626669;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell, .v-tabsheet-tabs-bar .v-tabsheet-spacertd {
+       height: 20px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-spacertd {
+       background: transparent;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1673px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell-first {
+       padding-left: 6px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1693px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem, .v-tabsheet-tabs-bar .v-tabsheet-spacertd div {
+       height: 20px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1713px;
+       font-size: 11px;
+       margin: 0;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem .v-caption {
+       height: 18px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -1733px;
+       padding: 2px 12px 0 10px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem .v-caption-closable, .v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-caption-closable {
+       padding-right: 8px;
+       padding-left: 14px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-caption-close, .v-tabsheet-tabs-bar .v-tabsheet-caption-close:hover, .v-tabsheet-tabs-bar .v-tabsheet-caption-close:active {
+       text-indent: 0;
+       background: transparent;
+       margin-left: 3px;
+       margin-right: -3px;
+       padding: 1px 0 0 1px;
+       color: #3c3c3c;
+       width: 13px;
+       height: 13px;
+       line-height: 12px;
+       -webkit-border-radius: 7px;
+       -moz-border-radius: 7px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-caption-close {
+       margin-top: 1px;
+}
+
+.v-ff .v-tabsheet-tabs-bar .v-tabsheet-caption-close, .v-ie7 .v-tabsheet-tabs-bar .v-tabsheet-caption-close {
+       margin-top: -14px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-caption-close:hover {
+       background: #bfbfbf;
+       -webkit-box-shadow: 0 1px 0 #ffffff;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-caption-close:active {
+       background: #a9a9a9;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-tabsheet-caption-close {
+       color: #404142;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-tabsheet-caption-close:hover {
+       background: #5e666e;
+       color: #ffffff;
+       text-shadow: 0 -1px 0 #222222;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-tabsheet-caption-close:active {
+       background: #404142;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell-selected {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1753px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell-selected-first {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1773px;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1793px;
+       color: #232930;
+}
+
+.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-caption {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: right -1813px;
+}
+
+.v-tabsheet-tabcontainer-bar .v-tabsheet-scroller {
+       margin-top: -20px;
+       height: 19px;
+       border-right: none;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1833px;
+}
+
+.v-tabsheet-tabcontainer-bar .v-tabsheet-scroller button {
+       margin-top: 1px;
+}
+
+.v-tabsheet-content-bar, .white .v-tabsheet-content-bar {
+       border: none;
+}
+
+.v-tabsheet-content-bar .v-tabsheet-tabsheetpanel {
+       background: transparent;
+}
+
+.v-tabsheet-deco-bar, .white .v-tabsheet-deco-bar {
+       height: 0;
+       border: none;
+}
+
+.v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem .v-tabsheet-caption-close, .v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem:hover .v-tabsheet-caption-close {
+       visibility: hidden;
+}
+
+.v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem-selected .v-tabsheet-caption-close, .v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem-selected:hover .v-tabsheet-caption-close {
+       visibility: visible;
+}
+
+.v-tabsheet-tabs-hover-closable .v-tabsheet-caption-close {
+       visibility: hidden;
+}
+
+.v-tabsheet-tabs-hover-closable .v-tabsheet-tabitem:hover .v-tabsheet-caption-close {
+       visibility: visible;
+}
+
+.blue .v-textfield, .blue .v-textarea {
+       border-color: #92a2aa;
+       border-top-color: #7c8a90;
+       border-bottom-color: #a1b3bc;
+}
+
+.v-textfield, .v-textarea, .white .v-textfield, .white .v-textarea {
+       border: 1px solid #bcbdbe;
+       border-top-color: #a2a3a4;
+       border-bottom-color: #d2d3d4;
+       background: #ffffff;
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1853px;
+       -moz-border-radius: 3px;
+       -webkit-border-radius: 3px;
+       border-radius: 3px;
+       margin: 0;
+       height: 15px;
+       line-height: normal;
+}
+
+.v-textarea, .white .v-textarea {
+       background-image: none;
+       height: auto;
+}
+
+.v-app input.v-textfield, .v-window input.v-textfield, .v-app textarea.v-textarea, .v-window textarea.v-textarea {
+       padding: 3px 3px 4px;
+}
+
+.v-app .v-textfield-focus, .v-window .v-textfield-focus, .v-popupview-popup .v-textfield-focus, .v-app .v-textarea-focus, .v-window .v-textarea-focus, .v-popupview-popup .v-textarea-focus {
+       border-color: #5b97d0;
+       border-top-color: #4f83b4;
+       border-bottom-color: #5ca0df;
+       outline: none;
+       background-color: #ffffff;
+}
+
+input.v-textfield-prompt, textarea.v-textarea-prompt {
+       font-style: normal;
+       color: #999999;
+}
+
+.v-app input.v-textfield-small {
+       font-size: 11px;
+       line-height: normal;
+       height: auto;
+       padding: 2px;
+}
+
+.v-app textarea.v-textarea-small {
+       font-size: 11px;
+}
+
+.v-table input.v-textfield {
+       padding: 1px 2px;
+       height: auto;
+       line-height: normal;
+}
+
+.v-table-cell-wrapper > input.v-textfield {
+       margin-top: -2px;
+       margin-bottom: -2px;
+}
+
+.v-ie6 .v-table-cell-wrapper input.v-textfield {
+       margin-top: -2px;
+       margin-bottom: -2px;
+}
+
+.v-ie6 .v-table-cell-wrapper div input.v-textfield {
+       margin-top: 0;
+       margin-bottom: 0;
+}
+
+.black .v-textfield, .black .v-textarea {
+       border-color: #38393a;
+       border-top-color: #2c2d2e;
+       border-bottom-color: #3e3f3f;
+       background: #151717;
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -720px;
+       color: #c9ccce;
+       text-shadow: #000000 0 0 1px;
+}
+
+.black .v-textarea {
+       background-image: none;
+}
+
+.v-app .black .v-textfield-focus, .v-window-black .v-textfield-focus, .v-window .black .v-textfield-focus, .v-popupview-popup .black .v-textfield-focus, .v-app .black .v-textarea-focus, .v-window-black .v-textarea-focus, .v-window .black .v-textarea-focus, .v-popupview-popup .black .v-textarea-focus {
+       border-color: #4b7192;
+       border-top-color: #3b5a75;
+       border-bottom-color: #507596;
+       background-color: #151717;
+}
+
+.black input.v-textfield-prompt {
+       color: #5f6366;
+}
+
+input.v-textfield-readonly, .black input.v-textfield-readonly, textarea.v-textarea-readonly, .black textarea.v-textarea-readonly {
+       border: none;
+       background: transparent;
+}
+
+.v-tree-node {
+       background: transparent url(tree/img/arrows.png) no-repeat 6px -10px;
+}
+
+.v-ie6 .v-tree-node {
+       background-image: url(tree/img/arrows-ie6.png);
+       background-repeat: no-repeat;
+}
+
+.v-ie6 div.v-tree-node-leaf {
+       background: transparent;
+}
+
+.v-tree-node-expanded {
+       background-position: -7px 5px;
+}
+
+.v-tree-node-caption {
+       margin-left: 16px;
+       padding-bottom: 1px;
+}
+
+.v-tree-node span {
+       padding: 1px 2px;
+       display: inline-block;
+}
+
+.v-tree-node-selected span {
+       background: #4d749f repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1876px;
+       color: #ffffff;
+       padding: 1px 2px;
+       -webkit-border-radius: 2px;
+       -moz-border-radius: 2px;
+       text-shadow: #2b425a 0 1px 0;
+       display: inline-block;
+}
+
+.v-tree-node-children {
+       padding-left: 16px;
+}
+
+.v-ie6 .v-tree-node-ie6compatnode {
+       width: 14px;
+       height: 10px;
+       padding: 1px;
+}
+
+.v-tree-node-caption.v-tree-node-focused span {
+       padding-left: 1px;
+       padding-top: 0px;
+       padding-bottom: 0px;
+}
+
+.v-tree-node-focused span {
+       border: 1px dotted black;
+}
+
+.v-ie6 .v-tree-node-ie6compatnode.v-tree-node-focused {
+       padding-left: 0px;
+}
+
+.v-tree .v-tree-node-drag-top {
+       background-position: 6px -11px;
+}
+
+.v-tree .v-tree-node-drag-top.v-tree-node-expanded {
+       background-position: -7px 4px;
+}
+
+.v-tree-connectors .v-tree-node-drag-top, .v-tree-connectors .v-tree-node-expanded.v-tree-node-drag-top {
+       background-position: 2px -53px;
+}
+
+.v-tree-connectors .v-tree-node-drag-top.v-tree-node-leaf {
+       background-position: 2px 50%;
+}
+
+.v-window {
+       background: transparent;
+}
+
+.v-window-wrap {
+       border: 1px solid #808386;
+}
+
+.v-sa .v-window-wrap, .v-ff3 .v-window-wrap, .v-op .v-window-wrap {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+
+.v-ff2 .v-window-wrap, .v-ie6 .v-window-wrap {
+       border: none;
+}
+
+.v-ff2 .v-window-outerheader, .v-ie6 .v-window-outerheader {
+       border: 1px solid #808386;
+       border-bottom: none;
+}
+
+.v-ff2 .v-window-contents, .v-ie6 .v-window-contents {
+       border: 1px solid #808386;
+       border-top: none;
+       border-bottom: none;
+}
+
+.v-ff2 .v-window-footer, .v-ie6 .v-window-footer {
+       border: 1px solid #808386;
+       border-top: none;
+}
+
+.v-window-outerheader {
+       padding: 12px 32px 0 14px;
+       height: 25px;
+       background: black repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1896px;
+}
+
+.v-window-header {
+       font-weight: bold;
+       font-size: 12px;
+       line-height: normal;
+       color: #ffffff;
+       text-shadow: #000000 0 -1px 0;
+       white-space: nowrap;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       -ms-text-overflow: ellipsis;
+}
+
+.v-window-error .v-window-header {
+       padding-left: 13px;
+       background: transparent url(common/icons/error.png) no-repeat 0 50%;
+}
+
+.v-ie6 .v-window-error .v-window-header {
+       background-image: url(common/icons/error-ie6.png);
+}
+
+.v-window-resizebox {
+       width: 15px;
+       height: 15px;
+       cursor: se-resize;
+       background: transparent;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1933px;
+}
+
+.v-window-footer {
+       background-color: white;
+       background-repeat: repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1948px;
+       height: 15px;
+}
+
+.v-window-closebox {
+       top: 12px;
+       right: 10px;
+       width: 15px;
+       height: 16px;
+       background: transparent;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1963px;
+}
+
+.v-window-closebox:hover {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1979px;
+}
+
+.v-window-closebox:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -1995px;
+}
+
+.v-window-contents {
+       background: #ffffff;
+}
+
+.v-window-modalitycurtain {
+       background: #56595b;
+}
+
+.v-window-light .v-window-outerheader {
+       background: transparent;
+       padding: 15px 32px 0 18px;
+       height: 23px;
+}
+
+.v-window-light .v-window-header {
+       font-size: 16px;
+       color: #292e34;
+       text-shadow: none;
+}
+
+.v-window-light .v-window-resizebox {
+       width: 12px;
+       height: 12px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -2011px;
+}
+
+.v-window-light .v-window-footer {
+       background: transparent;
+       height: 12px;
+}
+
+.v-window-light .v-window-closebox {
+       right: 1px;
+       top: 17px;
+       width: 19px;
+       height: 15px;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -2023px;
+}
+
+.v-window-light .v-window-closebox:hover {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -2038px;
+}
+
+.v-window-light .v-window-closebox:active {
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -2053px;
+}
+
+.v-window-light .v-window-contents {
+       background: transparent;
+}
+
+.v-window-light .v-window-wrap2 {
+       background: #f7f7f8 repeat-x;
+       background-image: url(common/img/vertical-sprites.png);
+       -background-image: url(common/img/vertical-sprites-ie6.png);
+       background-position: left -2068px;
+}
+
+.v-ie6 .v-window-light .v-window-wrap2 {
+       background-image: none;
+}
+
+.v-window-black .v-window-wrap {
+       border-color: #2e3030;
+       border-radius: 8px;
+       -webkit-border-radius: 8px;
+       -moz-border-radius: 8px;
+       overflow: hidden;
+}
+
+.v-sa .v-window-black .v-window-wrap, .v-ff3 .v-window-black .v-window-wrap, .v-op .v-window-black .v-window-wrap {
+       border-color: rgba(0, 0, 0, 0.8);
+}
+
+.v-window-black .v-window-wrap2 {
+       background-color: #1d2021;
+       -moz-border-radius: 7px;
+       -webkit-border-radius: 7px;
+}
+
+.v-sa .v-window-black .v-window-wrap2, .v-ff3 .v-window-black .v-window-wrap2, .v-op .v-window-black .v-window-wrap2 {
+       background-color: rgba(29, 32, 33, 0.9);
+}
+
+.v-window-black .v-window-outerheader {
+       height: auto;
+       padding: 7px 14px;
+       height: 15px;
+       background: transparent repeat-x;
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -743px;
+       text-align: center;
+       -moz-border-radius-topright: 7px;
+       -moz-border-radius-topleft: 7px;
+       -webkit-border-top-right-radius: 7px;
+       -webkit-border-top-left-radius: 7px;
+       overflow: hidden;
+       border: none;
+}
+
+.v-window-black .v-window-header {
+       font-size: 12px;
+       font-weight: normal;
+       color: #dddfe1;
+}
+
+.v-window-black .v-window-closebox {
+       top: 8px;
+}
+
+.v-window-black .v-window-footer {
+       background: transparent;
+       border: none;
+       height: 14px;
+}
+
+.v-window-black .v-window-resizebox {
+       background: transparent no-repeat;
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -772px;
+       width: 14px;
+       height: 14px;
+}
+
+.v-ie6 .v-window-black .v-window-resizebox {
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -786px;
+}
+
+.v-ie6 .v-window-black .v-window-contents {
+       background: transparent url(window/img/black/content-bg-ie6.png) repeat-x;
+}
+
+.v-window-black .v-window-contents {
+       border: none;
+       background: transparent repeat-x;
+       background-image: url(common/img/black-vertical-sprites.png);
+       -background-image: url(common/img/black-vertical-sprites-ie6.png);
+       background-position: left -800px;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/basic/selectors.css b/sass/tests/resources/basic/selectors.css
new file mode 100644 (file)
index 0000000..50c5fb7
--- /dev/null
@@ -0,0 +1,103 @@
+.foo {
+       color: red;
+}
+
+.foo-bar {
+       color: red;
+}
+
+.foo_bar {
+       color: red;
+}
+
+.foo .bar {
+       color: red;
+}
+
+.foo .bar .baz .fee .roo {
+       color: red;
+}
+
+.foo.bar.baz.fee.roo {
+       color: red;
+}
+
+.foo.bar .baz.fee.roo .dar {
+       color: red;
+}
+
+.foo > .bar {
+       color: red;
+}
+
+#foo {
+       color: red;
+}
+
+#foo .bar {
+       color: red;
+}
+
+.foo #bar {
+       color: red;
+}
+
+#foo.bar {
+       color: red;
+}
+
+#foo, #bar, .baz, .roo .dar {
+       color: red;
+}
+
+#foo a, .foo pre img {
+       color: red;
+}
+
+#foo a.bar {
+       color: red;
+}
+
+a:link {
+       color: red;
+}
+
+a.foo:visited, .bar {
+       color: red;
+}
+
+.v-app input[type="text"] {
+       color: red;
+}
+
+.foo + .bar {
+       color: red;
+}
+
+h1 + .foo {
+       color: red;
+}
+
+.foo * {
+       color: red;
+}
+
+.foo * h1 {
+       color: red;
+}
+
+h1 * .foo {
+       color: red;
+}
+
+* .foo {
+       color: red;
+}
+
+p::abc {
+       color: red;
+}
+
+p:first {
+       color: red;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/comments.css b/sass/tests/resources/css/comments.css
new file mode 100644 (file)
index 0000000..1c773f7
--- /dev/null
@@ -0,0 +1,15 @@
+/** 0sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+
+/** 1sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+
+/** 2sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+
+.v-button:focus {
+       background-image: url(img/left-focus.png);/** sprite-ref: buttons */
+       outline: none;
+}
+
+.v-button:focus .v-button-wrap {
+       background-image: url(img/right-focus.png);/** sprite-ref: buttons; sprite-alignment: right */
+       outline: none;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/control-directives.css b/sass/tests/resources/css/control-directives.css
new file mode 100644 (file)
index 0000000..0a6f1f7
--- /dev/null
@@ -0,0 +1 @@
+Implement a sane test case.
\ No newline at end of file
diff --git a/sass/tests/resources/css/extends.css b/sass/tests/resources/css/extends.css
new file mode 100644 (file)
index 0000000..d1c903f
--- /dev/null
@@ -0,0 +1,13 @@
+.error, .badError {
+       border: 1px #f00;
+       background: #fdd;
+}
+
+.error.intrusion, .badError.intrusion {
+       font-size: 1.3em;
+       font-weight: bold;
+}
+
+.badError {
+       border-width: 3px;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/functions.css b/sass/tests/resources/css/functions.css
new file mode 100644 (file)
index 0000000..de87462
--- /dev/null
@@ -0,0 +1,14 @@
+.main {
+       margin: 2px;
+       border: 11px;
+       border: 10px;
+       border: 10px;
+       color: hsl(0, 0%, 30%);
+       color: hsl(25, 100%, 50%);
+       color: rgb(36, 0, 0);
+       color: rgb(240, 0, 0);
+       color: #240000;
+       color: #200;
+       color: #f00000;
+       color: #f00;
+}
diff --git a/sass/tests/resources/css/imports.css b/sass/tests/resources/css/imports.css
new file mode 100644 (file)
index 0000000..5b10018
--- /dev/null
@@ -0,0 +1,11 @@
+.caption {
+       border: 1px solid black;
+       background: #ff0000;
+       padding: 10px;
+       margin: 10px;
+}
+
+.text {
+       font-weight: bold;
+       color: red;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/microsoft-extensions.css b/sass/tests/resources/css/microsoft-extensions.css
new file mode 100644 (file)
index 0000000..6967096
--- /dev/null
@@ -0,0 +1,6 @@
+.v-ie6 .v-shadow-window {
+       background: #000000;
+       filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=5 ) alpha(opacity = 20);
+       margin-top: 2px;
+       margin-left: 2px;
+}
diff --git a/sass/tests/resources/css/mixins.css b/sass/tests/resources/css/mixins.css
new file mode 100644 (file)
index 0000000..5c727c1
--- /dev/null
@@ -0,0 +1,46 @@
+.main {
+       border: 1px solid black;
+       -webkit-border-radius: 3px;
+       -moz-border-radius: 3px;
+       border-radius: 3px;
+       font-family: arial;
+       font-size: 16px;
+       font-weight: bold;
+}
+
+.main .details {
+       font-size: 14px;
+       font-weight: bold;
+}
+
+.footer {
+       border: 2px solid black;
+       -webkit-border-radius: 10px;
+       -moz-border-radius: 10px;
+       border-radius: 10px;
+}
+
+.header {
+       width: 100%;
+}
+
+.main {
+       width: 100%;
+       height: 100%;
+}
+
+.footer {
+       width: 100%;
+}
+
+@media print {
+       .v-view {
+               overflow: visible;
+       }
+}
+
+font-family: arial;
+
+font-size: 16px;
+
+font-weight: bold;
\ No newline at end of file
diff --git a/sass/tests/resources/css/nested-properties.css b/sass/tests/resources/css/nested-properties.css
new file mode 100644 (file)
index 0000000..79b21e6
--- /dev/null
@@ -0,0 +1,5 @@
+li {
+       font-family: serif;
+       font-weight: bold;
+       font-size: 1.2em;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/nesting.css b/sass/tests/resources/css/nesting.css
new file mode 100644 (file)
index 0000000..2400c73
--- /dev/null
@@ -0,0 +1,47 @@
+.top-bar {
+       color: red;
+}
+
+.top-bar .alt {
+       color: blue;
+}
+
+.menu {
+       background-color: red;
+}
+
+.menu a {
+       color: blue;
+}
+
+.caption {
+       padding: 10px;
+}
+
+.caption .text, .caption .header {
+       color: green;
+}
+
+.footer {
+       padding: 10px;
+}
+
+.footer .left, .footer .right {
+       color: purple;
+}
+
+.footer .left a, .footer .right a {
+       color: orange;
+}
+
+.main {
+       color: red;
+}
+
+.main .second.third {
+       color: blue;
+}
+
+.main .second.third .fourth {
+       color: black;
+}
diff --git a/sass/tests/resources/css/parent-import.css b/sass/tests/resources/css/parent-import.css
new file mode 100644 (file)
index 0000000..f67d17f
--- /dev/null
@@ -0,0 +1,25 @@
+.content-navigation {
+       border-color: #3bbfce;
+       color: #0000ff;
+}
+
+.border {
+       padding: 8px;
+       margin: 8px;
+       border-color: #3bbfce;
+}
+
+.body {
+       background-image: url(../folder-test2/bg.png);
+       background: transparent url(../folder-test2/img/loading-indicator.gif);
+       background-image: url(http://abc/bg.png);
+       background-image: url(/abc/bg.png);
+}
+
+.base {
+       color: red;
+}
+
+.text {
+       font-weight: bold;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/parent-selector.css b/sass/tests/resources/css/parent-selector.css
new file mode 100644 (file)
index 0000000..9c7140e
--- /dev/null
@@ -0,0 +1,24 @@
+a {
+       font-weight: bold;
+       text-decoration: none;
+}
+
+a:hover {
+       text-decoration: underline;
+}
+
+body.firefox a {
+       font-weight: normal;
+}
+
+#main {
+       color: black;
+}
+
+#main a {
+       font-weight: bold;
+}
+
+#main a:hover {
+       color: red;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/semicolons.css b/sass/tests/resources/css/semicolons.css
new file mode 100644 (file)
index 0000000..8a08617
--- /dev/null
@@ -0,0 +1,10 @@
+.all-the-properties {
+       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+       position: absolute;
+       overflow: hidden;
+}
+
+.missing-semicolon-on-last-row {
+       color: red;
+       background-color: blue;
+}
diff --git a/sass/tests/resources/css/var-guarded.css b/sass/tests/resources/css/var-guarded.css
new file mode 100644 (file)
index 0000000..c4a8c49
--- /dev/null
@@ -0,0 +1,4 @@
+#main {
+       content: "First content";
+       new-content: "First time reference";
+}
\ No newline at end of file
diff --git a/sass/tests/resources/css/variables.css b/sass/tests/resources/css/variables.css
new file mode 100644 (file)
index 0000000..d54ae6c
--- /dev/null
@@ -0,0 +1,12 @@
+.content-navigation {
+       border-color: #3bbfce;
+       color: #0000ff;
+       color1: #0000d1;
+       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+}
+
+.border {
+       padding: 8px;
+       margin: 8px;
+       border-color: #3bbfce;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/_partial-for-import.scss b/sass/tests/resources/scss/_partial-for-import.scss
new file mode 100644 (file)
index 0000000..32c3149
--- /dev/null
@@ -0,0 +1,9 @@
+$foo : red;
+
+.caption {
+       $side: right;
+       border: 1px solid black;
+       background: #ff0000;
+       padding: 10px;
+       margin: 10px;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/comments.scss b/sass/tests/resources/scss/comments.scss
new file mode 100644 (file)
index 0000000..de3fbe8
--- /dev/null
@@ -0,0 +1,13 @@
+/** 0sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+/** 1sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+/** 2sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
+$black:#000000;
+.v-button:focus {
+       background-image: url(img/left-focus.png);/** sprite-ref: buttons */
+       outline: none;
+}
+
+.v-button:focus .v-button-wrap {
+       background-image: url(img/right-focus.png);/** sprite-ref: buttons; sprite-alignment: right */
+       outline: none;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/control-directives.scss b/sass/tests/resources/scss/control-directives.scss
new file mode 100644 (file)
index 0000000..febd563
--- /dev/null
@@ -0,0 +1,14 @@
+@for $i from 1 through 3 {
+  .item-#{$i} { width: 2em * $i; }
+}
+
+@while $i > 0 {
+  .item-#{$i} { width: 2em * $i; }
+  $i: $i - 2;
+}
+
+@each $animal in puma, sea-slug, egret, salamander {
+  .#{$animal}-icon {
+    background-image: url('/images/#{$animal}.png');
+  }
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/extends.scss b/sass/tests/resources/scss/extends.scss
new file mode 100644 (file)
index 0000000..c9e0f85
--- /dev/null
@@ -0,0 +1,13 @@
+.error {
+  border: 1px #f00;
+  background: #fdd;
+}
+.error.intrusion {
+  font-size: 1.3em;
+  font-weight: bold;
+}
+
+.badError {
+  @extend .error;
+  border-width: 3px;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/folder-test/parent-import.scss b/sass/tests/resources/scss/folder-test/parent-import.scss
new file mode 100644 (file)
index 0000000..b3f6c80
--- /dev/null
@@ -0,0 +1,6 @@
+@import "../folder-test2/variables.scss";
+@import "../folder-test2/url";
+@import "../folder-test2/base-imported.scss";
+.text {
+       font-weight: bold;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/folder-test2/base-imported.scss b/sass/tests/resources/scss/folder-test2/base-imported.scss
new file mode 100644 (file)
index 0000000..17d801e
--- /dev/null
@@ -0,0 +1 @@
+@import "base.scss";
\ No newline at end of file
diff --git a/sass/tests/resources/scss/folder-test2/base.scss b/sass/tests/resources/scss/folder-test2/base.scss
new file mode 100644 (file)
index 0000000..57ca0bb
--- /dev/null
@@ -0,0 +1,3 @@
+.base{
+       color: red;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/folder-test2/url.scss b/sass/tests/resources/scss/folder-test2/url.scss
new file mode 100644 (file)
index 0000000..a4be967
--- /dev/null
@@ -0,0 +1,6 @@
+.body{
+       background-image: url(bg.png);
+       background: transparent url(img/loading-indicator.gif);
+       background-image: url(http://abc/bg.png);
+       background-image: url(/abc/bg.png);
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/folder-test2/variables.scss b/sass/tests/resources/scss/folder-test2/variables.scss
new file mode 100644 (file)
index 0000000..2d06d36
--- /dev/null
@@ -0,0 +1,14 @@
+$blue: #3bbfce;
+$margin: 8px;
+
+.content-navigation {
+       border-color: $blue;
+       $blue: #0000ff;
+       color: $blue;
+}
+
+.border {
+       padding: $margin;
+       margin: $margin;
+       border-color: $blue;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/functions.scss b/sass/tests/resources/scss/functions.scss
new file mode 100644 (file)
index 0000000..abf6f61
--- /dev/null
@@ -0,0 +1,16 @@
+.main {
+       margin: abs(-2px);
+       border: ceil(10.4px);
+       border: floor(10.4px);
+       border: round(10.4px);
+       color: lighten(hsl(0, 0%, 0%), 30%);
+       color: darken(hsl(25, 100%, 80%), 30%);
+       color: darken(rgb(136, 0, 0), 20%);
+       color: lighten(rgb(136, 0, 0), 20%);
+       color: darken(#880000, 20%);
+       color: darken(#800, 20%);
+       color: lighten(#880000, 20%);
+       color: lighten(#800, 20%);
+}
+
+
diff --git a/sass/tests/resources/scss/imports.scss b/sass/tests/resources/scss/imports.scss
new file mode 100644 (file)
index 0000000..4d53a12
--- /dev/null
@@ -0,0 +1,6 @@
+@import "_partial-for-import";
+
+.text {
+       font-weight: bold;
+       color: $foo;
+}
diff --git a/sass/tests/resources/scss/interpolation.scss b/sass/tests/resources/scss/interpolation.scss
new file mode 100644 (file)
index 0000000..5859a98
--- /dev/null
@@ -0,0 +1,3 @@
+$name: foo;
+$attr: border;
+p.#{$name}abc { abc#{$attr}-color: blue }
\ No newline at end of file
diff --git a/sass/tests/resources/scss/microsoft-extensions.scss b/sass/tests/resources/scss/microsoft-extensions.scss
new file mode 100644 (file)
index 0000000..6967096
--- /dev/null
@@ -0,0 +1,6 @@
+.v-ie6 .v-shadow-window {
+       background: #000000;
+       filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=5 ) alpha(opacity = 20);
+       margin-top: 2px;
+       margin-left: 2px;
+}
diff --git a/sass/tests/resources/scss/mixins.scss b/sass/tests/resources/scss/mixins.scss
new file mode 100644 (file)
index 0000000..52e03d6
--- /dev/null
@@ -0,0 +1,55 @@
+//asfdasdf
+
+@mixin font-settings {
+       font-family: arial;
+       font-size: 16px;
+       font-weight: bold;
+}
+
+@mixin rounded-borders($thickness, $radius : 3px) {
+       border: $thickness solid black;
+       -webkit-border-radius: $radius;
+       -moz-border-radius: $radius;
+       border-radius: $radius;
+}
+
+.main {
+       @include rounded-borders(1px);
+       @include font-settings;
+       @include main-details(14px);
+}
+
+.footer {
+       @include rounded-borders(2px, 10px);
+}
+
+@mixin layout {
+       .header {
+               width: 100%;
+       }
+       .main {
+               width: 100%;
+               height: 100%;
+       }
+       
+       .footer {
+               width: 100%;
+       }
+       @media print {
+               .v-view {
+                       overflow: visible;
+               }
+       }
+       @include font-settings;
+}
+
+@mixin main-details($size){
+       .details {
+               font: {
+                       size : $size;
+                       weight: bold;
+               }
+       }
+}
+
+@include layout;
\ No newline at end of file
diff --git a/sass/tests/resources/scss/nested-properties.scss b/sass/tests/resources/scss/nested-properties.scss
new file mode 100644 (file)
index 0000000..e12a83a
--- /dev/null
@@ -0,0 +1,7 @@
+li {
+  font: {
+    family: serif;;
+    weight: bold;
+    size: 1.2em
+  }
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/nesting.scss b/sass/tests/resources/scss/nesting.scss
new file mode 100644 (file)
index 0000000..0336c9e
--- /dev/null
@@ -0,0 +1,40 @@
+.top-bar {
+       color: red;
+       .alt {
+               color: blue;
+       }
+}
+
+.menu {
+       background-color: red;
+       a {
+               color: blue;
+       }
+}
+
+.caption {
+       padding: 10px;
+       .text, .header {
+               color: green;
+       }
+}
+
+.footer {
+       padding: 10px;
+       .left, .right {
+               color: purple;
+               a {
+                       color: orange;
+               }
+       }
+}
+
+.main {
+  color: red;
+  .second.third {
+    color: blue;
+    .fourth {
+      color: black;
+    }
+  }
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/parent-selector.scss b/sass/tests/resources/scss/parent-selector.scss
new file mode 100644 (file)
index 0000000..3d0f694
--- /dev/null
@@ -0,0 +1,14 @@
+a {
+  font-weight: bold;
+  text-decoration: none;
+  &:hover { text-decoration: underline; }
+  body.firefox & { font-weight: normal; }
+}
+
+#main {
+  color: black;
+  a {
+    font-weight: bold;
+    &:hover { color: red; }
+  }
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/reference-parent-selector.css b/sass/tests/resources/scss/reference-parent-selector.css
new file mode 100644 (file)
index 0000000..733c8fd
--- /dev/null
@@ -0,0 +1,6 @@
+a {
+       color: #660000;
+       &:hover {color: #000000;}
+       &:visited {color:#660066;}
+       &:active {color: #ffffff;}
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/semicolons.scss b/sass/tests/resources/scss/semicolons.scss
new file mode 100644 (file)
index 0000000..a4a5604
--- /dev/null
@@ -0,0 +1,9 @@
+.all-the-properties {
+       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif; ;
+       position: absolute;;
+       overflow: hidden;
+}
+.missing-semicolon-on-last-row {
+       color: red;
+       background-color: blue
+}
diff --git a/sass/tests/resources/scss/var-guarded.scss b/sass/tests/resources/scss/var-guarded.scss
new file mode 100644 (file)
index 0000000..8f7aab8
--- /dev/null
@@ -0,0 +1,8 @@
+$content: "First content";
+$content: "Second content?" !default;
+$new_content: "First time reference" !default;
+
+#main {
+  content: $content;
+  new-content: $new_content;
+}
\ No newline at end of file
diff --git a/sass/tests/resources/scss/variables.scss b/sass/tests/resources/scss/variables.scss
new file mode 100644 (file)
index 0000000..60acc5d
--- /dev/null
@@ -0,0 +1,17 @@
+$blue: #3bbfce;
+$margin: 8px;
+$chameleon-font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+
+.content-navigation {
+       border-color: $blue;
+       $blue: #0000ff;
+       color: $blue;
+       color1: darken($blue, 9%);
+       font-family: $chameleon-font-family;
+}
+
+.border {
+       padding: $margin;
+       margin: $margin;
+       border-color: $blue;
+}
\ No newline at end of file
diff --git a/sass/tests/src/com/vaadin/sass/AbstractTestBase.java b/sass/tests/src/com/vaadin/sass/AbstractTestBase.java
new file mode 100644 (file)
index 0000000..a6b03fe
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import junit.framework.Assert;
+
+import org.apache.commons.io.IOUtils;
+import org.w3c.css.sac.CSSException;
+
+public abstract class AbstractTestBase {
+
+    protected ScssStylesheet stylesheet;
+    protected String originalScss;
+    protected String parsedScss;
+    protected String comparisonCss;
+
+    public ScssStylesheet getStyleSheet(String filename)
+            throws URISyntaxException, CSSException, IOException {
+        File file = getFile(filename);
+        stylesheet = ScssStylesheet.get(file.getAbsolutePath());
+        return stylesheet;
+    }
+
+    public File getFile(String filename) throws URISyntaxException,
+            CSSException, IOException {
+        return new File(getClass().getResource(filename).toURI());
+    }
+
+    public String getFileContent(String filename) throws IOException,
+            CSSException, URISyntaxException {
+        File file = getFile(filename);
+        return getFileContent(file);
+    }
+
+    /**
+     * Read in the full content of a file into a string.
+     * 
+     * @param file
+     *            the file to be read
+     * @return a String with the content of the
+     * @throws IOException
+     *             when file reading fails
+     */
+    public String getFileContent(File file) throws IOException {
+        return IOUtils.toString(new FileReader(file));
+    }
+
+    public void testParser(String file) throws CSSException, IOException,
+            URISyntaxException {
+        originalScss = getFileContent(file);
+        ScssStylesheet sheet = getStyleSheet(file);
+        parsedScss = sheet.toString();
+        Assert.assertEquals("Original CSS and parsed CSS do not match",
+                originalScss, parsedScss);
+    }
+
+    public void testCompiler(String scss, String css) throws Exception {
+        comparisonCss = getFileContent(css);
+        ScssStylesheet sheet = getStyleSheet(scss);
+        sheet.compile();
+        parsedScss = sheet.toString();
+        Assert.assertEquals("Original CSS and parsed CSS do not match",
+                comparisonCss, parsedScss);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/parser/ParserTest.java b/sass/tests/src/com/vaadin/sass/parser/ParserTest.java
new file mode 100644 (file)
index 0000000..34c365e
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.parser;
+
+import java.io.IOException;
+import java.io.StringReader;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+import org.w3c.css.sac.InputSource;
+import org.w3c.css.sac.LexicalUnit;
+
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+
+public class ParserTest {
+
+    @Test
+    public void testParsePropertyValue() throws CSSException, IOException {
+        Parser parser = new Parser();
+
+        LexicalUnit value = parser.parsePropertyValue(new InputSource(
+                new StringReader("$margin/2;")));
+
+        Assert.assertEquals("margin", value.getStringValue());
+        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE,
+                value.getLexicalUnitType());
+        value = value.getNextLexicalUnit();
+        Assert.assertEquals(LexicalUnit.SAC_OPERATOR_SLASH,
+                value.getLexicalUnitType());
+        value = value.getNextLexicalUnit();
+        Assert.assertEquals(LexicalUnit.SAC_INTEGER, value.getLexicalUnitType());
+        Assert.assertEquals(2, value.getIntegerValue());
+
+    }
+
+    @Test
+    public void testCanIngoreSingleLineComment() {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        try {
+            parser.parseStyleSheet(new InputSource(new StringReader(
+                    "//kjaljsföajsfalkj\n@12abcg;")));
+            Assert.assertTrue(true);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+}
\ No newline at end of file
diff --git a/sass/tests/src/com/vaadin/sass/testcases/css/EmptyBlock.java b/sass/tests/src/com/vaadin/sass/testcases/css/EmptyBlock.java
new file mode 100644 (file)
index 0000000..de8a45b
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.css;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+
+public class EmptyBlock extends AbstractTestBase {
+    String css = "/basic/empty_block.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        testParser(css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/css/Interpolation.java b/sass/tests/src/com/vaadin/sass/testcases/css/Interpolation.java
new file mode 100644 (file)
index 0000000..01d593d
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.css;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.BlockNode;
+
+public class Interpolation extends AbstractTestBase {
+    String scss = "/scss/interpolation.scss";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+
+        Assert.assertEquals(3, root.getChildren().size());
+        BlockNode blockNodeWithInterpolation = (BlockNode) root.getChildren()
+                .get(2);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/css/Media.java b/sass/tests/src/com/vaadin/sass/testcases/css/Media.java
new file mode 100644 (file)
index 0000000..04b8573
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.css;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+
+public class Media extends AbstractTestBase {
+
+    String css = "/basic/media.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        testParser(css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/css/Properties.java b/sass/tests/src/com/vaadin/sass/testcases/css/Properties.java
new file mode 100644 (file)
index 0000000..e0c07bc
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.css;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+
+public class Properties extends AbstractTestBase {
+
+    String css = "/basic/properties.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        testParser(css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/css/Reindeer.java b/sass/tests/src/com/vaadin/sass/testcases/css/Reindeer.java
new file mode 100644 (file)
index 0000000..9bb4ed4
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.css;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+
+public class Reindeer extends AbstractTestBase {
+
+    String css = "/basic/reindeer.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        testParser(css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/css/Selectors.java b/sass/tests/src/com/vaadin/sass/testcases/css/Selectors.java
new file mode 100644 (file)
index 0000000..cb86504
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.css;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+
+public class Selectors extends AbstractTestBase {
+
+    String css = "/basic/selectors.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        testParser(css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Comments.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Comments.java
new file mode 100644 (file)
index 0000000..c76bbb8
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import junit.framework.Assert;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.CommentNode;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+public class Comments extends AbstractTestBase {
+    String scss = "/scss/comments.scss";
+    String css = "/css/comments.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        Assert.assertNotNull(root);
+        Assert.assertEquals(6, root.getChildren().size());
+        Assert.assertTrue(root.getChildren().get(0) instanceof CommentNode);
+        Assert.assertTrue(root.getChildren().get(2) instanceof CommentNode);
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/ControlDirectives.java b/sass/tests/src/com/vaadin/sass/testcases/scss/ControlDirectives.java
new file mode 100644 (file)
index 0000000..033bbb0
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+
+public class ControlDirectives extends AbstractTestBase {
+
+    String scss = "/scss/control-directives.scss";
+    String css = "/css/control-directives.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        Assert.assertNotNull(root);
+        Assert.fail("Implement assert nodes");
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Extends.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Extends.java
new file mode 100644 (file)
index 0000000..f52a1d2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.ExtendNode;
+
+public class Extends extends AbstractTestBase {
+    String scss = "/scss/extends.scss";
+    String css = "/css/extends.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+
+        Assert.assertTrue(root.getChildren().get(2).getChildren().get(0) instanceof ExtendNode);
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Functions.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Functions.java
new file mode 100644 (file)
index 0000000..d2e890c
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.BlockNode;
+
+public class Functions extends AbstractTestBase {
+
+    String scss = "/scss/functions.scss";
+    String css = "/css/functions.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        Assert.assertEquals(1, root.getChildren().size());
+        BlockNode blockNode = (BlockNode) root.getChildren().get(0);
+        Assert.assertEquals(12, blockNode.getChildren().size());
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Imports.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Imports.java
new file mode 100644 (file)
index 0000000..8c60927
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.ImportNode;
+
+public class Imports extends AbstractTestBase {
+
+    String scss = "/scss/imports.scss";
+    String css = "/css/imports.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        ImportNode importNode = (ImportNode) root.getChildren().get(0);
+        Assert.assertEquals("_partial-for-import", importNode.getUri());
+        Assert.assertFalse(importNode.isPureCssImport());
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/MicrosoftExtensions.java b/sass/tests/src/com/vaadin/sass/testcases/scss/MicrosoftExtensions.java
new file mode 100644 (file)
index 0000000..5460700
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import org.junit.Test;
+
+import com.vaadin.sass.AbstractTestBase;
+
+/**
+ * Test for Microsoft specific CSS extensions.
+ */
+public class MicrosoftExtensions extends AbstractTestBase {
+    String scss = "/scss/microsoft-extensions.scss";
+    String css = "/css/microsoft-extensions.css";
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Mixins.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Mixins.java
new file mode 100644 (file)
index 0000000..05b3d3c
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+import org.w3c.css.sac.LexicalUnit;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.BlockNode;
+import com.vaadin.sass.tree.MediaNode;
+import com.vaadin.sass.tree.MixinDefNode;
+import com.vaadin.sass.tree.MixinNode;
+
+public class Mixins extends AbstractTestBase {
+
+    String scss = "/scss/mixins.scss";
+    String css = "/css/mixins.css";
+
+    @Test
+    public void testParser() throws CSSException, URISyntaxException,
+            IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+
+        MixinDefNode mixinDefNode0 = (MixinDefNode) root.getChildren().get(0);
+        Assert.assertEquals("font-settings", mixinDefNode0.getName());
+        Assert.assertTrue(mixinDefNode0.getArglist().isEmpty());
+        Assert.assertEquals(3, mixinDefNode0.getChildren().size());
+
+        MixinDefNode mixinDefNode1 = (MixinDefNode) root.getChildren().get(1);
+        Assert.assertEquals("rounded-borders", mixinDefNode1.getName());
+        Assert.assertEquals(2, mixinDefNode1.getArglist().size());
+        Assert.assertEquals("thickness", mixinDefNode1.getArglist().get(0)
+                .getName());
+        Assert.assertEquals("radius", mixinDefNode1.getArglist().get(1)
+                .getName());
+        Assert.assertEquals(LexicalUnit.SAC_PIXEL, mixinDefNode1.getArglist()
+                .get(1).getExpr().getLexicalUnitType());
+        Assert.assertEquals(3f, mixinDefNode1.getArglist().get(1).getExpr()
+                .getFloatValue());
+
+        Assert.assertEquals(4, mixinDefNode1.getChildren().size());
+
+        BlockNode mainBlockNode = (BlockNode) root.getChildren().get(2);
+        Assert.assertEquals(3, mainBlockNode.getChildren().size());
+        MixinNode mixinNode0MainBlock = (MixinNode) mainBlockNode.getChildren()
+                .get(0);
+        Assert.assertEquals("rounded-borders", mixinNode0MainBlock.getName());
+        Assert.assertEquals(1f, mixinNode0MainBlock.getArglist().get(0)
+                .getFloatValue());
+        Assert.assertEquals(LexicalUnit.SAC_PIXEL, mixinNode0MainBlock
+                .getArglist().get(0).getLexicalUnitType());
+        MixinNode mixinNOde1MainBlock = (MixinNode) mainBlockNode.getChildren()
+                .get(1);
+        Assert.assertEquals("font-settings", mixinNOde1MainBlock.getName());
+        Assert.assertTrue(mixinNOde1MainBlock.getArglist().isEmpty());
+
+        MixinNode mixinNOde2MainBlock = (MixinNode) mainBlockNode.getChildren()
+                .get(2);
+        Assert.assertEquals("main-details", mixinNOde2MainBlock.getName());
+        Assert.assertTrue(mixinNOde1MainBlock.getArglist().isEmpty());
+
+        MixinNode mixinNode1MainBlock = (MixinNode) mainBlockNode.getChildren()
+                .get(1);
+        Assert.assertTrue(mixinNode1MainBlock.getArglist().isEmpty());
+
+        BlockNode footerBlockNode = (BlockNode) root.getChildren().get(3);
+        MixinNode mixinNodeFooterBlock = (MixinNode) footerBlockNode
+                .getChildren().get(0);
+        Assert.assertEquals(2f, mixinNodeFooterBlock.getArglist().get(0)
+                .getFloatValue());
+        Assert.assertEquals("px", mixinNodeFooterBlock.getArglist().get(0)
+                .getDimensionUnitText());
+
+        Assert.assertEquals(10f, mixinNodeFooterBlock.getArglist().get(1)
+                .getFloatValue());
+        Assert.assertEquals("px", mixinNodeFooterBlock.getArglist().get(1)
+                .getDimensionUnitText());
+
+        Assert.assertTrue(root.getChildren().get(4) instanceof MixinDefNode);
+        Assert.assertTrue(root.getChildren().get(4).getChildren().get(3) instanceof MediaNode);
+        Assert.assertTrue(root.getChildren().get(4).getChildren().get(4) instanceof MixinNode);
+
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/NestedProperties.java b/sass/tests/src/com/vaadin/sass/testcases/scss/NestedProperties.java
new file mode 100644 (file)
index 0000000..2f57934
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.BlockNode;
+import com.vaadin.sass.tree.NestPropertiesNode;
+import com.vaadin.sass.tree.RuleNode;
+
+public class NestedProperties extends AbstractTestBase {
+    String scss = "/scss/nested-properties.scss";
+    String css = "/css/nested-properties.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        Assert.assertEquals(1, root.getChildren().size());
+
+        BlockNode blockNode = (BlockNode) root.getChildren().get(0);
+        Assert.assertEquals(1, blockNode.getChildren().size());
+
+        NestPropertiesNode nestPropertiesNode = (NestPropertiesNode) blockNode
+                .getChildren().get(0);
+        Assert.assertEquals("font", nestPropertiesNode.getName());
+        RuleNode nestedProperty0 = (RuleNode) nestPropertiesNode.getChildren()
+                .get(0);
+        RuleNode nestedProperty1 = (RuleNode) nestPropertiesNode.getChildren()
+                .get(1);
+        RuleNode nestedProperty2 = (RuleNode) nestPropertiesNode.getChildren()
+                .get(2);
+        Assert.assertEquals("family", nestedProperty0.getVariable());
+        Assert.assertEquals("weight", nestedProperty1.getVariable());
+        Assert.assertEquals("size", nestedProperty2.getVariable());
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Nesting.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Nesting.java
new file mode 100644 (file)
index 0000000..55365c7
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.BlockNode;
+
+public class Nesting extends AbstractTestBase {
+
+    String scss = "/scss/nesting.scss";
+    String css = "/css/nesting.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        Assert.assertEquals(5, root.getChildren().size());
+
+        BlockNode blockNode0 = (BlockNode) root.getChildren().get(0);
+        Assert.assertEquals(2, blockNode0.getChildren().size());
+        BlockNode nestedBlock0 = (BlockNode) blockNode0.getChildren().get(1);
+        org.junit.Assert.assertEquals(1, nestedBlock0.getChildren().size());
+
+        BlockNode blockNode1 = (BlockNode) root.getChildren().get(1);
+        Assert.assertEquals(2, blockNode1.getChildren().size());
+        BlockNode nestedBlockInBlock1 = (BlockNode) blockNode1.getChildren()
+                .get(1);
+        Assert.assertEquals(1, nestedBlockInBlock1.getChildren().size());
+
+        BlockNode blockNode2 = (BlockNode) root.getChildren().get(2);
+        Assert.assertEquals(2, blockNode2.getChildren().size());
+        BlockNode nestedBlockInBlock2 = (BlockNode) blockNode2.getChildren()
+                .get(1);
+        Assert.assertEquals(1, nestedBlockInBlock2.getChildren().size());
+
+        BlockNode blockNode3 = (BlockNode) root.getChildren().get(3);
+        Assert.assertEquals(2, blockNode3.getChildren().size());
+        BlockNode nestedBlockInBlock3 = (BlockNode) blockNode3.getChildren()
+                .get(1);
+        Assert.assertEquals(2, nestedBlockInBlock3.getChildren().size());
+        BlockNode nestednestedBlockInBlock3 = (BlockNode) nestedBlockInBlock3
+                .getChildren().get(1);
+        Assert.assertEquals(1, nestednestedBlockInBlock3.getChildren().size());
+
+        BlockNode blockNode4 = (BlockNode) root.getChildren().get(4);
+        Assert.assertEquals(2, blockNode4.getChildren().size());
+        BlockNode nestedBlockInBlock4 = (BlockNode) blockNode3.getChildren()
+                .get(1);
+        Assert.assertEquals(2, nestedBlockInBlock4.getChildren().size());
+        BlockNode nestednestedBlockInBlock4 = (BlockNode) nestedBlockInBlock3
+                .getChildren().get(1);
+        Assert.assertEquals(1, nestednestedBlockInBlock4.getChildren().size());
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/ParentImports.java b/sass/tests/src/com/vaadin/sass/testcases/scss/ParentImports.java
new file mode 100644 (file)
index 0000000..8b12f3b
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.tree.ImportNode;
+
+public class ParentImports extends AbstractTestBase {
+
+    String scss = "/scss/folder-test/parent-import.scss";
+    String css = "/css/parent-import.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        ImportNode importVariableNode = (ImportNode) root.getChildren().get(0);
+        Assert.assertEquals("../folder-test2/variables.scss",
+                importVariableNode.getUri());
+        Assert.assertFalse(importVariableNode.isPureCssImport());
+
+        ImportNode importURLNode = (ImportNode) root.getChildren().get(1);
+        Assert.assertEquals("../folder-test2/url", importURLNode.getUri());
+        Assert.assertFalse(importURLNode.isPureCssImport());
+
+        ImportNode importImportNode = (ImportNode) root.getChildren().get(2);
+        Assert.assertEquals("../folder-test2/base-imported.scss",
+                importImportNode.getUri());
+        Assert.assertFalse(importImportNode.isPureCssImport());
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/ParentSelector.java b/sass/tests/src/com/vaadin/sass/testcases/scss/ParentSelector.java
new file mode 100644 (file)
index 0000000..7ac2450
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.selector.SelectorUtil;
+import com.vaadin.sass.tree.BlockNode;
+
+public class ParentSelector extends AbstractTestBase {
+    String scss = "/scss/parent-selector.scss";
+    String css = "/css/parent-selector.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        BlockNode blockNode = (BlockNode) root.getChildren().get(0);
+        Assert.assertEquals(4, blockNode.getChildren().size());
+        BlockNode nestedBlock1 = (BlockNode) blockNode.getChildren().get(2);
+        Assert.assertEquals("&:hover",
+                SelectorUtil.toString(nestedBlock1.getSelectorList()));
+        BlockNode nestedBlock2 = (BlockNode) blockNode.getChildren().get(3);
+        Assert.assertEquals("body.firefox &",
+                SelectorUtil.toString(nestedBlock2.getSelectorList()));
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Semicolons.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Semicolons.java
new file mode 100644 (file)
index 0000000..9dd8a38
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import org.junit.Test;
+
+import com.vaadin.sass.AbstractTestBase;
+
+/**
+ * Test for missing and extraneous semicolon handling.
+ */
+public class Semicolons extends AbstractTestBase {
+    String scss = "/scss/semicolons.scss";
+    String css = "/css/semicolons.css";
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/VariableGuarded.java b/sass/tests/src/com/vaadin/sass/testcases/scss/VariableGuarded.java
new file mode 100644 (file)
index 0000000..2c37737
--- /dev/null
@@ -0,0 +1,36 @@
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+
+public class VariableGuarded extends AbstractTestBase {
+    String scss = "/scss/var-guarded.scss";
+    String css = "/css/var-guarded.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        Assert.assertEquals(4, root.getChildren().size());
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+        Assert.assertEquals("Original CSS and parsed CSS doesn't match",
+                comparisonCss, parsedScss);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/scss/Variables.java b/sass/tests/src/com/vaadin/sass/testcases/scss/Variables.java
new file mode 100644 (file)
index 0000000..010a208
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.scss;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.w3c.css.sac.CSSException;
+
+import com.vaadin.sass.AbstractTestBase;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.handler.SCSSDocumentHandler;
+import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.parser.Parser;
+import com.vaadin.sass.parser.SCSSLexicalUnit;
+import com.vaadin.sass.tree.BlockNode;
+import com.vaadin.sass.tree.RuleNode;
+import com.vaadin.sass.tree.VariableNode;
+
+public class Variables extends AbstractTestBase {
+
+    String scss = "/scss/variables.scss";
+    String css = "/css/variables.css";
+
+    @Test
+    public void testParser() throws CSSException, IOException {
+        Parser parser = new Parser();
+        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
+        parser.setDocumentHandler(handler);
+        parser.parseStyleSheet(getClass().getResource(scss).getPath());
+        ScssStylesheet root = handler.getStyleSheet();
+        Assert.assertEquals(5, root.getChildren().size());
+
+        VariableNode varNode1 = (VariableNode) root.getChildren().get(0);
+        Assert.assertEquals("blue", varNode1.getName());
+        // Assert.assertEquals("blue", varNode1.getExpr().);
+
+        VariableNode varNode2 = (VariableNode) root.getChildren().get(1);
+        Assert.assertEquals("margin", varNode2.getName());
+        Assert.assertEquals(8f, varNode2.getExpr().getFloatValue());
+        Assert.assertEquals("px", varNode2.getExpr().getDimensionUnitText());
+
+        VariableNode varNode3 = (VariableNode) root.getChildren().get(2);
+        Assert.assertEquals("chameleon-font-family", varNode3.getName());
+
+        BlockNode blockNode1 = (BlockNode) root.getChildren().get(3);
+        Assert.assertEquals(5, blockNode1.getChildren().size());
+        RuleNode ruleNode1Block1 = (RuleNode) blockNode1.getChildren().get(0);
+        Assert.assertEquals("border-color", ruleNode1Block1.getVariable());
+        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode1Block1
+                .getValue().getLexicalUnitType());
+        Assert.assertEquals("blue", ruleNode1Block1.getValue().getStringValue());
+
+        VariableNode varNode1Block1 = (VariableNode) blockNode1.getChildren()
+                .get(1);
+        Assert.assertEquals("blue", varNode1Block1.getName());
+
+        RuleNode ruleNode2Block1 = (RuleNode) blockNode1.getChildren().get(2);
+        Assert.assertEquals("color", ruleNode2Block1.getVariable());
+        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode2Block1
+                .getValue().getLexicalUnitType());
+        Assert.assertEquals("blue", ruleNode2Block1.getValue().getStringValue());
+
+        BlockNode blockNode2 = (BlockNode) root.getChildren().get(4);
+        RuleNode ruleNode1Block2 = (RuleNode) blockNode2.getChildren().get(0);
+        Assert.assertEquals("padding", ruleNode1Block2.getVariable());
+        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode1Block2
+                .getValue().getLexicalUnitType());
+        Assert.assertEquals("margin", ruleNode1Block2.getValue()
+                .getStringValue());
+
+        RuleNode ruleNode2Block2 = (RuleNode) blockNode2.getChildren().get(1);
+        Assert.assertEquals("margin", ruleNode2Block2.getVariable());
+        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode2Block2
+                .getValue().getLexicalUnitType());
+        Assert.assertEquals("margin", ruleNode2Block2.getValue()
+                .getStringValue());
+
+        RuleNode ruleNode3Block2 = (RuleNode) blockNode2.getChildren().get(2);
+        Assert.assertEquals("border-color", ruleNode3Block2.getVariable());
+        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode1Block2
+                .getValue().getLexicalUnitType());
+        Assert.assertEquals("blue", ruleNode3Block2.getValue().getStringValue());
+    }
+
+    @Test
+    public void testCompiler() throws Exception {
+        testCompiler(scss, css);
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/visitor/ImportVisitorTest.java b/sass/tests/src/com/vaadin/sass/testcases/visitor/ImportVisitorTest.java
new file mode 100644 (file)
index 0000000..8459139
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.visitor;
+
+import org.junit.Test;
+
+public class ImportVisitorTest {
+    @Test
+    public void canHandleNestedImports() {
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/visitor/MixinVisitorTest.java b/sass/tests/src/com/vaadin/sass/testcases/visitor/MixinVisitorTest.java
new file mode 100644 (file)
index 0000000..6b7cfcb
--- /dev/null
@@ -0,0 +1,279 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.visitor;
+
+import java.util.ArrayList;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.w3c.css.sac.LexicalUnit;
+
+import com.steadystate.css.parser.LexicalUnitImpl;
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.parser.SCSSLexicalUnit;
+import com.vaadin.sass.tree.BlockNode;
+import com.vaadin.sass.tree.MixinDefNode;
+import com.vaadin.sass.tree.MixinNode;
+import com.vaadin.sass.tree.RuleNode;
+import com.vaadin.sass.tree.VariableNode;
+import com.vaadin.sass.visitor.MixinVisitor;
+
+public class MixinVisitorTest {
+    private MixinVisitor mixinVisitor = new MixinVisitor();
+
+    @Test
+    public void testTraversMixinWithoutArgs() {
+        ScssStylesheet root = new ScssStylesheet();
+        MixinDefNode mixinDefNoArgs = new MixinDefNode("no-args", null);
+        BlockNode blockNode = new BlockNode(null);
+        mixinDefNoArgs.appendChild(blockNode);
+        root.appendChild(mixinDefNoArgs);
+
+        BlockNode blockWithMixin = new BlockNode(null);
+        MixinNode mixin = new MixinNode("no-args", null);
+        blockWithMixin.appendChild(mixin);
+        root.appendChild(blockWithMixin);
+
+        try {
+            mixinVisitor.traverse(root);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+
+        Assert.assertEquals(1, root.getChildren().size());
+        BlockNode child = (BlockNode) root.getChildren().get(0);
+        BlockNode fromMixin = (BlockNode) child.getChildren().get(0);
+        Assert.assertFalse(fromMixin.hasChildren());
+    }
+
+    @Test
+    public void testTraverseMixinWithNonDefaultArgs() {
+        ScssStylesheet root = new ScssStylesheet();
+        ArrayList<VariableNode> args = new ArrayList<VariableNode>();
+        args.add(new VariableNode("arg", null, false));
+        MixinDefNode mixinDefWithNonDefaultArg = new MixinDefNode(
+                "non-default-arg", args);
+        BlockNode blockNode = new BlockNode(null);
+        mixinDefWithNonDefaultArg.appendChild(blockNode);
+        root.appendChild(mixinDefWithNonDefaultArg);
+
+        BlockNode blockWithMixin = new BlockNode(null);
+        ArrayList<LexicalUnit> includeArgs = new ArrayList<LexicalUnit>();
+        LexicalUnit includeArg = LexicalUnitImpl.createPixel(null, 1f);
+        includeArgs.add(includeArg);
+        MixinNode mixin = new MixinNode("non-default-arg", includeArgs);
+        blockWithMixin.appendChild(mixin);
+        root.appendChild(blockWithMixin);
+
+        try {
+            mixinVisitor.traverse(root);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+
+        Assert.assertEquals(1, root.getChildren().size());
+        BlockNode child = (BlockNode) root.getChildren().get(0);
+        VariableNode varNode = (VariableNode) child.getChildren().get(0);
+        Assert.assertEquals("arg", varNode.getName());
+        Assert.assertEquals(LexicalUnit.SAC_PIXEL, varNode.getExpr()
+                .getLexicalUnitType());
+        Assert.assertEquals(1f, varNode.getExpr().getFloatValue(), 0);
+        BlockNode fromMixin = (BlockNode) child.getChildren().get(1);
+        Assert.assertFalse(fromMixin.hasChildren());
+
+    }
+
+    @Test
+    public void testTraverseMixinWithDefaultArgs() {
+        ScssStylesheet root = new ScssStylesheet();
+        ArrayList<VariableNode> args = new ArrayList<VariableNode>();
+        args.add(new VariableNode("arg", LexicalUnitImpl.createPixel(null, 1f),
+                false));
+        MixinDefNode mixinDefWithNonDefaultArg = new MixinDefNode(
+                "default-arg", args);
+        BlockNode blockNode = new BlockNode(null);
+        mixinDefWithNonDefaultArg.appendChild(blockNode);
+        root.appendChild(mixinDefWithNonDefaultArg);
+
+        BlockNode blockWithMixin = new BlockNode(null);
+        MixinNode mixin = new MixinNode("default-arg", null);
+        blockWithMixin.appendChild(mixin);
+        root.appendChild(blockWithMixin);
+
+        try {
+            mixinVisitor.traverse(root);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+
+        Assert.assertEquals(1, root.getChildren().size());
+        BlockNode child = (BlockNode) root.getChildren().get(0);
+        VariableNode varNode = (VariableNode) child.getChildren().get(0);
+        Assert.assertEquals("arg", varNode.getName());
+        Assert.assertEquals(LexicalUnit.SAC_PIXEL, varNode.getExpr()
+                .getLexicalUnitType());
+        Assert.assertEquals(1f, varNode.getExpr().getFloatValue(), 0);
+        BlockNode fromMixin = (BlockNode) child.getChildren().get(1);
+        Assert.assertFalse(fromMixin.hasChildren());
+
+    }
+
+    @Test
+    public void testMixinWithoutArgument() {
+        /*
+         * ArrayList<String> args = new ArrayList<String>(); args.add("arg");
+         * MixinDefNode mixinDefWithArgs = new MixinDefNode("with-args", args);
+         * RuleNode ruleNode = new RuleNode("var",
+         * com.vaadin.sass.parser.LexicalUnitImpl.createVariable(0, 0, null,
+         * "arg"), false); mixinDefWithArgs.appendChild(ruleNode);
+         */
+        ScssStylesheet root = new ScssStylesheet();
+        MixinDefNode mixinDefNoArgs = new MixinDefNode("table-base", null);
+        BlockNode thBlockNode = new BlockNode(null);
+        RuleNode textAlignRuleNode = new RuleNode("text-align",
+                LexicalUnitImpl.createString(null, "center"), false, null);
+        thBlockNode.appendChild(textAlignRuleNode);
+        RuleNode fontWeightRuleNode = new RuleNode("font-weight",
+                LexicalUnitImpl.createString(null, "bold"), false, null);
+        thBlockNode.appendChild(fontWeightRuleNode);
+        mixinDefNoArgs.appendChild(thBlockNode);
+
+        BlockNode tdthBlockNode = new BlockNode(null);
+        RuleNode paddingRuleNode = new RuleNode("padding",
+                LexicalUnitImpl.createPixel(null, 2f), false, null);
+        tdthBlockNode.appendChild(paddingRuleNode);
+        mixinDefNoArgs.appendChild(tdthBlockNode);
+        root.appendChild(mixinDefNoArgs);
+
+        BlockNode dataBlock = new BlockNode(null);
+        MixinNode mixinNode = new MixinNode("table-base", null);
+        dataBlock.appendChild(mixinNode);
+        root.appendChild(dataBlock);
+
+        try {
+            mixinVisitor.traverse(root);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+
+        Assert.assertEquals(1, root.getChildren().size());
+        dataBlock = (BlockNode) root.getChildren().get(0);
+        BlockNode thBlock = (BlockNode) dataBlock.getChildren().get(0);
+        Assert.assertEquals(2, thBlock.getChildren().size());
+        BlockNode thtdBlock = (BlockNode) dataBlock.getChildren().get(1);
+        Assert.assertEquals(1, thtdBlock.getChildren().size());
+
+        /*
+         * Assert.assertEquals(2, root.getChildren().size()); BlockNode
+         * datathBlockNode = (BlockNode) root.getChildren().get(0);
+         * Assert.assertEquals(LexicalUnit.SAC_IDENT, datathBlockNode
+         * .getSelectorList().item(0).getSelectorType());
+         * Assert.assertEquals("text-align", ((RuleNode) datathBlockNode
+         * .getChildren().get(0)).getVariable()); Assert.assertEquals("center",
+         * ((RuleNode) datathBlockNode.getChildren()
+         * .get(0)).getValue().getStringValue());
+         * Assert.assertEquals("font-weight", ((RuleNode) datathBlockNode
+         * .getChildren().get(1)).getVariable()); Assert.assertEquals("bold",
+         * ((RuleNode) datathBlockNode.getChildren()
+         * .get(1)).getValue().getStringValue());
+         * 
+         * BlockNode datathdatatdBlockNode = (BlockNode)
+         * root.getChildren().get(1); Assert.assertEquals(LexicalUnit.SAC_IDENT,
+         * datathdatatdBlockNode .getSelectorList().item(0).getSelectorType());
+         * Assert.assertEquals(LexicalUnit.SAC_IDENT, datathdatatdBlockNode
+         * .getSelectorList().item(1).getSelectorType());
+         * Assert.assertEquals("padding", ((RuleNode) datathdatatdBlockNode
+         * .getChildren().get(0)).getVariable()); Assert.assertEquals(2.0f,
+         * ((RuleNode) datathdatatdBlockNode
+         * .getChildren().get(0)).getValue().getFloatValue(), 0);
+         * Assert.assertEquals(LexicalUnit.SAC_PIXEL, ((RuleNode)
+         * datathdatatdBlockNode.getChildren().get(0))
+         * .getValue().getLexicalUnitType());
+         */
+
+    }
+
+    @Test
+    public void testMixinWithArgument() {
+        ScssStylesheet root = new ScssStylesheet();
+        ArrayList<VariableNode> argNameList = new ArrayList<VariableNode>();
+        argNameList.add(new VariableNode("dist", null, false));
+        MixinDefNode mixinDef = new MixinDefNode("left", argNameList);
+
+        RuleNode floatRuleNode = new RuleNode("float",
+                LexicalUnitImpl.createString(null, "left"), false, null);
+        mixinDef.appendChild(floatRuleNode);
+        RuleNode marginLeftRuleNode = new RuleNode("margin-left",
+                com.vaadin.sass.parser.LexicalUnitImpl.createVariable(0, 0,
+                        null, "dist"), false, null);
+        mixinDef.appendChild(marginLeftRuleNode);
+        root.appendChild(mixinDef);
+
+        BlockNode dataBlock = new BlockNode(null);
+        ArrayList<LexicalUnit> argValueList = new ArrayList<LexicalUnit>();
+        LexicalUnit arg = LexicalUnitImpl.createPixel(null, 10f);
+        argValueList.add(arg);
+        MixinNode mixinNode = new MixinNode("left", argValueList);
+        dataBlock.appendChild(mixinNode);
+        root.appendChild(dataBlock);
+
+        try {
+            mixinVisitor.traverse(root);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+
+        Assert.assertEquals(1, root.getChildren().size());
+        BlockNode dataBlockNode = (BlockNode) root.getChildren().get(0);
+        VariableNode variable = (VariableNode) dataBlockNode.getChildren().get(
+                0);
+        Assert.assertEquals("dist", variable.getName());
+        Assert.assertEquals("float", ((RuleNode) dataBlockNode.getChildren()
+                .get(1)).getVariable());
+        Assert.assertEquals("left", ((RuleNode) dataBlockNode.getChildren()
+                .get(1)).getValue().getStringValue());
+        Assert.assertEquals("margin-left", ((RuleNode) dataBlockNode
+                .getChildren().get(2)).getVariable());
+        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE,
+                ((RuleNode) dataBlockNode.getChildren().get(2)).getValue()
+                        .getLexicalUnitType());
+    }
+
+    @Test
+    public void testTopLevelInclude() {
+        ScssStylesheet root = new ScssStylesheet();
+
+        MixinDefNode defNode = new MixinDefNode("mixin", null);
+        defNode.appendChild(new RuleNode("var", null, false, null));
+        root.appendChild(defNode);
+
+        MixinNode mixinNode = new MixinNode("mixin", null);
+        root.appendChild(mixinNode);
+
+        try {
+            mixinVisitor.traverse(root);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+
+        Assert.assertEquals(1, root.getChildren().size());
+        RuleNode varRule = (RuleNode) root.getChildren().get(0);
+        Assert.assertEquals("var", varRule.getVariable());
+
+    }
+
+}
diff --git a/sass/tests/src/com/vaadin/sass/testcases/visitor/NestedPropertiesVisitorTest.java b/sass/tests/src/com/vaadin/sass/testcases/visitor/NestedPropertiesVisitorTest.java
new file mode 100644 (file)
index 0000000..3885869
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.testcases.visitor;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.vaadin.sass.ScssStylesheet;
+import com.vaadin.sass.tree.NestPropertiesNode;
+import com.vaadin.sass.tree.RuleNode;
+import com.vaadin.sass.tree.VariableNode;
+import com.vaadin.sass.visitor.NestPropertiesVisitor;
+
+public class NestedPropertiesVisitorTest {
+    private NestPropertiesVisitor visitor = new NestPropertiesVisitor();
+
+    @Test
+    public void testEmptyTreeNoChange() {
+        ScssStylesheet root = new ScssStylesheet();
+        Assert.assertFalse(root.hasChildren());
+        visitor.traverse(root);
+        Assert.assertFalse(root.hasChildren());
+    }
+
+    @Test
+    public void testNoNestPropertiesNodeNoChange() {
+        ScssStylesheet root = new ScssStylesheet();
+        root.appendChild(new VariableNode("", ""));
+        Assert.assertEquals(1, root.getChildren().size());
+        visitor.traverse(root);
+        Assert.assertEquals(1, root.getChildren().size());
+    }
+
+    @Test
+    public void testNestedPropertiesCanBeUnnested() {
+        ScssStylesheet root = new ScssStylesheet();
+        NestPropertiesNode nested = new NestPropertiesNode("nested");
+        RuleNode child0 = new RuleNode("child0", null, false, null);
+        RuleNode child1 = new RuleNode("child1", null, true, null);
+        nested.appendChild(child0);
+        nested.appendChild(child1);
+        root.appendChild(nested);
+
+        Assert.assertEquals(1, root.getChildren().size());
+        visitor.traverse(root);
+        Assert.assertEquals(2, root.getChildren().size());
+
+        for (int i = 0; i < root.getChildren().size(); i++) {
+            RuleNode node = (RuleNode) root.getChildren().get(i);
+            Assert.assertEquals("nested-child" + i, node.getVariable());
+        }
+    }
+}
diff --git a/sass/tests/src/com/vaadin/sass/tree/ImportNodeTest.java b/sass/tests/src/com/vaadin/sass/tree/ImportNodeTest.java
new file mode 100644 (file)
index 0000000..b3a1c8f
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.vaadin.sass.tree;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.steadystate.css.parser.SACMediaListImpl;
+
+public class ImportNodeTest {
+    @Test
+    public void testIsPureCssImportShouldReturnTrueWhenIsURL() {
+        ImportNode node = new ImportNode("", null, true);
+        Assert.assertTrue(node.isPureCssImport());
+    }
+
+    @Test
+    public void testIsPureCssImportShouldReturnTrueWhenStartsWithHttp() {
+        ImportNode node = new ImportNode("http://abc", null, false);
+        Assert.assertTrue(node.isPureCssImport());
+    }
+
+    @Test
+    public void testIsPureCssImportShouldReturnTrueWhenEndsWithCss() {
+        ImportNode node = new ImportNode("abc.css", null, false);
+        Assert.assertTrue(node.isPureCssImport());
+    }
+
+    @Test
+    public void testIsPureCssImportShouldReturnTrueWhenHasMediaQueries() {
+        SACMediaListImpl ml = new SACMediaListImpl();
+        ml.add("screen");
+        ImportNode node = new ImportNode("", ml, false);
+        Assert.assertTrue(node.isPureCssImport());
+    }
+
+    @Test
+    public void testIsPureCssImportShouldReturnFalseInOtherCases() {
+        ImportNode node = new ImportNode("", null, false);
+        Assert.assertFalse(node.isPureCssImport());
+    }
+
+    @Test
+    public void testToStringWhenIsURL() {
+        ImportNode node = new ImportNode("test", null, true);
+        Assert.assertEquals("@import url(test);", node.toString());
+    }
+
+    @Test
+    public void testToStringWhenIsNotURL() {
+        ImportNode node = new ImportNode("test", null, false);
+        Assert.assertEquals("@import \"test\";", node.toString());
+    }
+
+    @Test
+    public void testToStringWithMediaQueries() {
+        SACMediaListImpl ml = new SACMediaListImpl();
+        ml.add("screen");
+        ImportNode node = new ImportNode("test", ml, true);
+        Assert.assertEquals("@import url(test) screen;", node.toString());
+    }
+}
diff --git a/tests/sass/resources/basic/empty_block.css b/tests/sass/resources/basic/empty_block.css
deleted file mode 100644 (file)
index 31c0b47..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-.v-panel-deco {
-}
\ No newline at end of file
diff --git a/tests/sass/resources/basic/media.css b/tests/sass/resources/basic/media.css
deleted file mode 100644 (file)
index f118883..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-.v-view {
-       height: 100%;
-       width: 100%;
-       overflow: auto;
-       outline: none;
-       margin-top: -1px;
-       border-top: 1px solid transparent;
-       position: relative;
-}
-
-@media print {
-       .v-generated-body {
-               height: auto;
-               min-height: 20cm;
-               overflow: visible;
-       }
-       .v-app {
-               height: auto;
-               min-height: 20cm;
-       }
-       .v-view {
-               overflow: visible;
-       }
-       .v-gridlayout {
-               overflow: visible !important;
-       }
-}
\ No newline at end of file
diff --git a/tests/sass/resources/basic/properties.css b/tests/sass/resources/basic/properties.css
deleted file mode 100644 (file)
index 946ee3a..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-.all-the-properties {
-       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
-       position: absolute;
-       overflow: hidden;
-       outline: none;
-       text-align: left;
-       zoom: 1;
-       white-space: nowrap;
-       background: #123456;
-       border-bottom: 1px solid #ffffff;
-       filter: alpha(opacity = 30);
-       cursor: pointer;
-       overflow: auto;
-       width: 100%;
-       display: inline-block;
-}
-
-.lexical-value-test {
-       margin: none;
-       margin: 0px;
-       margin: 0;
-       margin: 0.5px;
-       margin: 2px;
-       margin: -0.5px;
-       margin: -2px;
-       margin: 10px 20px;
-       margin: -10px 20px;
-       margin: 20px -10px -20px 40px;
-       margin-right: -0.5px;
-}
-
-.background-positioning {
-       background-position: 0 0;
-       background-position: left top;
-       background-position: left 40px;
-       background-position: 50px left;
-       background-position: right -286px;
-}
-
-.user-select-rules {
-       user-select: none;
-       -ie-user-select: none;
-}
-
-.box-sizing-rules {
-       box-sizing: border-box;
-       -moz-box-sizing: border-box;
-}
-
-.user-select-and-box-sizing-combined {
-       -khtml-user-select: none;
-       -moz-user-select: none;
-       -ie-user-select: none;
-       user-select: none;
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       -ms-box-sizing: border-box;
-       box-sizing: border-box;
-}
-
-@media print {
-       .v-generated-body {
-               height: auto;
-               min-height: 20cm;
-               overflow: visible;
-       }
-}
diff --git a/tests/sass/resources/basic/reindeer.css b/tests/sass/resources/basic/reindeer.css
deleted file mode 100644 (file)
index 4f1cd47..0000000
+++ /dev/null
@@ -1,5891 +0,0 @@
-.v-theme-version:after {
-       content: "6_8_0_dev-20120306";
-}
-
-.v-theme-version-6_8_0_dev-20120306 {
-       display: none;
-}
-
-.v-absolutelayout-wrapper {
-       position: absolute;
-       overflow: hidden;
-}
-
-.v-accordion {
-       position: relative;
-       outline: none;
-       overflow: hidden;
-       text-align: left;
-}
-
-.v-accordion-item {
-       position: relative;
-       zoom: 1;
-}
-
-.v-accordion-item-caption {
-       overflow: hidden;
-       white-space: nowrap;
-       background: #eeeeee;
-       border-bottom: 1px solid #dddddd;
-}
-
-.v-accordion-item-caption .v-caption {
-       cursor: pointer;
-}
-
-.v-accordion-item-open .v-accordion-item-caption .v-caption {
-       cursor: default;
-}
-
-.v-accordion-item-content {
-       position: absolute;
-       overflow: auto;
-       width: 100%;
-}
-
-.v-button {
-       display: inline-block;
-       zoom: 1;
-       text-align: center;
-       text-decoration: none;
-       border: 2px outset #dddddd;
-       background: #eeeeee;
-       cursor: pointer;
-       white-space: nowrap;
-       margin: 0;
-       padding: 0.2em 1em;
-       color: inherit;
-       font: inherit;
-       line-height: normal;
-       -khtml-user-select: none;
-       -moz-user-select: none;
-       -ie-user-select: none;
-       user-select: none;
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       -ms-box-sizing: border-box;
-       box-sizing: border-box;
-}
-
-.v-button.v-disabled {
-       cursor: default;
-}
-
-.v-ie6 .v-button {
-       display: inline;
-}
-
-.v-ie7 .v-button {
-       display: inline;
-}
-
-.v-button-wrap, .v-button-caption {
-       vertical-align: middle;
-       white-space: nowrap;
-       font: inherit;
-       color: inherit;
-       line-height: normal;
-}
-
-.v-button .v-icon, .v-nativebutton .v-icon {
-       vertical-align: middle;
-       margin-right: 3px;
-       border: none;
-}
-
-.v-button .v-errorindicator, .v-nativebutton .v-errorindicator {
-       display: inline-block;
-       zoom: 1;
-       vertical-align: middle;
-       float: none;
-}
-
-.v-button-link, .v-nativebutton-link {
-       border: none;
-       text-align: left;
-       background: transparent;
-       padding: 0;
-       color: inherit;
-       -khtml-user-select: text;
-       -moz-user-select: text;
-       -ie-user-select: text;
-       user-select: text;
-}
-
-.v-sa .v-button-link:focus {
-       outline-offset: -3px;
-}
-
-.v-button-link .v-button-caption, .v-nativebutton-link .v-nativebutton-caption {
-       text-decoration: underline;
-       color: inherit;
-       text-align: left;
-}
-
-.v-nativebutton {
-       text-align: center;
-       cursor: pointer;
-       white-space: nowrap;
-       margin: 0;
-       color: inherit;
-       font: inherit;
-       line-height: normal;
-}
-
-.v-nativebutton .v-nativebutton-caption {
-       vertical-align: middle;
-       white-space: nowrap;
-       font: inherit;
-       color: inherit;
-}
-
-.v-nativebutton .v-icon {
-       vertical-align: middle;
-       margin-right: 3px;
-}
-
-.v-nativebutton .v-errorindicator {
-       display: inline-block;
-       zoom: 1;
-       float: none;
-}
-
-.v-ie6 .v-nativebutton {
-       width: 1px;
-}
-
-.v-ie .v-nativebutton {
-       overflow: visible;
-       padding-left: 1em;
-       padding-right: 1em;
-}
-
-.v-ie .v-nativebutton-link {
-       padding: 0;
-}
-
-.v-checkbox {
-       display: block;
-}
-
-.v-checkbox, .v-checkbox label, .v-checkbox input, .v-checkbox .v-icon {
-       vertical-align: middle;
-       white-space: nowrap;
-}
-
-.v-ie6 .v-checkbox, .v-ie7 .v-checkbox {
-       vertical-align: baseline;
-}
-
-.v-checkbox .v-icon {
-       margin: 0 2px;
-}
-
-.v-checkbox .v-errorindicator {
-       float: none;
-       display: inline;
-       display: inline-block;
-       zoom: 1;
-}
-
-.v-captionwrapper {
-       text-align: left;
-}
-
-.v-caption {
-       overflow: hidden;
-       white-space: nowrap;
-}
-
-.v-errorindicator {
-       float: left;
-}
-
-.v-caption .v-icon {
-       float: left;
-       padding-right: 2px;
-       vertical-align: middle;
-}
-
-.v-caption .v-captiontext {
-       float: left;
-       overflow: hidden;
-       vertical-align: middle;
-}
-
-.v-caption .v-required-field-indicator {
-       float: left;
-}
-
-.v-caption-clearelem {
-       clear: both;
-       width: 0;
-       height: 0;
-       overflow: hidden;
-}
-
-.v-ie6 .v-errorindicator, .v-ie6 .v-icon, .v-ie6 .v-captiontext, .v-ie6 .v-required-field-indicator {
-       display: inline;
-}
-
-.v-ie9 .v-gridlayout-margin > div > div > .v-caption, .v-ie9 .v-verticallayout > div > div > .v-caption, .v-ie9 .v-horizontallayout > div > div > .v-caption {
-       margin-right: -0.5px;
-}
-
-.v-generated-body {
-       width: 100%;
-       height: 100%;
-       border: 0;
-       margin: 0;
-       overflow: hidden;
-}
-
-.v-app {
-       height: 100%;
-}
-
-.v-app, .v-window, .v-popupview-popup, .v-label, .v-caption {
-       cursor: default;
-}
-
-div.v-app-loading {
-       background-image: url(../base/common/img/loading-indicator.gif);
-       background-repeat: no-repeat;
-       background-position: 50%;
-       width: 100%;
-       height: 100%;
-}
-
-.v-view {
-       height: 100%;
-       width: 100%;
-       overflow: auto;
-       outline: none;
-       margin-top: -1px;
-       border-top: 1px solid transparent;
-       position: relative;
-}
-
-@media print {
-       .v-generated-body {
-               height: auto;
-               min-height: 20cm;
-               overflow: visible;
-       }
-       .v-app {
-               height: auto;
-               min-height: 20cm;
-       }
-       .v-view {
-               overflow: visible;
-       }
-       .v-gridlayout {
-               overflow: visible !important;
-       }
-}
-
-.v-view:active, .v-view:focus {
-       outline: none;
-}
-
-.v-app select, .v-window select {
-       margin: 0;
-}
-
-.v-disabled {
-       opacity: 0.3;
-       filter: alpha(opacity = 30);
-       cursor: default;
-}
-
-.v-disabled * {
-       cursor: default;
-}
-
-.v-disabled .v-disabled {
-       opacity: 1;
-}
-
-.v-required-field-indicator {
-       padding-left: 2px;
-       color: red;
-}
-
-.v-form fieldset {
-       border: none;
-       padding: 0;
-       margin: 0;
-}
-
-.v-tooltip {
-       cursor: default;
-       background: #ffffff;
-}
-
-.v-tooltip-text {
-       overflow: auto;
-}
-
-.v-tooltip .v-errormessage {
-       overflow: auto;
-}
-
-.v-contextmenu {
-       background: #ffffff;
-}
-
-.v-contextmenu .gwt-MenuItem {
-       cursor: pointer;
-       vertical-align: middle;
-       padding: 0;
-       border: 0;
-       margin: 0;
-}
-
-.v-contextmenu .gwt-MenuItem div {
-       cursor: pointer;
-       vertical-align: middle;
-       white-space: nowrap;
-}
-
-.v-contextmenu .gwt-MenuItem-selected div {
-       background: #aaaaaa;
-       color: #ffffff;
-}
-
-.v-contextmenu table {
-       border-collapse: collapse;
-       margin: 0;
-       padding: 0;
-}
-
-.v-contextmenu .gwt-MenuItem img {
-       margin-right: 1em;
-       vertical-align: middle;
-}
-
-.v-label pre {
-       margin: 0;
-}
-
-.v-label-undef-w {
-       white-space: nowrap;
-}
-
-.v-label h1, .v-label h2, .v-label h3, .v-label h4, .v-label h5, .v-label h6 {
-       line-height: normal;
-}
-
-.v-loading-indicator, .v-loading-indicator-delay, .v-loading-indicator-wait {
-       position: absolute;
-       top: 0;
-       right: 0;
-       z-index: 30000;
-       width: 31px;
-       height: 31px;
-       background: transparent url(../base/common/img/loading-indicator.gif);
-       margin-right: 5px;
-       margin-top: 5px;
-}
-
-.v-loading-indicator-delay {
-       background-image: url(../base/common/img/loading-indicator-delay.gif);
-}
-
-.v-loading-indicator-wait {
-       background-image: url(../base/common/img/loading-indicator-wait.gif);
-}
-
-.v-debug-console {
-       background: #ffffff;
-       opacity: 0.9;
-       border: 1px solid #000000;
-       font-family: sans-serif;
-}
-
-.v-debug-console-caption {
-       background: #000000;
-       border-bottom: 1px solid grey;
-       color: white;
-       font-weight: bold;
-}
-
-.v-debug-console-content {
-       font-size: x-small;
-       overflow: auto;
-       white-space: pre;
-}
-
-.v-debug-console-content input {
-       font-size: xx-small;
-}
-
-.v-app .invalidlayout, .v-app .invalidlayout * {
-       background: #ff9999 !important;
-}
-
-.v-app input[type="text"], .v-app input[type="password"], .v-app input[type="reset"], .v-app select, .v-app textarea, .v-window input[type="text"], .v-window input[type="password"], .v-window input[type="reset"], .v-window select, .v-window textarea {
-       padding: 2px;
-}
-
-.v-drag-element {
-       z-index: 60000;
-       position: absolute;
-       opacity: 0.5;
-       filter: alpha(opacity = 50);
-       cursor: default;
-}
-
-.v-csslayout {
-       overflow: hidden;
-}
-
-.v-csslayout-margin-top {
-       padding-top: 12px;
-}
-
-.v-csslayout-margin-bottom {
-       padding-bottom: 12px;
-}
-
-.v-csslayout-margin-left {
-       padding-left: 12px;
-}
-
-.v-csslayout-margin-right {
-       padding-right: 12px;
-}
-
-.v-customcomponent {
-       overflow: hidden;
-}
-
-.v-customlayout {
-       overflow: hidden;
-}
-
-.v-datefield {
-       white-space: nowrap;
-       float: left;
-}
-
-.v-datefield-textfield {
-       vertical-align: top;
-}
-
-.v-datefield-button {
-       cursor: pointer;
-}
-
-.v-datefield-prompt .v-datefield-textfield {
-       color: #999999;
-       font-style: italic;
-}
-
-.v-datefield .v-datefield-button-readonly {
-       display: none;
-}
-
-.v-datefield-calendarpanel table {
-       width: 100%;
-}
-
-.v-datefield-calendarpanel td {
-       padding: 0;
-       margin: 0;
-}
-
-.v-datefield-calendarpanel:focus {
-       outline: none;
-}
-
-.v-datefield-calendarpanel-header td {
-       text-align: center;
-}
-
-.v-datefield-calendarpanel-month {
-       text-align: center;
-       white-space: nowrap;
-}
-
-.v-datefield-calendarpanel-weeknumber {
-       color: #999999;
-       border-right: 1px solid #dddddd;
-       font-size: 0.9em;
-}
-
-.v-datefield-calendarpanel-day, .v-datefield-calendarpanel-day-today {
-       cursor: pointer;
-}
-
-.v-datefield-calendarpanel-day-today {
-       border: 1px solid #dddddd;
-}
-
-.v-disabled .v-datefield-calendarpanel-day, .v-disabled .v-datefield-calendarpanel-day-today {
-       cursor: default;
-}
-
-.v-datefield-calendarpanel-day-disabled {
-       cursor: default;
-       opacity: 0.5;
-}
-
-.v-datefield-calendarpanel-day-selected {
-       cursor: default;
-       background: #333333;
-       color: #ffffff;
-}
-
-.v-datefield-calendarpanel-day-focused {
-       outline: 1px dotted black;
-}
-
-.v-datefield-calendarpanel-day-offmonth {
-       color: #666666;
-}
-
-.v-ie6 .v-datefield-calendarpanel-day, .v-ie7 .v-datefield-calendarpanel-day {
-       margin: 1px;
-}
-
-.v-ie6 .v-datefield-calendarpanel-day-focused, .v-ie7 .v-datefield-calendarpanel-day-focused {
-       border: 1px dotted black;
-       margin: 0px;
-}
-
-.v-datefield-time {
-       white-space: nowrap;
-}
-
-.v-datefield-time .v-label {
-       display: inline;
-}
-
-.v-datefield-popup {
-       background: #ffffff;
-}
-
-.v-ie6 .v-disabled .v-datefield-button, .v-ie6 .v-disabled .v-datefield-textfield, .v-ie7 .v-disabled .v-datefield-button, .v-ie7 .v-disabled .v-datefield-textfield {
-       filter: alpha(opacity = 30);
-}
-
-.v-ddwrapper {
-       padding: 2px;
-       -moz-border-radius: 4px;
-       -webkit-border-radius: 4px;
-       border-radius: 4px;
-       position: relative;
-}
-
-[draggable=true] {
-       -khtml-user-drag: element;
-       -webkit-user-drag: element;
-       -khtml-user-select: none;
-       -webkit-user-select: none;
-}
-
-.v-ie .v-ddwrapper a.drag-start {
-       display: block;
-       position: absolute;
-       top: 0;
-       bottom: 0;
-       left: 0;
-       right: 0;
-       width: 100%;
-       height: 100%;
-       opacity: 0;
-       background-color: cyan;
-       filter: alpha(opacity = 0);
-}
-
-.v-ddwrapper-over {
-       border: 2px solid #1d9dff;
-       background-color: #bcdcff;
-       padding: 0;
-}
-
-.v-ddwrapper-over {
-       background-color: rgba(169, 209, 255, 0.6);
-}
-
-.no-box-drag-hints .v-ddwrapper-over {
-       border: none;
-       background-color: transparent;
-       padding: 2px;
-}
-
-.v-app .v-ddwrapper-over-top, .v-window .v-ddwrapper-over-top, .v-popupview-popup .v-ddwrapper-over-top {
-       border: none;
-       border-top: 2px solid #1d9dff;
-       background-color: transparent;
-       padding: 2px;
-       padding-top: 0;
-       -moz-border-radius: 0;
-       -webkit-border-radius: 0;
-       border-radius: 0;
-}
-
-.v-app .v-ddwrapper-over-bottom, .v-window .v-ddwrapper-over-bottom, .v-popupview-popup .v-ddwrapper-over-bottom {
-       border: none;
-       border-bottom: 2px solid #1d9dff;
-       background-color: transparent;
-       padding: 2px;
-       padding-bottom: 0;
-       -moz-border-radius: 0;
-       -webkit-border-radius: 0;
-       border-radius: 0;
-}
-
-.v-app .v-ddwrapper-over-left, .v-window .v-ddwrapper-over-left, .v-popupview-popup .v-ddwrapper-over-left {
-       border: none;
-       border-left: 2px solid #1d9dff;
-       background-color: transparent;
-       padding: 2px;
-       padding-left: 0;
-       -moz-border-radius: 0;
-       -webkit-border-radius: 0;
-       border-radius: 0;
-}
-
-.v-app .v-ddwrapper-over-right, .v-window .v-ddwrapper-over-right, .v-popupview-popup .v-ddwrapper-over-right {
-       border: none;
-       border-right: 2px solid #1d9dff;
-       background-color: transparent;
-       padding: 2px;
-       padding-right: 0;
-       -moz-border-radius: 0;
-       -webkit-border-radius: 0;
-       border-radius: 0;
-}
-
-.v-ddwrapper, .v-ddwrapper-over, .v-app .v-ddwrapper-over-top, .v-window .v-ddwrapper-over-top, .v-popupview-popup .v-ddwrapper-over-top, .v-app .v-ddwrapper-over-bottom, .v-window .v-ddwrapper-over-bottom, .v-popupview-popup .v-ddwrapper-over-bottom, .v-app .v-ddwrapper-over-left, .v-window .v-ddwrapper-over-left, .v-popupview-popup .v-ddwrapper-over-left, .v-app .v-ddwrapper-over-right, .v-window .v-ddwrapper-over-right, .v-popupview-popup .v-ddwrapper-over-right {
-       border-color: rgba(0, 109, 232, 0.6);
-}
-
-.v-ddwrapper-over-top:before, .v-ddwrapper-over-bottom:after, .v-ddwrapper-over-left:before, .v-ddwrapper-over-right:before {
-       display: block;
-       content: "";
-       position: absolute;
-       width: 6px;
-       height: 6px;
-       margin-top: -4px;
-       margin-left: -2px;
-       background: transparent url(../base/common/img/drag-slot-dot.png) no-repeat;
-}
-
-.v-ddwrapper-over-bottom:after {
-       margin-top: -2px;
-}
-
-.v-ddwrapper-over-left:before, .v-ddwrapper-over-right:before {
-       background-position: 0 -6px;
-       margin-top: -2px;
-       margin-left: -4px;
-}
-
-.v-ddwrapper-over-right:before {
-       position: relative;
-       margin-bottom: -4px;
-       margin-right: -4px;
-       margin-left: 0;
-       width: auto;
-       background-position: 100% -6px;
-}
-
-.no-horizontal-drag-hints .v-ddwrapper-over-left {
-       padding-left: 2px;
-       border-left: none;
-}
-
-.no-horizontal-drag-hints .v-ddwrapper-over-right {
-       padding-right: 2px;
-       border-right: none;
-}
-
-.no-vertical-drag-hints .v-ddwrapper-over-top {
-       padding-top: 2px;
-       border-top: none;
-}
-
-.no-vertical-drag-hints .v-ddwrapper-over-bottom {
-       padding-bottom: 2px;
-       border-bottom: none;
-}
-
-.no-horizontal-drag-hints .v-ddwrapper-over-left:before, .no-horizontal-drag-hints .v-ddwrapper-over-right:before, .no-vertical-drag-hints .v-ddwrapper-over-top:before, .no-vertical-drag-hints .v-ddwrapper-over-bottom:after {
-       display: none;
-}
-
-.v-table .v-embedded-image {
-       display: inline-block;
-}
-
-.v-formlayout-cell .v-errorindicator {
-       display: block;
-}
-
-.v-formlayout-error-indicator {
-       width: 12px;
-}
-
-.v-formlayout-captioncell {
-       text-align: right;
-       white-space: nowrap;
-}
-
-.v-formlayout-captioncell .v-caption {
-       overflow: visible;
-}
-
-.v-formlayout-spacing .v-formlayout-row .v-formlayout-captioncell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-contentcell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-errorcell {
-       padding-top: 6px;
-}
-
-.v-formlayout-spacing .v-formlayout-firstrow .v-formlayout-captioncell, .v-formlayout-spacing .v-formlayout-firstrow .v-formlayout-contentcell, .v-formlayout-spacing .v-formlayout-firstrow .v-formlayout-errorcell {
-       padding-top: 0;
-}
-
-.v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-captioncell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-contentcell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-errorcell {
-       padding-top: 12px;
-}
-
-.v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-captioncell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-contentcell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-errorcell {
-       padding-bottom: 12px;
-}
-
-.v-formlayout-margin-left .v-formlayout-captioncell {
-       padding-left: 12px;
-}
-
-.v-formlayout-margin-right .v-formlayout-contentcell {
-       padding-right: 12px;
-}
-
-.v-formlayout-captioncell .v-caption .v-required-field-indicator {
-       float: none;
-}
-
-.v-gridlayout-margin-top {
-       padding-top: 12px;
-}
-
-.v-gridlayout-margin-bottom {
-       padding-bottom: 12px;
-}
-
-.v-gridlayout-margin-left {
-       padding-left: 12px;
-}
-
-.v-gridlayout-margin-right {
-       padding-right: 12px;
-}
-
-.v-gridlayout-spacing-on {
-       padding-left: 6px;
-       padding-top: 6px;
-       overflow: hidden;
-}
-
-.v-gridlayout-spacing, .v-gridlayout-spacing-off {
-       padding-left: 0;
-       padding-top: 0;
-}
-
-.v-gridlayout-spacing-off {
-       overflow: hidden;
-}
-
-.v-ie6 .v-gridlayout, .v-ie7 .v-gridlayout {
-       overflow: hidden;
-}
-
-.v-link {
-       white-space: nowrap;
-}
-
-.v-link a {
-       vertical-align: middle;
-       text-decoration: none;
-}
-
-.v-link span {
-       text-decoration: underline;
-       vertical-align: middle;
-}
-
-.v-disabled a {
-       cursor: default;
-}
-
-.v-link img {
-       vertical-align: middle;
-       border: none;
-}
-
-.v-loginform {
-       height: 140px;
-       width: 200px;
-}
-
-.v-app-loginpage .v-button, .v-app-loginpage .v-button {
-       float: left;
-}
-
-.v-menubar {
-       float: left;
-       white-space: nowrap;
-}
-
-.v-menubar .v-menubar-menuitem {
-       cursor: default;
-       vertical-align: middle;
-       white-space: nowrap;
-       display: inline;
-       display: inline-block;
-       zoom: 1;
-}
-
-.v-menubar .v-menubar-menuitem-caption .v-icon {
-       vertical-align: middle;
-       white-space: nowrap;
-}
-
-.v-menubar-submenu {
-       background: #ffffff;
-}
-
-.v-menubar-menuitem-selected {
-       background: #333333;
-       color: #ffffff;
-}
-
-.v-menubar-submenu .v-menubar-menuitem {
-       cursor: default;
-       display: block;
-       position: relative;
-       padding-right: 1.5em;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-caption {
-       display: block;
-}
-
-.v-menubar-submenu .v-menubar-menuitem *, .v-menubar-submenu .v-menubar-menuitem-caption * {
-       white-space: nowrap;
-}
-
-.v-menubar-submenu-indicator {
-       display: none;
-       font-family: arial, helvetica, sans-serif;
-}
-
-.v-menubar-submenu .v-menubar-submenu-indicator {
-       display: block;
-       position: absolute;
-       right: 0;
-       width: 1em;
-       height: 1em;
-       font-size: 0.9em;
-}
-
-.v-menubar-menuitem-disabled, .v-menubar span.v-menubar-menuitem-disabled:hover, .v-menubar span.v-menubar-menuitem-disabled:focus, .v-menubar span.v-menubar-menuitem-disabled:active {
-       color: #999999;
-}
-
-.v-menubar-more-menuitem {
-       font-family: arial, helvetica, sans-serif;
-}
-
-.v-menubar-separator {
-       overflow: hidden;
-}
-
-.v-menubar-separator span {
-       display: block;
-       text-indent: -9999px;
-       font-size: 1px;
-       line-height: 1px;
-       border-top: 1px solid #dddddd;
-       margin: 3px 0 2px;
-       overflow: hidden;
-}
-
-.v-menubar .v-icon, .v-menubar-submenu .v-icon {
-       margin-right: 3px;
-}
-
-.v-menubar:focus, .v-menubar-popup:focus, .v-menubar-popup .popupContent:focus, .v-menubar-popup .popupContent .v-menubar-submenu:focus {
-       outline: none;
-}
-
-.v-menubar-submenu-check-column .v-menubar-menuitem {
-       padding-left: 6px;
-}
-
-.v-menubar-submenu-check-column .v-menubar-menuitem-caption {
-       padding-left: 18px;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-checked .v-menubar-menuitem-caption {
-       background: transparent url(../base/menubar/img/check.gif) no-repeat left;
-}
-
-.v-Notification {
-       background: #999999;
-       color: #ffffff;
-       cursor: pointer;
-       overflow: hidden;
-       padding: 1em;
-       max-width: 85%;
-}
-
-.v-Notification h1, .v-Notification p, .v-Notification-error h1, .v-Notification-error p, .v-Notification-warning h1, .v-Notification-warning p {
-       display: inline;
-       margin: 0 0.5em 0 0;
-}
-
-.v-Notification-warning {
-       background: orange;
-}
-
-.v-Notification-error {
-       background: red;
-}
-
-.v-Notification-tray h1 {
-       display: block;
-}
-
-.v-Notification-tray p {
-       display: block;
-}
-
-.v-Notification-system {
-       background-color: red;
-       opacity: 0.7;
-       filter: alpha(opacity = 70);
-}
-
-.v-Notification-system h1 {
-       display: block;
-       margin: 0;
-}
-
-.v-orderedlayout-margin-top, .v-horizontallayout-margin-top, .v-verticallayout-margin-top {
-       padding-top: 12px;
-}
-
-.v-orderedlayout-margin-right, .v-horizontallayout-margin-right, .v-verticallayout-margin-right {
-       padding-right: 12px;
-}
-
-.v-orderedlayout-margin-bottom, .v-horizontallayout-margin-bottom, .v-verticallayout-margin-bottom {
-       padding-bottom: 12px;
-}
-
-.v-orderedlayout-margin-left, .v-horizontallayout-margin-left, .v-verticallayout-margin-left {
-       padding-left: 12px;
-}
-
-.v-orderedlayout-spacing-on, .v-horizontallayout-spacing-on, .v-verticallayout-spacing-on {
-       padding-top: 6px;
-       padding-left: 6px;
-}
-
-.v-orderedlayout-spacing-off, .v-horizontallayout-spacing-off, .v-verticallayout-spacing-off {
-       padding-top: 0;
-       padding-left: 0;
-}
-
-.v-ie6 .v-orderedlayout, .v-ie6 .v-horizontallayout, .v-ie6 .v-verticallayout, .v-ie7 .v-orderedlayout, .v-ie7 .v-horizontallayout, .v-ie7 .v-verticallayout {
-       overflow: hidden;
-}
-
-.v-panel, .v-panel-caption, .v-panel-content, .v-panel-deco, .v-panel-light, .v-panel-caption-light, .v-panel-content-light, .v-panel-deco-light {
-       outline: none;
-       text-align: left;
-}
-
-.v-panel-caption .v-errorindicator {
-       float: none;
-       display: inline;
-}
-
-.v-panel-caption .v-icon {
-       display: inline;
-       vertical-align: middle;
-}
-
-.v-panel-caption span {
-       vertical-align: middle;
-}
-
-.v-panel-caption {
-       white-space: nowrap;
-       overflow: hidden;
-       font-weight: bold;
-}
-
-.v-panel-nocaption {
-       overflow: hidden;
-}
-
-.v-panel-content {
-       overflow: auto;
-}
-
-.v-panel-deco {
-}
-
-.v-popupview {
-       cursor: pointer;
-       text-decoration: underline;
-       white-space: nowrap;
-}
-
-.v-popupview-popup {
-       overflow: auto;
-}
-
-.v-popupview-loading {
-       width: 30px;
-       height: 30px;
-       background: transparent url(../base/common/img/ajax-loader-medium.gif) no-repeat 50%;
-}
-
-.v-progressindicator {
-       overflow: hidden;
-       width: 150px;
-}
-
-.v-progressindicator-wrapper {
-       overflow: hidden;
-       height: 7px;
-       border: 1px solid #dddddd;
-}
-
-.v-progressindicator-indicator {
-       height: 7px;
-       overflow: hidden;
-       background: #dddddd;
-}
-
-div.v-progressindicator-indeterminate {
-       height: 20px;
-       width: 20px;
-       overflow: hidden;
-       background: #ffffff url(../base/common/img/ajax-loader-medium.gif) no-repeat 50%;
-       border-radius: 4px;
-       -webkit-border-radius: 4px;
-       -moz-border-radius: 4px;
-}
-
-.v-progressindicator-indeterminate .v-progressindicator-wrapper, .v-progressindicator-indeterminate .v-progressindicator-indicator, .v-progressindicator-indeterminate-disabled .v-progressindicator-wrapper, .v-progressindicator-indeterminate-disabled .v-progressindicator-indicator {
-       display: none;
-}
-
-div.v-progressindicator-indeterminate-disabled {
-       height: 20px;
-       width: 20px;
-       overflow: hidden;
-       background: transparent;
-}
-
-.v-select {
-       text-align: left;
-}
-
-.v-select-optiongroup .v-select-option {
-       display: block;
-       white-space: nowrap;
-}
-
-.v-select-optiongroup .v-icon {
-       vertical-align: middle;
-       white-space: nowrap;
-       margin: 0 2px;
-}
-
-.v-ie .v-select-optiongroup .v-select-option {
-       zoom: 1;
-}
-
-.v-select-select {
-       display: block;
-}
-
-.v-select-twincol {
-       white-space: nowrap;
-}
-
-.v-select-twincol-options {
-       float: left;
-}
-
-.v-select-twincol-caption-left {
-       float: left;
-       overflow: hidden;
-       text-overflow: ellipsis;
-}
-
-.v-select-twincol-selections {
-       font-weight: bold;
-}
-
-.v-select-twincol-caption-right {
-       float: right;
-       overflow: hidden;
-       text-overflow: ellipsis;
-}
-
-.v-select-twincol-buttons {
-       float: left;
-       text-align: center;
-}
-
-.v-select-twincol-buttons .v-select-twincol-deco {
-       clear: both;
-}
-
-.v-select-twincol .v-textfield {
-       display: block;
-       float: left;
-       clear: left;
-}
-
-.v-select-twincol .v-button {
-       float: left;
-}
-
-.v-select-twincol-buttons .v-button {
-       float: none;
-}
-
-.v-filterselect {
-       white-space: nowrap;
-       text-align: left;
-}
-
-.v-filterselect .v-icon {
-       float: left;
-}
-
-.v-app .v-filterselect-input, .v-window .v-filterselect-input, .v-popupview-popup .v-filterselect-input {
-       float: left;
-       -webkit-border-radius: 0px;
-}
-
-.v-filterselect-prompt .v-filterselect-input {
-       color: #999999;
-       font-style: italic;
-}
-
-.v-filterselect-button {
-       float: right;
-       cursor: pointer;
-       width: 1em;
-       height: 1em;
-       background: transparent url(../base/common/img/sprites.png) no-repeat -5px -8px;
-}
-
-.v-filterselect.v-readonly .v-filterselect-button {
-       display: none;
-}
-
-.v-filterselect.v-readonly, .v-filterselect.v-readonly .v-filterselect-input {
-       background: transparent;
-}
-
-.v-filterselect-suggestpopup {
-       background: #ffffff;
-       border: 1px solid #eeeeee;
-}
-
-.v-filterselect-suggestmenu table {
-       border-collapse: collapse;
-       border: none;
-}
-
-.v-filterselect-suggestmenu .gwt-MenuItem {
-       white-space: nowrap;
-}
-
-.v-filterselect-suggestmenu .gwt-MenuItem .v-icon {
-       margin-right: 3px;
-       vertical-align: middle;
-}
-
-.v-filterselect-suggestmenu .gwt-MenuItem span {
-       vertical-align: middle;
-}
-
-.v-filterselect-suggestmenu .gwt-MenuItem-selected {
-       background: #333333;
-       color: #ffffff;
-}
-
-.v-filterselect-nextpage, .v-filterselect-nextpage-off, .v-filterselect-prevpage-off, .v-filterselect-prevpage {
-       width: 100%;
-       background: #aaaaaa;
-       text-align: center;
-       overflow: hidden;
-       cursor: pointer;
-}
-
-.v-filterselect-nextpage-off, .v-filterselect-prevpage-off {
-       color: #666666;
-       opacity: 0.5;
-       filter: alpha(opacity = 50);
-       cursor: default;
-}
-
-.v-filterselect-nextpage-off span, .v-filterselect-prevpage-off span {
-       cursor: default;
-}
-
-.v-filterselect-status {
-       white-space: nowrap;
-       text-align: center;
-}
-
-.v-filterselect-no-input .v-filterselect-input {
-       cursor: default;
-}
-
-.v-shadow {
-       position: absolute;
-}
-
-.v-shadow .top-left {
-       position: absolute;
-       overflow: hidden;
-       top: -3px;
-       left: -5px;
-       width: 10px;
-       height: 10px;
-       background: transparent url(../base/shadow/img/top-left.png);
-}
-
-.v-shadow .top {
-       position: absolute;
-       overflow: hidden;
-       top: -3px;
-       left: 5px;
-       height: 10px;
-       right: 5px;
-       background: transparent url(../base/shadow/img/top.png);
-}
-
-.v-shadow .top-right {
-       position: absolute;
-       overflow: hidden;
-       top: -3px;
-       right: -5px;
-       width: 10px;
-       height: 10px;
-       background: transparent url(../base/shadow/img/top-right.png);
-}
-
-.v-shadow .left {
-       position: absolute;
-       overflow: hidden;
-       top: 7px;
-       left: -5px;
-       width: 10px;
-       bottom: 3px;
-       background: transparent url(../base/shadow/img/left.png);
-}
-
-.v-shadow .center {
-       position: absolute;
-       overflow: hidden;
-       top: 7px;
-       left: 5px;
-       bottom: 3px;
-       right: 5px;
-       background: transparent url(../base/shadow/img/center.png);
-}
-
-.v-shadow .right {
-       position: absolute;
-       overflow: hidden;
-       top: 7px;
-       right: -5px;
-       width: 10px;
-       bottom: 3px;
-       background: transparent url(../base/shadow/img/right.png);
-}
-
-.v-shadow .bottom-left {
-       position: absolute;
-       overflow: hidden;
-       bottom: -7px;
-       left: -5px;
-       width: 10px;
-       height: 10px;
-       background: transparent url(../base/shadow/img/bottom-left.png);
-}
-
-.v-shadow .bottom {
-       position: absolute;
-       overflow: hidden;
-       bottom: -7px;
-       left: 5px;
-       right: 5px;
-       height: 10px;
-       background: transparent url(../base/shadow/img/bottom.png);
-}
-
-.v-shadow .bottom-right {
-       position: absolute;
-       overflow: hidden;
-       bottom: -7px;
-       right: -5px;
-       width: 10px;
-       height: 10px;
-       background: transparent url(../base/shadow/img/bottom-right.png);
-}
-
-.v-ie6 .v-shadow * {
-       display: none;
-}
-
-.v-slider {
-       margin: 5px 0;
-}
-
-.v-slider-base {
-       height: 2px;
-       border-top: 1px solid #dddddd;
-       background: #eeeeee;
-       border-left: 1px solid #dddddd;
-       border-right: 1px solid #eeeeee;
-}
-
-.v-slider-handle {
-       background: #aaaaaa;
-       width: 12px;
-       height: 12px;
-       margin-top: -5px;
-       font-size: 0;
-}
-
-.v-slider-vertical {
-       width: 2px;
-       height: auto;
-       margin: 0 5px;
-       border: none;
-       border-left: 1px solid #cccfd0;
-       border-right: 1px solid #cccfd0;
-}
-
-.v-slider-vertical .v-slider-base {
-       width: 2px;
-       border-bottom: 1px solid #eeeeee;
-       border-right: none;
-}
-
-.v-slider-vertical .v-slider-handle {
-       width: 12px;
-       height: 12px;
-       font-size: 0;
-       margin-left: -5px;
-}
-
-.v-slider-feedback {
-       padding: 2px 5px;
-       background: #444444;
-       color: #ffffff;
-       font-size: 11px;
-       line-height: 13px;
-       font-weight: bold;
-       font-family: Arial, Helvetica, sans-serif;
-       border-radius: 4px;
-       -webkit-border-radius: 4px;
-       -moz-border-radius: 4px;
-       margin: -2px 0 0 2px;
-       text-shadow: 0 1px 0 #000000;
-}
-
-.v-ie6 .v-slider, .v-ie6 .v-slider-vertical {
-       margin: 0;
-}
-
-.v-ie6 .v-slider .v-slider-handle {
-       margin: -1px 0;
-}
-
-.v-ie6 .v-slider-vertical .v-slider-handle {
-       margin: 0 -1px;
-}
-
-.v-splitpanel-horizontal, .v-splitpanel-vertical {
-       overflow: hidden;
-}
-
-.v-splitpanel-hsplitter {
-       width: 6px;
-       font-size: 1px;
-}
-
-.v-splitpanel-hsplitter div {
-       width: 6px;
-       font-size: 1px;
-       position: absolute;
-       top: 0;
-       bottom: 0;
-       background: #dddddd;
-       cursor: e-resize;
-       cursor: col-resize;
-}
-
-.v-disabled .v-splitpanel-hsplitter div {
-       cursor: default;
-}
-
-.v-splitpanel-vsplitter {
-       height: 6px;
-       font-size: 1px;
-}
-
-.v-splitpanel-vsplitter div {
-       height: 6px;
-       font-size: 1px;
-       background: #dddddd;
-       cursor: s-resize;
-       cursor: row-resize;
-}
-
-.v-disabled .v-splitpanel-vsplitter div {
-       cursor: default;
-}
-
-.v-ie6 .v-splitpanel-hsplitter div {
-       height: 99%;
-}
-
-.v-ie6 .v-splitpanel-first-container, .v-ie6 .v-splitpanel-second-container, .v-ie7 .v-splitpanel-first-container, .v-ie7 .v-splitpanel-second-container {
-       position: relative;
-}
-
-.v-table {
-       overflow: hidden;
-       text-align: left;
-}
-
-.v-ie7 .v-table {
-       overflow: visible;
-}
-
-.v-table-header-wrap {
-       overflow: hidden;
-       border: 1px solid #aaaaaa;
-       border-bottom: none;
-       background: #efefef;
-}
-
-.v-table-header table, .v-table-table {
-       border-spacing: 0;
-       border-collapse: separate;
-       margin: 0;
-       padding: 0;
-       border: 0;
-}
-
-.v-table-header td {
-       padding: 0;
-}
-
-.v-table-header-cell, .v-table-header-cell-asc, .v-table-header-cell-desc {
-       cursor: pointer;
-}
-
-.v-table.v-disabled .v-table-header-cell, .v-table.v-disabled .v-table-header-cell-asc, .v-table.v-disabled .v-table-header-cell-desc {
-       cursor: default;
-}
-
-.v-table-footer-wrap {
-       overflow: hidden;
-       border: 1px solid #aaaaaa;
-       border-top: none;
-       background: #efefef;
-}
-
-.v-table-footer table {
-       border-spacing: 0;
-       border-collapse: collapse;
-       margin: 0;
-       padding: 0;
-       border: 0;
-}
-
-.v-table-footer td {
-       padding: 0;
-       border-right: 1px solid #aaaaaa;
-}
-
-.v-table-footer-cell {
-       cursor: pointer;
-}
-
-.v-table-footer-container {
-       float: right;
-       padding-right: 6px;
-       overflow: hidden;
-       white-space: nowrap;
-}
-
-.v-table-resizer {
-       display: block;
-       height: 1.2em;
-       float: right;
-       background: #aaaaaa;
-       cursor: e-resize;
-       cursor: col-resize;
-       width: 1px;
-       overflow: hidden;
-}
-
-.v-table.v-disabled .v-table-resizer {
-       cursor: default;
-}
-
-.v-table-caption-container {
-       overflow: hidden;
-       white-space: nowrap;
-       margin-left: 6px;
-}
-
-.v-ie7 .v-table-caption-container-align-right {
-       margin-left: 0px;
-       padding-left: 6px;
-}
-
-.v-table-caption-container-align-right {
-       float: right;
-}
-
-.v-table-sort-indicator {
-       width: 0px;
-       height: 1.2em;
-       float: right;
-}
-
-.v-table-header-cell-asc .v-table-sort-indicator, .v-table-header-cell-desc .v-table-sort-indicator {
-       width: 16px;
-       height: 1.2em;
-       float: right;
-}
-
-.v-table-header-cell-asc .v-table-sort-indicator {
-       background: transparent url(../base/common/img/sprites.png) no-repeat right 6px;
-}
-
-.v-table-header-cell-desc .v-table-sort-indicator {
-       background: transparent url(../base/common/img/sprites.png) no-repeat right -10px;
-}
-
-.v-table-caption-container-align-center {
-       text-align: center;
-}
-
-.v-table-caption-container-align-right {
-       text-align: right;
-}
-
-.v-table-caption-container .v-icon, .v-table-header-drag .v-icon {
-       vertical-align: middle;
-}
-
-.v-table-body {
-       border: 1px solid #aaaaaa;
-}
-
-.v-table-row-spacer {
-       height: 10px;
-       overflow: hidden;
-}
-
-.v-table-row, .v-table-row-odd {
-       background: #ffffff;
-       border: 0;
-       margin: 0;
-       padding: 0;
-       cursor: pointer;
-}
-
-.v-table-generated-row {
-       background: #efefef;
-}
-
-.v-table-body-noselection .v-table-row, .v-table-body-noselection .v-table-row-odd {
-       cursor: default;
-}
-
-.v-table .v-selected {
-       background: #999999;
-       color: #ffffff;
-}
-
-.v-table-cell-content {
-       white-space: nowrap;
-       overflow: hidden;
-       padding: 0 6px;
-       border-right: 1px solid #aaaaaa;
-}
-
-.v-table-cell-wrapper {
-       white-space: nowrap;
-       overflow: hidden;
-}
-
-.v-table-cell-wrapper-align-center {
-       text-align: center;
-}
-
-.v-table-cell-wrapper-align-right {
-       text-align: right;
-}
-
-.v-table-column-selector {
-       float: right;
-       background: transparent url(../base/common/img/sprites.png) no-repeat 4px -37px;
-       margin: -1.2em 0 0 0;
-       height: 1.2em;
-       width: 14px;
-       position: relative;
-       cursor: pointer;
-}
-
-.v-table.v-disabled .v-table-column-selector {
-       cursor: default;
-}
-
-.v-ie6 .v-table-column-selector, .v-ie7 .v-table-column-selector {
-       position: static;
-}
-
-.v-table-focus-slot-left {
-       border-left: 2px solid #999999;
-       float: none;
-       margin-bottom: -1.2em;
-       width: auto;
-       background: transparent;
-       border-right: 1px solid #aaaaaa;
-}
-
-.v-table-focus-slot-right {
-       border-right: 2px solid #999999;
-       margin-left: -2px;
-}
-
-.v-table-header-drag {
-       position: absolute;
-       background: #efefef;
-       border: 1px solid #eeeeee;
-       opacity: 0.9;
-       filter: alpha(opacity = 90);
-       margin-top: 20px;
-       z-index: 30000;
-}
-
-.v-table-header-drag .v-icon {
-       vertical-align: middle;
-}
-
-.v-table-scrollposition {
-       width: 160px;
-       background: #eeeeee;
-       border: 1px solid #aaaaaa;
-}
-
-.v-table-scrollposition span {
-       display: block;
-       text-align: center;
-}
-
-.v-table-body:focus, .v-table-body-wrapper:focus {
-       outline: none;
-}
-
-.v-table-body.focused {
-       border-color: #388ddd;
-}
-
-.v-table-focus .v-table-cell-content {
-       border-top: 1px dotted #0066bd;
-       border-bottom: 1px dotted #0066bd;
-}
-
-.v-table-focus .v-table-cell-wrapper {
-       margin-top: -1px;
-       margin-bottom: -1px;
-}
-
-.v-on {
-}
-
-.v-off {
-       color: #dddddd;
-}
-
-.v-table-drag .v-table-body {
-       border-color: #1d9dff;
-}
-
-.v-table-row-drag-middle .v-table-cell-content {
-       background-color: #bcdcff;
-}
-
-.v-table-row-drag-top .v-table-cell-content {
-       border-top: 2px solid #1d9dff;
-}
-
-.v-table-row-drag-top .v-table-cell-wrapper {
-       margin-top: -2px;
-}
-
-.v-table-row-drag-bottom .v-table-cell-content {
-       border-bottom: 2px solid #1d9dff;
-}
-
-.v-table-row-drag-bottom .v-table-cell-wrapper {
-       margin-bottom: -2px;
-}
-
-.v-table-row-drag-top .v-table-cell-content:first-child:before, .v-table-row-drag-bottom .v-table-cell-content:first-child:after {
-       display: block;
-       content: "";
-       position: absolute;
-       width: 6px;
-       height: 6px;
-       margin-top: -4px;
-       margin-left: -6px;
-       background: transparent url(../base/common/img/drag-slot-dot.png);
-}
-
-.v-ff .v-table-row-drag-bottom .v-table-cell-content:first-child:after, .v-ie .v-table-row-drag-bottom .v-table-cell-content:first-child:after {
-       margin-top: -2px;
-}
-
-.v-tabsheet, .v-tabsheet-content, .v-tabsheet-deco {
-       outline: none;
-       text-align: left;
-}
-
-.v-tabsheet-tabs {
-       empty-cells: hide;
-       border-collapse: collapse;
-       margin: 0;
-       padding: 0;
-       border: 0;
-       width: 100%;
-       overflow: hidden;
-}
-
-.v-tabsheet-tabitemcell:focus {
-       outline: none;
-}
-
-.v-tabsheet-tabitemcell, .v-tabsheet-spacertd {
-       margin: 0;
-       padding: 0;
-       vertical-align: bottom;
-}
-
-.v-tabsheet-spacertd {
-       width: 100%;
-}
-
-.v-tabsheet-spacertd div {
-       border-left: 1px solid #aaaaaa;
-       border-bottom: 1px solid #aaaaaa;
-       height: 1em;
-       padding: 0.2em 0;
-}
-
-.v-tabsheet-hidetabs .v-tabsheet-tabcontainer {
-       display: none;
-}
-
-.v-tabsheet-scroller {
-       white-space: nowrap;
-       text-align: right;
-       margin-top: -1em;
-}
-
-.v-ff2 .v-tabsheet-scroller {
-       position: relative;
-}
-
-.v-disabled .v-tabsheet-scroller {
-       display: none;
-}
-
-.v-tabsheet-scrollerPrev, .v-tabsheet-scrollerNext, .v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerNext-disabled {
-       border: 1px solid #aaaaaa;
-       background: #ffffff;
-       width: 12px;
-       height: 1em;
-       cursor: pointer;
-}
-
-.v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerNext-disabled {
-       opacity: 0.5;
-       cursor: default;
-}
-
-.v-tabsheet-tabs .v-caption, .v-tabsheet-tabs .v-caption span {
-       white-space: nowrap;
-}
-
-.v-tabsheet-caption-close {
-       display: inline;
-       display: inline-block;
-       zoom: 1;
-       width: 16px;
-       height: 16px;
-       text-align: center;
-       font-weight: bold;
-       cursor: pointer;
-       vertical-align: middle;
-       user-select: none;
-       -khtml-user-select: none;
-       -ms-user-select: none;
-       -moz-user-select: none;
-       -webkit-user-select: none;
-}
-
-.v-tabsheet .v-disabled .v-tabsheet-caption-close {
-       cursor: default;
-       visibility: hidden;
-}
-
-.v-tabsheet-tabitem:hover .v-tabsheet-caption-close, .v-ie6 .v-tabsheet-caption-close {
-       visibility: visible;
-}
-
-.v-ie6 .v-tabsheet-caption-close {
-       float: right;
-}
-
-.v-tabsheet-tabitem {
-       border: 1px solid #aaaaaa;
-       border-right: none;
-       cursor: pointer;
-       padding: 0.2em 0.5em;
-}
-
-.v-tabsheet-tabitem .v-caption {
-       cursor: inherit;
-}
-
-.v-tabsheet.v-disabled .v-tabsheet-tabitem, .v-tabsheet-tabitemcell-disabled .v-tabsheet-tabitem {
-       cursor: default;
-}
-
-.v-tabsheet-tabitem-selected {
-       cursor: default;
-       border-bottom-color: #ffffff;
-}
-
-.v-tabsheet-tabitem-selected .v-caption {
-       cursor: default;
-}
-
-.v-tabsheet-content {
-       border: 1px solid #aaaaaa;
-       border-top: none;
-       border-bottom: none;
-       position: relative;
-}
-
-.v-ie6 .v-tabsheet-content, .v-ie7 .v-tabsheet-content {
-       zoom: 1;
-}
-
-.v-tabsheet-deco {
-       height: 1px;
-       background: #aaaaaa;
-       overflow: hidden;
-}
-
-.v-tabsheet-hidetabs .v-tabsheet-content {
-       border: none;
-}
-
-.v-tabsheet-hidetabs .v-tabsheet-deco {
-       height: 0;
-}
-
-.v-textfield {
-       text-align: left;
-}
-
-.v-textarea {
-       resize: none;
-}
-
-.v-textfield-focus, .v-textarea-focus {
-}
-
-input.v-textfield-prompt, textarea.v-textarea-prompt {
-       color: #999999;
-       font-style: italic;
-}
-
-input.v-textfield-readonly, textarea.v-textarea-readonly {
-       background: transparent;
-       border: none;
-       resize: none;
-}
-
-input.v-disabled, textarea.v-disabled {
-       resize: none;
-}
-
-input.v-textfield-readonly:focus, textarea.v-textarea-readonly:focus {
-       outline: none;
-}
-
-.v-sa input:focus, .v-sa textarea:focus {
-       outline-width: medium;
-}
-
-.v-richtextarea {
-       border: 1px solid #aaaaaa;
-       overflow: hidden;
-}
-
-.v-richtextarea .gwt-RichTextArea {
-       background: #ffffff;
-       border: none;
-}
-
-.v-richtextarea .gwt-RichTextToolbar {
-       white-space: nowrap;
-       background: #959595 url(../base/textfield/img/richtext-toolbar-bg.png) repeat-x 0 -42px;
-       border-bottom: 1px solid #7d7d7d;
-       padding: 2px;
-       overflow: hidden;
-}
-
-.v-richtextarea .gwt-RichTextToolbar-top {
-       padding-bottom: 1px;
-       overflow: hidden;
-       white-space: normal;
-}
-
-.v-richtextarea .gwt-RichTextToolbar-bottom {
-       clear: left;
-       overflow: hidden;
-       white-space: nowrap;
-}
-
-.v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton {
-       float: left;
-       display: inline;
-       width: 22px;
-       height: 21px;
-       overflow: hidden;
-       background: transparent url(../base/textfield/img/richtext-toolbar-bg.png) repeat-x;
-       cursor: pointer;
-       margin-right: 2px;
-       text-align: center;
-}
-
-.v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton-down, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton-down, .v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton-down-hovering, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton-down-hovering {
-       background-position: 0 -21px;
-}
-
-.v-richtextarea .gwt-RichTextToolbar .gwt-ToggleButton img, .v-richtextarea .gwt-RichTextToolbar .gwt-PushButton img {
-}
-
-.v-richtextarea .gwt-RichTextToolbar .gwt-ListBox {
-       width: 24.5%;
-       margin-right: 2px;
-}
-
-.v-richtextarea-readonly {
-       border: none;
-}
-
-.v-tree {
-       text-align: left;
-       overflow: hidden;
-       padding: 1px 0;
-       outline: none;
-}
-
-.v-tree-node {
-       background: transparent url(../base/common/img/sprites.png) no-repeat 5px -37px;
-       padding: 1px 0;
-}
-
-.v-tree-node-caption:focus {
-       outline: none;
-}
-
-div.v-tree-node-leaf {
-       background: transparent;
-}
-
-.v-tree-node-expanded {
-       background: transparent url(../base/common/img/sprites.png) no-repeat -5px -10px;
-}
-
-.v-tree-node-caption {
-       margin-left: 1em;
-}
-
-.v-tree-node span {
-       cursor: pointer;
-}
-
-.v-tree-node-caption div {
-       white-space: nowrap;
-}
-
-.v-tree-node-caption span, .v-tree-node-caption .v-icon {
-       vertical-align: middle;
-}
-
-.v-tree-node-selected span {
-       background: #999999;
-       color: #ffffff;
-}
-
-.v-tree-node-children {
-       padding-left: 1em;
-}
-
-.v-tree-node-ie6compatnode {
-       display: none;
-}
-
-.v-ie6 .v-tree-node-ie6compatnode {
-       display: inline;
-       float: left;
-       background: orange;
-       margin: 0;
-       width: 0.8em;
-       height: 0.8em;
-       padding: 0.1em;
-       filter: alpha(opacity = 0);
-}
-
-.v-ie6 .v-tree-node, .v-ie6 .v-tree-node-children {
-       clear: left;
-}
-
-.v-tree .v-tree-node-drag-top {
-       border-top: 2px solid #1d9dff;
-       margin-top: -1px;
-       padding-top: 0;
-}
-
-.v-tree .v-tree-node-drag-bottom {
-       border-bottom: 2px solid #1d9dff;
-       margin-bottom: -1px;
-       padding-bottom: 0;
-}
-
-.v-tree .v-tree-node-drag-top:before, .v-tree .v-tree-node-drag-bottom:after, .v-tree .v-tree-node-caption-drag-center:after {
-       display: block;
-       content: "";
-       position: absolute;
-       width: 6px;
-       height: 6px;
-       margin-top: -4px;
-       background: transparent url(../base/common/img/drag-slot-dot.png);
-}
-
-.v-tree .v-tree-node-drag-bottom:after {
-       margin-top: -2px;
-}
-
-.v-tree .v-tree-node-caption-drag-center:after {
-       margin-left: 14px;
-}
-
-.v-ff .v-tree .v-tree-node-caption-drag-center:after, .v-ie .v-tree .v-tree-node-caption-drag-center:after {
-       margin-top: -2px;
-}
-
-.v-tree .v-tree-node-drag-top {
-       background-position: 5px -38px;
-}
-
-.v-tree .v-tree-node-drag-top.v-tree-node-expanded {
-       background-position: -5px -11px;
-}
-
-.v-tree .v-tree-node-caption-drag-center div {
-       border: 2px solid #1d9dff;
-       -moz-border-radius: 4px;
-       -webkit-border-radius: 4px;
-       border-radius: 4px;
-       margin: -2px 2px -2px -2px;
-       background-color: #bcdcff;
-}
-
-.v-ie6 .v-tree .v-tree-node-caption-drag-center div {
-       margin: -2px;
-}
-
-.v-tree .v-tree-node-caption-drag-center div {
-       background-color: rgba(169, 209, 255, 0.6);
-}
-
-.v-tree .v-tree-node-caption-drag-center div, .v-tree .v-tree-node-drag-top, .v-tree .v-tree-node-drag-bottom {
-       border-color: rgba(0, 109, 232, 0.6);
-}
-
-.v-tree-connectors .v-tree-node-caption {
-       padding-top: 1px;
-}
-
-.v-tree-connectors .v-tree-node {
-       background: transparent url(../base/tree/img/connector-expand.png) no-repeat 2px -52px;
-}
-
-.v-tree-connectors .v-tree-node-expanded {
-       background: transparent url(../base/tree/img/connector-collapse.png) no-repeat 2px -52px;
-}
-
-.v-tree-connectors .v-tree-node-last {
-       background: transparent url(../base/tree/img/connector-expand-last.png) no-repeat 2px -52px;
-}
-
-.v-tree-connectors .v-tree-node-expanded.v-tree-node-last {
-       background: transparent url(../base/tree/img/connector-collapse-last.png) no-repeat 2px -52px;
-}
-
-.v-tree-connectors .v-tree-node-leaf {
-       background: transparent url(../base/tree/img/connector-leaf.png) repeat-y 2px 50%;
-}
-
-.v-tree-connectors .v-tree-node-leaf-last {
-       background: transparent url(../base/tree/img/connector-leaf-last.png) repeat-y 2px 50%;
-}
-
-.v-tree-connectors .v-tree-node-children {
-       background: transparent url(../base/tree/img/connector.png) repeat-y 2px 0;
-}
-
-.v-tree-connectors .v-tree-node-children-last {
-       background: transparent;
-}
-
-.v-tree-connectors .v-tree-node-drag-top, .v-tree-connectors .v-tree-node-expanded.v-tree-node-drag-top {
-       background-position: 2px -53px;
-}
-
-.v-tree-connectors .v-tree-node-drag-top.v-tree-node-leaf {
-       background-position: 2px 50%;
-}
-
-.v-ie6 .v-tree-connectors .v-tree-node {
-       background: transparent url(../base/tree/img/connector-expand-ie6.png) no-repeat 2px -52px;
-}
-
-.v-ie6 .v-tree-connectors .v-tree-node-expanded {
-       background: transparent url(../base/tree/img/connector-collapse-ie6.png) no-repeat 2px -52px;
-}
-
-.v-ie6 .v-tree-connectors .v-tree-node-last {
-       background: transparent url(../base/tree/img/connector-expand-last-ie6.png) no-repeat 2px -52px;
-}
-
-.v-ie6 .v-tree-connectors .v-tree-node-last.v-tree-node-expanded {
-       background: transparent url(../base/tree/img/connector-collapse-last-ie6.png) no-repeat 2px -52px;
-}
-
-.v-treetable-treespacer {
-       display: inline-block;
-       background: transparent;
-       height: 10px;
-       width: 18px;
-}
-
-.v-ie7 .v-treetable-treespacer {
-       height: 100%;
-}
-
-.v-treetable-node-closed {
-       background: url(../base/treetable/img/arrow-right.png) right center no-repeat;
-}
-
-.v-ie6 .v-treetable-node-closed {
-       background-image: url(../base/treetable/img/arrow-right.gif);
-}
-
-.v-treetable-node-open {
-       background: url(../base/treetable/img/arrow-down.png) right center no-repeat;
-}
-
-.v-ie6 .v-treetable-node-open {
-       background-image: url(../base/treetable/img/arrow-down.gif);
-}
-
-.v-treetable .v-checkbox {
-       display: inline-block;
-       padding-bottom: 4px;
-}
-
-.v-treetable .v-table-row .v-table-cell-content, .v-treetable .v-table-row-odd .v-table-cell-content {
-       position: relative;
-       z-index: 10;
-}
-
-.v-treetable .v-table-body .v-table-table .v-table-row-animating {
-       zoom: 1;
-       z-index: 1;
-}
-
-.v-treetable .v-table-body .v-table-table .v-table-row-animating, .v-treetable .v-table-body .v-table-table .v-table-row-animating .v-table-cell-content {
-       background: transparent;
-}
-
-.v-treetable-animation-clone {
-       border-spacing: 0;
-       zoom: 1;
-}
-
-div.v-treetable-animation-clone-wrapper {
-       position: absolute;
-       z-index: 2;
-       background-color: #ffffff;
-}
-
-div.v-treetable-animation-clone-wrapper table.v-treetable-animation-clone {
-       background-color: #ffffff;
-}
-
-div table.v-treetable-animation-clone tr.v-table-row, div table.v-treetable-animation-clone tr.v-table-row-odd, div table.v-treetable-animation-clone tr.v-table-row td.v-table-cell-content, div table.v-treetable-animation-clone tr.v-table-row-odd td.v-table-cell-content {
-       visibility: visible;
-}
-
-.v-upload {
-       white-space: nowrap;
-}
-
-.v-ie6 .v-upload, .v-ie7 .v-upload {
-       margin: 0;
-}
-
-.v-upload-immediate {
-       position: relative;
-       margin: 0;
-       overflow: hidden;
-}
-
-.v-ff .v-upload-immediate, .v-op .v-upload-immediate {
-       display: inline-block;
-}
-
-.v-upload-immediate input {
-       opacity: 0;
-       filter: alpha(opacity = 0);
-       z-index: 2;
-       position: absolute;
-       right: 0;
-       height: 21px;
-       text-align: right;
-       border: none;
-       background: transparent;
-}
-
-.v-upload-immediate button {
-       position: relative;
-       left: 0;
-       top: 0;
-       width: 100%;
-       text-align: left;
-}
-
-.v-window {
-       background: #ffffff;
-}
-
-.v-window-outerheader {
-       padding: 0.3em 1em;
-       height: 1em;
-}
-
-.v-window-outerheader, .v-window-draggingCurtain {
-       cursor: move;
-}
-
-.v-window-header {
-       font-weight: bold;
-}
-
-div.v-window-header {
-       white-space: nowrap;
-       text-overflow: ellipsis;
-       -ms-text-overflow: ellipsis;
-       overflow: hidden;
-       padding: 0;
-}
-
-.v-ie6 .v-window-header {
-       width: 100%;
-}
-
-.v-window-header .v-icon {
-       vertical-align: middle;
-}
-
-.v-window-contents, x:-moz-any-link {
-       overflow: hidden;
-}
-
-.v-window-contents, x:-moz-any-link, x:default {
-       overflow: visible;
-}
-
-.v-window-contents > div {
-       outline: none;
-}
-
-.v-window-footer {
-       overflow: hidden;
-       zoom: 1;
-       height: 10px;
-       position: relative;
-       cursor: move;
-}
-
-.v-window-resizebox {
-       width: 10px;
-       height: 10px;
-       background: #dddddd;
-       overflow: hidden;
-       position: absolute;
-       right: 0;
-}
-
-.v-window-resizebox, .v-window-resizingCurtain {
-       cursor: se-resize;
-}
-
-.v-window div.v-window-footer-noresize {
-       height: 0;
-}
-
-.v-window-resizebox-disabled {
-       cursor: default;
-       display: none;
-}
-
-.v-window-closebox {
-       position: absolute;
-       top: 0;
-       right: 0;
-       width: 1em;
-       height: 1em;
-       background: red;
-       cursor: pointer;
-       overflow: hidden;
-}
-
-.v-window-modalitycurtain {
-       top: 0;
-       left: 0;
-       background: #999999;
-       opacity: 0.5;
-       position: fixed;
-       width: 100%;
-       height: 100%;
-       filter: alpha(opacity = 50);
-}
-
-.v-ie6 .v-window-modalitycurtain {
-       position: absolute;
-       top: expression(document.documentElement.scrollTop +   "px");
-}
-
-.v-ie6 .v-window {
-       width: 0;
-}
-
-.v-shadow-window {
-       position: absolute;
-}
-
-.v-shadow-window .top-left {
-       position: absolute;
-       overflow: hidden;
-       top: -10px;
-       left: -15px;
-       width: 28px;
-       height: 28px;
-       background: transparent url(../base/window/img/shadow/top-left.png);
-}
-
-.v-shadow-window .top {
-       position: absolute;
-       overflow: hidden;
-       top: -10px;
-       left: 13px;
-       height: 28px;
-       right: 13px;
-       background: transparent url(../base/window/img/shadow/top.png);
-}
-
-.v-shadow-window .top-right {
-       position: absolute;
-       overflow: hidden;
-       top: -10px;
-       right: -15px;
-       width: 28px;
-       height: 28px;
-       background: transparent url(../base/window/img/shadow/top-right.png);
-}
-
-.v-shadow-window .left {
-       position: absolute;
-       overflow: hidden;
-       top: 18px;
-       left: -15px;
-       width: 28px;
-       bottom: 10px;
-       background: transparent url(../base/window/img/shadow/left.png);
-}
-
-.v-shadow-window .center {
-       position: absolute;
-       overflow: hidden;
-       top: 18px;
-       left: 13px;
-       bottom: 10px;
-       right: 13px;
-       background: transparent url(../base/window/img/shadow/center.png);
-}
-
-.v-shadow-window .right {
-       position: absolute;
-       overflow: hidden;
-       top: 18px;
-       right: -15px;
-       width: 28px;
-       bottom: 10px;
-       background: transparent url(../base/window/img/shadow/right.png);
-}
-
-.v-shadow-window .bottom-left {
-       position: absolute;
-       overflow: hidden;
-       bottom: -18px;
-       left: -15px;
-       width: 28px;
-       height: 28px;
-       background: transparent url(../base/window/img/shadow/bottom-left.png);
-}
-
-.v-shadow-window .bottom {
-       position: absolute;
-       overflow: hidden;
-       bottom: -18px;
-       left: 13px;
-       right: 13px;
-       height: 28px;
-       background: transparent url(../base/window/img/shadow/bottom.png);
-}
-
-.v-shadow-window .bottom-right {
-       position: absolute;
-       overflow: hidden;
-       bottom: -18px;
-       right: -15px;
-       width: 28px;
-       height: 28px;
-       background: transparent url(../base/window/img/shadow/bottom-right.png);
-}
-
-.v-ie6 .v-shadow-window * {
-       display: none;
-}
-
-.v-accordion {
-       border: 1px solid #bebebe;
-       border-radius: 2px;
-       -webkit-border-radius: 2px;
-       -moz-border-radius: 2px;
-       overflow: hidden;
-}
-
-.v-accordion-item {
-       background-color: #ffffff;
-}
-
-.v-accordion-item-caption {
-       height: 19px;
-       background: #e4e4e4 repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -0px;
-       font-size: 11px;
-       line-height: normal;
-       border-top: 1px solid #bebebe;
-       text-shadow: #ffffff 0 1px 0;
-}
-
-.v-accordion-item-first .v-accordion-item-caption {
-       border-top: none;
-}
-
-.v-accordion-item-caption .v-caption {
-       padding: 3px 0 5px 10px;
-}
-
-.v-ie .v-accordion-item-caption .v-caption {
-       padding: 2px 0 6px 10px;
-}
-
-.v-accordion-item-open .v-accordion-item-caption {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -19px;
-       border-bottom: 1px solid #bbbbbb;
-}
-
-.v-accordion-item-caption .v-icon {
-       margin-top: -1px;
-}
-
-.v-ie .v-accordion-item-caption .v-icon {
-       vertical-align: top;
-}
-
-.v-accordion-borderless {
-       border: none;
-       border-radius: 0;
-       -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-}
-
-.v-button:focus {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -0px;
-       outline: none;
-}
-
-.v-button:focus .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -26px;
-       outline: none;
-}
-
-.v-button:active, .v-button.v-pressed {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -52px;
-       outline: none;
-}
-
-.v-button:active .v-button-wrap, .v-button.v-pressed .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -78px;
-       outline: none;
-}
-
-.v-button, .v-disabled.v-button {
-       height: 26px;
-       padding: 0 0 0 6px;
-       background-color: transparent;
-       background-repeat: no-repeat;
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -104px;
-       border: none;
-       cursor: default;
-}
-
-.v-button-wrap, .v-disabled.v-button .v-button-wrap {
-       display: block;
-       height: 22px;
-       padding: 4px 15px 0 9px;
-       background-color: transparent;
-       background-repeat: no-repeat;
-       background-position: right top;
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -130px;
-}
-
-.v-button-caption {
-       color: #222222;
-       text-shadow: #ffffff 0 1px 0;
-       font-weight: bold;
-       font-size: 11px;
-       line-height: 16px;
-}
-
-.black .v-button:focus {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -0px;
-}
-
-.black .v-button:focus .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -26px;
-}
-
-.black .v-button:active, .black .v-button.v-pressed {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -52px;
-}
-
-.black .v-button:active .v-button-wrap, .black .v-button.v-pressed .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -78px;
-}
-
-.black .v-button, .black .v-disabled.v-button {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -104px;
-}
-
-.black .v-button-wrap, .black .v-disabled.v-button .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -130px;
-}
-
-.black .v-button-caption {
-       color: #c9ccce;
-       text-shadow: #121314 0 -1px 0;
-}
-
-.v-button-primary:focus {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -156px;
-}
-
-.v-button-primary:focus .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -182px;
-}
-
-.v-button-primary:active, .v-button-primary.v-pressed {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -208px;
-}
-
-.v-button-primary:active .v-button-wrap, .v-button-primary.v-pressed .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -234px;
-}
-
-.v-button-primary, .v-disabled.v-button-primary {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -260px;
-}
-
-.v-button-primary .v-button-wrap, .v-disabled.v-button-primary .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -286px;
-}
-
-.black .v-button-primary:focus {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -156px;
-}
-
-.black .v-button-primary:focus .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -182px;
-       color: #eaf4fb;
-}
-
-.black .v-button-primary:active, .black .v-button-primary.v-pressed {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -208px;
-}
-
-.black .v-button-primary:active .v-button-wrap, .black .v-button-primary.v-pressed .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -234px;
-}
-
-.black .v-button-primary, .black .v-disabled.v-button-primary {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -260px;
-}
-
-.black .v-button-primary .v-button-wrap, .black .v-disabled.v-button-primary .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -286px;
-}
-
-.v-button-small:focus {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -312px;
-}
-
-.v-button-small:focus .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -332px;
-}
-
-.v-button-small:active, .v-button-small.v-pressed {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -352px;
-}
-
-.v-button-small:active .v-button-wrap, .v-button-small.v-pressed .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -372px;
-}
-
-.v-button-small, .v-disabled.v-button-small {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: left -392px;
-       height: 20px;
-}
-
-.v-button-small .v-button-wrap, .v-disabled.v-button-small .v-button-wrap {
-       background-image: url(button/img/button-sprites.png);
-       -background-image: url(button/img/button-sprites-ie6.png);
-       background-position: right -412px;
-       height: 19px;
-       padding: 1px 14px 0 8px;
-}
-
-.v-button-small .v-button-caption {
-       font-weight: normal;
-}
-
-.black .v-button-small:focus {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -312px;
-}
-
-.black .v-button-small:focus .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -332px;
-}
-
-.black .v-button-small:active, .black .v-button-small.v-pressed {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -352px;
-}
-
-.black .v-button-small:active .v-button-wrap, .black .v-button-small.v-pressed .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -372px;
-}
-
-.black .v-button-small, .black .v-disabled.v-button-small {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: left -392px;
-}
-
-.black .v-button-small .v-button-wrap, .black .v-disabled.v-button-small .v-button-wrap {
-       background-image: url(button/img/black-button-sprites.png);
-       -background-image: url(button/img/black-button-sprites-ie6.png);
-       background-position: right -412px;
-}
-
-.v-button.v-button-link, .v-button.v-button-link:focus, .v-button.v-button-link:active, .v-button-link.v-pressed, .v-disabled.v-button.v-button-link, .v-button.v-button-link .v-button-wrap, .v-button.v-button-link:focus .v-button-wrap, .v-button.v-button-link:active .v-button-wrap, .v-button-link.v-pressed .v-button-wrap, .v-disabled.v-button.v-button-link .v-button-wrap {
-       background: transparent;
-       height: auto;
-       padding: 0;
-       cursor: pointer;
-       line-height: inherit;
-}
-
-.v-button.v-button-link.v-disabled, .v-button.v-button-link.v-disabled .v-button-wrap {
-       cursor: default;
-}
-
-.v-button-link .v-button-caption, .v-nativebutton-link .v-nativebutton-caption {
-       line-height: inherit;
-       font-weight: normal;
-       color: #1b699f;
-       font-size: 12px;
-       text-shadow: none;
-}
-
-.v-button-link:focus .v-button-caption, .v-nativebutton-link:focus .v-nativebutton-caption {
-       outline: 1px dotted #1b699f;
-}
-
-.v-ff2 .v-button .v-button-caption {
-       display: -moz-inline-box;
-       padding-top: 6px;
-       height: 20px;
-}
-
-.v-ie6 .v-nativebutton-link, .v-ie7 .v-nativebutton-link, .v-ie8 .v-nativebutton-link {
-       padding: 0;
-       text-align: left;
-}
-
-.v-ie6 .v-button {
-       border: 1px solid #b3b3b3;
-       border-bottom-color: #9a9a9a;
-       background: #d8d8d8 url(button/img/right.png) no-repeat 0 -1px;
-       padding: 0 15px;
-       height: 23px;
-}
-
-.v-ie6 .v-button .v-button-wrap {
-       background: transparent;
-       height: 20px;
-       padding: 3px 0 0;
-       display: inline;
-       zoom: 1;
-}
-
-.v-ie6 .v-button-primary {
-       background-image: url(button/img/primary-right.png);
-}
-
-.v-ie6 .v-button-small {
-       background-image: url(button/img/small-right.png);
-       height: 17px;
-}
-
-.v-ie6 .v-button-small .v-button-wrap {
-       height: 17px;
-       padding: 0;
-}
-
-.v-ie6 .v-button.v-pressed {
-       background: transparent url(button/img/right-pressed.png) no-repeat 0 -1px;
-}
-
-.v-ie6 .blue .v-button {
-       border-color: #84949c;
-       border-top-color: #83939b;
-       border-bottom-color: #888d91;
-}
-
-.v-ie6 .black .v-button {
-       border: 1px solid #0d0e0f;
-       background: #202224 url(button/img/black/right.png) no-repeat 0 -1px;
-       color: #c9ccce;
-}
-
-.v-ie6 .black .v-button-primary {
-       background-image: url(button/img/black/primary-right.png);
-}
-
-.v-ie6 .black .v-button-small {
-       background-image: url(button/img/black/small-right.png);
-}
-
-.v-ie6 .black .v-button.v-pressed {
-       background-image: url(button/img/black/right-pressed.png);
-}
-
-.v-ie6 .v-button-link, .v-ie6 .black .v-button-link {
-       background: transparent;
-       border: none;
-       height: auto;
-       line-height: normal;
-       padding: 0;
-}
-
-.v-ie6 .v-button-link .v-button-wrap, .v-ie6 .black .v-button-link .v-button-wrap {
-       padding: 0;
-       height: auto;
-}
-
-.v-generated-body, .v-app {
-       background: #f5f5f5;
-}
-
-.v-app, .v-window, .v-popupview-popup, .v-tooltip, .v-app input, .v-app select, .v-app button, .v-app textarea, .v-window input, .v-window select, .v-window button, .v-window textarea, .v-popupview-popup input, .v-popupview-popup select, .v-popupview-popup button, .v-popupview-popup textarea, .v-filterselect-suggestpopup, .v-datefield-popup, .v-contextmenu, .v-Notification, .v-menubar-submenu, .v-drag-element, .v-table-header-drag {
-       font-family: Arial, Helvetica, Tahoma, Verdana, sans-serif;
-       font-size: 12px;
-       line-height: normal;
-       color: #222222;
-}
-
-.v-app .black, .v-window-black, .v-window .black, .v-popupview-popup .black {
-       color: #c9ccce;
-       text-shadow: #000000 0 0 1px;
-}
-
-.v-errorindicator {
-       width: 13px;
-       height: 16px;
-       background: transparent url(common/icons/error.png) no-repeat 50%;
-}
-
-.v-ie6 .v-errorindicator {
-       background-image: url(common/icons/error-ie6.png);
-}
-
-.v-tooltip {
-       background-color: #fffcdd;
-       border: 1px solid #b8b295;
-       font-size: 11px;
-       color: #222222;
-}
-
-.v-tooltip-text {
-       padding: 2px 4px;
-}
-
-.v-tooltip .v-errormessage {
-       padding: 3px 4px;
-       background: #ffecc6;
-       color: #b74100;
-       border: none;
-       border-top: 1px solid #fff3dc;
-}
-
-.v-tooltip .v-errormessage h2 {
-       font-size: 16px;
-       font-weight: normal;
-       color: #ab3101;
-       margin: 2px 0 8px 0;
-}
-
-.v-tooltip .v-errormessage h3 {
-       font-size: 13px;
-       font-weight: bold;
-       margin: 1px 0 4px 0;
-}
-
-.v-contextmenu {
-       background: #f8f8f9;
-       border: none;
-       border-radius: 3px;
-       -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-       -o-border-radius: 3px;
-       overflow: hidden;
-       padding: 4px 0;
-}
-
-.v-contextmenu .gwt-MenuItem {
-       padding: 1px 12px 1px 8px;
-       height: 16px;
-       user-select: none;
-       -moz-user-select: none;
-       -webkit-user-select: none;
-       cursor: default;
-}
-
-.v-contextmenu .gwt-MenuItem .v-icon {
-       margin-right: 3px;
-}
-
-.v-contextmenu .gwt-MenuItem-selected {
-       background: transparent repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -38px;
-       color: #ffffff;
-       text-shadow: #3b5a7a 0 1px 0;
-}
-
-.v-ie .v-contextmenu .gwt-MenuItem-selected {
-       background-image: url(common/img/sel-bg.png);
-       background-position: left top;
-}
-
-.v-contextmenu .gwt-MenuItem-selected div {
-       background: transparent;
-       cursor: default;
-}
-
-.portlet .v-app {
-       background: transparent;
-}
-
-.portlet .v-app .v-radiobutton input, .portlet .v-window .v-radiobutton input, .portlet .v-popupview-popup .v-radiobutton input, .portlet .v-app .v-checkbox input, .portlet .v-window .v-checkbox input, .portlet .v-popupview-popup .v-checkbox input {
-       margin-right: 3px;
-       background: transparent;
-}
-
-input.v-textfield-readonly:focus {
-       background-color: transparent;
-}
-
-.v-datefield-calendarpanel {
-       border-collapse: collapse;
-       margin: 0;
-       padding: 0;
-       height: auto !important;
-}
-
-.v-datefield-year .v-datefield-calendarpanel-prevmonth, .v-datefield-year .v-datefield-calendarpanel-nextmonth {
-       display: none;
-}
-
-.v-datefield-calendarpanel td {
-       vertical-align: top;
-}
-
-td.v-datefield-calendarpanel-month {
-       height: 23px;
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -58px;
-}
-
-span.v-datefield-calendarpanel-month {
-       display: block;
-       text-align: center;
-       height: 16px;
-       padding: 3px 10px 0 10px;
-       border-left: 1px solid #efefef;
-       border-right: 1px solid #d8d8d8;
-       text-shadow: #ffffff 0 1px 0;
-       overflow: hidden;
-       margin-top: 1px;
-}
-
-.v-datefield-year .v-datefield-calendarpanel-month {
-       width: 35px;
-}
-
-.v-datefield-month .v-datefield-calendarpanel-month, .v-datefield-day .v-datefield-calendarpanel-month, .v-datefield-full .v-datefield-calendarpanel-month {
-       width: 124px;
-}
-
-.v-datefield-month, .v-datefield-day, .v-datefield-full {
-       min-width: 240px;
-}
-
-.v-ff2 .v-datefield-month, .v-ff2 .v-datefield-day, .v-ff2 .v-datefield-full {
-       min-width: 254px;
-}
-
-.v-datefield-popupcalendar, .v-ff2 .v-datefield-popupcalendar {
-       min-width: 0;
-}
-
-.v-datefield-year .v-datefield-calendarpanel {
-       width: 100px;
-}
-
-td.v-datefield-calendarpanel-prevyear {
-       text-align: right;
-}
-
-td.v-datefield-calendarpanel-nextyear {
-       text-align: left;
-}
-
-.v-datefield-calendarpanel-prevyear button, .v-datefield-calendarpanel-nextyear button, .v-datefield-calendarpanel-prevmonth button, .v-datefield-calendarpanel-nextmonth button {
-       width: 24px;
-       height: 23px;
-       border: none;
-       background: transparent;
-       background-repeat: no-repeat;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -81px;
-       overflow: hidden;
-       padding: 0;
-       text-indent: -9999px;
-       outline: none;
-       -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-       border-radius: 0;
-}
-
-.v-ie .v-datefield-calendarpanel-prevyear button, .v-ie .v-datefield-calendarpanel-nextyear button, .v-ie .v-datefield-calendarpanel-prevmonth button, .v-ie .v-datefield-calendarpanel-nextmonth button {
-       text-indent: 0;
-       font-size: 1px;
-}
-
-.v-datefield-calendarpanel-nextyear button {
-       background-position: left top;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -104px;
-}
-
-.v-datefield-calendarpanel-prevyear button:active, .v-ie .v-datefield-calendarpanel-prevyear button.v-pressed {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -127px;
-}
-
-.v-datefield-calendarpanel-nextyear button:active, .v-ie .v-datefield-calendarpanel-nextyear button.v-pressed {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -150px;
-}
-
-.v-datefield-calendarpanel-prevmonth, .v-datefield-calendarpanel-nextmonth {
-       width: 24px;
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -173px;
-}
-
-.v-datefield-calendarpanel-prevmonth button, .v-datefield-calendarpanel-nextmonth button {
-       width: 100%;
-       height: 21px;
-       border-left: 1px solid #efefef;
-       border-right: 1px solid #d8d8d8;
-       background: transparent;
-       background-position: center top;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -196px;
-       min-width: 24px;
-       margin-top: 1px;
-}
-
-.v-ie .v-datefield-calendarpanel-prevmonth button, .v-ie .v-datefield-calendarpanel-nextmonth button {
-       border: none;
-}
-
-.v-ie6 .v-datefield-calendarpanel-prevmonth button, .v-ie6 .v-datefield-calendarpanel-nextmonth button {
-       width: 24px;
-}
-
-.v-datefield-calendarpanel-nextmonth button {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -217px;
-}
-
-.v-datefield-calendarpanel-prevmonth button:active, .v-ie .v-datefield-calendarpanel-prevmonth button.v-pressed {
-       background-position: center top;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -238px;
-}
-
-.v-datefield-calendarpanel-nextmonth button:active, .v-ie .v-datefield-calendarpanel-nextmonth button.v-pressed {
-       background-position: center top;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -259px;
-}
-
-.v-datefield-calendarpanel-body, .v-datefield-calendarpanel-time {
-       text-align: center;
-       vertical-align: top;
-}
-
-.v-datefield-calendarpanel-body table {
-       border-collapse: collapse;
-       margin: 0;
-       padding: 0;
-       width: 220px;
-       margin: 0 auto;
-}
-
-.v-datefield-calendarpanel-weekdays td {
-       width: 14.2%;
-       overflow: hidden;
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -280px;
-       font-size: 10px;
-       line-height: normal;
-       text-transform: uppercase;
-       color: #eaeff1;
-       text-shadow: #3b4651 0 -1px 0;
-       vertical-align: top;
-}
-
-.v-datefield-calendarpanel-weeknumbers td {
-       width: 12.4%;
-}
-
-.v-datefield-calendarpanel-weekdays strong {
-       display: block;
-       text-align: right;
-       padding: 1px 5px 0 0;
-       height: 14px;
-       border-top: 1px solid #596775;
-}
-
-.v-datefield-calendarpanel-weekdays .v-first {
-       background-repeat: no-repeat;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -299px;
-}
-
-.v-datefield-calendarpanel-weekdays .v-last {
-       background-repeat: no-repeat;
-       background-position: right top;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -318px;
-}
-
-.v-ie .v-datefield-calendarpanel-weekdays td {
-       background: url(datefield/img/weekday-bg.png) repeat-x;
-       background-position: left top;
-}
-
-.v-ie .v-datefield-calendarpanel .v-first {
-       background: url(datefield/img/weekday-first.png) no-repeat;
-}
-
-.v-ie .v-datefield-calendarpanel .v-last {
-       background: url(datefield/img/weekday-last.png) no-repeat right top;
-}
-
-.v-datefield-calendarpanel-body td {
-       text-align: right;
-       height: 19px;
-}
-
-.v-datefield-calendarpanel-day, .v-datefield-calendarpanel-weeknumber, .v-datefield-calendarpanel-day-today {
-       padding: 2px 5px 2px 0;
-       display: block;
-       margin: 1px 0 0 5px;
-}
-
-.v-datefield-calendarpanel-weeknumber {
-       margin: 0;
-       padding-top: 4px;
-       padding-bottom: 3px;
-}
-
-.v-datefield-calendarpanel-day-today {
-       color: #4095d1;
-       border: none;
-}
-
-.v-datefield-calendarpanel-day-selected {
-       background: #507ba3;
-       color: #ffffff;
-       text-shadow: #3b5b79 0 1px 0;
-       border-radius: 2px;
-       -webkit-border-radius: 2px;
-       -moz-border-radius: 2px;
-}
-
-.v-datefield-calendarpanel-time select {
-       padding: 0;
-       font-size: 11px;
-}
-
-.v-datefield-popup {
-       background: #f8f8f9;
-       padding: 8px 4px;
-       border-radius: 3px;
-       -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-}
-
-.v-sa .v-datefield-popup, .v-ff3 .v-datefield-popup, .v-op .v-datefield-popup {
-       background: rgba(255, 255, 255, 0.95);
-}
-
-.v-datefield-year .v-datefield-textfield {
-       width: 4em;
-}
-
-.v-datefield-month .v-datefield-textfield {
-       width: 5em;
-}
-
-.v-datefield-day .v-datefield-textfield {
-       width: 5.5em;
-}
-
-.v-datefield-full .v-datefield-textfield {
-       width: 12em;
-}
-
-.v-datefield-popupcalendar input.v-datefield-textfield {
-       border-right-width: 0;
-       -moz-border-radius-topright: 0;
-       -moz-border-radius-bottomright: 0;
-       -webkit-border-top-right-radius: 0;
-       -webkit-border-bottom-right-radius: 0;
-       height: 14px;
-}
-
-.v-datefield.v-readonly input.v-datefield-textfield {
-       border-right-width: 1px;
-       border-radius: 3px;
-       -moz-border-radius: 3px;
-       -webkit-border-radius: 3px;
-}
-
-.v-datefield-prompt .v-datefield-textfield {
-       color: #999999;
-       font-style: normal;
-}
-
-.v-datefield-popupcalendar .v-datefield-button {
-       width: 24px;
-       height: 23px;
-       background: transparent;
-       border: none;
-       padding: 0;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -337px;
-       cursor: pointer;
-       -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-       border-radius: 0;
-}
-
-.v-datefield-popupcalendar .v-datefield-button:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -360px;
-}
-
-.black .v-datefield-popupcalendar .v-datefield-button {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -0px;
-}
-
-.black .v-datefield-popupcalendar .v-datefield-button:active {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -23px;
-}
-
-.v-ie6 .v-datefield-popupcalendar .v-datefield-button {
-       margin-top: 1px;
-}
-
-.black td.v-datefield-calendarpanel-month {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -46px;
-       height: 21px;
-}
-
-.black span.v-datefield-calendarpanel-month {
-       border-left: 1px solid #333638;
-       border-right: 1px solid #232527;
-       color: #c9ccce;
-       text-shadow: #000000 0 -1px 0;
-       padding: 4px 10px 1px 10px;
-       margin-top: 0;
-}
-
-.black .v-datefield-calendarpanel-prevyear button, .black .v-datefield-calendarpanel-nextyear button, .black .v-datefield-calendarpanel-prevmonth button, .black .v-datefield-calendarpanel-nextmonth button {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -67px;
-       height: 21px;
-}
-
-.black .v-datefield-calendarpanel-nextyear button {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -88px;
-}
-
-.black .v-datefield-calendarpanel-prevyear button:active, .v-ie .black .v-datefield-calendarpanel-prevyear button.v-pressed {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -109px;
-}
-
-.black .v-datefield-calendarpanel-nextyear button:active, .v-ie .black .v-datefield-calendarpanel-nextyear button.v-pressed {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -130px;
-}
-
-.black .v-datefield-calendarpanel-prevmonth, .black .v-datefield-calendarpanel-nextmonth {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -151px;
-}
-
-.black .v-datefield-calendarpanel-prevmonth button, .black .v-datefield-calendarpanel-nextmonth button {
-       border-left: 1px solid #333638;
-       border-right: 1px solid #232527;
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: center -172px;
-       margin-top: 0;
-}
-
-.black .v-datefield-calendarpanel-nextmonth button {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: center -193px;
-}
-
-.black .v-datefield-calendarpanel-prevmonth button:active, .v-ie .black .v-datefield-calendarpanel-prevmonth button.v-pressed {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: center -214px;
-}
-
-.black .v-datefield-calendarpanel-nextmonth button:active, .v-ie .black .v-datefield-calendarpanel-nextmonth button.v-pressed {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: center -235px;
-}
-
-.v-ie .black .v-datefield-calendarpanel-prevmonth button, .v-ie .black .v-datefield-calendarpanel-nextmonth button {
-       border: none;
-}
-
-.black .v-datefield-calendarpanel-weekdays td {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -256px;
-       color: #0a0b0b;
-       text-shadow: #5a5c5e 0 1px 0;
-}
-
-.black .v-datefield-calendarpanel-weekdays strong {
-       border-top-color: #1b1c1d;
-}
-
-.black .v-datefield-calendarpanel .v-first {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -275px;
-}
-
-.black .v-datefield-calendarpanel .v-last {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: right -294px;
-}
-
-.black .v-datefield-prompt .v-datefield-textfield {
-       color: #5f6366;
-}
-
-.v-formlayout-errorcell {
-       width: 13px;
-}
-
-.v-formlayout-cell .v-errorindicator {
-       width: 13px;
-       height: 16px;
-       background: transparent url(common/icons/error.png) no-repeat 50%;
-}
-
-.v-ie6 .v-formlayout-cell .v-errorindicator {
-       background-image: url(common/icons/error-ie6.png);
-}
-
-.v-formlayout-captioncell {
-       text-align: right;
-       white-space: nowrap;
-}
-
-.v-formlayout-spacing .v-formlayout-row .v-formlayout-captioncell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-contentcell, .v-formlayout-spacing .v-formlayout-row .v-formlayout-errorcell {
-       padding-top: 8px;
-}
-
-.v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-captioncell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-contentcell, .v-formlayout-margin-top .v-formlayout-firstrow .v-formlayout-errorcell {
-       padding-top: 15px;
-}
-
-.v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-captioncell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-contentcell, .v-formlayout-margin-bottom .v-formlayout-lastrow .v-formlayout-errorcell {
-       padding-bottom: 15px;
-}
-
-.v-formlayout-margin-left .v-formlayout-captioncell {
-       padding-left: 18px;
-}
-
-.v-formlayout-margin-right .v-formlayout-contentcell {
-       padding-right: 18px;
-}
-
-.v-form-errormessage {
-       background: transparent url(common/icons/error.png) no-repeat 3px 2px;
-       padding-left: 20px;
-       margin-bottom: 5px;
-       margin-top: 5px;
-       min-height: 20px;
-}
-
-.v-ie6 .v-form-errormessage {
-       height: 20px;
-       background-image: url(common/icons/error-ie6.png);
-}
-
-.v-form fieldset {
-       border: none;
-       border-top: 1px solid #babfc0;
-}
-
-.v-form-nocaption fieldset {
-       border: none;
-}
-
-.v-form-nocaption legend {
-       display: none;
-}
-
-.v-form legend {
-       margin: 0 0 0 20px;
-       padding: 0 5px;
-       font-weight: bold;
-       color: #222222;
-}
-
-.black .v-form legend {
-       color: #e3e6e8;
-}
-
-.v-label {
-       line-height: 18px;
-}
-
-.white .black, .blue .black {
-       color: #c9ccce;
-       text-shadow: 0 0 1px #000000;
-}
-
-.black .v-label-h1, .black .v-label-h2, .black .v-caption-h1, .black .v-caption-h2, .white .black .v-label-h1, .white .black .v-label-h2, .white .black .v-caption-h1, .white .black .v-caption-h2, .blue .black .v-label-h1, .blue .black .v-label-h2, .blue .black .v-caption-h1, .blue .black .v-caption-h2 {
-       color: #ffffff;
-       text-shadow: rgba(0, 0, 0, 0.8) 0 2px 2px;
-}
-
-.black .v-label-light, .white .black .v-label-light {
-       color: #72787c;
-}
-
-.black .v-label hr, .white .black .v-label hr {
-       background: #0c0d0e;
-       color: #0c0d0e;
-       border-bottom-color: #292b2e;
-}
-
-.v-app .white, .v-window .white, .v-app .blue, .v-window .blue {
-       color: #222222;
-       text-shadow: none;
-}
-
-.blue .v-label-h1, .blue .v-label-h2, .blue .v-caption-h1, .blue .v-caption-h2, .white .blue .v-label-h1, .white .blue .v-label-h2, .white .blue .v-caption-h1, .white .blue .v-caption-h2 {
-       color: #ffffff;
-       text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px;
-}
-
-.blue .v-label-light, .white .blue .v-label-light {
-       color: #6e7c83;
-}
-
-.blue .v-label hr, .white .blue .v-label hr {
-       background: #a3bcc9;
-       color: #a3bcc9;
-       border-bottom-color: #cfe2eb;
-}
-
-.v-label-h1, .v-label-h2, .v-caption-h1, .v-caption-h2, .white .v-label-h1, .white .v-label-h2, .white .v-caption-h1, .white .v-caption-h2 {
-       font-family: Helvetica, Arial, "Lucida Grande", Geneva, Tahoma, Verdana, sans-serif;
-       font-size: 24px;
-       line-height: 30px;
-       font-weight: bold;
-       color: #44698b;
-       letter-spacing: -0.02em;
-       text-shadow: #ffffff 0 -1px 1px;
-}
-
-.v-label-h2, .v-caption-h2, .white .v-label-h2, .white .v-caption-h2 {
-       font-size: 16px;
-       line-height: 22px;
-}
-
-.v-label-light, .white .v-label-light {
-       font-size: 11px;
-       line-height: 13px;
-       color: #707070;
-}
-
-.v-label hr, .white .v-label hr {
-       height: 2px;
-       overflow: hidden;
-       background: #dcdcdc;
-       color: #dcdcdc;
-       border: none;
-       border-bottom: 1px solid #ffffff;
-}
-
-.v-sa .v-label hr, .v-ie8 .v-label hr {
-       height: 1px;
-}
-
-.v-table .v-label {
-       line-height: normal;
-}
-
-.v-orderedlayout-margin-top, .v-horizontallayout-margin-top, .v-verticallayout-margin-top {
-       padding-top: 18px;
-}
-
-.v-orderedlayout-margin-right, .v-horizontallayout-margin-right, .v-verticallayout-margin-right {
-       padding-right: 18px;
-}
-
-.v-orderedlayout-margin-bottom, .v-horizontallayout-margin-bottom, .v-verticallayout-margin-bottom {
-       padding-bottom: 18px;
-}
-
-.v-orderedlayout-margin-left, .v-horizontallayout-margin-left, .v-verticallayout-margin-left {
-       padding-left: 18px;
-}
-
-.v-orderedlayout-spacing-on, .v-horizontallayout-spacing-on, .v-verticallayout-spacing-on {
-       padding-top: 7px;
-       padding-left: 6px;
-}
-
-.v-gridlayout-margin-top {
-       padding-top: 24px;
-}
-
-.v-gridlayout-margin-bottom {
-       padding-bottom: 24px;
-}
-
-.v-gridlayout-margin-left {
-       padding-left: 24px;
-}
-
-.v-gridlayout-margin-right {
-       padding-right: 24px;
-}
-
-.v-gridlayout-spacing-on {
-       padding-left: 12px;
-       padding-top: 12px;
-}
-
-.v-verticallayout-blue, .v-horizontallayout-blue, .v-orderedlayout-blue, .v-gridlayout-blue, .v-csslayout-blue, .v-formlayout-blue, .v-splitpanel-vertical-blue, .v-splitpanel-horizontal-blue {
-       background-color: #bcd3de;
-}
-
-.v-panel-content > div.blue {
-       background-color: #bcd3de;
-}
-
-.v-verticallayout-white, .v-horizontallayout-white, .v-orderedlayout-white, .v-gridlayout-white, .v-csslayout-white, .v-formlayout-white, .v-splitpanel-vertical-white, .v-splitpanel-horizontal-white {
-       background-color: #ffffff;
-       color: #222222;
-}
-
-.v-panel-content > div.white {
-       background-color: #ffffff;
-       color: #222222;
-}
-
-.v-verticallayout-black, .v-horizontallayout-black, .v-orderedlayout-black, .v-gridlayout-black, .v-csslayout-black, .v-formlayout-black, .v-splitpanel-vertical-black, .v-splitpanel-horizontal-black {
-       background: #1e2022 url(layouts/img/black-bg.png) repeat-x;
-}
-
-.v-panel-content > div.black {
-       background: #1e2022 url(layouts/img/black-bg.png) repeat-x;
-}
-
-.v-link a:link span {
-       color: #1b699f;
-}
-
-.v-link a:visited span {
-       color: #5c7485;
-}
-
-.v-link a:hover span {
-       color: #2483c4;
-}
-
-.v-menubar {
-       height: 23px;
-       background: #323336 repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -383px;
-       color: #d1d3d6;
-       text-shadow: rgba(0, 0, 0, 0.9) 0 1px 0;
-       padding: 0 8px;
-}
-
-.v-menubar .v-menubar-menuitem {
-       padding: 3px 8px;
-       height: 17px;
-       line-height: 16px;
-}
-
-.v-menubar .v-menubar-menuitem:hover {
-       color: #ffffff;
-}
-
-.v-menubar-submenu {
-       background: #f8f8f9;
-       border: none;
-       border-radius: 3px;
-       -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-       -o-border-radius: 3px;
-       overflow: hidden;
-       padding: 4px 0;
-}
-
-.v-menubar-submenu .v-menubar-menuitem {
-       padding: 1px 26px 1px 10px;
-       line-height: 16px;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-caption .v-icon {
-       vertical-align: middle;
-}
-
-.v-menubar .v-menubar-menuitem-selected, .v-menubar-submenu .v-menubar-menuitem-selected {
-       background: #4d749f repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -406px;
-       color: #ffffff;
-       text-shadow: 0 1px 0 #3b5a7a;
-}
-
-.v-menubar .v-menubar-menuitem-selected {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -426px;
-}
-
-.v-menubar-submenu .v-menubar-submenu-indicator {
-       background: transparent url(menubar/img/submenu-icon.png) no-repeat right 70%;
-       width: 26px;
-       height: 16px;
-       text-indent: -9999px;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-selected .v-menubar-submenu-indicator {
-       background-image: url(menubar/img/submenu-icon-hover.png);
-}
-
-.v-menubar-submenu-check-column .v-menubar-menuitem {
-       padding-left: 6px;
-}
-
-.v-menubar-submenu-check-column .v-menubar-menuitem-caption {
-       padding-left: 18px;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-checked .v-menubar-menuitem-caption {
-       background: transparent url(menubar/img/checked.png) no-repeat left;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-unchecked .v-menubar-menuitem-caption {
-       background: transparent url(menubar/img/unchecked.png) no-repeat left;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-selected-checked .v-menubar-menuitem-caption {
-       background: transparent url(menubar/img/checked-selected.png) no-repeat left;
-}
-
-.v-menubar-submenu .v-menubar-menuitem-selected-unchecked .v-menubar-menuitem-caption {
-       background: transparent url(menubar/img/unchecked-selected.png) no-repeat left;
-}
-
-.v-Notification {
-       color: #ffffff;
-       border-radius: 4px;
-       -moz-border-radius: 4px;
-       -webkit-border-radius: 4px;
-       font-size: 100%;
-       background: #c8ccd0;
-       font-weight: bold;
-}
-
-.v-ie9 .v-Notification H1 {
-       font-weight: bold;
-}
-
-.v-Notification p {
-       line-height: 1.3;
-}
-
-.v-Notification-warning {
-       background: #fdf3b5;
-       color: #ca9a61;
-       border: 3px solid #fee3af;
-}
-
-.v-Notification-error {
-       background: #b40000 url(notification/img/error-close.png) no-repeat right top;
-       border: 3px solid #ca3030;
-}
-
-.v-Notification-tray {
-       margin: 0 5px 5px 0;
-       background: #3b3c3e;
-       border: 2px solid #585b5c;
-       padding: 0.8em 0.9em;
-}
-
-.v-Notification-tray h1 {
-       font-size: 14px;
-       line-height: 18px;
-}
-
-.v-Notification-tray p {
-       font-size: 12px;
-       font-weight: normal;
-}
-
-.v-Notification-system {
-       background-color: #b40000;
-}
-
-.blue .v-panel-caption, .blue .v-panel-nocaption, .blue .v-panel-content {
-       border-color: #a8bcc5;
-}
-
-.v-panel-caption, .v-panel-nocaption, .white .v-panel-caption, .white .v-panel-nocaption {
-       border-bottom: 1px solid #e5e5e5;
-       line-height: 16px;
-}
-
-.v-webkit .v-panel-caption, .v-webkit .v-panel-nocaption, .v-gecko .v-panel-caption, .v-gecko .v-panel-nocaption, .v-ie9 .v-panel-caption, .v-ie9 .v-panel-nocaption {
-       border-bottom-color: rgba(0, 0, 0, 0.08);
-}
-
-.v-panel-caption {
-       padding-bottom: 2px;
-}
-
-.v-panel-content, .white .v-panel-content {
-       border: 1px solid #dcdcdc;
-       border-bottom: none;
-       border-top: none;
-}
-
-.v-webkit .v-panel-content, .v-gecko .v-panel-content, .v-ie9 .v-panel-content {
-       border-top-color: rgba(0, 0, 0, 0.07);
-}
-
-.v-panel-content > div {
-       background: #ffffff;
-       min-height: 100%;
-}
-
-.v-ie6 .v-panel-content {
-       background: #ffffff;
-}
-
-.blue .v-panel-deco {
-       border-color: #92a3ac;
-       background: #adc2cd;
-}
-
-.v-panel-deco, .white .v-panel-deco {
-       height: 1px;
-       border-top: 1px solid #bebebe;
-       background: #e2e2e2;
-       overflow: hidden;
-}
-
-.v-wekit .v-panel-deco, .v-gecko .v-panel-deco, .v-ie9 .v-panel-deco {
-       border-top-color: rgba(0, 0, 0, 0.1);
-       background: rgba(0, 0, 0, 0.08);
-}
-
-.v-panel-caption .v-errorindicator {
-       height: 16px;
-       width: 13px;
-       background: url(common/icons/error.png) no-repeat 50%;
-       display: inline;
-       display: inline-block;
-       vertical-align: middle;
-}
-
-.v-ie6 .v-panel-caption .v-errorindicator {
-       background-image: url(common/icons/error-ie6.png);
-}
-
-.v-panel-light .v-panel-caption-light, .v-panel-light .v-panel-nocaption-light {
-       border: none;
-}
-
-.v-panel-light .v-panel-content-light {
-       border: none;
-}
-
-.v-panel-content-light > div {
-       background: transparent;
-}
-
-.v-ie6 .v-panel-content-light {
-       background: transparent;
-}
-
-.v-panel-light .v-panel-deco-light {
-       height: 0;
-       border: none;
-}
-
-.v-popupview {
-       color: #1b699f;
-}
-
-.v-popupview:hover {
-       color: #2483c4;
-}
-
-.v-popupview-popup {
-       background: #ffffff;
-       padding: 3px;
-}
-
-.v-progressindicator-wrapper {
-       background: #dfe2e4 url(progressindicator/img/base.gif) repeat-x;
-       border: 1px solid #bfbfbf;
-}
-
-.v-disabled .v-progressindicator-wrapper {
-       background-image: url(progressindicator/img/disabled.gif);
-}
-
-.v-progressindicator-indicator {
-       background: #f7f9f9 url(progressindicator/img/progress.png);
-}
-
-.v-filterselect {
-       height: 24px;
-       background-repeat: no-repeat;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -450px;
-       padding-left: 2px;
-}
-
-.v-ie6 .v-filterselect {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -475px;
-}
-
-.v-app .v-filterselect-input, .v-window .v-filterselect-input, .v-popupview-popup .v-filterselect-input {
-       background: transparent repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -499px;
-       border: none;
-       height: 16px;
-}
-
-.v-app input.v-filterselect-input, .v-window input.v-filterselect-input, .v-popupview-popup input.v-filterselect-input {
-       padding: 4px 0 4px 2px;
-}
-
-.v-filterselect-prompt .v-filterselect-input {
-       font-style: normal;
-}
-
-.v-filterselect-input:focus {
-       outline: none;
-}
-
-.v-filterselect-focus {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -524px;
-}
-
-.v-ie6 .v-filterselect-focus {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -549px;
-}
-
-.v-filterselect-focus .v-filterselect-input {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -573px;
-}
-
-.v-filterselect-button {
-       overflow: hidden;
-       width: 25px;
-       height: 24px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -597px;
-       cursor: default;
-}
-
-.v-filterselect-button:hover {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -622px;
-}
-
-.v-filterselect-button:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -646px;
-}
-
-.v-filterselect-focus .v-filterselect-button {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -670px;
-}
-
-.v-filterselect-focus .v-filterselect-button:hover {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -694px;
-}
-
-.v-filterselect-focus .v-filterselect-button:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -718px;
-}
-
-.v-disabled .v-filterselect-button:hover, .v-readonly .v-filterselect-button:hover {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -742px;
-}
-
-.v-filterselect-suggestpopup {
-       background: #f8f8f9;
-       border: none;
-       border-radius: 3px;
-       -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-       -o-border-radius: 3px;
-       overflow: hidden;
-}
-
-.v-filterselect-suggestmenu {
-       margin: 4px 0;
-}
-
-.v-filterselect-suggestmenu .gwt-MenuItem {
-       padding: 1px 8px;
-       height: 16px;
-       user-select: none;
-       -moz-user-select: none;
-       -webkit-user-select: none;
-       cursor: default;
-}
-
-.v-ff .v-filterselect-suggestmenu .gwt-MenuItem {
-       height: 18px;
-}
-
-.v-filterselect-suggestmenu .gwt-MenuItem .v-icon {
-       margin-right: 3px;
-}
-
-.v-filterselect-suggestmenu .gwt-MenuItem-selected {
-       background: transparent repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -766px;
-       color: #ffffff;
-       text-shadow: #3b5a7a 0 1px 0;
-}
-
-.v-filterselect-nextpage, .v-filterselect-nextpage-off, .v-filterselect-prevpage-off, .v-filterselect-prevpage {
-       height: 11px;
-       width: 100%;
-       background: transparent;
-       margin-bottom: -4px;
-}
-
-.v-filterselect-nextpage, .v-filterselect-nextpage-off {
-       margin: -4px 0 0;
-}
-
-.v-filterselect-nextpage:hover {
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -786px;
-}
-
-.v-filterselect-prevpage:hover {
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -797px;
-}
-
-.v-filterselect-nextpage:active {
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -808px;
-}
-
-.v-filterselect-prevpage:active {
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -819px;
-}
-
-.v-filterselect-nextpage-off span, .v-filterselect-prevpage-off span {
-       display: none;
-}
-
-.v-filterselect-nextpage span, .v-filterselect-prevpage span {
-       display: block;
-       height: 11px;
-       width: 100%;
-       overflow: hidden;
-       text-indent: -99999px;
-       background: transparent no-repeat center 3px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -830px;
-       user-select: none;
-       -moz-user-select: none;
-       -webkit-user-select: none;
-}
-
-.v-filterselect-prevpage span {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -841px;
-}
-
-.v-filterselect-nextpage:hover span {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -852px;
-}
-
-.v-filterselect-prevpage:hover span {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -863px;
-}
-
-.v-filterselect-status {
-       text-shadow: #e9eaeb 0 1px 0;
-       font-size: 11px;
-       line-height: normal;
-       width: 100%;
-       padding: 3px 0;
-       height: 11px;
-       overflow: hidden;
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -874px;
-       -moz-border-radius-bottomleft: 3px;
-       -moz-border-radius-bottomright: 3px;
-       -webkit-border-bottom-left-radius: 3px;
-       -webkit-border-bottom-right-radius: 3px;
-       user-select: none;
-       -moz-user-select: none;
-       -webkit-user-select: none;
-}
-
-.v-ie .v-filterselect-suggestmenu .gwt-MenuItem-selected {
-       background: transparent url(common/img/sel-bg.png) repeat-x;
-}
-
-.v-ie .v-filterselect-nextpage:hover {
-       background: transparent url(select/img/page-down-hover.png) repeat-x;
-}
-
-.v-ie .v-filterselect-prevpage:hover {
-       background: transparent url(select/img/page-up-hover.png) repeat-x;
-}
-
-.v-ie .v-filterselect-prevpage span {
-       background: transparent url(select/img/arrow-up.png) no-repeat center 3px;
-}
-
-.v-ie .v-filterselect-nextpage span {
-       background: transparent url(select/img/arrow-down.png) no-repeat center 3px;
-}
-
-.v-ie .v-filterselect-prevpage:hover span {
-       background: transparent url(select/img/arrow-up-hover.png) no-repeat center 3px;
-}
-
-.v-ie .v-filterselect-nextpage:hover span {
-       background: transparent url(select/img/arrow-down-hover.png) no-repeat center 3px;
-}
-
-.v-ie .v-filterselect-status {
-       background: transparent url(select/img/status-bg.png) repeat-x;
-}
-
-.v-filterselect .v-icon {
-       width: 16px;
-       position: relative;
-}
-
-.v-filterselect .v-icon + .v-filterselect-input {
-       margin-left: -16px;
-       padding-left: 18px;
-}
-
-.black .v-filterselect {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -310px;
-}
-
-.v-ie6 .black .v-filterselect {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -334px;
-}
-
-.v-app .black .v-filterselect-input, .v-window .black .v-filterselect-input, .v-window-black .v-filterselect-input, .v-popupview-popup .black .v-filterselect-input {
-       color: #c9ccce;
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -358px;
-}
-
-.black .v-filterselect-focus {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -382px;
-}
-
-.v-ie6 .black .v-filterselect-focus {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -406px;
-}
-
-.black .v-filterselect-focus .v-filterselect-input {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -430px;
-}
-
-.black .v-filterselect-button {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -454px;
-}
-
-.black .v-filterselect-button:hover {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -478px;
-}
-
-.black .v-filterselect-button:active {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -502px;
-}
-
-.black .v-filterselect-focus .v-filterselect-button {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -526px;
-}
-
-.black .v-filterselect-focus .v-filterselect-button:hover {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -550px;
-}
-
-.black .v-filterselect-focus .v-filterselect-button:active {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -574px;
-}
-
-.black .v-disabled .v-filterselect-button:hover, .black .v-readonly .v-filterselect-button:hover {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -598px;
-}
-
-.black .v-filterselect-prompt .v-filterselect-input {
-       color: #5f6366;
-}
-
-.black .v-select select, .black .v-select-twincol select {
-       border-color: #38393a;
-       border-top-color: #2c2d2e;
-       border-bottom-color: #3e3f3f;
-       background: #151717;
-       color: #c9ccce;
-}
-
-.v-ie6 .v-select-twincol-buttons .v-button {
-       padding-left: 12px;
-       padding-right: 12px;
-}
-
-.v-ie6 .v-filterselect.v-readonly, .v-ie6 .v-filterselect .v-filterselect-input-readonly {
-       background: transparent;
-}
-
-.v-slider {
-       border-top: 1px solid #9a9c9e;
-       border-bottom: 1px solid #bdbfc1;
-       margin: 4px 0;
-}
-
-.v-slider-base {
-       height: 1px;
-       background: #e0e2e2;
-       border-top: 1px solid #adb0b1;
-       border-left: 1px solid #a0a3a6;
-       border-right: 1px solid #a0a3a6;
-}
-
-.v-slider-handle {
-       background: transparent;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -891px;
-       width: 10px;
-       height: 10px;
-       margin-top: -5px;
-}
-
-.v-slider-handle-active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -901px;
-}
-
-.v-slider-vertical {
-       width: 2px;
-       margin: 0 5px;
-       border: none;
-       border-left: 1px solid #9a9c9e;
-       border-right: 1px solid #bdbfc1;
-}
-
-.v-slider-vertical .v-slider-base {
-       width: 2px;
-       border-left: 1px solid #adb0b1;
-       border-right: none;
-       border-top: 1px solid #adb0b1;
-       border-bottom: 1px solid #adb0b1;
-}
-
-.v-slider-vertical .v-slider-handle {
-       width: 10px;
-       height: 10px;
-       margin-left: -5px;
-}
-
-.v-splitpanel-hsplitter, .v-splitpanel-hsplitter-locked {
-       width: 7px;
-       background-repeat: repeat-y;
-       background-image: url(common/img/horizontal-sprites.png);
-       background-position: -0px top;
-}
-
-.v-splitpanel-hsplitter div {
-       width: 7px;
-       height: 100%;
-       background: transparent;
-       background-repeat: no-repeat;
-       background-position: 50%;
-       background-image: url(common/img/horizontal-sprites.png);
-       background-position: -7px center;
-}
-
-.v-splitpanel-vsplitter, .v-splitpanel-vsplitter-locked {
-       height: 7px;
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -911px;
-}
-
-.v-splitpanel-vsplitter div {
-       height: 7px;
-       background: transparent;
-       background-repeat: no-repeat;
-       background-position: 50%;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: center -918px;
-}
-
-.blue .v-splitpanel-hsplitter-small, .blue .v-splitpanel-hsplitter-small-locked {
-       background: #7c8a91;
-}
-
-.black .v-splitpanel-hsplitter-small, .black .v-splitpanel-hsplitter-small-locked {
-       background: #4e5253;
-}
-
-.v-splitpanel-hsplitter-small, .v-splitpanel-hsplitter-small-locked, .white .v-splitpanel-hsplitter-small, .white .v-splitpanel-hsplitter-small-locked {
-       width: 1px;
-       background: #949698;
-}
-
-.v-splitpanel-vsplitter-small, .v-splitpanel-vsplitter-small-locked, .white .v-splitpanel-vsplitter-small, .white .v-splitpanel-vsplitter-small-locked {
-       height: 1px;
-       background: #949698;
-}
-
-.v-splitpanel-hsplitter-small div {
-       width: 5px;
-       margin-left: -2px;
-       background: transparent;
-}
-
-.v-splitpanel-vsplitter-small div {
-       height: 5px;
-       margin-top: -2px;
-       background: transparent;
-}
-
-.blue .v-table-header-wrap {
-       border-color: #92a2aa;
-}
-
-.blue .v-table-body {
-       border-color: #92a2aa;
-       border-top-color: #c2c3c4;
-}
-
-.v-table-header-wrap, .white .v-table-header-wrap, .v-table-footer-wrap, .white .v-table-footer-wrap, .v-table-header-drag {
-       border-color: #c2c3c4;
-       background: transparent repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -925px;
-       height: 20px;
-       text-transform: uppercase;
-       font-size: 10px;
-       font-weight: bold;
-       color: #222222;
-       text-shadow: #f3f5f8 0 1px 0;
-       line-height: normal;
-}
-
-.v-ie6 .v-table, .v-ie6 .v-table-header-wrap, .v-ie6 .v-table-footer-wrap, .v-ie6 .v-table-column-selector {
-       position: relative;
-}
-
-.v-ie6 .v-table.v-disabled, .v-ie7 .v-table.v-disabled {
-       position: relative;
-}
-
-.v-table-footer-wrap, .white .v-table-footer-wrap {
-       text-transform: none;
-       font-size: 12px;
-       font-weight: normal;
-}
-
-.v-table-footer td, .white .v-table-footer td {
-       border-color: #c2c3c4;
-}
-
-.v-table-footer-container {
-       padding-right: 7px;
-}
-
-.v-table-header, .v-table-footer, .v-table-footer table {
-       height: 20px;
-}
-
-.v-table-caption-container, .v-table-header-drag {
-       padding-top: 4px;
-       padding-right: 4px;
-}
-
-.v-table-caption-container .v-icon, .v-table-header-drag .v-icon {
-       height: 16px;
-       margin: -4px 3px 0 0;
-       vertical-align: middle;
-}
-
-.v-ie .v-table-caption-container .v-icon, .v-ie .v-table-header-drag .v-icon {
-       margin-top: -3px;
-}
-
-.v-table-resizer {
-       height: 20px;
-       width: 2px;
-       background: transparent;
-       border-right: 1px solid #c2c3c4;
-}
-
-.v-table-sort-indicator {
-       background: transparent;
-       width: 0px;
-       height: 20px;
-}
-
-.v-table-header-cell-asc .v-table-sort-indicator {
-       background: transparent no-repeat right 7px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -945px;
-       width: 16px;
-}
-
-.v-table-header-cell-desc .v-table-sort-indicator {
-       background: transparent no-repeat right 7px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -965px;
-       width: 16px;
-}
-
-.v-table-body, .white .v-table-body {
-       border-color: #c2c3c4;
-       background: #ffffff;
-}
-
-.v-table-cell-content {
-       padding-top: 0;
-       border-right-color: #d3d4d5;
-       vertical-align: top;
-}
-
-.v-table-cell-wrapper {
-       padding-top: 3px;
-       padding-bottom: 3px;
-}
-
-.v-table-row-odd {
-       background: #eff0f1;
-}
-
-.v-table-generated-row {
-       background: #dcdee0;
-       text-transform: uppercase;
-       font-size: 10px;
-       font-weight: bold;
-       color: #222222;
-       text-shadow: #f3f5f8 0 1px 0;
-       line-height: normal;
-}
-
-.v-table-generated-row .v-table-cell-content {
-       padding-top: 1px;
-       padding-bottom: 2px;
-}
-
-.v-table-cell-content:last-child {
-       border-right-color: transparent;
-}
-
-.v-table .v-selected, .black .v-table .v-selected {
-       background: #4d749f url(common/img/sel-bg.png) repeat-x;
-       color: #ffffff;
-       text-shadow: #3b5a7a 0 1px 0;
-}
-
-.v-table .v-selected .v-table-cell-content {
-       border-right-color: #466c90;
-}
-
-.v-table-column-selector {
-       width: 16px;
-       height: 20px;
-       margin-top: -20px;
-       background: transparent no-repeat;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -985px;
-}
-
-.v-table-column-selector:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1005px;
-}
-
-.v-table-focus-slot-left {
-       border-left: 1px solid #222222;
-       margin-bottom: -20px;
-       width: auto;
-}
-
-.v-table-focus-slot-right {
-       border-right-color: #222222;
-       margin-right: 0;
-}
-
-.v-table-header-drag {
-       padding-left: 6px;
-       height: 16px;
-}
-
-.v-table-header-drag img {
-       height: 16px;
-       margin: -3px 3px 0 0;
-}
-
-.v-table-scrollposition {
-       width: auto;
-       background: transparent;
-       border: none;
-}
-
-.v-table-scrollposition span {
-       background: transparent repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1025px;
-       border: 1px solid #939494;
-       border: none;
-       border-radius-bottomleft: 4px;
-       border-radius-bottomright: 4px;
-       -moz-border-radius-bottomleft: 4px;
-       -moz-border-radius-bottomright: 4px;
-       -webkit-border-bottom-left-radius: 4px;
-       -webkit-border-bottom-right-radius: 4px;
-       height: 13px;
-       padding: 4px 30px;
-       white-space: nowrap;
-       color: #222222;
-       text-shadow: #ffffff 0 1px 0;
-       position: relative;
-       top: 1px;
-       -webkit-box-shadow: rgba(0, 0, 0, 0.5) 0 1px 2px;
-       -moz-box-shadow: rgba(0, 0, 0, 0.5) 0 1px 2px;
-}
-
-.v-table-borderless .v-table-scrollposition span {
-       top: 0;
-}
-
-.v-contextmenu .v-on, .v-contextmenu .v-off {
-       display: inline-block;
-       zoom: 1;
-       background: transparent no-repeat 0 4px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1047px;
-       padding-left: 12px;
-       padding-right: 4px;
-}
-
-.v-contextmenu .v-off {
-       background-image: none;
-       color: #666666;
-}
-
-.v-contextmenu .gwt-MenuItem-selected .v-on {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1061px;
-}
-
-.v-table-strong .v-table-header-wrap, .v-table-strong .v-table-header-drag {
-       border-color: #2b3033;
-       border-top-color: #2b3033;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1076px;
-       color: #e7e9ea;
-       text-shadow: #000000 0 -1px 0;
-}
-
-.v-table-strong .v-table-body {
-       border-top-color: #2b3033;
-}
-
-.v-table-strong .v-table-resizer {
-       border-right-color: #1c1f21;
-}
-
-.v-table-strong .v-table-header-cell-asc .v-table-sort-indicator {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -1096px;
-}
-
-.v-table-strong .v-table-header-cell-desc .v-table-sort-indicator {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -1115px;
-}
-
-.v-table-strong .v-table-column-selector {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1134px;
-}
-
-.v-table-strong .v-table-column-selector:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1154px;
-}
-
-.v-table-strong .v-table-focus-slot-left, .v-table-strong .v-table-focus-slot-right {
-       border-color: #9ca1a5;
-}
-
-.black .v-table-header-wrap, .black .v-table-header-drag {
-       border-color: #252729;
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -622px;
-       color: #e7eaee;
-       text-shadow: #000000 0 -1px 0;
-}
-
-.black .v-table-resizer {
-       border-right-color: #252729;
-}
-
-.black .v-table-header-cell-asc .v-table-sort-indicator {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: right -642px;
-}
-
-.black .v-table-header-cell-desc .v-table-sort-indicator {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: right -661px;
-}
-
-.black .v-table-column-selector {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -680px;
-}
-
-.black .v-table-column-selector:active {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -700px;
-}
-
-.black .v-table-focus-slot-left, .black .v-table-focus-slot-right {
-       border-color: #9ca1a5;
-}
-
-.black .v-table-body {
-       border-color: #252729;
-       background: transparent;
-}
-
-.black .v-table-cell-content {
-       border-right-color: #252729;
-       border-bottom: 1px solid #252729;
-}
-
-.black .v-table-cell-wrapper {
-       padding-bottom: 2px;
-}
-
-.black .v-table-row-odd {
-       background: transparent;
-}
-
-.black .v-table .v-selected .v-table-cell-content {
-       border-bottom: 1px solid #4d749f;
-}
-
-.v-table-borderless .v-table-header-wrap, .v-table-borderless .v-table-body {
-       border: none;
-}
-
-.v-tabsheet-tabitemcell, .v-tabsheet-spacertd {
-       height: 32px;
-}
-
-.v-tabsheet-tabitemcell {
-       background: no-repeat;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1174px;
-       padding-left: 3px;
-}
-
-.v-tabsheet-tabitemcell-first {
-       padding-left: 10px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1206px;
-}
-
-.v-tabsheet-tabitem, .v-tabsheet-spacertd div {
-       border: none;
-       height: 32px;
-       background: transparent repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1238px;
-       padding: 0;
-       color: #222222;
-       text-shadow: #ffffff 0 1px 0;
-}
-
-.v-tabsheet-tabitem .v-caption {
-       border: none;
-       height: 23px;
-       background: no-repeat right top;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -1270px;
-       padding: 9px 8px 0 6px;
-}
-
-.v-tabsheet-tabitem .v-caption-closable {
-       padding-right: 0;
-       padding-left: 17px;
-}
-
-.v-tabsheet-tabitem .v-captiontext {
-       height: 16px;
-       line-height: 16px;
-}
-
-.v-tabsheet-caption-close {
-       float: right;
-       width: 19px;
-       height: 18px;
-       margin: -1px -1px 0;
-       padding-left: 2px;
-       background: transparent;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1302px;
-       cursor: default;
-       text-indent: -999px;
-       overflow: hidden;
-       font-size: 14px;
-       font-weight: normal;
-}
-
-.v-ff .v-tabsheet-caption-close, .v-ie7 .v-tabsheet-caption-close {
-       margin-top: -17px;
-}
-
-.v-ie6 .v-tabsheet-caption-close {
-       float: none;
-}
-
-.v-tabsheet-caption-close:hover {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1320px;
-}
-
-.v-tabsheet-caption-close:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1338px;
-}
-
-.v-tabsheet-tabitem-selected .v-tabsheet-caption-close {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1356px;
-}
-
-.v-tabsheet-tabitem-selected .v-tabsheet-caption-close:hover {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1374px;
-}
-
-.v-tabsheet-tabitem-selected .v-tabsheet-caption-close:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1392px;
-}
-
-.v-tabsheet-tabitemcell-selected {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1410px;
-}
-
-.v-tabsheet-tabitemcell-selected-first {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1442px;
-}
-
-.v-tabsheet-tabitem-selected {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1474px;
-       color: #232930;
-}
-
-.v-tabsheet-tabitem-selected .v-caption {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -1506px;
-}
-
-.v-tabsheet-spacertd div {
-       margin-right: 4px;
-}
-
-.v-tabsheet-spacertd {
-       background: transparent no-repeat right top;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -1538px;
-}
-
-.blue .v-tabsheet-content {
-       border-color: #a8bcc5;
-}
-
-.v-tabsheet-content, .white .v-tabsheet-content {
-       border: 1px solid #dcdcdc;
-       border-bottom: none;
-       border-top: none;
-       color: #222222;
-       text-shadow: none;
-}
-
-.v-tabsheet-tabsheetpanel {
-       background: #ffffff;
-}
-
-.v-sa .v-tabsheet-content, .v-ff3 .v-tabsheet-content {
-       border-color: rgba(0, 0, 0, 0.1);
-}
-
-.blue .v-tabsheet-deco {
-       border-color: #92a3ac;
-       background: #adc2cd;
-}
-
-.v-tabsheet-deco, .white .v-tabsheet-deco {
-       height: 1px;
-       border-top: 1px solid #bebebe;
-       background: #e2e2e2;
-       overflow: hidden;
-}
-
-.v-sa .v-tabsheet-deco, .v-ff3 .v-tabsheet-deco {
-       border-top-color: rgba(0, 0, 0, 0.1);
-       background: rgba(0, 0, 0, 0.08);
-}
-
-.v-tabsheet-tabs .v-icon, .v-tabsheet-tabs .v-captiontext, .v-tabsheet-tabs .v-errorindicator {
-       display: inline;
-       float: none;
-}
-
-.v-sa .v-tabsheet-tabs .v-captiontext {
-       display: inline-block;
-}
-
-.v-tabsheet-tabs .v-icon {
-       width: 16px !important;
-       height: 16px !important;
-}
-
-.v-tabsheet-tabs .v-errorindicator {
-       display: inline-block;
-       width: 13px;
-       height: 16px;
-       background: transparent url(common/icons/error.png) no-repeat 50%;
-}
-
-.v-ff2 .v-tabsheet-tabs .v-icon, .v-ff2 .v-tabsheet-tabs .v-errorindicator {
-       display: -moz-inline-stack;
-}
-
-.v-ie6 .v-tabsheet-tabs .v-errorindicator {
-       background-image: url(common/icons/error-ie6.png);
-}
-
-.v-ie .v-tabsheet-tabs .v-errorindicator {
-       zoom: 1;
-       display: inline;
-}
-
-.v-ie8 .v-tabsheet-tabs .v-errorindicator, .v-ie9 .v-tabsheet-tabs .v-errorindicator {
-       display: inline-block;
-}
-
-.v-tabsheet-scroller {
-       height: 31px;
-       margin-top: -31px;
-       padding: 0 3px 0 4px;
-       border-right: 1px solid #c2c2c2;
-       border-left: 1px solid #cfcfcf;
-       position: relative;
-       float: right;
-       background: transparent url(tabsheet/img/framed/tab-bg.png) repeat-x left -1px;
-       width: 36px;
-}
-
-.v-tabsheet-scroller button {
-       margin-top: 7px;
-}
-
-.v-tabsheet-scrollerPrev, .v-tabsheet-scrollerNext, .v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerNext-disabled {
-       border: none;
-       background: transparent;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1570px;
-       width: 18px;
-       height: 17px;
-       overflow: hidden;
-}
-
-.v-tabsheet-scroller button::-moz-focus-inner {
-       border: none;
-}
-
-.v-tabsheet-scrollerNext {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1587px;
-}
-
-.v-tabsheet-scrollerPrev:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1604px;
-}
-
-.v-tabsheet-scrollerNext:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1621px;
-}
-
-.v-tabsheet-scrollerPrev-disabled, .v-tabsheet-scrollerPrev-disabled:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1638px;
-       opacity: 1;
-       filter: none;
-}
-
-.v-tabsheet-scrollerNext-disabled, .v-tabsheet-scrollerNext-disabled:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1655px;
-       opacity: 1;
-       filter: none;
-}
-
-.v-tabsheet-borderless .v-tabsheet-tabitemcell-first {
-       padding-left: 7px;
-       background: url(tabsheet/img/framed/tab-first-left.png) no-repeat -3px 0;
-}
-
-.v-tabsheet-borderless .v-tabsheet-tabitemcell-selected-first {
-       background: url(tabsheet/img/framed/tab-first-left-sel.png) no-repeat -3px 0;
-}
-
-.v-tabsheet-borderless .v-tabsheet-spacertd div {
-       margin-right: 0;
-}
-
-.v-tabsheet-borderless .v-tabsheet-spacertd {
-       background: transparent;
-}
-
-.v-tabsheet-borderless .v-tabsheet-content {
-       border: none;
-}
-
-.v-tabsheet-borderless .v-tabsheet-deco {
-       height: 0;
-       border-top: none;
-}
-
-.blue .v-tabsheet-tabs-minimal .v-tabsheet-spacertd div, .blue .v-tabsheet-tabs-minimal .v-tabsheet-tabitem, .blue .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
-       border-color: #7c8a91;
-}
-
-.blue .v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
-       color: #7c8a91;
-}
-
-.blue .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover {
-       color: #bcd3de;
-       background: #778d98;
-}
-
-.blue .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
-       background: #4f6874;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-spacertd div, .white .v-tabsheet-tabs-minimal .v-tabsheet-spacertd div {
-       border-bottom: 1px solid #bfbfbf;
-       height: auto;
-       background: transparent;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-tabitemcell, .v-tabsheet-tabs-minimal .v-tabsheet-spacertd {
-       height: auto;
-       background: transparent;
-       padding-left: 0;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-tabitem, .white .v-tabsheet-tabs-minimal .v-tabsheet-tabitem {
-       border: none;
-       border-bottom: 1px solid #bfbfbf;
-       color: #4d748f;
-       padding: 0;
-       height: auto;
-       background: transparent;
-       text-shadow: none;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-tabitem .v-caption {
-       padding: 5px 16px;
-       height: auto;
-       background: transparent;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-tabitemcell-selected {
-       background: transparent;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected, .white .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
-       background: transparent;
-       border: 1px solid #bfbfbf;
-       border-bottom: none;
-       color: #222222;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected .v-caption {
-       background: transparent;
-       padding: 4px 15px 6px 15px;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-tabitem .v-caption-closable, .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected .v-caption-closable {
-       padding-right: 6px;
-}
-
-.v-tabsheet-content-minimal, .white .v-tabsheet-content-minimal {
-       border: none;
-}
-
-.v-tabsheet-content-minimal .v-tabsheet-tabsheetpanel {
-       background: transparent;
-}
-
-.v-tabsheet-deco-minimal, .white .v-tabsheet-deco-minimal {
-       height: 0;
-       border: none;
-}
-
-.v-tabsheet-tabcontainer-minimal .v-tabsheet-scroller {
-       margin-top: -20px;
-       height: 17px;
-       padding: 0;
-       border: none;
-       background: transparent;
-}
-
-.v-tabsheet-tabcontainer-minimal .v-tabsheet-scroller button {
-       margin-top: 0;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-caption-close, .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover, .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
-       text-indent: 0;
-       background: transparent;
-       margin-left: 3px;
-       margin-right: -3px;
-       padding: 0;
-       color: #999999;
-       width: 14px;
-       height: 14px;
-       line-height: 14px;
-       -webkit-border-radius: 7px;
-       -moz-border-radius: 7px;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
-       margin-top: 1px;
-}
-
-.v-ff .v-tabsheet-tabs-minimal .v-tabsheet-caption-close, .v-ie7 .v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
-       margin-top: -15px;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover, .white .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover {
-       color: #ffffff;
-       background: #aaaaaa;
-}
-
-.v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active, .white .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
-       background: #777777;
-}
-
-.black .v-tabsheet-tabs-minimal .v-tabsheet-spacertd div, .black .v-tabsheet-tabs-minimal .v-tabsheet-tabitem, .black .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
-       border-color: #3e4044;
-       color: #6a7f89;
-}
-
-.black .v-tabsheet-tabs-minimal .v-tabsheet-tabitem-selected {
-       color: #c9ccce;
-}
-
-.black .v-tabsheet-content-minimal, .black .v-tabsheet-content-bar {
-       color: #c9ccce;
-       text-shadow: #000000 0 0 1px;
-}
-
-.black .v-tabsheet-tabs-minimal .v-tabsheet-caption-close {
-       color: #72787c;
-}
-
-.black .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:hover {
-       color: #1d2021;
-       background: #4d5154;
-}
-
-.black .v-tabsheet-tabs-minimal .v-tabsheet-caption-close:active {
-       background: #626669;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell, .v-tabsheet-tabs-bar .v-tabsheet-spacertd {
-       height: 20px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-spacertd {
-       background: transparent;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1673px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell-first {
-       padding-left: 6px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1693px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem, .v-tabsheet-tabs-bar .v-tabsheet-spacertd div {
-       height: 20px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1713px;
-       font-size: 11px;
-       margin: 0;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem .v-caption {
-       height: 18px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -1733px;
-       padding: 2px 12px 0 10px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem .v-caption-closable, .v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-caption-closable {
-       padding-right: 8px;
-       padding-left: 14px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-caption-close, .v-tabsheet-tabs-bar .v-tabsheet-caption-close:hover, .v-tabsheet-tabs-bar .v-tabsheet-caption-close:active {
-       text-indent: 0;
-       background: transparent;
-       margin-left: 3px;
-       margin-right: -3px;
-       padding: 1px 0 0 1px;
-       color: #3c3c3c;
-       width: 13px;
-       height: 13px;
-       line-height: 12px;
-       -webkit-border-radius: 7px;
-       -moz-border-radius: 7px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-caption-close {
-       margin-top: 1px;
-}
-
-.v-ff .v-tabsheet-tabs-bar .v-tabsheet-caption-close, .v-ie7 .v-tabsheet-tabs-bar .v-tabsheet-caption-close {
-       margin-top: -14px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-caption-close:hover {
-       background: #bfbfbf;
-       -webkit-box-shadow: 0 1px 0 #ffffff;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-caption-close:active {
-       background: #a9a9a9;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-tabsheet-caption-close {
-       color: #404142;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-tabsheet-caption-close:hover {
-       background: #5e666e;
-       color: #ffffff;
-       text-shadow: 0 -1px 0 #222222;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-tabsheet-caption-close:active {
-       background: #404142;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell-selected {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1753px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitemcell-selected-first {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1773px;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1793px;
-       color: #232930;
-}
-
-.v-tabsheet-tabs-bar .v-tabsheet-tabitem-selected .v-caption {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: right -1813px;
-}
-
-.v-tabsheet-tabcontainer-bar .v-tabsheet-scroller {
-       margin-top: -20px;
-       height: 19px;
-       border-right: none;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1833px;
-}
-
-.v-tabsheet-tabcontainer-bar .v-tabsheet-scroller button {
-       margin-top: 1px;
-}
-
-.v-tabsheet-content-bar, .white .v-tabsheet-content-bar {
-       border: none;
-}
-
-.v-tabsheet-content-bar .v-tabsheet-tabsheetpanel {
-       background: transparent;
-}
-
-.v-tabsheet-deco-bar, .white .v-tabsheet-deco-bar {
-       height: 0;
-       border: none;
-}
-
-.v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem .v-tabsheet-caption-close, .v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem:hover .v-tabsheet-caption-close {
-       visibility: hidden;
-}
-
-.v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem-selected .v-tabsheet-caption-close, .v-tabsheet-tabs-selected-closable .v-tabsheet-tabitem-selected:hover .v-tabsheet-caption-close {
-       visibility: visible;
-}
-
-.v-tabsheet-tabs-hover-closable .v-tabsheet-caption-close {
-       visibility: hidden;
-}
-
-.v-tabsheet-tabs-hover-closable .v-tabsheet-tabitem:hover .v-tabsheet-caption-close {
-       visibility: visible;
-}
-
-.blue .v-textfield, .blue .v-textarea {
-       border-color: #92a2aa;
-       border-top-color: #7c8a90;
-       border-bottom-color: #a1b3bc;
-}
-
-.v-textfield, .v-textarea, .white .v-textfield, .white .v-textarea {
-       border: 1px solid #bcbdbe;
-       border-top-color: #a2a3a4;
-       border-bottom-color: #d2d3d4;
-       background: #ffffff;
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1853px;
-       -moz-border-radius: 3px;
-       -webkit-border-radius: 3px;
-       border-radius: 3px;
-       margin: 0;
-       height: 15px;
-       line-height: normal;
-}
-
-.v-textarea, .white .v-textarea {
-       background-image: none;
-       height: auto;
-}
-
-.v-app input.v-textfield, .v-window input.v-textfield, .v-app textarea.v-textarea, .v-window textarea.v-textarea {
-       padding: 3px 3px 4px;
-}
-
-.v-app .v-textfield-focus, .v-window .v-textfield-focus, .v-popupview-popup .v-textfield-focus, .v-app .v-textarea-focus, .v-window .v-textarea-focus, .v-popupview-popup .v-textarea-focus {
-       border-color: #5b97d0;
-       border-top-color: #4f83b4;
-       border-bottom-color: #5ca0df;
-       outline: none;
-       background-color: #ffffff;
-}
-
-input.v-textfield-prompt, textarea.v-textarea-prompt {
-       font-style: normal;
-       color: #999999;
-}
-
-.v-app input.v-textfield-small {
-       font-size: 11px;
-       line-height: normal;
-       height: auto;
-       padding: 2px;
-}
-
-.v-app textarea.v-textarea-small {
-       font-size: 11px;
-}
-
-.v-table input.v-textfield {
-       padding: 1px 2px;
-       height: auto;
-       line-height: normal;
-}
-
-.v-table-cell-wrapper > input.v-textfield {
-       margin-top: -2px;
-       margin-bottom: -2px;
-}
-
-.v-ie6 .v-table-cell-wrapper input.v-textfield {
-       margin-top: -2px;
-       margin-bottom: -2px;
-}
-
-.v-ie6 .v-table-cell-wrapper div input.v-textfield {
-       margin-top: 0;
-       margin-bottom: 0;
-}
-
-.black .v-textfield, .black .v-textarea {
-       border-color: #38393a;
-       border-top-color: #2c2d2e;
-       border-bottom-color: #3e3f3f;
-       background: #151717;
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -720px;
-       color: #c9ccce;
-       text-shadow: #000000 0 0 1px;
-}
-
-.black .v-textarea {
-       background-image: none;
-}
-
-.v-app .black .v-textfield-focus, .v-window-black .v-textfield-focus, .v-window .black .v-textfield-focus, .v-popupview-popup .black .v-textfield-focus, .v-app .black .v-textarea-focus, .v-window-black .v-textarea-focus, .v-window .black .v-textarea-focus, .v-popupview-popup .black .v-textarea-focus {
-       border-color: #4b7192;
-       border-top-color: #3b5a75;
-       border-bottom-color: #507596;
-       background-color: #151717;
-}
-
-.black input.v-textfield-prompt {
-       color: #5f6366;
-}
-
-input.v-textfield-readonly, .black input.v-textfield-readonly, textarea.v-textarea-readonly, .black textarea.v-textarea-readonly {
-       border: none;
-       background: transparent;
-}
-
-.v-tree-node {
-       background: transparent url(tree/img/arrows.png) no-repeat 6px -10px;
-}
-
-.v-ie6 .v-tree-node {
-       background-image: url(tree/img/arrows-ie6.png);
-       background-repeat: no-repeat;
-}
-
-.v-ie6 div.v-tree-node-leaf {
-       background: transparent;
-}
-
-.v-tree-node-expanded {
-       background-position: -7px 5px;
-}
-
-.v-tree-node-caption {
-       margin-left: 16px;
-       padding-bottom: 1px;
-}
-
-.v-tree-node span {
-       padding: 1px 2px;
-       display: inline-block;
-}
-
-.v-tree-node-selected span {
-       background: #4d749f repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1876px;
-       color: #ffffff;
-       padding: 1px 2px;
-       -webkit-border-radius: 2px;
-       -moz-border-radius: 2px;
-       text-shadow: #2b425a 0 1px 0;
-       display: inline-block;
-}
-
-.v-tree-node-children {
-       padding-left: 16px;
-}
-
-.v-ie6 .v-tree-node-ie6compatnode {
-       width: 14px;
-       height: 10px;
-       padding: 1px;
-}
-
-.v-tree-node-caption.v-tree-node-focused span {
-       padding-left: 1px;
-       padding-top: 0px;
-       padding-bottom: 0px;
-}
-
-.v-tree-node-focused span {
-       border: 1px dotted black;
-}
-
-.v-ie6 .v-tree-node-ie6compatnode.v-tree-node-focused {
-       padding-left: 0px;
-}
-
-.v-tree .v-tree-node-drag-top {
-       background-position: 6px -11px;
-}
-
-.v-tree .v-tree-node-drag-top.v-tree-node-expanded {
-       background-position: -7px 4px;
-}
-
-.v-tree-connectors .v-tree-node-drag-top, .v-tree-connectors .v-tree-node-expanded.v-tree-node-drag-top {
-       background-position: 2px -53px;
-}
-
-.v-tree-connectors .v-tree-node-drag-top.v-tree-node-leaf {
-       background-position: 2px 50%;
-}
-
-.v-window {
-       background: transparent;
-}
-
-.v-window-wrap {
-       border: 1px solid #808386;
-}
-
-.v-sa .v-window-wrap, .v-ff3 .v-window-wrap, .v-op .v-window-wrap {
-       border-color: rgba(0, 0, 0, 0.2);
-}
-
-.v-ff2 .v-window-wrap, .v-ie6 .v-window-wrap {
-       border: none;
-}
-
-.v-ff2 .v-window-outerheader, .v-ie6 .v-window-outerheader {
-       border: 1px solid #808386;
-       border-bottom: none;
-}
-
-.v-ff2 .v-window-contents, .v-ie6 .v-window-contents {
-       border: 1px solid #808386;
-       border-top: none;
-       border-bottom: none;
-}
-
-.v-ff2 .v-window-footer, .v-ie6 .v-window-footer {
-       border: 1px solid #808386;
-       border-top: none;
-}
-
-.v-window-outerheader {
-       padding: 12px 32px 0 14px;
-       height: 25px;
-       background: black repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1896px;
-}
-
-.v-window-header {
-       font-weight: bold;
-       font-size: 12px;
-       line-height: normal;
-       color: #ffffff;
-       text-shadow: #000000 0 -1px 0;
-       white-space: nowrap;
-       overflow: hidden;
-       text-overflow: ellipsis;
-       -ms-text-overflow: ellipsis;
-}
-
-.v-window-error .v-window-header {
-       padding-left: 13px;
-       background: transparent url(common/icons/error.png) no-repeat 0 50%;
-}
-
-.v-ie6 .v-window-error .v-window-header {
-       background-image: url(common/icons/error-ie6.png);
-}
-
-.v-window-resizebox {
-       width: 15px;
-       height: 15px;
-       cursor: se-resize;
-       background: transparent;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1933px;
-}
-
-.v-window-footer {
-       background-color: white;
-       background-repeat: repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1948px;
-       height: 15px;
-}
-
-.v-window-closebox {
-       top: 12px;
-       right: 10px;
-       width: 15px;
-       height: 16px;
-       background: transparent;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1963px;
-}
-
-.v-window-closebox:hover {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1979px;
-}
-
-.v-window-closebox:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -1995px;
-}
-
-.v-window-contents {
-       background: #ffffff;
-}
-
-.v-window-modalitycurtain {
-       background: #56595b;
-}
-
-.v-window-light .v-window-outerheader {
-       background: transparent;
-       padding: 15px 32px 0 18px;
-       height: 23px;
-}
-
-.v-window-light .v-window-header {
-       font-size: 16px;
-       color: #292e34;
-       text-shadow: none;
-}
-
-.v-window-light .v-window-resizebox {
-       width: 12px;
-       height: 12px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -2011px;
-}
-
-.v-window-light .v-window-footer {
-       background: transparent;
-       height: 12px;
-}
-
-.v-window-light .v-window-closebox {
-       right: 1px;
-       top: 17px;
-       width: 19px;
-       height: 15px;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -2023px;
-}
-
-.v-window-light .v-window-closebox:hover {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -2038px;
-}
-
-.v-window-light .v-window-closebox:active {
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -2053px;
-}
-
-.v-window-light .v-window-contents {
-       background: transparent;
-}
-
-.v-window-light .v-window-wrap2 {
-       background: #f7f7f8 repeat-x;
-       background-image: url(common/img/vertical-sprites.png);
-       -background-image: url(common/img/vertical-sprites-ie6.png);
-       background-position: left -2068px;
-}
-
-.v-ie6 .v-window-light .v-window-wrap2 {
-       background-image: none;
-}
-
-.v-window-black .v-window-wrap {
-       border-color: #2e3030;
-       border-radius: 8px;
-       -webkit-border-radius: 8px;
-       -moz-border-radius: 8px;
-       overflow: hidden;
-}
-
-.v-sa .v-window-black .v-window-wrap, .v-ff3 .v-window-black .v-window-wrap, .v-op .v-window-black .v-window-wrap {
-       border-color: rgba(0, 0, 0, 0.8);
-}
-
-.v-window-black .v-window-wrap2 {
-       background-color: #1d2021;
-       -moz-border-radius: 7px;
-       -webkit-border-radius: 7px;
-}
-
-.v-sa .v-window-black .v-window-wrap2, .v-ff3 .v-window-black .v-window-wrap2, .v-op .v-window-black .v-window-wrap2 {
-       background-color: rgba(29, 32, 33, 0.9);
-}
-
-.v-window-black .v-window-outerheader {
-       height: auto;
-       padding: 7px 14px;
-       height: 15px;
-       background: transparent repeat-x;
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -743px;
-       text-align: center;
-       -moz-border-radius-topright: 7px;
-       -moz-border-radius-topleft: 7px;
-       -webkit-border-top-right-radius: 7px;
-       -webkit-border-top-left-radius: 7px;
-       overflow: hidden;
-       border: none;
-}
-
-.v-window-black .v-window-header {
-       font-size: 12px;
-       font-weight: normal;
-       color: #dddfe1;
-}
-
-.v-window-black .v-window-closebox {
-       top: 8px;
-}
-
-.v-window-black .v-window-footer {
-       background: transparent;
-       border: none;
-       height: 14px;
-}
-
-.v-window-black .v-window-resizebox {
-       background: transparent no-repeat;
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -772px;
-       width: 14px;
-       height: 14px;
-}
-
-.v-ie6 .v-window-black .v-window-resizebox {
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -786px;
-}
-
-.v-ie6 .v-window-black .v-window-contents {
-       background: transparent url(window/img/black/content-bg-ie6.png) repeat-x;
-}
-
-.v-window-black .v-window-contents {
-       border: none;
-       background: transparent repeat-x;
-       background-image: url(common/img/black-vertical-sprites.png);
-       -background-image: url(common/img/black-vertical-sprites-ie6.png);
-       background-position: left -800px;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/basic/selectors.css b/tests/sass/resources/basic/selectors.css
deleted file mode 100644 (file)
index 50c5fb7..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-.foo {
-       color: red;
-}
-
-.foo-bar {
-       color: red;
-}
-
-.foo_bar {
-       color: red;
-}
-
-.foo .bar {
-       color: red;
-}
-
-.foo .bar .baz .fee .roo {
-       color: red;
-}
-
-.foo.bar.baz.fee.roo {
-       color: red;
-}
-
-.foo.bar .baz.fee.roo .dar {
-       color: red;
-}
-
-.foo > .bar {
-       color: red;
-}
-
-#foo {
-       color: red;
-}
-
-#foo .bar {
-       color: red;
-}
-
-.foo #bar {
-       color: red;
-}
-
-#foo.bar {
-       color: red;
-}
-
-#foo, #bar, .baz, .roo .dar {
-       color: red;
-}
-
-#foo a, .foo pre img {
-       color: red;
-}
-
-#foo a.bar {
-       color: red;
-}
-
-a:link {
-       color: red;
-}
-
-a.foo:visited, .bar {
-       color: red;
-}
-
-.v-app input[type="text"] {
-       color: red;
-}
-
-.foo + .bar {
-       color: red;
-}
-
-h1 + .foo {
-       color: red;
-}
-
-.foo * {
-       color: red;
-}
-
-.foo * h1 {
-       color: red;
-}
-
-h1 * .foo {
-       color: red;
-}
-
-* .foo {
-       color: red;
-}
-
-p::abc {
-       color: red;
-}
-
-p:first {
-       color: red;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/comments.css b/tests/sass/resources/css/comments.css
deleted file mode 100644 (file)
index 1c773f7..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/** 0sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-
-/** 1sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-
-/** 2sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-
-.v-button:focus {
-       background-image: url(img/left-focus.png);/** sprite-ref: buttons */
-       outline: none;
-}
-
-.v-button:focus .v-button-wrap {
-       background-image: url(img/right-focus.png);/** sprite-ref: buttons; sprite-alignment: right */
-       outline: none;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/control-directives.css b/tests/sass/resources/css/control-directives.css
deleted file mode 100644 (file)
index 0a6f1f7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Implement a sane test case.
\ No newline at end of file
diff --git a/tests/sass/resources/css/extends.css b/tests/sass/resources/css/extends.css
deleted file mode 100644 (file)
index d1c903f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.error, .badError {
-       border: 1px #f00;
-       background: #fdd;
-}
-
-.error.intrusion, .badError.intrusion {
-       font-size: 1.3em;
-       font-weight: bold;
-}
-
-.badError {
-       border-width: 3px;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/functions.css b/tests/sass/resources/css/functions.css
deleted file mode 100644 (file)
index de87462..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.main {
-       margin: 2px;
-       border: 11px;
-       border: 10px;
-       border: 10px;
-       color: hsl(0, 0%, 30%);
-       color: hsl(25, 100%, 50%);
-       color: rgb(36, 0, 0);
-       color: rgb(240, 0, 0);
-       color: #240000;
-       color: #200;
-       color: #f00000;
-       color: #f00;
-}
diff --git a/tests/sass/resources/css/imports.css b/tests/sass/resources/css/imports.css
deleted file mode 100644 (file)
index 5b10018..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.caption {
-       border: 1px solid black;
-       background: #ff0000;
-       padding: 10px;
-       margin: 10px;
-}
-
-.text {
-       font-weight: bold;
-       color: red;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/microsoft-extensions.css b/tests/sass/resources/css/microsoft-extensions.css
deleted file mode 100644 (file)
index 6967096..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-.v-ie6 .v-shadow-window {
-       background: #000000;
-       filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=5 ) alpha(opacity = 20);
-       margin-top: 2px;
-       margin-left: 2px;
-}
diff --git a/tests/sass/resources/css/mixins.css b/tests/sass/resources/css/mixins.css
deleted file mode 100644 (file)
index 5c727c1..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-.main {
-       border: 1px solid black;
-       -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-       border-radius: 3px;
-       font-family: arial;
-       font-size: 16px;
-       font-weight: bold;
-}
-
-.main .details {
-       font-size: 14px;
-       font-weight: bold;
-}
-
-.footer {
-       border: 2px solid black;
-       -webkit-border-radius: 10px;
-       -moz-border-radius: 10px;
-       border-radius: 10px;
-}
-
-.header {
-       width: 100%;
-}
-
-.main {
-       width: 100%;
-       height: 100%;
-}
-
-.footer {
-       width: 100%;
-}
-
-@media print {
-       .v-view {
-               overflow: visible;
-       }
-}
-
-font-family: arial;
-
-font-size: 16px;
-
-font-weight: bold;
\ No newline at end of file
diff --git a/tests/sass/resources/css/nested-properties.css b/tests/sass/resources/css/nested-properties.css
deleted file mode 100644 (file)
index 79b21e6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-li {
-       font-family: serif;
-       font-weight: bold;
-       font-size: 1.2em;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/nesting.css b/tests/sass/resources/css/nesting.css
deleted file mode 100644 (file)
index 2400c73..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-.top-bar {
-       color: red;
-}
-
-.top-bar .alt {
-       color: blue;
-}
-
-.menu {
-       background-color: red;
-}
-
-.menu a {
-       color: blue;
-}
-
-.caption {
-       padding: 10px;
-}
-
-.caption .text, .caption .header {
-       color: green;
-}
-
-.footer {
-       padding: 10px;
-}
-
-.footer .left, .footer .right {
-       color: purple;
-}
-
-.footer .left a, .footer .right a {
-       color: orange;
-}
-
-.main {
-       color: red;
-}
-
-.main .second.third {
-       color: blue;
-}
-
-.main .second.third .fourth {
-       color: black;
-}
diff --git a/tests/sass/resources/css/parent-import.css b/tests/sass/resources/css/parent-import.css
deleted file mode 100644 (file)
index f67d17f..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-.content-navigation {
-       border-color: #3bbfce;
-       color: #0000ff;
-}
-
-.border {
-       padding: 8px;
-       margin: 8px;
-       border-color: #3bbfce;
-}
-
-.body {
-       background-image: url(../folder-test2/bg.png);
-       background: transparent url(../folder-test2/img/loading-indicator.gif);
-       background-image: url(http://abc/bg.png);
-       background-image: url(/abc/bg.png);
-}
-
-.base {
-       color: red;
-}
-
-.text {
-       font-weight: bold;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/parent-selector.css b/tests/sass/resources/css/parent-selector.css
deleted file mode 100644 (file)
index 9c7140e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-a {
-       font-weight: bold;
-       text-decoration: none;
-}
-
-a:hover {
-       text-decoration: underline;
-}
-
-body.firefox a {
-       font-weight: normal;
-}
-
-#main {
-       color: black;
-}
-
-#main a {
-       font-weight: bold;
-}
-
-#main a:hover {
-       color: red;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/semicolons.css b/tests/sass/resources/css/semicolons.css
deleted file mode 100644 (file)
index 8a08617..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.all-the-properties {
-       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
-       position: absolute;
-       overflow: hidden;
-}
-
-.missing-semicolon-on-last-row {
-       color: red;
-       background-color: blue;
-}
diff --git a/tests/sass/resources/css/var-guarded.css b/tests/sass/resources/css/var-guarded.css
deleted file mode 100644 (file)
index c4a8c49..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#main {
-       content: "First content";
-       new-content: "First time reference";
-}
\ No newline at end of file
diff --git a/tests/sass/resources/css/variables.css b/tests/sass/resources/css/variables.css
deleted file mode 100644 (file)
index d54ae6c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.content-navigation {
-       border-color: #3bbfce;
-       color: #0000ff;
-       color1: #0000d1;
-       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
-}
-
-.border {
-       padding: 8px;
-       margin: 8px;
-       border-color: #3bbfce;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/_partial-for-import.scss b/tests/sass/resources/scss/_partial-for-import.scss
deleted file mode 100644 (file)
index 32c3149..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-$foo : red;
-
-.caption {
-       $side: right;
-       border: 1px solid black;
-       background: #ff0000;
-       padding: 10px;
-       margin: 10px;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/comments.scss b/tests/sass/resources/scss/comments.scss
deleted file mode 100644 (file)
index de3fbe8..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/** 0sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-/** 1sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-/** 2sprite: verticals; sprite-image: url(../common/img/vertical-sprites.png); sprite-layout: vertical */
-$black:#000000;
-.v-button:focus {
-       background-image: url(img/left-focus.png);/** sprite-ref: buttons */
-       outline: none;
-}
-
-.v-button:focus .v-button-wrap {
-       background-image: url(img/right-focus.png);/** sprite-ref: buttons; sprite-alignment: right */
-       outline: none;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/control-directives.scss b/tests/sass/resources/scss/control-directives.scss
deleted file mode 100644 (file)
index febd563..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-@for $i from 1 through 3 {
-  .item-#{$i} { width: 2em * $i; }
-}
-
-@while $i > 0 {
-  .item-#{$i} { width: 2em * $i; }
-  $i: $i - 2;
-}
-
-@each $animal in puma, sea-slug, egret, salamander {
-  .#{$animal}-icon {
-    background-image: url('/images/#{$animal}.png');
-  }
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/extends.scss b/tests/sass/resources/scss/extends.scss
deleted file mode 100644 (file)
index c9e0f85..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.error {
-  border: 1px #f00;
-  background: #fdd;
-}
-.error.intrusion {
-  font-size: 1.3em;
-  font-weight: bold;
-}
-
-.badError {
-  @extend .error;
-  border-width: 3px;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/folder-test/parent-import.scss b/tests/sass/resources/scss/folder-test/parent-import.scss
deleted file mode 100644 (file)
index b3f6c80..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "../folder-test2/variables.scss";
-@import "../folder-test2/url";
-@import "../folder-test2/base-imported.scss";
-.text {
-       font-weight: bold;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/folder-test2/base-imported.scss b/tests/sass/resources/scss/folder-test2/base-imported.scss
deleted file mode 100644 (file)
index 17d801e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-@import "base.scss";
\ No newline at end of file
diff --git a/tests/sass/resources/scss/folder-test2/base.scss b/tests/sass/resources/scss/folder-test2/base.scss
deleted file mode 100644 (file)
index 57ca0bb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.base{
-       color: red;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/folder-test2/url.scss b/tests/sass/resources/scss/folder-test2/url.scss
deleted file mode 100644 (file)
index a4be967..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-.body{
-       background-image: url(bg.png);
-       background: transparent url(img/loading-indicator.gif);
-       background-image: url(http://abc/bg.png);
-       background-image: url(/abc/bg.png);
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/folder-test2/variables.scss b/tests/sass/resources/scss/folder-test2/variables.scss
deleted file mode 100644 (file)
index 2d06d36..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-$blue: #3bbfce;
-$margin: 8px;
-
-.content-navigation {
-       border-color: $blue;
-       $blue: #0000ff;
-       color: $blue;
-}
-
-.border {
-       padding: $margin;
-       margin: $margin;
-       border-color: $blue;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/functions.scss b/tests/sass/resources/scss/functions.scss
deleted file mode 100644 (file)
index abf6f61..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-.main {
-       margin: abs(-2px);
-       border: ceil(10.4px);
-       border: floor(10.4px);
-       border: round(10.4px);
-       color: lighten(hsl(0, 0%, 0%), 30%);
-       color: darken(hsl(25, 100%, 80%), 30%);
-       color: darken(rgb(136, 0, 0), 20%);
-       color: lighten(rgb(136, 0, 0), 20%);
-       color: darken(#880000, 20%);
-       color: darken(#800, 20%);
-       color: lighten(#880000, 20%);
-       color: lighten(#800, 20%);
-}
-
-
diff --git a/tests/sass/resources/scss/imports.scss b/tests/sass/resources/scss/imports.scss
deleted file mode 100644 (file)
index 4d53a12..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "_partial-for-import";
-
-.text {
-       font-weight: bold;
-       color: $foo;
-}
diff --git a/tests/sass/resources/scss/interpolation.scss b/tests/sass/resources/scss/interpolation.scss
deleted file mode 100644 (file)
index 5859a98..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-$name: foo;
-$attr: border;
-p.#{$name}abc { abc#{$attr}-color: blue }
\ No newline at end of file
diff --git a/tests/sass/resources/scss/microsoft-extensions.scss b/tests/sass/resources/scss/microsoft-extensions.scss
deleted file mode 100644 (file)
index 6967096..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-.v-ie6 .v-shadow-window {
-       background: #000000;
-       filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=5 ) alpha(opacity = 20);
-       margin-top: 2px;
-       margin-left: 2px;
-}
diff --git a/tests/sass/resources/scss/mixins.scss b/tests/sass/resources/scss/mixins.scss
deleted file mode 100644 (file)
index 52e03d6..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-//asfdasdf
-
-@mixin font-settings {
-       font-family: arial;
-       font-size: 16px;
-       font-weight: bold;
-}
-
-@mixin rounded-borders($thickness, $radius : 3px) {
-       border: $thickness solid black;
-       -webkit-border-radius: $radius;
-       -moz-border-radius: $radius;
-       border-radius: $radius;
-}
-
-.main {
-       @include rounded-borders(1px);
-       @include font-settings;
-       @include main-details(14px);
-}
-
-.footer {
-       @include rounded-borders(2px, 10px);
-}
-
-@mixin layout {
-       .header {
-               width: 100%;
-       }
-       .main {
-               width: 100%;
-               height: 100%;
-       }
-       
-       .footer {
-               width: 100%;
-       }
-       @media print {
-               .v-view {
-                       overflow: visible;
-               }
-       }
-       @include font-settings;
-}
-
-@mixin main-details($size){
-       .details {
-               font: {
-                       size : $size;
-                       weight: bold;
-               }
-       }
-}
-
-@include layout;
\ No newline at end of file
diff --git a/tests/sass/resources/scss/nested-properties.scss b/tests/sass/resources/scss/nested-properties.scss
deleted file mode 100644 (file)
index e12a83a..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-li {
-  font: {
-    family: serif;;
-    weight: bold;
-    size: 1.2em
-  }
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/nesting.scss b/tests/sass/resources/scss/nesting.scss
deleted file mode 100644 (file)
index 0336c9e..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-.top-bar {
-       color: red;
-       .alt {
-               color: blue;
-       }
-}
-
-.menu {
-       background-color: red;
-       a {
-               color: blue;
-       }
-}
-
-.caption {
-       padding: 10px;
-       .text, .header {
-               color: green;
-       }
-}
-
-.footer {
-       padding: 10px;
-       .left, .right {
-               color: purple;
-               a {
-                       color: orange;
-               }
-       }
-}
-
-.main {
-  color: red;
-  .second.third {
-    color: blue;
-    .fourth {
-      color: black;
-    }
-  }
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/parent-selector.scss b/tests/sass/resources/scss/parent-selector.scss
deleted file mode 100644 (file)
index 3d0f694..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-a {
-  font-weight: bold;
-  text-decoration: none;
-  &:hover { text-decoration: underline; }
-  body.firefox & { font-weight: normal; }
-}
-
-#main {
-  color: black;
-  a {
-    font-weight: bold;
-    &:hover { color: red; }
-  }
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/reference-parent-selector.css b/tests/sass/resources/scss/reference-parent-selector.css
deleted file mode 100644 (file)
index 733c8fd..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-a {
-       color: #660000;
-       &:hover {color: #000000;}
-       &:visited {color:#660066;}
-       &:active {color: #ffffff;}
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/semicolons.scss b/tests/sass/resources/scss/semicolons.scss
deleted file mode 100644 (file)
index a4a5604..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.all-the-properties {
-       font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif; ;
-       position: absolute;;
-       overflow: hidden;
-}
-.missing-semicolon-on-last-row {
-       color: red;
-       background-color: blue
-}
diff --git a/tests/sass/resources/scss/var-guarded.scss b/tests/sass/resources/scss/var-guarded.scss
deleted file mode 100644 (file)
index 8f7aab8..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-$content: "First content";
-$content: "Second content?" !default;
-$new_content: "First time reference" !default;
-
-#main {
-  content: $content;
-  new-content: $new_content;
-}
\ No newline at end of file
diff --git a/tests/sass/resources/scss/variables.scss b/tests/sass/resources/scss/variables.scss
deleted file mode 100644 (file)
index 60acc5d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-$blue: #3bbfce;
-$margin: 8px;
-$chameleon-font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
-
-.content-navigation {
-       border-color: $blue;
-       $blue: #0000ff;
-       color: $blue;
-       color1: darken($blue, 9%);
-       font-family: $chameleon-font-family;
-}
-
-.border {
-       padding: $margin;
-       margin: $margin;
-       border-color: $blue;
-}
\ No newline at end of file
diff --git a/tests/sass/src/com/vaadin/sass/AbstractTestBase.java b/tests/sass/src/com/vaadin/sass/AbstractTestBase.java
deleted file mode 100644 (file)
index a6b03fe..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import junit.framework.Assert;
-
-import org.apache.commons.io.IOUtils;
-import org.w3c.css.sac.CSSException;
-
-public abstract class AbstractTestBase {
-
-    protected ScssStylesheet stylesheet;
-    protected String originalScss;
-    protected String parsedScss;
-    protected String comparisonCss;
-
-    public ScssStylesheet getStyleSheet(String filename)
-            throws URISyntaxException, CSSException, IOException {
-        File file = getFile(filename);
-        stylesheet = ScssStylesheet.get(file.getAbsolutePath());
-        return stylesheet;
-    }
-
-    public File getFile(String filename) throws URISyntaxException,
-            CSSException, IOException {
-        return new File(getClass().getResource(filename).toURI());
-    }
-
-    public String getFileContent(String filename) throws IOException,
-            CSSException, URISyntaxException {
-        File file = getFile(filename);
-        return getFileContent(file);
-    }
-
-    /**
-     * Read in the full content of a file into a string.
-     * 
-     * @param file
-     *            the file to be read
-     * @return a String with the content of the
-     * @throws IOException
-     *             when file reading fails
-     */
-    public String getFileContent(File file) throws IOException {
-        return IOUtils.toString(new FileReader(file));
-    }
-
-    public void testParser(String file) throws CSSException, IOException,
-            URISyntaxException {
-        originalScss = getFileContent(file);
-        ScssStylesheet sheet = getStyleSheet(file);
-        parsedScss = sheet.toString();
-        Assert.assertEquals("Original CSS and parsed CSS do not match",
-                originalScss, parsedScss);
-    }
-
-    public void testCompiler(String scss, String css) throws Exception {
-        comparisonCss = getFileContent(css);
-        ScssStylesheet sheet = getStyleSheet(scss);
-        sheet.compile();
-        parsedScss = sheet.toString();
-        Assert.assertEquals("Original CSS and parsed CSS do not match",
-                comparisonCss, parsedScss);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/parser/ParserTest.java b/tests/sass/src/com/vaadin/sass/parser/ParserTest.java
deleted file mode 100644 (file)
index 34c365e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.parser;
-
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-import org.w3c.css.sac.InputSource;
-import org.w3c.css.sac.LexicalUnit;
-
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-
-public class ParserTest {
-
-    @Test
-    public void testParsePropertyValue() throws CSSException, IOException {
-        Parser parser = new Parser();
-
-        LexicalUnit value = parser.parsePropertyValue(new InputSource(
-                new StringReader("$margin/2;")));
-
-        Assert.assertEquals("margin", value.getStringValue());
-        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE,
-                value.getLexicalUnitType());
-        value = value.getNextLexicalUnit();
-        Assert.assertEquals(LexicalUnit.SAC_OPERATOR_SLASH,
-                value.getLexicalUnitType());
-        value = value.getNextLexicalUnit();
-        Assert.assertEquals(LexicalUnit.SAC_INTEGER, value.getLexicalUnitType());
-        Assert.assertEquals(2, value.getIntegerValue());
-
-    }
-
-    @Test
-    public void testCanIngoreSingleLineComment() {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        try {
-            parser.parseStyleSheet(new InputSource(new StringReader(
-                    "//kjaljsföajsfalkj\n@12abcg;")));
-            Assert.assertTrue(true);
-        } catch (Exception e) {
-            Assert.fail(e.getMessage());
-        }
-    }
-}
\ No newline at end of file
diff --git a/tests/sass/src/com/vaadin/sass/testcases/css/EmptyBlock.java b/tests/sass/src/com/vaadin/sass/testcases/css/EmptyBlock.java
deleted file mode 100644 (file)
index de8a45b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.css;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-
-public class EmptyBlock extends AbstractTestBase {
-    String css = "/basic/empty_block.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        testParser(css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/css/Interpolation.java b/tests/sass/src/com/vaadin/sass/testcases/css/Interpolation.java
deleted file mode 100644 (file)
index 01d593d..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.css;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.BlockNode;
-
-public class Interpolation extends AbstractTestBase {
-    String scss = "/scss/interpolation.scss";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-
-        Assert.assertEquals(3, root.getChildren().size());
-        BlockNode blockNodeWithInterpolation = (BlockNode) root.getChildren()
-                .get(2);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/css/Media.java b/tests/sass/src/com/vaadin/sass/testcases/css/Media.java
deleted file mode 100644 (file)
index 04b8573..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.css;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-
-public class Media extends AbstractTestBase {
-
-    String css = "/basic/media.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        testParser(css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/css/Properties.java b/tests/sass/src/com/vaadin/sass/testcases/css/Properties.java
deleted file mode 100644 (file)
index e0c07bc..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.css;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-
-public class Properties extends AbstractTestBase {
-
-    String css = "/basic/properties.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        testParser(css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/css/Reindeer.java b/tests/sass/src/com/vaadin/sass/testcases/css/Reindeer.java
deleted file mode 100644 (file)
index 9bb4ed4..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.css;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-
-public class Reindeer extends AbstractTestBase {
-
-    String css = "/basic/reindeer.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        testParser(css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/css/Selectors.java b/tests/sass/src/com/vaadin/sass/testcases/css/Selectors.java
deleted file mode 100644 (file)
index cb86504..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.css;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-
-public class Selectors extends AbstractTestBase {
-
-    String css = "/basic/selectors.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        testParser(css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Comments.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Comments.java
deleted file mode 100644 (file)
index c76bbb8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import junit.framework.Assert;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.CommentNode;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-public class Comments extends AbstractTestBase {
-    String scss = "/scss/comments.scss";
-    String css = "/css/comments.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        Assert.assertNotNull(root);
-        Assert.assertEquals(6, root.getChildren().size());
-        Assert.assertTrue(root.getChildren().get(0) instanceof CommentNode);
-        Assert.assertTrue(root.getChildren().get(2) instanceof CommentNode);
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/ControlDirectives.java b/tests/sass/src/com/vaadin/sass/testcases/scss/ControlDirectives.java
deleted file mode 100644 (file)
index 033bbb0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-
-public class ControlDirectives extends AbstractTestBase {
-
-    String scss = "/scss/control-directives.scss";
-    String css = "/css/control-directives.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        Assert.assertNotNull(root);
-        Assert.fail("Implement assert nodes");
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Extends.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Extends.java
deleted file mode 100644 (file)
index f52a1d2..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.ExtendNode;
-
-public class Extends extends AbstractTestBase {
-    String scss = "/scss/extends.scss";
-    String css = "/css/extends.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-
-        Assert.assertTrue(root.getChildren().get(2).getChildren().get(0) instanceof ExtendNode);
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Functions.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Functions.java
deleted file mode 100644 (file)
index d2e890c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.BlockNode;
-
-public class Functions extends AbstractTestBase {
-
-    String scss = "/scss/functions.scss";
-    String css = "/css/functions.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        Assert.assertEquals(1, root.getChildren().size());
-        BlockNode blockNode = (BlockNode) root.getChildren().get(0);
-        Assert.assertEquals(12, blockNode.getChildren().size());
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Imports.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Imports.java
deleted file mode 100644 (file)
index 8c60927..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.ImportNode;
-
-public class Imports extends AbstractTestBase {
-
-    String scss = "/scss/imports.scss";
-    String css = "/css/imports.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        ImportNode importNode = (ImportNode) root.getChildren().get(0);
-        Assert.assertEquals("_partial-for-import", importNode.getUri());
-        Assert.assertFalse(importNode.isPureCssImport());
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/MicrosoftExtensions.java b/tests/sass/src/com/vaadin/sass/testcases/scss/MicrosoftExtensions.java
deleted file mode 100644 (file)
index 5460700..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import org.junit.Test;
-
-import com.vaadin.sass.AbstractTestBase;
-
-/**
- * Test for Microsoft specific CSS extensions.
- */
-public class MicrosoftExtensions extends AbstractTestBase {
-    String scss = "/scss/microsoft-extensions.scss";
-    String css = "/css/microsoft-extensions.css";
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Mixins.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Mixins.java
deleted file mode 100644 (file)
index 05b3d3c..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-import org.w3c.css.sac.LexicalUnit;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.BlockNode;
-import com.vaadin.sass.tree.MediaNode;
-import com.vaadin.sass.tree.MixinDefNode;
-import com.vaadin.sass.tree.MixinNode;
-
-public class Mixins extends AbstractTestBase {
-
-    String scss = "/scss/mixins.scss";
-    String css = "/css/mixins.css";
-
-    @Test
-    public void testParser() throws CSSException, URISyntaxException,
-            IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-
-        MixinDefNode mixinDefNode0 = (MixinDefNode) root.getChildren().get(0);
-        Assert.assertEquals("font-settings", mixinDefNode0.getName());
-        Assert.assertTrue(mixinDefNode0.getArglist().isEmpty());
-        Assert.assertEquals(3, mixinDefNode0.getChildren().size());
-
-        MixinDefNode mixinDefNode1 = (MixinDefNode) root.getChildren().get(1);
-        Assert.assertEquals("rounded-borders", mixinDefNode1.getName());
-        Assert.assertEquals(2, mixinDefNode1.getArglist().size());
-        Assert.assertEquals("thickness", mixinDefNode1.getArglist().get(0)
-                .getName());
-        Assert.assertEquals("radius", mixinDefNode1.getArglist().get(1)
-                .getName());
-        Assert.assertEquals(LexicalUnit.SAC_PIXEL, mixinDefNode1.getArglist()
-                .get(1).getExpr().getLexicalUnitType());
-        Assert.assertEquals(3f, mixinDefNode1.getArglist().get(1).getExpr()
-                .getFloatValue());
-
-        Assert.assertEquals(4, mixinDefNode1.getChildren().size());
-
-        BlockNode mainBlockNode = (BlockNode) root.getChildren().get(2);
-        Assert.assertEquals(3, mainBlockNode.getChildren().size());
-        MixinNode mixinNode0MainBlock = (MixinNode) mainBlockNode.getChildren()
-                .get(0);
-        Assert.assertEquals("rounded-borders", mixinNode0MainBlock.getName());
-        Assert.assertEquals(1f, mixinNode0MainBlock.getArglist().get(0)
-                .getFloatValue());
-        Assert.assertEquals(LexicalUnit.SAC_PIXEL, mixinNode0MainBlock
-                .getArglist().get(0).getLexicalUnitType());
-        MixinNode mixinNOde1MainBlock = (MixinNode) mainBlockNode.getChildren()
-                .get(1);
-        Assert.assertEquals("font-settings", mixinNOde1MainBlock.getName());
-        Assert.assertTrue(mixinNOde1MainBlock.getArglist().isEmpty());
-
-        MixinNode mixinNOde2MainBlock = (MixinNode) mainBlockNode.getChildren()
-                .get(2);
-        Assert.assertEquals("main-details", mixinNOde2MainBlock.getName());
-        Assert.assertTrue(mixinNOde1MainBlock.getArglist().isEmpty());
-
-        MixinNode mixinNode1MainBlock = (MixinNode) mainBlockNode.getChildren()
-                .get(1);
-        Assert.assertTrue(mixinNode1MainBlock.getArglist().isEmpty());
-
-        BlockNode footerBlockNode = (BlockNode) root.getChildren().get(3);
-        MixinNode mixinNodeFooterBlock = (MixinNode) footerBlockNode
-                .getChildren().get(0);
-        Assert.assertEquals(2f, mixinNodeFooterBlock.getArglist().get(0)
-                .getFloatValue());
-        Assert.assertEquals("px", mixinNodeFooterBlock.getArglist().get(0)
-                .getDimensionUnitText());
-
-        Assert.assertEquals(10f, mixinNodeFooterBlock.getArglist().get(1)
-                .getFloatValue());
-        Assert.assertEquals("px", mixinNodeFooterBlock.getArglist().get(1)
-                .getDimensionUnitText());
-
-        Assert.assertTrue(root.getChildren().get(4) instanceof MixinDefNode);
-        Assert.assertTrue(root.getChildren().get(4).getChildren().get(3) instanceof MediaNode);
-        Assert.assertTrue(root.getChildren().get(4).getChildren().get(4) instanceof MixinNode);
-
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/NestedProperties.java b/tests/sass/src/com/vaadin/sass/testcases/scss/NestedProperties.java
deleted file mode 100644 (file)
index 2f57934..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.BlockNode;
-import com.vaadin.sass.tree.NestPropertiesNode;
-import com.vaadin.sass.tree.RuleNode;
-
-public class NestedProperties extends AbstractTestBase {
-    String scss = "/scss/nested-properties.scss";
-    String css = "/css/nested-properties.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        Assert.assertEquals(1, root.getChildren().size());
-
-        BlockNode blockNode = (BlockNode) root.getChildren().get(0);
-        Assert.assertEquals(1, blockNode.getChildren().size());
-
-        NestPropertiesNode nestPropertiesNode = (NestPropertiesNode) blockNode
-                .getChildren().get(0);
-        Assert.assertEquals("font", nestPropertiesNode.getName());
-        RuleNode nestedProperty0 = (RuleNode) nestPropertiesNode.getChildren()
-                .get(0);
-        RuleNode nestedProperty1 = (RuleNode) nestPropertiesNode.getChildren()
-                .get(1);
-        RuleNode nestedProperty2 = (RuleNode) nestPropertiesNode.getChildren()
-                .get(2);
-        Assert.assertEquals("family", nestedProperty0.getVariable());
-        Assert.assertEquals("weight", nestedProperty1.getVariable());
-        Assert.assertEquals("size", nestedProperty2.getVariable());
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Nesting.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Nesting.java
deleted file mode 100644 (file)
index 55365c7..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.BlockNode;
-
-public class Nesting extends AbstractTestBase {
-
-    String scss = "/scss/nesting.scss";
-    String css = "/css/nesting.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        Assert.assertEquals(5, root.getChildren().size());
-
-        BlockNode blockNode0 = (BlockNode) root.getChildren().get(0);
-        Assert.assertEquals(2, blockNode0.getChildren().size());
-        BlockNode nestedBlock0 = (BlockNode) blockNode0.getChildren().get(1);
-        org.junit.Assert.assertEquals(1, nestedBlock0.getChildren().size());
-
-        BlockNode blockNode1 = (BlockNode) root.getChildren().get(1);
-        Assert.assertEquals(2, blockNode1.getChildren().size());
-        BlockNode nestedBlockInBlock1 = (BlockNode) blockNode1.getChildren()
-                .get(1);
-        Assert.assertEquals(1, nestedBlockInBlock1.getChildren().size());
-
-        BlockNode blockNode2 = (BlockNode) root.getChildren().get(2);
-        Assert.assertEquals(2, blockNode2.getChildren().size());
-        BlockNode nestedBlockInBlock2 = (BlockNode) blockNode2.getChildren()
-                .get(1);
-        Assert.assertEquals(1, nestedBlockInBlock2.getChildren().size());
-
-        BlockNode blockNode3 = (BlockNode) root.getChildren().get(3);
-        Assert.assertEquals(2, blockNode3.getChildren().size());
-        BlockNode nestedBlockInBlock3 = (BlockNode) blockNode3.getChildren()
-                .get(1);
-        Assert.assertEquals(2, nestedBlockInBlock3.getChildren().size());
-        BlockNode nestednestedBlockInBlock3 = (BlockNode) nestedBlockInBlock3
-                .getChildren().get(1);
-        Assert.assertEquals(1, nestednestedBlockInBlock3.getChildren().size());
-
-        BlockNode blockNode4 = (BlockNode) root.getChildren().get(4);
-        Assert.assertEquals(2, blockNode4.getChildren().size());
-        BlockNode nestedBlockInBlock4 = (BlockNode) blockNode3.getChildren()
-                .get(1);
-        Assert.assertEquals(2, nestedBlockInBlock4.getChildren().size());
-        BlockNode nestednestedBlockInBlock4 = (BlockNode) nestedBlockInBlock3
-                .getChildren().get(1);
-        Assert.assertEquals(1, nestednestedBlockInBlock4.getChildren().size());
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/ParentImports.java b/tests/sass/src/com/vaadin/sass/testcases/scss/ParentImports.java
deleted file mode 100644 (file)
index 8b12f3b..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.tree.ImportNode;
-
-public class ParentImports extends AbstractTestBase {
-
-    String scss = "/scss/folder-test/parent-import.scss";
-    String css = "/css/parent-import.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        ImportNode importVariableNode = (ImportNode) root.getChildren().get(0);
-        Assert.assertEquals("../folder-test2/variables.scss",
-                importVariableNode.getUri());
-        Assert.assertFalse(importVariableNode.isPureCssImport());
-
-        ImportNode importURLNode = (ImportNode) root.getChildren().get(1);
-        Assert.assertEquals("../folder-test2/url", importURLNode.getUri());
-        Assert.assertFalse(importURLNode.isPureCssImport());
-
-        ImportNode importImportNode = (ImportNode) root.getChildren().get(2);
-        Assert.assertEquals("../folder-test2/base-imported.scss",
-                importImportNode.getUri());
-        Assert.assertFalse(importImportNode.isPureCssImport());
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/ParentSelector.java b/tests/sass/src/com/vaadin/sass/testcases/scss/ParentSelector.java
deleted file mode 100644 (file)
index 7ac2450..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.selector.SelectorUtil;
-import com.vaadin.sass.tree.BlockNode;
-
-public class ParentSelector extends AbstractTestBase {
-    String scss = "/scss/parent-selector.scss";
-    String css = "/css/parent-selector.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        BlockNode blockNode = (BlockNode) root.getChildren().get(0);
-        Assert.assertEquals(4, blockNode.getChildren().size());
-        BlockNode nestedBlock1 = (BlockNode) blockNode.getChildren().get(2);
-        Assert.assertEquals("&:hover",
-                SelectorUtil.toString(nestedBlock1.getSelectorList()));
-        BlockNode nestedBlock2 = (BlockNode) blockNode.getChildren().get(3);
-        Assert.assertEquals("body.firefox &",
-                SelectorUtil.toString(nestedBlock2.getSelectorList()));
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Semicolons.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Semicolons.java
deleted file mode 100644 (file)
index 9dd8a38..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import org.junit.Test;
-
-import com.vaadin.sass.AbstractTestBase;
-
-/**
- * Test for missing and extraneous semicolon handling.
- */
-public class Semicolons extends AbstractTestBase {
-    String scss = "/scss/semicolons.scss";
-    String css = "/css/semicolons.css";
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/VariableGuarded.java b/tests/sass/src/com/vaadin/sass/testcases/scss/VariableGuarded.java
deleted file mode 100644 (file)
index 2c37737..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-
-public class VariableGuarded extends AbstractTestBase {
-    String scss = "/scss/var-guarded.scss";
-    String css = "/css/var-guarded.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        Assert.assertEquals(4, root.getChildren().size());
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-        Assert.assertEquals("Original CSS and parsed CSS doesn't match",
-                comparisonCss, parsedScss);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/scss/Variables.java b/tests/sass/src/com/vaadin/sass/testcases/scss/Variables.java
deleted file mode 100644 (file)
index 010a208..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.scss;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.w3c.css.sac.CSSException;
-
-import com.vaadin.sass.AbstractTestBase;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.handler.SCSSDocumentHandler;
-import com.vaadin.sass.handler.SCSSDocumentHandlerImpl;
-import com.vaadin.sass.parser.Parser;
-import com.vaadin.sass.parser.SCSSLexicalUnit;
-import com.vaadin.sass.tree.BlockNode;
-import com.vaadin.sass.tree.RuleNode;
-import com.vaadin.sass.tree.VariableNode;
-
-public class Variables extends AbstractTestBase {
-
-    String scss = "/scss/variables.scss";
-    String css = "/css/variables.css";
-
-    @Test
-    public void testParser() throws CSSException, IOException {
-        Parser parser = new Parser();
-        SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
-        parser.setDocumentHandler(handler);
-        parser.parseStyleSheet(getClass().getResource(scss).getPath());
-        ScssStylesheet root = handler.getStyleSheet();
-        Assert.assertEquals(5, root.getChildren().size());
-
-        VariableNode varNode1 = (VariableNode) root.getChildren().get(0);
-        Assert.assertEquals("blue", varNode1.getName());
-        // Assert.assertEquals("blue", varNode1.getExpr().);
-
-        VariableNode varNode2 = (VariableNode) root.getChildren().get(1);
-        Assert.assertEquals("margin", varNode2.getName());
-        Assert.assertEquals(8f, varNode2.getExpr().getFloatValue());
-        Assert.assertEquals("px", varNode2.getExpr().getDimensionUnitText());
-
-        VariableNode varNode3 = (VariableNode) root.getChildren().get(2);
-        Assert.assertEquals("chameleon-font-family", varNode3.getName());
-
-        BlockNode blockNode1 = (BlockNode) root.getChildren().get(3);
-        Assert.assertEquals(5, blockNode1.getChildren().size());
-        RuleNode ruleNode1Block1 = (RuleNode) blockNode1.getChildren().get(0);
-        Assert.assertEquals("border-color", ruleNode1Block1.getVariable());
-        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode1Block1
-                .getValue().getLexicalUnitType());
-        Assert.assertEquals("blue", ruleNode1Block1.getValue().getStringValue());
-
-        VariableNode varNode1Block1 = (VariableNode) blockNode1.getChildren()
-                .get(1);
-        Assert.assertEquals("blue", varNode1Block1.getName());
-
-        RuleNode ruleNode2Block1 = (RuleNode) blockNode1.getChildren().get(2);
-        Assert.assertEquals("color", ruleNode2Block1.getVariable());
-        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode2Block1
-                .getValue().getLexicalUnitType());
-        Assert.assertEquals("blue", ruleNode2Block1.getValue().getStringValue());
-
-        BlockNode blockNode2 = (BlockNode) root.getChildren().get(4);
-        RuleNode ruleNode1Block2 = (RuleNode) blockNode2.getChildren().get(0);
-        Assert.assertEquals("padding", ruleNode1Block2.getVariable());
-        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode1Block2
-                .getValue().getLexicalUnitType());
-        Assert.assertEquals("margin", ruleNode1Block2.getValue()
-                .getStringValue());
-
-        RuleNode ruleNode2Block2 = (RuleNode) blockNode2.getChildren().get(1);
-        Assert.assertEquals("margin", ruleNode2Block2.getVariable());
-        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode2Block2
-                .getValue().getLexicalUnitType());
-        Assert.assertEquals("margin", ruleNode2Block2.getValue()
-                .getStringValue());
-
-        RuleNode ruleNode3Block2 = (RuleNode) blockNode2.getChildren().get(2);
-        Assert.assertEquals("border-color", ruleNode3Block2.getVariable());
-        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode1Block2
-                .getValue().getLexicalUnitType());
-        Assert.assertEquals("blue", ruleNode3Block2.getValue().getStringValue());
-    }
-
-    @Test
-    public void testCompiler() throws Exception {
-        testCompiler(scss, css);
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/visitor/ImportVisitorTest.java b/tests/sass/src/com/vaadin/sass/testcases/visitor/ImportVisitorTest.java
deleted file mode 100644 (file)
index 8459139..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.visitor;
-
-import org.junit.Test;
-
-public class ImportVisitorTest {
-    @Test
-    public void canHandleNestedImports() {
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/visitor/MixinVisitorTest.java b/tests/sass/src/com/vaadin/sass/testcases/visitor/MixinVisitorTest.java
deleted file mode 100644 (file)
index 6b7cfcb..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.visitor;
-
-import java.util.ArrayList;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.w3c.css.sac.LexicalUnit;
-
-import com.steadystate.css.parser.LexicalUnitImpl;
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.parser.SCSSLexicalUnit;
-import com.vaadin.sass.tree.BlockNode;
-import com.vaadin.sass.tree.MixinDefNode;
-import com.vaadin.sass.tree.MixinNode;
-import com.vaadin.sass.tree.RuleNode;
-import com.vaadin.sass.tree.VariableNode;
-import com.vaadin.sass.visitor.MixinVisitor;
-
-public class MixinVisitorTest {
-    private MixinVisitor mixinVisitor = new MixinVisitor();
-
-    @Test
-    public void testTraversMixinWithoutArgs() {
-        ScssStylesheet root = new ScssStylesheet();
-        MixinDefNode mixinDefNoArgs = new MixinDefNode("no-args", null);
-        BlockNode blockNode = new BlockNode(null);
-        mixinDefNoArgs.appendChild(blockNode);
-        root.appendChild(mixinDefNoArgs);
-
-        BlockNode blockWithMixin = new BlockNode(null);
-        MixinNode mixin = new MixinNode("no-args", null);
-        blockWithMixin.appendChild(mixin);
-        root.appendChild(blockWithMixin);
-
-        try {
-            mixinVisitor.traverse(root);
-        } catch (Exception e) {
-            Assert.fail(e.getMessage());
-        }
-
-        Assert.assertEquals(1, root.getChildren().size());
-        BlockNode child = (BlockNode) root.getChildren().get(0);
-        BlockNode fromMixin = (BlockNode) child.getChildren().get(0);
-        Assert.assertFalse(fromMixin.hasChildren());
-    }
-
-    @Test
-    public void testTraverseMixinWithNonDefaultArgs() {
-        ScssStylesheet root = new ScssStylesheet();
-        ArrayList<VariableNode> args = new ArrayList<VariableNode>();
-        args.add(new VariableNode("arg", null, false));
-        MixinDefNode mixinDefWithNonDefaultArg = new MixinDefNode(
-                "non-default-arg", args);
-        BlockNode blockNode = new BlockNode(null);
-        mixinDefWithNonDefaultArg.appendChild(blockNode);
-        root.appendChild(mixinDefWithNonDefaultArg);
-
-        BlockNode blockWithMixin = new BlockNode(null);
-        ArrayList<LexicalUnit> includeArgs = new ArrayList<LexicalUnit>();
-        LexicalUnit includeArg = LexicalUnitImpl.createPixel(null, 1f);
-        includeArgs.add(includeArg);
-        MixinNode mixin = new MixinNode("non-default-arg", includeArgs);
-        blockWithMixin.appendChild(mixin);
-        root.appendChild(blockWithMixin);
-
-        try {
-            mixinVisitor.traverse(root);
-        } catch (Exception e) {
-            Assert.fail(e.getMessage());
-        }
-
-        Assert.assertEquals(1, root.getChildren().size());
-        BlockNode child = (BlockNode) root.getChildren().get(0);
-        VariableNode varNode = (VariableNode) child.getChildren().get(0);
-        Assert.assertEquals("arg", varNode.getName());
-        Assert.assertEquals(LexicalUnit.SAC_PIXEL, varNode.getExpr()
-                .getLexicalUnitType());
-        Assert.assertEquals(1f, varNode.getExpr().getFloatValue(), 0);
-        BlockNode fromMixin = (BlockNode) child.getChildren().get(1);
-        Assert.assertFalse(fromMixin.hasChildren());
-
-    }
-
-    @Test
-    public void testTraverseMixinWithDefaultArgs() {
-        ScssStylesheet root = new ScssStylesheet();
-        ArrayList<VariableNode> args = new ArrayList<VariableNode>();
-        args.add(new VariableNode("arg", LexicalUnitImpl.createPixel(null, 1f),
-                false));
-        MixinDefNode mixinDefWithNonDefaultArg = new MixinDefNode(
-                "default-arg", args);
-        BlockNode blockNode = new BlockNode(null);
-        mixinDefWithNonDefaultArg.appendChild(blockNode);
-        root.appendChild(mixinDefWithNonDefaultArg);
-
-        BlockNode blockWithMixin = new BlockNode(null);
-        MixinNode mixin = new MixinNode("default-arg", null);
-        blockWithMixin.appendChild(mixin);
-        root.appendChild(blockWithMixin);
-
-        try {
-            mixinVisitor.traverse(root);
-        } catch (Exception e) {
-            Assert.fail(e.getMessage());
-        }
-
-        Assert.assertEquals(1, root.getChildren().size());
-        BlockNode child = (BlockNode) root.getChildren().get(0);
-        VariableNode varNode = (VariableNode) child.getChildren().get(0);
-        Assert.assertEquals("arg", varNode.getName());
-        Assert.assertEquals(LexicalUnit.SAC_PIXEL, varNode.getExpr()
-                .getLexicalUnitType());
-        Assert.assertEquals(1f, varNode.getExpr().getFloatValue(), 0);
-        BlockNode fromMixin = (BlockNode) child.getChildren().get(1);
-        Assert.assertFalse(fromMixin.hasChildren());
-
-    }
-
-    @Test
-    public void testMixinWithoutArgument() {
-        /*
-         * ArrayList<String> args = new ArrayList<String>(); args.add("arg");
-         * MixinDefNode mixinDefWithArgs = new MixinDefNode("with-args", args);
-         * RuleNode ruleNode = new RuleNode("var",
-         * com.vaadin.sass.parser.LexicalUnitImpl.createVariable(0, 0, null,
-         * "arg"), false); mixinDefWithArgs.appendChild(ruleNode);
-         */
-        ScssStylesheet root = new ScssStylesheet();
-        MixinDefNode mixinDefNoArgs = new MixinDefNode("table-base", null);
-        BlockNode thBlockNode = new BlockNode(null);
-        RuleNode textAlignRuleNode = new RuleNode("text-align",
-                LexicalUnitImpl.createString(null, "center"), false, null);
-        thBlockNode.appendChild(textAlignRuleNode);
-        RuleNode fontWeightRuleNode = new RuleNode("font-weight",
-                LexicalUnitImpl.createString(null, "bold"), false, null);
-        thBlockNode.appendChild(fontWeightRuleNode);
-        mixinDefNoArgs.appendChild(thBlockNode);
-
-        BlockNode tdthBlockNode = new BlockNode(null);
-        RuleNode paddingRuleNode = new RuleNode("padding",
-                LexicalUnitImpl.createPixel(null, 2f), false, null);
-        tdthBlockNode.appendChild(paddingRuleNode);
-        mixinDefNoArgs.appendChild(tdthBlockNode);
-        root.appendChild(mixinDefNoArgs);
-
-        BlockNode dataBlock = new BlockNode(null);
-        MixinNode mixinNode = new MixinNode("table-base", null);
-        dataBlock.appendChild(mixinNode);
-        root.appendChild(dataBlock);
-
-        try {
-            mixinVisitor.traverse(root);
-        } catch (Exception e) {
-            Assert.fail(e.getMessage());
-        }
-
-        Assert.assertEquals(1, root.getChildren().size());
-        dataBlock = (BlockNode) root.getChildren().get(0);
-        BlockNode thBlock = (BlockNode) dataBlock.getChildren().get(0);
-        Assert.assertEquals(2, thBlock.getChildren().size());
-        BlockNode thtdBlock = (BlockNode) dataBlock.getChildren().get(1);
-        Assert.assertEquals(1, thtdBlock.getChildren().size());
-
-        /*
-         * Assert.assertEquals(2, root.getChildren().size()); BlockNode
-         * datathBlockNode = (BlockNode) root.getChildren().get(0);
-         * Assert.assertEquals(LexicalUnit.SAC_IDENT, datathBlockNode
-         * .getSelectorList().item(0).getSelectorType());
-         * Assert.assertEquals("text-align", ((RuleNode) datathBlockNode
-         * .getChildren().get(0)).getVariable()); Assert.assertEquals("center",
-         * ((RuleNode) datathBlockNode.getChildren()
-         * .get(0)).getValue().getStringValue());
-         * Assert.assertEquals("font-weight", ((RuleNode) datathBlockNode
-         * .getChildren().get(1)).getVariable()); Assert.assertEquals("bold",
-         * ((RuleNode) datathBlockNode.getChildren()
-         * .get(1)).getValue().getStringValue());
-         * 
-         * BlockNode datathdatatdBlockNode = (BlockNode)
-         * root.getChildren().get(1); Assert.assertEquals(LexicalUnit.SAC_IDENT,
-         * datathdatatdBlockNode .getSelectorList().item(0).getSelectorType());
-         * Assert.assertEquals(LexicalUnit.SAC_IDENT, datathdatatdBlockNode
-         * .getSelectorList().item(1).getSelectorType());
-         * Assert.assertEquals("padding", ((RuleNode) datathdatatdBlockNode
-         * .getChildren().get(0)).getVariable()); Assert.assertEquals(2.0f,
-         * ((RuleNode) datathdatatdBlockNode
-         * .getChildren().get(0)).getValue().getFloatValue(), 0);
-         * Assert.assertEquals(LexicalUnit.SAC_PIXEL, ((RuleNode)
-         * datathdatatdBlockNode.getChildren().get(0))
-         * .getValue().getLexicalUnitType());
-         */
-
-    }
-
-    @Test
-    public void testMixinWithArgument() {
-        ScssStylesheet root = new ScssStylesheet();
-        ArrayList<VariableNode> argNameList = new ArrayList<VariableNode>();
-        argNameList.add(new VariableNode("dist", null, false));
-        MixinDefNode mixinDef = new MixinDefNode("left", argNameList);
-
-        RuleNode floatRuleNode = new RuleNode("float",
-                LexicalUnitImpl.createString(null, "left"), false, null);
-        mixinDef.appendChild(floatRuleNode);
-        RuleNode marginLeftRuleNode = new RuleNode("margin-left",
-                com.vaadin.sass.parser.LexicalUnitImpl.createVariable(0, 0,
-                        null, "dist"), false, null);
-        mixinDef.appendChild(marginLeftRuleNode);
-        root.appendChild(mixinDef);
-
-        BlockNode dataBlock = new BlockNode(null);
-        ArrayList<LexicalUnit> argValueList = new ArrayList<LexicalUnit>();
-        LexicalUnit arg = LexicalUnitImpl.createPixel(null, 10f);
-        argValueList.add(arg);
-        MixinNode mixinNode = new MixinNode("left", argValueList);
-        dataBlock.appendChild(mixinNode);
-        root.appendChild(dataBlock);
-
-        try {
-            mixinVisitor.traverse(root);
-        } catch (Exception e) {
-            Assert.fail(e.getMessage());
-        }
-
-        Assert.assertEquals(1, root.getChildren().size());
-        BlockNode dataBlockNode = (BlockNode) root.getChildren().get(0);
-        VariableNode variable = (VariableNode) dataBlockNode.getChildren().get(
-                0);
-        Assert.assertEquals("dist", variable.getName());
-        Assert.assertEquals("float", ((RuleNode) dataBlockNode.getChildren()
-                .get(1)).getVariable());
-        Assert.assertEquals("left", ((RuleNode) dataBlockNode.getChildren()
-                .get(1)).getValue().getStringValue());
-        Assert.assertEquals("margin-left", ((RuleNode) dataBlockNode
-                .getChildren().get(2)).getVariable());
-        Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE,
-                ((RuleNode) dataBlockNode.getChildren().get(2)).getValue()
-                        .getLexicalUnitType());
-    }
-
-    @Test
-    public void testTopLevelInclude() {
-        ScssStylesheet root = new ScssStylesheet();
-
-        MixinDefNode defNode = new MixinDefNode("mixin", null);
-        defNode.appendChild(new RuleNode("var", null, false, null));
-        root.appendChild(defNode);
-
-        MixinNode mixinNode = new MixinNode("mixin", null);
-        root.appendChild(mixinNode);
-
-        try {
-            mixinVisitor.traverse(root);
-        } catch (Exception e) {
-            Assert.fail(e.getMessage());
-        }
-
-        Assert.assertEquals(1, root.getChildren().size());
-        RuleNode varRule = (RuleNode) root.getChildren().get(0);
-        Assert.assertEquals("var", varRule.getVariable());
-
-    }
-
-}
diff --git a/tests/sass/src/com/vaadin/sass/testcases/visitor/NestedPropertiesVisitorTest.java b/tests/sass/src/com/vaadin/sass/testcases/visitor/NestedPropertiesVisitorTest.java
deleted file mode 100644 (file)
index 3885869..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.testcases.visitor;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.vaadin.sass.ScssStylesheet;
-import com.vaadin.sass.tree.NestPropertiesNode;
-import com.vaadin.sass.tree.RuleNode;
-import com.vaadin.sass.tree.VariableNode;
-import com.vaadin.sass.visitor.NestPropertiesVisitor;
-
-public class NestedPropertiesVisitorTest {
-    private NestPropertiesVisitor visitor = new NestPropertiesVisitor();
-
-    @Test
-    public void testEmptyTreeNoChange() {
-        ScssStylesheet root = new ScssStylesheet();
-        Assert.assertFalse(root.hasChildren());
-        visitor.traverse(root);
-        Assert.assertFalse(root.hasChildren());
-    }
-
-    @Test
-    public void testNoNestPropertiesNodeNoChange() {
-        ScssStylesheet root = new ScssStylesheet();
-        root.appendChild(new VariableNode("", ""));
-        Assert.assertEquals(1, root.getChildren().size());
-        visitor.traverse(root);
-        Assert.assertEquals(1, root.getChildren().size());
-    }
-
-    @Test
-    public void testNestedPropertiesCanBeUnnested() {
-        ScssStylesheet root = new ScssStylesheet();
-        NestPropertiesNode nested = new NestPropertiesNode("nested");
-        RuleNode child0 = new RuleNode("child0", null, false, null);
-        RuleNode child1 = new RuleNode("child1", null, true, null);
-        nested.appendChild(child0);
-        nested.appendChild(child1);
-        root.appendChild(nested);
-
-        Assert.assertEquals(1, root.getChildren().size());
-        visitor.traverse(root);
-        Assert.assertEquals(2, root.getChildren().size());
-
-        for (int i = 0; i < root.getChildren().size(); i++) {
-            RuleNode node = (RuleNode) root.getChildren().get(i);
-            Assert.assertEquals("nested-child" + i, node.getVariable());
-        }
-    }
-}
diff --git a/tests/sass/src/com/vaadin/sass/tree/ImportNodeTest.java b/tests/sass/src/com/vaadin/sass/tree/ImportNodeTest.java
deleted file mode 100644 (file)
index b3a1c8f..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2011 Vaadin Ltd.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.vaadin.sass.tree;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.steadystate.css.parser.SACMediaListImpl;
-
-public class ImportNodeTest {
-    @Test
-    public void testIsPureCssImportShouldReturnTrueWhenIsURL() {
-        ImportNode node = new ImportNode("", null, true);
-        Assert.assertTrue(node.isPureCssImport());
-    }
-
-    @Test
-    public void testIsPureCssImportShouldReturnTrueWhenStartsWithHttp() {
-        ImportNode node = new ImportNode("http://abc", null, false);
-        Assert.assertTrue(node.isPureCssImport());
-    }
-
-    @Test
-    public void testIsPureCssImportShouldReturnTrueWhenEndsWithCss() {
-        ImportNode node = new ImportNode("abc.css", null, false);
-        Assert.assertTrue(node.isPureCssImport());
-    }
-
-    @Test
-    public void testIsPureCssImportShouldReturnTrueWhenHasMediaQueries() {
-        SACMediaListImpl ml = new SACMediaListImpl();
-        ml.add("screen");
-        ImportNode node = new ImportNode("", ml, false);
-        Assert.assertTrue(node.isPureCssImport());
-    }
-
-    @Test
-    public void testIsPureCssImportShouldReturnFalseInOtherCases() {
-        ImportNode node = new ImportNode("", null, false);
-        Assert.assertFalse(node.isPureCssImport());
-    }
-
-    @Test
-    public void testToStringWhenIsURL() {
-        ImportNode node = new ImportNode("test", null, true);
-        Assert.assertEquals("@import url(test);", node.toString());
-    }
-
-    @Test
-    public void testToStringWhenIsNotURL() {
-        ImportNode node = new ImportNode("test", null, false);
-        Assert.assertEquals("@import \"test\";", node.toString());
-    }
-
-    @Test
-    public void testToStringWithMediaQueries() {
-        SACMediaListImpl ml = new SACMediaListImpl();
-        ml.add("screen");
-        ImportNode node = new ImportNode("test", ml, true);
-        Assert.assertEquals("@import url(test) screen;", node.toString());
-    }
-}