jquery_drapper 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/MIT-LICENSE +23 -0
  4. data/README.markdown +62 -0
  5. data/Rakefile +1 -0
  6. data/example/css/custom.css +28 -0
  7. data/example/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  8. data/example/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  9. data/example/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  10. data/example/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  11. data/example/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  12. data/example/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  13. data/example/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  14. data/example/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  15. data/example/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  16. data/example/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  17. data/example/css/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  18. data/example/css/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  19. data/example/css/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  20. data/example/css/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  21. data/example/css/ui-lightness/jquery-ui-1.8.16.custom.css +568 -0
  22. data/example/index.html +47 -0
  23. data/jquery_drapper.gemspec +20 -0
  24. data/lib/jquery_drapper/rails/engine.rb +6 -0
  25. data/lib/jquery_drapper/version.rb +3 -0
  26. data/lib/jquery_drapper.rb +7 -0
  27. data/vendor/assets/javascripts/jquery.drapper.js +86 -0
  28. data/vendor/assets/javascripts/jquery.drappers/jquery.drappers.selectGroup.js +58 -0
  29. data/vendor/assets/javascripts/jquery.drappers/jquery.drappers.slider.js +68 -0
  30. metadata +110 -0
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ pkg
2
+ Icon?
3
+ .bundle
4
+ .DS_Store
5
+ TAGS
6
+ REVISION
7
+ *.tmproj
8
+ *~
9
+ .settings
10
+ .project
11
+ .tasks-cache
12
+ .svn
13
+ *DONOTVERSION*
14
+ /nbproject
15
+ /.idea
16
+ .sass-cache/
17
+ *.gem
18
+ /Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in jquery.drapper.gemspec
4
+ gemspec
data/MIT-LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ # LICENSE #
2
+
3
+ Copyright (C) 2011 by Alexey Osipenko
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+
23
+
data/README.markdown ADDED
@@ -0,0 +1,62 @@
1
+ # jquery_drapper plugin #
2
+
3
+ - when you need to write javascript, create a plugin. Do not write your own code in global namespace
4
+ - your own js code should be unobtrusive
5
+
6
+ This plugin helps doing theese two steps.
7
+
8
+ ## Installation ##
9
+
10
+ This plugin requires [jquery](http://jquery.com/).
11
+
12
+ Add `jquery_drapper.js` to the project. Mark DOM elements that you want to change with `data-decorate` attribute and initiate the plugin:
13
+
14
+ ``` JavaScript
15
+ $(document).ready(function() {
16
+ $(this).drapper();
17
+ })
18
+ ```
19
+
20
+ ## writing own drappers ##
21
+
22
+ Drappers should be added in `$.drappers` object. Use jQuery.extend for adding a new drapper. Here is an example:
23
+
24
+ ``` JavaScript
25
+ $.drappers = $.extend($.drappers, {
26
+ mydrapper: function() {
27
+ console.log("The special code, writing for html elements with drapper type 'myDrapper'");
28
+
29
+ if(this.config.specialTactics) {
30
+ $(this).css({
31
+ border: '1px solid black'
32
+ });
33
+ }
34
+ $(this).click(function{} (
35
+ $(this).hide();
36
+ ));
37
+ }
38
+ })
39
+ ```
40
+
41
+ After requiring that, you will be able to write the following:
42
+
43
+ ``` html
44
+ <html>
45
+ <head>
46
+ <script type="text/javascript" src="jquery.js"></script>
47
+ <script type="text/javascript" src="jquery_drapper.js"></script>
48
+ <script type="text/javascript" src="jquery_drappers.myDrapper.js"></script>
49
+ <script type="text/javascript">
50
+ $('body').drapper();
51
+ </script>
52
+ </head>
53
+ <body>
54
+
55
+ <div data-drapper="myDrapper: {specialTactics: true}"></div>
56
+
57
+ <body>
58
+ </html>
59
+ ```
60
+ ## Copyright
61
+
62
+ Copyright (C) 2011 by Alexey Osipenko. License see in file MIT-LICENSE
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,28 @@
1
+ .decoratorWrapper {
2
+ position: relative;
3
+ margin-bottom: 1em;
4
+ }
5
+
6
+ .decoratorWrapper [data-decorator-maxlabel],
7
+ .decoratorWrapper [data-decorator-minlabel],
8
+ .decoratorWrapper [data-decorator-currentlabel] {
9
+ position: absolute;
10
+ top: 100%;
11
+ }
12
+
13
+ .decoratorWrapper [data-decorator-maxlabel] {
14
+ right: 0;
15
+ }
16
+
17
+ .decoratorWrapper [data-decorator-minlabel] {
18
+ left: 0;
19
+ }
20
+
21
+ .decoratorWrapper [data-decorator-currentlabel] {
22
+ left: 50%;
23
+ }
24
+
25
+
26
+ .ui-slider {
27
+ display: block;
28
+ }
@@ -0,0 +1,568 @@
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.16
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+
43
+
44
+ /*
45
+ * jQuery UI CSS Framework 1.8.16
46
+ *
47
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Theming/API
52
+ *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
54
+ */
55
+
56
+
57
+ /* Component containers
58
+ ----------------------------------*/
59
+ .ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
60
+ .ui-widget .ui-widget { font-size: 1em; }
61
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
62
+ .ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
63
+ .ui-widget-content a { color: #333333; }
64
+ .ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
65
+ .ui-widget-header a { color: #ffffff; }
66
+
67
+ /* Interaction states
68
+ ----------------------------------*/
69
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
70
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
71
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
72
+ .ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
73
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
74
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
75
+ .ui-widget :active { outline: none; }
76
+
77
+ /* Interaction Cues
78
+ ----------------------------------*/
79
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
80
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
81
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
82
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
83
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
84
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
85
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
86
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
87
+
88
+ /* Icons
89
+ ----------------------------------*/
90
+
91
+ /* states and images */
92
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
93
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
94
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
95
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
96
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
97
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
98
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
99
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
100
+
101
+ /* positioning */
102
+ .ui-icon-carat-1-n { background-position: 0 0; }
103
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
104
+ .ui-icon-carat-1-e { background-position: -32px 0; }
105
+ .ui-icon-carat-1-se { background-position: -48px 0; }
106
+ .ui-icon-carat-1-s { background-position: -64px 0; }
107
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
108
+ .ui-icon-carat-1-w { background-position: -96px 0; }
109
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
110
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
111
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
112
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
113
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
114
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
115
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
116
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
117
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
118
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
119
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
120
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
121
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
122
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
123
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
124
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
125
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
126
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
127
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
128
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
129
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
130
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
131
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
132
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
133
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
134
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
135
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
136
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
137
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
138
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
139
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
140
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
141
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
142
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
143
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
144
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
145
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
146
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
147
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
148
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
149
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
150
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
151
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
152
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
153
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
154
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
155
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
156
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
157
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
158
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
159
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
160
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
161
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
162
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
163
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
164
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
165
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
166
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
167
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
168
+ .ui-icon-extlink { background-position: -32px -80px; }
169
+ .ui-icon-newwin { background-position: -48px -80px; }
170
+ .ui-icon-refresh { background-position: -64px -80px; }
171
+ .ui-icon-shuffle { background-position: -80px -80px; }
172
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
173
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
174
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
175
+ .ui-icon-folder-open { background-position: -16px -96px; }
176
+ .ui-icon-document { background-position: -32px -96px; }
177
+ .ui-icon-document-b { background-position: -48px -96px; }
178
+ .ui-icon-note { background-position: -64px -96px; }
179
+ .ui-icon-mail-closed { background-position: -80px -96px; }
180
+ .ui-icon-mail-open { background-position: -96px -96px; }
181
+ .ui-icon-suitcase { background-position: -112px -96px; }
182
+ .ui-icon-comment { background-position: -128px -96px; }
183
+ .ui-icon-person { background-position: -144px -96px; }
184
+ .ui-icon-print { background-position: -160px -96px; }
185
+ .ui-icon-trash { background-position: -176px -96px; }
186
+ .ui-icon-locked { background-position: -192px -96px; }
187
+ .ui-icon-unlocked { background-position: -208px -96px; }
188
+ .ui-icon-bookmark { background-position: -224px -96px; }
189
+ .ui-icon-tag { background-position: -240px -96px; }
190
+ .ui-icon-home { background-position: 0 -112px; }
191
+ .ui-icon-flag { background-position: -16px -112px; }
192
+ .ui-icon-calendar { background-position: -32px -112px; }
193
+ .ui-icon-cart { background-position: -48px -112px; }
194
+ .ui-icon-pencil { background-position: -64px -112px; }
195
+ .ui-icon-clock { background-position: -80px -112px; }
196
+ .ui-icon-disk { background-position: -96px -112px; }
197
+ .ui-icon-calculator { background-position: -112px -112px; }
198
+ .ui-icon-zoomin { background-position: -128px -112px; }
199
+ .ui-icon-zoomout { background-position: -144px -112px; }
200
+ .ui-icon-search { background-position: -160px -112px; }
201
+ .ui-icon-wrench { background-position: -176px -112px; }
202
+ .ui-icon-gear { background-position: -192px -112px; }
203
+ .ui-icon-heart { background-position: -208px -112px; }
204
+ .ui-icon-star { background-position: -224px -112px; }
205
+ .ui-icon-link { background-position: -240px -112px; }
206
+ .ui-icon-cancel { background-position: 0 -128px; }
207
+ .ui-icon-plus { background-position: -16px -128px; }
208
+ .ui-icon-plusthick { background-position: -32px -128px; }
209
+ .ui-icon-minus { background-position: -48px -128px; }
210
+ .ui-icon-minusthick { background-position: -64px -128px; }
211
+ .ui-icon-close { background-position: -80px -128px; }
212
+ .ui-icon-closethick { background-position: -96px -128px; }
213
+ .ui-icon-key { background-position: -112px -128px; }
214
+ .ui-icon-lightbulb { background-position: -128px -128px; }
215
+ .ui-icon-scissors { background-position: -144px -128px; }
216
+ .ui-icon-clipboard { background-position: -160px -128px; }
217
+ .ui-icon-copy { background-position: -176px -128px; }
218
+ .ui-icon-contact { background-position: -192px -128px; }
219
+ .ui-icon-image { background-position: -208px -128px; }
220
+ .ui-icon-video { background-position: -224px -128px; }
221
+ .ui-icon-script { background-position: -240px -128px; }
222
+ .ui-icon-alert { background-position: 0 -144px; }
223
+ .ui-icon-info { background-position: -16px -144px; }
224
+ .ui-icon-notice { background-position: -32px -144px; }
225
+ .ui-icon-help { background-position: -48px -144px; }
226
+ .ui-icon-check { background-position: -64px -144px; }
227
+ .ui-icon-bullet { background-position: -80px -144px; }
228
+ .ui-icon-radio-off { background-position: -96px -144px; }
229
+ .ui-icon-radio-on { background-position: -112px -144px; }
230
+ .ui-icon-pin-w { background-position: -128px -144px; }
231
+ .ui-icon-pin-s { background-position: -144px -144px; }
232
+ .ui-icon-play { background-position: 0 -160px; }
233
+ .ui-icon-pause { background-position: -16px -160px; }
234
+ .ui-icon-seek-next { background-position: -32px -160px; }
235
+ .ui-icon-seek-prev { background-position: -48px -160px; }
236
+ .ui-icon-seek-end { background-position: -64px -160px; }
237
+ .ui-icon-seek-start { background-position: -80px -160px; }
238
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
239
+ .ui-icon-seek-first { background-position: -80px -160px; }
240
+ .ui-icon-stop { background-position: -96px -160px; }
241
+ .ui-icon-eject { background-position: -112px -160px; }
242
+ .ui-icon-volume-off { background-position: -128px -160px; }
243
+ .ui-icon-volume-on { background-position: -144px -160px; }
244
+ .ui-icon-power { background-position: 0 -176px; }
245
+ .ui-icon-signal-diag { background-position: -16px -176px; }
246
+ .ui-icon-signal { background-position: -32px -176px; }
247
+ .ui-icon-battery-0 { background-position: -48px -176px; }
248
+ .ui-icon-battery-1 { background-position: -64px -176px; }
249
+ .ui-icon-battery-2 { background-position: -80px -176px; }
250
+ .ui-icon-battery-3 { background-position: -96px -176px; }
251
+ .ui-icon-circle-plus { background-position: 0 -192px; }
252
+ .ui-icon-circle-minus { background-position: -16px -192px; }
253
+ .ui-icon-circle-close { background-position: -32px -192px; }
254
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
255
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
256
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
257
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
258
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
259
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
260
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
261
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
262
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
263
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
264
+ .ui-icon-circle-check { background-position: -208px -192px; }
265
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
266
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
267
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
268
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
269
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
270
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
271
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
272
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
273
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
274
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
275
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
276
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
277
+
278
+
279
+ /* Misc visuals
280
+ ----------------------------------*/
281
+
282
+ /* Corner radius */
283
+ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
284
+ .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
285
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
286
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
287
+
288
+ /* Overlays */
289
+ .ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
290
+ .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
291
+ * jQuery UI Resizable 1.8.16
292
+ *
293
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
294
+ * Dual licensed under the MIT or GPL Version 2 licenses.
295
+ * http://jquery.org/license
296
+ *
297
+ * http://docs.jquery.com/UI/Resizable#theming
298
+ */
299
+ .ui-resizable { position: relative;}
300
+ .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
301
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
302
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
303
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
304
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
305
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
306
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
307
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
308
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
309
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
310
+ * jQuery UI Selectable 1.8.16
311
+ *
312
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
313
+ * Dual licensed under the MIT or GPL Version 2 licenses.
314
+ * http://jquery.org/license
315
+ *
316
+ * http://docs.jquery.com/UI/Selectable#theming
317
+ */
318
+ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
319
+ /*
320
+ * jQuery UI Accordion 1.8.16
321
+ *
322
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
323
+ * Dual licensed under the MIT or GPL Version 2 licenses.
324
+ * http://jquery.org/license
325
+ *
326
+ * http://docs.jquery.com/UI/Accordion#theming
327
+ */
328
+ /* IE/Win - Fix animation bug - #4615 */
329
+ .ui-accordion { width: 100%; }
330
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
331
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
332
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
333
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
334
+ .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
335
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
336
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
337
+ .ui-accordion .ui-accordion-content-active { display: block; }
338
+ /*
339
+ * jQuery UI Autocomplete 1.8.16
340
+ *
341
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
342
+ * Dual licensed under the MIT or GPL Version 2 licenses.
343
+ * http://jquery.org/license
344
+ *
345
+ * http://docs.jquery.com/UI/Autocomplete#theming
346
+ */
347
+ .ui-autocomplete { position: absolute; cursor: default; }
348
+
349
+ /* workarounds */
350
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
351
+
352
+ /*
353
+ * jQuery UI Menu 1.8.16
354
+ *
355
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
356
+ * Dual licensed under the MIT or GPL Version 2 licenses.
357
+ * http://jquery.org/license
358
+ *
359
+ * http://docs.jquery.com/UI/Menu#theming
360
+ */
361
+ .ui-menu {
362
+ list-style:none;
363
+ padding: 2px;
364
+ margin: 0;
365
+ display:block;
366
+ float: left;
367
+ }
368
+ .ui-menu .ui-menu {
369
+ margin-top: -3px;
370
+ }
371
+ .ui-menu .ui-menu-item {
372
+ margin:0;
373
+ padding: 0;
374
+ zoom: 1;
375
+ float: left;
376
+ clear: left;
377
+ width: 100%;
378
+ }
379
+ .ui-menu .ui-menu-item a {
380
+ text-decoration:none;
381
+ display:block;
382
+ padding:.2em .4em;
383
+ line-height:1.5;
384
+ zoom:1;
385
+ }
386
+ .ui-menu .ui-menu-item a.ui-state-hover,
387
+ .ui-menu .ui-menu-item a.ui-state-active {
388
+ font-weight: normal;
389
+ margin: -1px;
390
+ }
391
+ /*
392
+ * jQuery UI Button 1.8.16
393
+ *
394
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
395
+ * Dual licensed under the MIT or GPL Version 2 licenses.
396
+ * http://jquery.org/license
397
+ *
398
+ * http://docs.jquery.com/UI/Button#theming
399
+ */
400
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
401
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
402
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
403
+ .ui-button-icons-only { width: 3.4em; }
404
+ button.ui-button-icons-only { width: 3.7em; }
405
+
406
+ /*button text element */
407
+ .ui-button .ui-button-text { display: block; line-height: 1.4; }
408
+ .ui-button-text-only .ui-button-text { padding: .4em 1em; }
409
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
410
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
411
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
412
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
413
+ /* no icon support for input elements, provide padding by default */
414
+ input.ui-button { padding: .4em 1em; }
415
+
416
+ /*button icon element(s) */
417
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
418
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
419
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
420
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
421
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
422
+
423
+ /*button sets*/
424
+ .ui-buttonset { margin-right: 7px; }
425
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
426
+
427
+ /* workarounds */
428
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
429
+ /*
430
+ * jQuery UI Dialog 1.8.16
431
+ *
432
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
433
+ * Dual licensed under the MIT or GPL Version 2 licenses.
434
+ * http://jquery.org/license
435
+ *
436
+ * http://docs.jquery.com/UI/Dialog#theming
437
+ */
438
+ .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
439
+ .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
440
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
441
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
442
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
443
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
444
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
445
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
446
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
447
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
448
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
449
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
450
+ /*
451
+ * jQuery UI Slider 1.8.16
452
+ *
453
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
454
+ * Dual licensed under the MIT or GPL Version 2 licenses.
455
+ * http://jquery.org/license
456
+ *
457
+ * http://docs.jquery.com/UI/Slider#theming
458
+ */
459
+ .ui-slider { position: relative; text-align: left; }
460
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
461
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
462
+
463
+ .ui-slider-horizontal { height: .8em; }
464
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
465
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
466
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
467
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
468
+
469
+ .ui-slider-vertical { width: .8em; height: 100px; }
470
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
471
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
472
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
473
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
474
+ * jQuery UI Tabs 1.8.16
475
+ *
476
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
477
+ * Dual licensed under the MIT or GPL Version 2 licenses.
478
+ * http://jquery.org/license
479
+ *
480
+ * http://docs.jquery.com/UI/Tabs#theming
481
+ */
482
+ .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
483
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
484
+ .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
485
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
486
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
487
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
488
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
489
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
490
+ .ui-tabs .ui-tabs-hide { display: none !important; }
491
+ /*
492
+ * jQuery UI Datepicker 1.8.16
493
+ *
494
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
495
+ * Dual licensed under the MIT or GPL Version 2 licenses.
496
+ * http://jquery.org/license
497
+ *
498
+ * http://docs.jquery.com/UI/Datepicker#theming
499
+ */
500
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
501
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
502
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
503
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
504
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
505
+ .ui-datepicker .ui-datepicker-next { right:2px; }
506
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
507
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
508
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
509
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
510
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
511
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
512
+ .ui-datepicker select.ui-datepicker-month,
513
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
514
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
515
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
516
+ .ui-datepicker td { border: 0; padding: 1px; }
517
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
518
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
519
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
520
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
521
+
522
+ /* with multiple calendars */
523
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
524
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
525
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
526
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
527
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
528
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
529
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
530
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
531
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
532
+ .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
533
+
534
+ /* RTL support */
535
+ .ui-datepicker-rtl { direction: rtl; }
536
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
537
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
538
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
539
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
540
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
541
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
542
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
543
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
544
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
545
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
546
+
547
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
548
+ .ui-datepicker-cover {
549
+ display: none; /*sorry for IE5*/
550
+ display/**/: block; /*sorry for IE5*/
551
+ position: absolute; /*must have*/
552
+ z-index: -1; /*must have*/
553
+ filter: mask(); /*must have*/
554
+ top: -4px; /*must have*/
555
+ left: -4px; /*must have*/
556
+ width: 200px; /*must have*/
557
+ height: 200px; /*must have*/
558
+ }/*
559
+ * jQuery UI Progressbar 1.8.16
560
+ *
561
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
562
+ * Dual licensed under the MIT or GPL Version 2 licenses.
563
+ * http://jquery.org/license
564
+ *
565
+ * http://docs.jquery.com/UI/Progressbar#theming
566
+ */
567
+ .ui-progressbar { height:2em; text-align: left; }
568
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>jquery drapper example</title>
5
+
6
+ <link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.css">
7
+ <link rel="stylesheet" type="text/css" href="css/custom.css">
8
+
9
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
10
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
11
+ <script type="text/javascript" src="../vendor/assets/javascripts/jquery.drapper.js"></script>
12
+ <script type="text/javascript" src="../vendor/assets/javascripts/jquery.drappers/jquery.drappers.slider.js"></script>
13
+ <script type="text/javascript" src="../vendor/assets/javascripts/jquery.drappers/jquery.drappers.selectGroup.js"></script>
14
+ <script type="text/javascript">
15
+ $(function() {
16
+ $('body').drapper();
17
+ })
18
+ </script>
19
+ </head>
20
+ <body>
21
+
22
+ <fieldset>
23
+ <legend>Slider from input</legend>
24
+ <input type="number" min="-100" max="100" data-drapper="slider: { hideInputAttribute: true }" />
25
+ </fieldset>
26
+
27
+
28
+ <fieldset>
29
+ <legend>Checkboxes or radiogroup from select (depends on multiple attribute)</legend>
30
+ <select name="select_name" id="select_id" data-drapper="selectGroup: { hideInputAttribute: true }">
31
+ <option value="first">First</option>
32
+ <option value="second">Second</option>
33
+ <option value="third">Third</option>
34
+ </select>
35
+
36
+ <hr />
37
+
38
+ <select name="multiple_select_name" id="multiple_select_id" multiple="multiple" data-drapper="selectGroup: { hideInputAttribute: true }">
39
+ <option value="first">First</option>
40
+ <option value="second">Second</option>
41
+ <option value="third">Third</option>
42
+ </select>
43
+
44
+ </fieldset>
45
+
46
+ </body>
47
+ </html>
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "jquery_drapper/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "jquery_drapper"
7
+ s.version = JqueryDrapper::VERSION
8
+ s.authors = ["Alexey Osipenko"]
9
+ s.email = ["alexey@osipenko.in.ua"]
10
+ s.homepage = "http://aratak.github.com/jquery_drapper/"
11
+ s.summary = %q{Make js code for view unobtrusive.}
12
+ s.description = %q{Create some widget from 'input' source. Unobtrusive.}
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_path = "lib"
18
+
19
+ s.add_dependency "railties", ">= 3.1.0", "< 5.0"
20
+ end
@@ -0,0 +1,6 @@
1
+ # this class enables the asset pipeline
2
+ module JqueryDrapper
3
+ module Rails
4
+ class Engine < ::Rails::Engine ; end
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module JqueryDrapper
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,7 @@
1
+ require "jquery_drapper/version"
2
+
3
+ module JqueryDrapper
4
+ if defined?(::Rails) and ::Rails.version >= "3.1"
5
+ require 'jquery_drapper/rails/engine'
6
+ end
7
+ end
@@ -0,0 +1,86 @@
1
+ (function($) {
2
+ $.drappers = {};
3
+
4
+ $.fn.drapper = function(options) {
5
+ options = $.extend({}, options);
6
+ options.drapperIdentifier = "data-drapper";
7
+ options.elementSelector = options.elementSelector || '[' + options.drapperIdentifier + ']';
8
+
9
+ var drapperMethods = function(decoree){
10
+ var _hashConfig = (function() {
11
+ var _rawAttributeData = $(decoree).attr(options.drapperIdentifier);
12
+ var result = {};
13
+
14
+ try {
15
+ var _attributeData = eval( "({" + _rawAttributeData + "})" );
16
+ } catch(e) {
17
+ throw("Drapper attributes are invalid. It should be as 'drapperName: config'. 'config' is a JSON. \n"
18
+ + "Original error message: \n" + e.message );
19
+ }
20
+
21
+ $.each(_attributeData, function(key, value) {
22
+ result['drapperType'] = key;
23
+ result['drapperConfig'] = value;
24
+ });
25
+ return result;
26
+ })()
27
+
28
+ var type = function() { return _hashConfig.drapperType };
29
+ var config = function() { return _hashConfig.drapperConfig };
30
+
31
+ function wrapper() {
32
+ var findFakeDiv = function() {
33
+ var a = $(decoree).next('div[data-drapper-wrapper]');
34
+ if (a.length == 0) {
35
+ return false;
36
+ } else {
37
+ return a;
38
+ }
39
+ };
40
+ var createFakeDiv = function() {
41
+ var fakeDiv = $(document.createElement('div'));
42
+ fakeDiv.attr({
43
+ 'data-drapper-wrapper': true,
44
+ 'class': 'drapperWrapper'
45
+ });
46
+ $(decoree).after(fakeDiv);
47
+ return fakeDiv;
48
+ };
49
+ return findFakeDiv() || createFakeDiv();
50
+ };
51
+
52
+ function drapperConverter() {
53
+ var converterPlugin = $.drappers[type()];
54
+
55
+ if (converterPlugin === undefined) {
56
+ throw "Undefined drapper extention '" + name + "'. "
57
+ + "Please, provide 'jquery.drapper.'" + name + "' plugin. "
58
+ + "See https://github.com/aratak/jquery.drapper/ for details."
59
+ }
60
+
61
+ return converterPlugin.call(decoree);
62
+ };
63
+
64
+ function init() {
65
+ $.extend(decoree, {
66
+ isDecoree: true,
67
+ type: type(),
68
+ config: config(),
69
+ wrapper: wrapper,
70
+ });
71
+ return drapperConverter();
72
+ };
73
+
74
+ return init();
75
+ }
76
+
77
+ return this.each(function() {
78
+ $(this).find(options.elementSelector).each(function() {
79
+ if (!this.isDecoree) {
80
+ drapperMethods(this);
81
+ }
82
+ });
83
+ });
84
+ }
85
+ })(jQuery);
86
+
@@ -0,0 +1,58 @@
1
+ (function($) {
2
+ if($.fn.drapper === undefined) {
3
+ throw "$.drapper plugin hasn't been required"
4
+ + "This plugin depends from 'jquery.drapper' plugin. "
5
+ + "See https://github.com/aratak/jquery.drapper/ for details."
6
+ }
7
+
8
+ $.drappers = $.extend($.drappers, {
9
+ selectGroup: function() {
10
+ var decoree = this;
11
+ var decoreeType = $(decoree).attr('multiple') ? "checkbox" : "radio";
12
+ var createListItem = function(optionTag, i) {
13
+ var liTag = $(document.createElement("li"));
14
+ optionTag = $(optionTag);
15
+
16
+ var inputTag = $(document.createElement("input")).attr({
17
+ type: decoreeType,
18
+ name: $(decoree).attr('name'),
19
+ id: $(decoree).attr('id') + "_" + i,
20
+ value: optionTag.val(),
21
+ checked: optionTag.is(':selected')
22
+ });
23
+
24
+ var labelTag = $(document.createElement("label")).attr({
25
+ for: $(decoree).attr('id') + "_" + i
26
+ }).html(optionTag.val().replace(/(<([^>]+)>)/ig,""));
27
+
28
+ return liTag.append(inputTag).append(labelTag);
29
+ };
30
+ var hideBasicInput = function() {
31
+ console.log(decoree)
32
+ if(decoree.config.hideInputAttribute) {
33
+ $(decoree).css({
34
+ visibility: 'hidden',
35
+ position: 'absolute',
36
+ zIndex: '-1'
37
+ });
38
+ }
39
+ return true;
40
+ };
41
+
42
+ var removeDecoree = function() {
43
+ return $(decoree).remove();
44
+ }
45
+
46
+ var list = $(document.createElement("ul")).attr({
47
+ 'data-drapper-list': true
48
+ }).addClass('drapperList drapperRadioGroup');
49
+
50
+
51
+ $.each($(decoree).find('option'), function(i, optionTag) {
52
+ list.append(createListItem(optionTag, i));
53
+ });
54
+
55
+ return decoree.wrapper().append(list) && hideBasicInput() && removeDecoree();
56
+ }
57
+ });
58
+ })(jQuery)
@@ -0,0 +1,68 @@
1
+ (function($) {
2
+ if($.fn.drapper === undefined) {
3
+ throw "$.drapper plugin hasn't been required"
4
+ + "This plugin depends from 'jquery.drapper' plugin. "
5
+ + "See https://github.com/aratak/jquery.drapper/ for details."
6
+ }
7
+
8
+ $.drappers = $.extend($.drappers, {
9
+ slider: function() {
10
+ if(!$.isFunction($.fn.slider)) {
11
+ throw "drapper.slider work with jquery-ui slider. Please, require that"
12
+ }
13
+
14
+ if(!this.isDecoree) {
15
+ throw "The object is not decoree!"
16
+ + "See https://github.com/aratak/jquery.drapper/ for details."
17
+ }
18
+
19
+
20
+ var decoree = this;
21
+
22
+ var hideBasicInput = function() {
23
+ console.log(decoree)
24
+ if(decoree.config.hideInputAttribute) {
25
+ $(decoree).css({
26
+ visibility: 'hidden',
27
+ position: 'absolute',
28
+ zIndex: '-1'
29
+ });
30
+ return true;
31
+ } else {
32
+ return false;
33
+ }
34
+ };
35
+ var elementFromParams = function(attributes, html, elementName) {
36
+ html = (html === undefined) ? '' : html;
37
+ elementName = elementName || 'span';
38
+ return $(document.createElement(elementName)).attr(attributes).html(html);
39
+ };
40
+ var getInt = function(val) {
41
+ return isNaN(parseInt(val)) ? 0 : parseInt(val);
42
+ };
43
+ var setLabel = function() {
44
+ return $(currentLabel).html( getInt($(decoree).val()) );
45
+ };
46
+
47
+ var minLabel = $(decoree).attr('min') ? elementFromParams({'data-drapper-minlabel': true}, $(decoree).attr('min')) : null;
48
+ var maxLabel = $(decoree).attr('max') ? elementFromParams({'data-drapper-maxlabel': true}, $(decoree).attr('max')) : null;
49
+ var currentLabel = elementFromParams({'data-drapper-currentlabel': true}, $(decoree).val());
50
+ var slider = elementFromParams({'data-drapper-slider': true});
51
+ decoree.wrapper().append(maxLabel).append(minLabel).append(slider).append(currentLabel);
52
+ hideBasicInput()
53
+
54
+ $(decoree).change(setLabel);
55
+
56
+ $(slider).slider({
57
+ min: getInt($(decoree).attr('min')),
58
+ max: getInt($(decoree).attr('max')),
59
+ step: (parseInt($(decoree).attr('step')) || 1),
60
+ value: getInt($(decoree).val()),
61
+ slide: function(event, ui) {
62
+ $(decoree).val( ui.value );
63
+ $(decoree).trigger("change");
64
+ }
65
+ });
66
+ }
67
+ });
68
+ })(jQuery)
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jquery_drapper
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Alexey Osipenko
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-12-22 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: railties
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 3
29
+ - 1
30
+ - 0
31
+ version: 3.1.0
32
+ - - <
33
+ - !ruby/object:Gem::Version
34
+ segments:
35
+ - 5
36
+ - 0
37
+ version: "5.0"
38
+ type: :runtime
39
+ version_requirements: *id001
40
+ description: Create some widget from 'input' source. Unobtrusive.
41
+ email:
42
+ - alexey@osipenko.in.ua
43
+ executables: []
44
+
45
+ extensions: []
46
+
47
+ extra_rdoc_files: []
48
+
49
+ files:
50
+ - .gitignore
51
+ - Gemfile
52
+ - MIT-LICENSE
53
+ - README.markdown
54
+ - Rakefile
55
+ - example/css/custom.css
56
+ - example/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
57
+ - example/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
58
+ - example/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
59
+ - example/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
60
+ - example/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
61
+ - example/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
62
+ - example/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
63
+ - example/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
64
+ - example/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
65
+ - example/css/ui-lightness/images/ui-icons_222222_256x240.png
66
+ - example/css/ui-lightness/images/ui-icons_228ef1_256x240.png
67
+ - example/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
68
+ - example/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
69
+ - example/css/ui-lightness/images/ui-icons_ffffff_256x240.png
70
+ - example/css/ui-lightness/jquery-ui-1.8.16.custom.css
71
+ - example/index.html
72
+ - jquery_drapper.gemspec
73
+ - lib/jquery_drapper.rb
74
+ - lib/jquery_drapper/rails/engine.rb
75
+ - lib/jquery_drapper/version.rb
76
+ - vendor/assets/javascripts/jquery.drapper.js
77
+ - vendor/assets/javascripts/jquery.drappers/jquery.drappers.selectGroup.js
78
+ - vendor/assets/javascripts/jquery.drappers/jquery.drappers.slider.js
79
+ has_rdoc: true
80
+ homepage: http://aratak.github.com/jquery_drapper/
81
+ licenses: []
82
+
83
+ post_install_message:
84
+ rdoc_options: []
85
+
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ segments:
93
+ - 0
94
+ version: "0"
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ requirements: []
103
+
104
+ rubyforge_project:
105
+ rubygems_version: 1.3.6
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: Make js code for view unobtrusive.
109
+ test_files: []
110
+