kamishibai 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/LICENSE +29 -0
  4. data/README.md +91 -0
  5. data/bin/kamishibai +59 -0
  6. data/changelogs.txt +6 -0
  7. data/images/reading.jpg +0 -0
  8. data/images/settings.jpg +0 -0
  9. data/images/view_browse.jpg +0 -0
  10. data/images/view_dir.jpg +0 -0
  11. data/kamishibai.gemspec +31 -0
  12. data/lib/kamishibai.rb +35 -0
  13. data/lib/kamishibai/book.rb +97 -0
  14. data/lib/kamishibai/config.rb +90 -0
  15. data/lib/kamishibai/database.rb +330 -0
  16. data/lib/kamishibai/functions.rb +332 -0
  17. data/lib/kamishibai/patches.rb +58 -0
  18. data/lib/kamishibai/version.rb +7 -0
  19. data/lib/kamishibai/webserver.rb +502 -0
  20. data/lib/kamishibai/webserver_cmds.rb +26 -0
  21. data/lib/kamishibai/webserver_config.rb +91 -0
  22. data/lib/kamishibai/webserver_filemanager.rb +29 -0
  23. data/lib/kamishibai/webserver_tablet.rb +259 -0
  24. data/lib/kamishibai/workers.rb +39 -0
  25. data/public/css/browse.css +390 -0
  26. data/public/css/config.css +3 -0
  27. data/public/css/reader.css +119 -0
  28. data/public/css/styles.css +30 -0
  29. data/public/css/tablet_browse.css +247 -0
  30. data/public/css/tablet_reader.css +323 -0
  31. data/public/css/tablet_reader_input.css +191 -0
  32. data/public/images/ajax-loader.gif +0 -0
  33. data/public/images/delete.png +0 -0
  34. data/public/images/folder-mini-up.png +0 -0
  35. data/public/images/folder-mini.png +0 -0
  36. data/public/images/spinner.gif +0 -0
  37. data/public/images/trash-empty-mini.png +0 -0
  38. data/public/images/trash-full-mini.png +0 -0
  39. data/public/js/browse.js +391 -0
  40. data/public/js/config.js +190 -0
  41. data/public/js/reader.js +497 -0
  42. data/public/js/swipeview-k.js +478 -0
  43. data/public/js/tablet3.js +241 -0
  44. data/public/js/tablet3_browse.js +173 -0
  45. data/public/js/tablet3_reader.js +534 -0
  46. data/public/js/utilities.js +170 -0
  47. data/public/lang/k-cn.json +82 -0
  48. data/public/lang/k-en.json +82 -0
  49. data/public/lang/k-ja.json +82 -0
  50. data/public/vendor/css/bootstrap-slider.css +252 -0
  51. data/public/vendor/css/bootstrap-theme.css +476 -0
  52. data/public/vendor/css/bootstrap-theme.css.map +1 -0
  53. data/public/vendor/css/bootstrap-theme.min.css +5 -0
  54. data/public/vendor/css/bootstrap.css +6584 -0
  55. data/public/vendor/css/bootstrap.css.map +1 -0
  56. data/public/vendor/css/bootstrap.min.css +5 -0
  57. data/public/vendor/css/jquery-ui-1.10.0.custom.css +1614 -0
  58. data/public/vendor/css/jquery.mobile-1.3.1.min.css +3 -0
  59. data/public/vendor/css/jqueryFileTree.css +91 -0
  60. data/public/vendor/fonts/glyphicons-halflings-regular.eot +0 -0
  61. data/public/vendor/fonts/glyphicons-halflings-regular.svg +288 -0
  62. data/public/vendor/fonts/glyphicons-halflings-regular.ttf +0 -0
  63. data/public/vendor/fonts/glyphicons-halflings-regular.woff +0 -0
  64. data/public/vendor/fonts/glyphicons-halflings-regular.woff2 +0 -0
  65. data/public/vendor/images/application.png +0 -0
  66. data/public/vendor/images/code.png +0 -0
  67. data/public/vendor/images/css.png +0 -0
  68. data/public/vendor/images/db.png +0 -0
  69. data/public/vendor/images/dim.png +0 -0
  70. data/public/vendor/images/directory.png +0 -0
  71. data/public/vendor/images/doc.png +0 -0
  72. data/public/vendor/images/file.png +0 -0
  73. data/public/vendor/images/film.png +0 -0
  74. data/public/vendor/images/flash.png +0 -0
  75. data/public/vendor/images/folder_open.png +0 -0
  76. data/public/vendor/images/grey.png +0 -0
  77. data/public/vendor/images/html.png +0 -0
  78. data/public/vendor/images/icons-18-black.png +0 -0
  79. data/public/vendor/images/icons-18-white.png +0 -0
  80. data/public/vendor/images/icons-36-black.png +0 -0
  81. data/public/vendor/images/icons-36-white.png +0 -0
  82. data/public/vendor/images/java.png +0 -0
  83. data/public/vendor/images/linux.png +0 -0
  84. data/public/vendor/images/music.png +0 -0
  85. data/public/vendor/images/pdf.png +0 -0
  86. data/public/vendor/images/php.png +0 -0
  87. data/public/vendor/images/picture.png +0 -0
  88. data/public/vendor/images/ppt.png +0 -0
  89. data/public/vendor/images/psd.png +0 -0
  90. data/public/vendor/images/ruby.png +0 -0
  91. data/public/vendor/images/script.png +0 -0
  92. data/public/vendor/images/spinner.gif +0 -0
  93. data/public/vendor/images/txt.png +0 -0
  94. data/public/vendor/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  95. data/public/vendor/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  96. data/public/vendor/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  97. data/public/vendor/images/ui-bg_flat_10_000000_40x100.png +0 -0
  98. data/public/vendor/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  99. data/public/vendor/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  100. data/public/vendor/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  101. data/public/vendor/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  102. data/public/vendor/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  103. data/public/vendor/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  104. data/public/vendor/images/ui-bg_glass_20_555555_1x400.png +0 -0
  105. data/public/vendor/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
  106. data/public/vendor/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  107. data/public/vendor/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  108. data/public/vendor/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  109. data/public/vendor/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  110. data/public/vendor/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  111. data/public/vendor/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  112. data/public/vendor/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  113. data/public/vendor/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  114. data/public/vendor/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
  115. data/public/vendor/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  116. data/public/vendor/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  117. data/public/vendor/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  118. data/public/vendor/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  119. data/public/vendor/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  120. data/public/vendor/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  121. data/public/vendor/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  122. data/public/vendor/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  123. data/public/vendor/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
  124. data/public/vendor/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
  125. data/public/vendor/images/ui-icons_217bc0_256x240.png +0 -0
  126. data/public/vendor/images/ui-icons_222222_256x240.png +0 -0
  127. data/public/vendor/images/ui-icons_228ef1_256x240.png +0 -0
  128. data/public/vendor/images/ui-icons_2e83ff_256x240.png +0 -0
  129. data/public/vendor/images/ui-icons_454545_256x240.png +0 -0
  130. data/public/vendor/images/ui-icons_469bdd_256x240.png +0 -0
  131. data/public/vendor/images/ui-icons_4b8e0b_256x240.png +0 -0
  132. data/public/vendor/images/ui-icons_6da8d5_256x240.png +0 -0
  133. data/public/vendor/images/ui-icons_888888_256x240.png +0 -0
  134. data/public/vendor/images/ui-icons_a83300_256x240.png +0 -0
  135. data/public/vendor/images/ui-icons_cccccc_256x240.png +0 -0
  136. data/public/vendor/images/ui-icons_cd0a0a_256x240.png +0 -0
  137. data/public/vendor/images/ui-icons_d8e7f3_256x240.png +0 -0
  138. data/public/vendor/images/ui-icons_ef8c08_256x240.png +0 -0
  139. data/public/vendor/images/ui-icons_f9bd01_256x240.png +0 -0
  140. data/public/vendor/images/ui-icons_ffd27a_256x240.png +0 -0
  141. data/public/vendor/images/ui-icons_ffffff_256x240.png +0 -0
  142. data/public/vendor/images/xls.png +0 -0
  143. data/public/vendor/images/zip.png +0 -0
  144. data/public/vendor/js/bootstrap-slider.js +1550 -0
  145. data/public/vendor/js/bootstrap.js +2317 -0
  146. data/public/vendor/js/bootstrap.min.js +7 -0
  147. data/public/vendor/js/jquery-2.1.4.js +9210 -0
  148. data/public/vendor/js/jquery-2.1.4.min.js +4 -0
  149. data/public/vendor/js/jquery-2.1.4.min.map +1 -0
  150. data/public/vendor/js/jquery-ui-1.10.2.custom.min.js +7 -0
  151. data/public/vendor/js/jquery.cookie.js +72 -0
  152. data/public/vendor/js/jquery.hammer.min.js +7 -0
  153. data/public/vendor/js/jquery.lazyload.min.js +15 -0
  154. data/public/vendor/js/jquery.localize.js +180 -0
  155. data/public/vendor/js/jquery.mobile-1.3.1.min.js +7 -0
  156. data/public/vendor/js/jquery.scrollTo-1.4.3.1.js +218 -0
  157. data/public/vendor/js/jqueryFileTree.js +95 -0
  158. data/public/vendor/js/swipeview.js +471 -0
  159. data/views/browse.haml +97 -0
  160. data/views/config.haml +115 -0
  161. data/views/layout.haml +12 -0
  162. data/views/login.haml +51 -0
  163. data/views/reader.haml +70 -0
  164. data/views/statistics.haml +108 -0
  165. data/views/tablet3.haml +80 -0
  166. metadata +334 -0
@@ -0,0 +1,3 @@
1
+ /*
2
+ this file has intentionally left blank
3
+ */
@@ -0,0 +1,119 @@
1
+ #icontainer {
2
+ text-align: center;
3
+ }
4
+ .icontainer-normal_height {
5
+ position: absolute;
6
+ height: 100%;
7
+ width: 100%;
8
+ overflow: hidden;
9
+ background-color: black;
10
+ }
11
+ .normal_height {
12
+ width: auto;
13
+ height: 100%;
14
+ }
15
+ .full_height {
16
+ width: 50%;
17
+ height: auto;
18
+ }
19
+ #container {
20
+ float: left;
21
+ width: 100%;
22
+ background-color: black;
23
+ /* overflow: hidden; */
24
+ }
25
+ #cleft, #cright, #cbutton {
26
+ opacity: 0;
27
+ }
28
+ #cleft, #cright {
29
+ position: fixed;
30
+ width: 20%;
31
+ height: 100%;
32
+ /* float: left; */
33
+ }
34
+ #cleft {
35
+ /* hidden button to nav page */
36
+ background-color: yellow;
37
+ left: 0%;
38
+ z-index: 9;
39
+ }
40
+ #cright {
41
+ /* hidden button to nav page */
42
+ background-color: cyan;
43
+ left: 80%;
44
+ z-index: 8;
45
+ }
46
+ #cbutton {
47
+ /* hidden button to bring up menu */
48
+ background-color: green;
49
+ position: fixed;
50
+ left: 20%;
51
+ top: 50%;
52
+ width: 60%;
53
+ height: 50%;
54
+ z-index: 7;
55
+ }
56
+ #cleft a, #cright a, #cbutton a {
57
+ width: 100%;
58
+ height: 100%;
59
+ display: block;
60
+ }
61
+ #booktitle {
62
+ width: 100%;
63
+ text-align: center;
64
+ background-color: #afafaf;
65
+ }
66
+ #ileft, #iright {
67
+ /* float: left; */
68
+ /* display: block; */
69
+ /* opacity: 0.1; */
70
+ }
71
+ #ibar {
72
+ /* black bar between 2 images */
73
+ display: none;
74
+ width: 1%;
75
+ height: 20px;
76
+ /* float: left; */
77
+ background-color: black;
78
+ }
79
+ #menu {
80
+ width: 100%;
81
+ height: 180px;
82
+ bottom: 0%;
83
+ position: fixed;
84
+ z-index: 10;
85
+ background-color: grey;
86
+ text-align: center;
87
+ }
88
+
89
+ body {
90
+ background-color: black;
91
+ }
92
+
93
+ #pageslider-value {
94
+ width: 30px;
95
+ }
96
+ #pageslider {
97
+ width: 100%;
98
+ margin-top: 6px;
99
+ }
100
+ .d_row {
101
+ display: inline-block;
102
+ text-align: center;
103
+ margin-top: 20px;
104
+ width: 100%;
105
+ }
106
+ .ps {
107
+ display: inline-block;
108
+ }
109
+ .ps-1 {
110
+ width: 40px;
111
+ vertical-align: top;
112
+ }
113
+ .ps-2 {
114
+ width: 700px;
115
+ }
116
+ .ui-slider-handle {
117
+ /* make the slider handle into a circle */
118
+ border-radius: 50%;
119
+ }
@@ -0,0 +1,30 @@
1
+ body {
2
+ background-color: #f5f5f5;
3
+ }
4
+
5
+ a, span.link {
6
+ color: blue;
7
+ text-decoration:underline;
8
+ cursor: hand;
9
+ cursor: pointer;
10
+ }
11
+
12
+ a:visited, span.visited {
13
+ color: purple;
14
+ text-decoration:underline;
15
+ cursor: hand;
16
+ cursor: pointer;
17
+ }
18
+
19
+ a:active, span.active {
20
+ color: red;
21
+ text-decoration:underline;
22
+ cursor: hand;
23
+ cursor: pointer;
24
+ }
25
+
26
+ .ui-page { -webkit-backface-visibility: hidden; }
27
+
28
+ .hidden {
29
+ display: none;
30
+ }
@@ -0,0 +1,247 @@
1
+ @media all and (max-width: 799px) {
2
+ /* portrait mode */
3
+ #searchbox-holder {
4
+ width: 50%;
5
+ }
6
+ #leftbox {
7
+ right: 50%;
8
+ }
9
+ #bookinfo {
10
+ left: 50%;
11
+ width: 50%;
12
+ }
13
+ #rcontainer {
14
+ left: 50%;
15
+ width: 50%;
16
+ }
17
+ }
18
+ @media all and (min-width: 800px) {
19
+ /* landscape mode */
20
+ #searchbox-holder {
21
+ width: 40%;
22
+ }
23
+ #leftbox {
24
+ right: 60%;
25
+ }
26
+ #bookinfo {
27
+ left: 40%;
28
+ width: 60%;
29
+ }
30
+ #rcontainer {
31
+ left: 40%;
32
+ width: 60%;
33
+ }
34
+ }
35
+ #window {
36
+ /* using this to trap everything in here to prevent the overflow of the element */
37
+ position: absolute;
38
+ top: 0px;
39
+ left: 0px;
40
+ right: 0px;
41
+ bottom: 0px;
42
+ width: 100%;
43
+ height: 100%;
44
+ overflow: hidden;
45
+ }
46
+ #menu {
47
+ z-index: 10;
48
+ top: 0px;
49
+ border-bottom: solid 1px #000;
50
+ height: 40px;
51
+ text-align: center;
52
+ background: linear-gradient(#DDD, #BBB) repeat scroll 0% 0% #BBB;
53
+ }
54
+ #searchbox-holder {
55
+ float: left;
56
+ position: absolute;
57
+ top: 41px;
58
+ left: 0px;
59
+ height: 40px;
60
+ margin: 0px;
61
+ padding-top: 5px;
62
+ padding-left: 5px;
63
+ padding-right: 5px;
64
+ }
65
+ /*#searchbox {
66
+ position: absolute;
67
+ width: 80%;
68
+ }*/
69
+ #leftbox {
70
+ /*float: left;*/
71
+ position: absolute;
72
+ top: 81px;
73
+ left: 0px;
74
+ /*width: 50%;*/
75
+ margin: 0px;
76
+ bottom: 0px;
77
+ overflow: hidden;
78
+ overflow-y: scroll;
79
+ -webkit-overflow-scrolling: touch;
80
+ }
81
+ #bookinfo {
82
+ float: left;
83
+ position: absolute;
84
+ top: 42px;
85
+ height: 80px;
86
+ /* font-size: 20px; */
87
+ font-height: 1em;
88
+ font-weight: bold;
89
+ border-left: solid 1px #000;
90
+ border-bottom: solid 1px #000;
91
+ background: linear-gradient( rgb(255, 255, 255), rgb(241, 241, 241) );
92
+ background: -webkit-linear-gradient( rgb(255, 255, 255), rgb(241, 241, 241) );
93
+ }
94
+ #bookinfo > div:first-child {
95
+ font-size: 1.3em;
96
+ }
97
+ #bookinfo > div:first-child+span {
98
+ font-size: 0.7em;
99
+ }
100
+ #bookinfo * {
101
+ margin-top: 5px;
102
+ margin-left: 15px;
103
+ }
104
+
105
+ .ui-li-divider {
106
+ /* divider for the leftbox */
107
+ cursor: default;
108
+ padding: 0.5em 15px;
109
+ font-size: 14px;
110
+ font-weight: 700;
111
+
112
+ margin: 0px;
113
+ /*padding: 0px;*/
114
+ display: block;
115
+ position: relative;
116
+ overflow: visible;
117
+ text-align: left;
118
+ border-width: 1px 0px 0px;
119
+
120
+ list-style: none outside none;
121
+ font-family: Helvetica, Arial, sans-serif;
122
+
123
+ border: 1px solid #456F9A;
124
+ background: linear-gradient(#6FACD5, #497BAE) repeat scroll 0% 0% #5E87B0;
125
+
126
+ color: #FFF;
127
+ /*text-shadow: 0px 1px 0px #FFF;*/
128
+ }
129
+
130
+ .li-title {
131
+ /*
132
+ height: 50px;
133
+ line-height: 50px;
134
+ overflow: hidden;
135
+ border: 1px solid #9c9c9c;
136
+ background-color: #bfbbb9;
137
+ */
138
+ background: linear-gradient( rgb(255, 255, 255), rgb(241, 241, 241) );
139
+ /* webkit don't support css with background linear-gradient, call it by -webkit-liner-gradient */
140
+ background: -webkit-linear-gradient( rgb(255, 255, 255), rgb(241, 241, 241) );
141
+
142
+ /* new */
143
+ padding: 0.7em 15px;
144
+ display: block;
145
+ background: linear-gradient(#FFF, #F1F1F1) repeat scroll 0% 0% transparent;
146
+ font-family: Helvetica, Arial, sans-serif;
147
+ text-decoration: none;
148
+ border: 1px solid #BBB;
149
+ font-weight: 700;
150
+ color: #333;
151
+ text-shadow: 0px 1px 0px #FFF;
152
+ /*padding: 0px;*/
153
+ margin: 0px;
154
+
155
+ position: relative;
156
+ overflow: visible;
157
+ text-align: left;
158
+ }
159
+ .li-title:hover {
160
+ background: linear-gradient( rgb(200, 200, 200), rgb(241, 241, 241) );
161
+ background: -webkit-linear-gradient( rgb(200, 200, 200), rgb(241, 241, 241) );
162
+ }
163
+ .li-title:active {
164
+ background: linear-gradient( rgb(100, 200, 200), rgb(140, 241, 241) );
165
+ background: -webkit-linear-gradient( rgb(100, 200, 200), rgb(140, 241, 241) );
166
+ }
167
+
168
+ #rcontainer {
169
+ float: left;
170
+ position: absolute;
171
+ top: 123px;
172
+ bottom: 0px;
173
+ border-left: solid 1px #000;
174
+ overflow: hidden;
175
+ overflow-y: scroll;
176
+ -webkit-overflow-scrolling: touch;
177
+
178
+ display: inline-block;
179
+
180
+ list-style: none;
181
+ margin: 0 auto;
182
+ padding: 0;
183
+ }
184
+ #rcontainer ul {
185
+ list-style: none;
186
+ margin: 0 auto;
187
+ padding: 0;
188
+ }
189
+ #rcontainer ul li {
190
+ float: left;
191
+ width: 160px;
192
+ height: 220px;
193
+ /*background-color: #dedede;*/
194
+ position: relative;
195
+ margin: 15px;
196
+ display: table;
197
+ list-style: none;
198
+ }
199
+ #rcontainer ul li.reading {
200
+ background-color: #ffece6;
201
+ }
202
+ #rcontainer ul li.read {
203
+ /* background-color: #33cc66; */
204
+ }
205
+ #rcontainer ul li.active {
206
+ background-color: red;
207
+ }
208
+ #rcontainer ul li:hover {
209
+ /*background-color: yellow;*/
210
+ }
211
+ #rcontainer ul li a {
212
+ /* top: 0px;
213
+ left: 0px;
214
+ position: relative; */
215
+ width: 100%;
216
+ height: 100%;
217
+ display: table-cell;
218
+ text-decoration: none;
219
+ overflow: hidden;
220
+ /*background-color: yellow;
221
+ opacity: 0.3; */
222
+ }
223
+ #rcontainer ul li a span {
224
+ position: absolute;
225
+ bottom: 0px;
226
+ font-size: smaller;
227
+ height: 42px;
228
+ width: 160px;
229
+ overflow: hidden;
230
+ display: inline-block;
231
+ color: #000;
232
+ /*background-color: #efe1e1;*/
233
+ }
234
+ #rcontainer li a img {
235
+ min-height: 100px;
236
+ min-width: 50px;
237
+ max-width: 160px;
238
+ max-height: 170px;
239
+ position: absolute;
240
+ bottom: 48px;
241
+ display: block;
242
+ border-style: solid;
243
+ border-width: 1px;
244
+ border-color: #000;
245
+ box-shadow: 0px 0px 5px #999;
246
+ /*transform: rotate(10deg);*/
247
+ }
@@ -0,0 +1,323 @@
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+
5
+ /* prevent select from functioning */
6
+ -webkit-touch-callout: none;
7
+ -webkit-user-select: none;
8
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
9
+ -khtml-user-select: none;
10
+ -moz-user-select: none;
11
+ -ms-user-select: none;
12
+ user-select: none;
13
+ }
14
+
15
+ input[type="text"] {
16
+ width: 2em;
17
+ }
18
+
19
+ .ui-bar-a > * {
20
+ margin: 15px;
21
+ }
22
+ .ui-btn > * {
23
+ margin: 1em;
24
+ }
25
+
26
+ #container {
27
+ z-index: 1000;
28
+ position: absolute;
29
+ left: 0;
30
+ top: 0;
31
+ right: 0;
32
+ bottom: 0;
33
+ background-color: grey;
34
+ }
35
+
36
+ #currentinfo {
37
+ z-index: 9999;
38
+ position: fixed;
39
+ color: #ffffff;
40
+ bottom: 0px;
41
+ right: 0px;
42
+ /*width: 15em;*/
43
+ padding-bottom: 10px;
44
+ height: 1em;
45
+ background-color: #000000;
46
+ opacity: 0.5;
47
+ }
48
+
49
+ #booktitle {
50
+ text-align: center;
51
+ position: fixed;
52
+ top: 0px;
53
+ left: 0px;
54
+ right: 0px;
55
+ max-height: 0px;
56
+ overflow: hidden;
57
+ z-index: 99;
58
+ transition: max-height 0.3s;
59
+ }
60
+ #readermenu {
61
+ text-align: center;
62
+ position: fixed;
63
+ bottom: 0px;
64
+ left: 0px;
65
+ right: 0px;
66
+ max-height: 0px;
67
+ overflow: hidden;
68
+ z-index: 99;
69
+ transition: max-height 0.3s;
70
+ }
71
+ #readermenu > div {
72
+ min-width: 50%;
73
+ max-width: 80%;
74
+ display: inline-block;
75
+ }
76
+ .showtop {
77
+ max-height: 500px !important;
78
+ }
79
+ .gap {
80
+ margin: 15px;
81
+ }
82
+ .gap > input {
83
+ vertical-align: middle;
84
+ }
85
+
86
+ html, body { height:100%; }
87
+ body {
88
+ padding:0;
89
+ margin:0;
90
+ /* background:#333; */
91
+ -webkit-user-select:none;
92
+ -moz-user-select:none;
93
+ -ms-user-select:none;
94
+ -o-user-select:none;
95
+ user-select:none;
96
+ -webkit-text-size-adjust:none;
97
+ -moz-text-size-adjust:none;
98
+ -ms-text-size-adjust:none;
99
+ -o-text-size-adjust:none;
100
+ text-size-adjust:none;
101
+
102
+ /*color:#eee;*/
103
+ font-family:helvetica;
104
+ /*font-size:12px;*/
105
+
106
+ }
107
+
108
+ #wrapper0 {
109
+ position:absolute; z-index:1;
110
+ top:0px; bottom:0px; left:0;
111
+ width:100%;
112
+ background:#aaa;
113
+ overflow:auto;
114
+ }
115
+ #wrapper1 {
116
+ position:absolute; z-index:1;
117
+ top:0px; bottom:0px; left:0;
118
+ width:100%;
119
+ background:#aaa;
120
+ overflow:auto;
121
+ }
122
+ #wrapper2 {
123
+ position:absolute; z-index:1;
124
+ top:0px; bottom:0px; left:0;
125
+ width:100%;
126
+ background:#aaa;
127
+ overflow:auto;
128
+ }
129
+
130
+
131
+ #wrapper {
132
+ width:100%;
133
+ min-width:320px;
134
+ height:100%;
135
+ }
136
+
137
+ #nav {
138
+ position:absolute;
139
+ z-index:100;
140
+ top:8px;
141
+ width:200px;
142
+ height:20px;
143
+ left:50%;
144
+ background:rgba(0,0,0,0.75);
145
+ padding:0;
146
+ margin:0 0 0 -100px;
147
+ -webkit-border-radius:10px;
148
+ -moz-border-radius:10px;
149
+ -ms-border-radius:10px;
150
+ -o-border-radius:10px;
151
+ border-radius:10px;
152
+ }
153
+
154
+ #nav li {
155
+ display:block;
156
+ float:left;
157
+ width:14px;
158
+ height:14px; line-height:14px;
159
+ -webkit-border-radius:7px;
160
+ -moz-border-radius:7px;
161
+ -ms-border-radius:7px;
162
+ -o-border-radius:7px;
163
+ border-radius:7px;
164
+ background:rgba(255,255,255,0.1);
165
+ overflow:hidden;
166
+ padding:0;
167
+ margin:3px 11px 0 0;
168
+ text-align:center;
169
+ }
170
+
171
+ #nav li#prev {
172
+ margin-left:5px;
173
+ background:transparent;
174
+ }
175
+
176
+ #nav li#next {
177
+ margin-right:0;
178
+ background:transparent;
179
+ }
180
+
181
+ #nav li.selected {
182
+ background:rgba(255,255,255,0.4);
183
+ }
184
+
185
+ #swipeview-slider > div {
186
+ position:relative;
187
+ display:-webkit-box;
188
+ display:-moz-box;
189
+ display:-ms-box;
190
+ display:-o-box;
191
+ display:box;
192
+ -webkit-box-orient:vertical;
193
+ -moz-box-orient:vertical;
194
+ -ms-box-orient:vertical;
195
+ -o-box-orient:vertical;
196
+ box-orient:vertical;
197
+ -webkit-box-pack:center;
198
+ -moz-box-pack:center;
199
+ -ms-box-pack:center;
200
+ -o-box-pack:center;
201
+ box-pack:center;
202
+ -webkit-box-align:center;
203
+ -mox-box-align:center;
204
+ -ms-box-align:center;
205
+ -o-box-align:center;
206
+ box-align:center;
207
+ overflow:hidden;
208
+ }
209
+
210
+ #swipeview-slider img {
211
+ display:block;
212
+ -webkit-transition-duration:.4s;
213
+ -moz-transition-duration:.4s;
214
+ -ms-transition-duration:.4s;
215
+ -o-transition-duration:.4s;
216
+ transition-duration:.4s;
217
+ -webkit-transition-property:opacity;
218
+ -moz-transition-property:opacity;
219
+ -ms-transition-property:opacity;
220
+ -o-transition-property:opacity;
221
+ transition-property:opacity;
222
+ opacity:1;
223
+ pointer-events:none;
224
+
225
+ /* me add */
226
+ width: auto;
227
+ height: auto;
228
+ max-width: 100%;
229
+ max-height: 100%;
230
+ margin-left: auto;
231
+ margin-right: auto;
232
+ object-fit: contain;
233
+ }
234
+
235
+ #wrapper > div > .swipeview-loading {
236
+ /*background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444), to(#555)),
237
+ -webkit-gradient(linear, 0 0, 100% 0, from(#777), to(#777));*/
238
+ /*background-position:50% 50%, 50% 50%;*/
239
+ /*background-size:200px 140px, 210px 150px;*/
240
+ /*background-repeat:no-repeat;*/
241
+ }
242
+
243
+ #wrapper > div > .swipeview-loading img,
244
+ #swipeview-slider img.loading {
245
+ -webkit-transition-duration:0s;
246
+ opacity:0;
247
+ }
248
+
249
+ #swipeview-slider > * {
250
+ /*background-color: black;*/
251
+ background-color: #efefef;
252
+ }
253
+
254
+ #swipeview-masterpage-0 img, #swipeview-masterpage-1 img, #swipeview-masterpage-2 img {
255
+ /*max-width: 150%;
256
+ max-height: 150%;*/
257
+ }
258
+
259
+ #swipeview-slider > div > div {
260
+ font-size: 6em;
261
+ position: fixed;
262
+ text-align: center;
263
+ width: 2em;
264
+ height: 1.5em;
265
+ top: 50%;
266
+ left: 50%;
267
+ margin: -2em 0 0 -1em;
268
+ background-image: url('/images/spinner.gif');
269
+ background-size: 32px 32px;
270
+ background-repeat: no-repeat;
271
+ background-position: bottom center;
272
+ /*background-color: #eff;*/
273
+
274
+ -webkit-transition-duration:0s;
275
+ opacity: 0;
276
+ z-index: -9;
277
+ /*display: none;*/
278
+ }
279
+
280
+ #swipeview-slider > div > div.loading {
281
+ opacity: 1;
282
+ }
283
+
284
+
285
+ /* bits from jquery mobile ui */
286
+ .ui-btn {
287
+ /*display: block;*/
288
+ text-align: center;
289
+ cursor: pointer;
290
+ position: relative;
291
+ margin: 0.5em 0px;
292
+ padding: 0px;
293
+ z-index: 10;
294
+ }
295
+ .ui-bar-a {
296
+ border: 1px solid #333;
297
+ background: #111 linear-gradient(#3C3C3C, #111) repeat scroll 0% 0%;
298
+ color: #FFF;
299
+ font-weight: 700;
300
+ text-shadow: 0px -1px 0px #000;
301
+ font-family: Helvetica,Arial,sans-serif;
302
+ opacity: 0.9;
303
+ }
304
+ .ui-btn-up-a {
305
+ font-family: Helvetica,Arial,sans-serif;
306
+ text-decoration: none;
307
+ border: 1px solid #111;
308
+ background: #333 linear-gradient(#444, #2D2D2D) repeat scroll 0% 0%;
309
+ font-weight: 700;
310
+ color: #FFF;
311
+ text-shadow: 0px 1px 0px #111;
312
+ }
313
+ .ui-shadow {
314
+ box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.3);
315
+ }
316
+ .ui-btn-corner-all {
317
+ background-clip: padding-box;
318
+ border-radius: 1em;
319
+ }
320
+
321
+ #pageinput {
322
+ color: black;
323
+ }