FancyBox for WordPress - Version 3.1.5

Version Description

  • Added support for mp4 and webp files
Download this release

Release Info

Developer machothemes
Plugin Icon wp plugin FancyBox for WordPress
Version 3.1.5
Comparing to
See all releases

Code changes from version 3.1.4 to 3.1.5

admin.php CHANGED
@@ -1,150 +1,150 @@
1
- <?php
2
-
3
- function mfbfw_options_page() {
4
- require_once( FBFW_PATH . 'lib/admin-head.php' );
5
-
6
- ?>
7
-
8
- <div class="wrap about-wrap fbfw-wrap">
9
- <div id="icon-plugins" class="icon32"></div>
10
- <div class="inlined">
11
- <div id="pluginDescription">
12
- <h1><?php printf( __( 'Fancybox for WordPress (version %s)', 'mfbfw' ), FBFW_VERSION ); ?></h1>
13
- <p class="about-text">Seamlessly integrates FancyBox into your blog: Upload, activate, and you’re done. Additional configuration optional.</p>
14
- </div>
15
- </div>
16
-
17
- <br/>
18
-
19
- <form method="post" action="options.php" id="options">
20
-
21
- <?php settings_fields( 'mfbfw-options' ); ?>
22
-
23
- <div id="fbfwTabs">
24
- <ul class="nav-tab-wrapper wp-clearfix">
25
- <li><a href="#fbfw-appearance"><?php _e( 'Appearance', 'mfbfw' ); ?></a></li>
26
- <li><a href="#fbfw-animations"><?php _e( 'Animations', 'mfbfw' ); ?></a></li>
27
- <li><a href="#fbfw-behaviour"><?php _e( 'Behaviour', 'mfbfw' ); ?></a></li>
28
- <li><a href="#fbfw-galleries"><?php _e( 'Galleries', 'mfbfw' ); ?></a></li>
29
- <li><a href="#fbfw-other"><?php _e( 'Misc.', 'mfbfw' ); ?></a></li>
30
- <li><a href="#fbfw-support" style="color:green;"><?php _e( 'Support', 'mfbfw' ); ?></a></li>
31
- </ul>
32
-
33
- <div id="fbfw-appearance">
34
- <?php require_once( FBFW_PATH . 'lib/admin-tab-appearance.php' ); ?>
35
- </div>
36
-
37
- <div id="fbfw-animations">
38
- <?php require_once( FBFW_PATH . 'lib/admin-tab-animations.php' ); ?>
39
- </div>
40
-
41
- <div id="fbfw-behaviour">
42
- <?php require_once( FBFW_PATH . 'lib/admin-tab-behaviour.php' ); ?>
43
- </div>
44
-
45
- <div id="fbfw-galleries">
46
- <?php require_once( FBFW_PATH . 'lib/admin-tab-galleries.php' ); ?>
47
- </div>
48
-
49
- <div id="fbfw-other">
50
- <?php require_once( FBFW_PATH . 'lib/admin-tab-other.php' ); ?>
51
- </div>
52
-
53
- <div id="fbfw-support">
54
- <?php require_once( FBFW_PATH . 'lib/admin-tab-support.php' ); ?>
55
- </div>
56
-
57
- </div>
58
-
59
- <p class="submit" style="text-align:center;">
60
- <input type="submit" name="mfbfw_update" class="button-primary"
61
- value="<?php esc_attr_e( 'Save Changes', 'mfbfw' ); ?>"/>
62
- </p>
63
-
64
- </form>
65
-
66
- <form method="post" action="">
67
- <div style="text-align:center;padding:0 0 1.5em;margin:-15px 0 5px;">
68
- <?php wp_nonce_field( 'mfbfw-options-reset' ); ?>
69
- <input type="submit" name="mfbfw_update" id="reset" onClick="return confirmDefaults();"
70
- class="button-secondary" value="<?php esc_attr_e( 'Revert to defaults', 'mfbfw' ); ?>"/>
71
- <input type="hidden" name="action" value="reset"/>
72
- </div>
73
-
74
- <div id="mfbfwd"
75
- style="border-top:1px dashed #DDDDDD;margin:20px 0 40px;overflow:hidden;padding-top:25px;width:100%;float:left;display:block !important;">
76
-
77
- Plugin developed and supported by <a href="https://colorlib.com">Colorlib</a>
78
-
79
- </div>
80
-
81
- </div>
82
-
83
- <div class="modula-wrap">
84
- <a target="_blank" href="http://wp-modula.com/?utm_source=fancybox-for-wp&utm_medium=options-page&utm_campaign=Modula%20Lite" class="modula-link">
85
- <img src="<?php echo FBFW_URL; ?>assets/images/modula-300x300.jpg"/>
86
- <h2>Easy Image Gallery for WP</h2>
87
- <p>Modula is creative! Modula is dynamic! Modula doesn’t always look the same. Just have fun with it! Modula uses a new concept to build its internal grid. The result is a dynamic, creative, interesting and attractive gallery.</p>
88
-
89
- <?php
90
-
91
- $plugin_slug = 'modula-best-grid-gallery';
92
- $plugin_path = 'modula-best-grid-gallery/Modula.php';
93
-
94
- $installed = false;
95
- $activated = false;
96
- if ( file_exists( ABSPATH . 'wp-content/plugins/' . $plugin_slug ) ) {
97
- $installed = true;
98
- }
99
-
100
- if ( file_exists( ABSPATH . 'wp-content/plugins/' . $plugin_path ) ) {
101
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
102
- if ( is_plugin_active( $plugin_path ) ) {
103
- $activated = true;
104
- }
105
- }
106
-
107
- if ( ! $activated ) {
108
-
109
- if ( ! $installed ) {
110
- $label = esc_html__( 'Install & Activate Modula', 'mfbfw' );
111
- $link = wp_nonce_url(
112
- add_query_arg(
113
- array(
114
- 'action' => 'install-plugin',
115
- 'plugin' => $plugin_slug,
116
- ),
117
- network_admin_url( 'update.php' )
118
- ),
119
- 'install-plugin_' . $plugin_slug
120
- );
121
- $action = 'install';
122
- }else{
123
- $label = esc_html__( 'Activate Modula', 'mfbfw' );
124
- $link = add_query_arg(
125
- array(
126
- 'action' => 'activate',
127
- 'plugin' => rawurlencode( $plugin_path ),
128
- 'plugin_status' => 'all',
129
- 'paged' => '1',
130
- '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin_path ),
131
- ),
132
- admin_url( 'plugins.php' )
133
- );
134
- $action = 'activate';
135
- }
136
-
137
- echo '<a href="' . esc_url( $link ) . '" class="mfbfw-modula-link button button-primary button-large" data-action="' . esc_attr( $action ) . '">' . esc_html( $label ) . '</a>';
138
-
139
- }
140
-
141
- ?>
142
-
143
- </a>
144
- </div>
145
-
146
-
147
- <?php
148
- }
149
-
150
- ?>
1
+ <?php
2
+
3
+ function mfbfw_options_page() {
4
+ require_once( FBFW_PATH . 'lib/admin-head.php' );
5
+
6
+ ?>
7
+
8
+ <div class="wrap about-wrap fbfw-wrap">
9
+ <div id="icon-plugins" class="icon32"></div>
10
+ <div class="inlined">
11
+ <div id="pluginDescription">
12
+ <h1><?php printf( __( 'Fancybox for WordPress (version %s)', 'mfbfw' ), FBFW_VERSION ); ?></h1>
13
+ <p class="about-text">Seamlessly integrates FancyBox into your blog: Upload, activate, and you’re done. Additional configuration optional.</p>
14
+ </div>
15
+ </div>
16
+
17
+ <br/>
18
+
19
+ <form method="post" action="options.php" id="options">
20
+
21
+ <?php settings_fields( 'mfbfw-options' ); ?>
22
+
23
+ <div id="fbfwTabs">
24
+ <ul class="nav-tab-wrapper wp-clearfix">
25
+ <li><a href="#fbfw-appearance"><?php _e( 'Appearance', 'mfbfw' ); ?></a></li>
26
+ <li><a href="#fbfw-animations"><?php _e( 'Animations', 'mfbfw' ); ?></a></li>
27
+ <li><a href="#fbfw-behaviour"><?php _e( 'Behaviour', 'mfbfw' ); ?></a></li>
28
+ <li><a href="#fbfw-galleries"><?php _e( 'Galleries', 'mfbfw' ); ?></a></li>
29
+ <li><a href="#fbfw-other"><?php _e( 'Misc.', 'mfbfw' ); ?></a></li>
30
+ <li><a href="#fbfw-support" style="color:green;"><?php _e( 'Support', 'mfbfw' ); ?></a></li>
31
+ </ul>
32
+
33
+ <div id="fbfw-appearance">
34
+ <?php require_once( FBFW_PATH . 'lib/admin-tab-appearance.php' ); ?>
35
+ </div>
36
+
37
+ <div id="fbfw-animations">
38
+ <?php require_once( FBFW_PATH . 'lib/admin-tab-animations.php' ); ?>
39
+ </div>
40
+
41
+ <div id="fbfw-behaviour">
42
+ <?php require_once( FBFW_PATH . 'lib/admin-tab-behaviour.php' ); ?>
43
+ </div>
44
+
45
+ <div id="fbfw-galleries">
46
+ <?php require_once( FBFW_PATH . 'lib/admin-tab-galleries.php' ); ?>
47
+ </div>
48
+
49
+ <div id="fbfw-other">
50
+ <?php require_once( FBFW_PATH . 'lib/admin-tab-other.php' ); ?>
51
+ </div>
52
+
53
+ <div id="fbfw-support">
54
+ <?php require_once( FBFW_PATH . 'lib/admin-tab-support.php' ); ?>
55
+ </div>
56
+
57
+ </div>
58
+
59
+ <p class="submit" style="text-align:center;">
60
+ <input type="submit" name="mfbfw_update" class="button-primary"
61
+ value="<?php esc_attr_e( 'Save Changes', 'mfbfw' ); ?>"/>
62
+ </p>
63
+
64
+ </form>
65
+
66
+ <form method="post" action="">
67
+ <div style="text-align:center;padding:0 0 1.5em;margin:-15px 0 5px;">
68
+ <?php wp_nonce_field( 'mfbfw-options-reset' ); ?>
69
+ <input type="submit" name="mfbfw_update" id="reset" onClick="return confirmDefaults();"
70
+ class="button-secondary" value="<?php esc_attr_e( 'Revert to defaults', 'mfbfw' ); ?>"/>
71
+ <input type="hidden" name="action" value="reset"/>
72
+ </div>
73
+
74
+ <div id="mfbfwd"
75
+ style="border-top:1px dashed #DDDDDD;margin:20px 0 40px;overflow:hidden;padding-top:25px;width:100%;float:left;display:block !important;">
76
+
77
+ Plugin developed and supported by <a href="https://colorlib.com">Colorlib</a>
78
+
79
+ </div>
80
+
81
+ </div>
82
+
83
+ <div class="modula-wrap">
84
+ <a target="_blank" href="http://wp-modula.com/?utm_source=fancybox-for-wp&utm_medium=options-page&utm_campaign=Modula%20Lite" class="modula-link">
85
+ <img src="<?php echo FBFW_URL; ?>assets/images/modula-300x300.jpg"/>
86
+ <h2>Easy Image Gallery for WP</h2>
87
+ <p>Modula is creative! Modula is dynamic! Modula doesn’t always look the same. Just have fun with it! Modula uses a new concept to build its internal grid. The result is a dynamic, creative, interesting and attractive gallery.</p>
88
+
89
+ <?php
90
+
91
+ $plugin_slug = 'modula-best-grid-gallery';
92
+ $plugin_path = 'modula-best-grid-gallery/Modula.php';
93
+
94
+ $installed = false;
95
+ $activated = false;
96
+ if ( file_exists( ABSPATH . 'wp-content/plugins/' . $plugin_slug ) ) {
97
+ $installed = true;
98
+ }
99
+
100
+ if ( file_exists( ABSPATH . 'wp-content/plugins/' . $plugin_path ) ) {
101
+ include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
102
+ if ( is_plugin_active( $plugin_path ) ) {
103
+ $activated = true;
104
+ }
105
+ }
106
+
107
+ if ( ! $activated ) {
108
+
109
+ if ( ! $installed ) {
110
+ $label = esc_html__( 'Install & Activate Modula', 'mfbfw' );
111
+ $link = wp_nonce_url(
112
+ add_query_arg(
113
+ array(
114
+ 'action' => 'install-plugin',
115
+ 'plugin' => $plugin_slug,
116
+ ),
117
+ network_admin_url( 'update.php' )
118
+ ),
119
+ 'install-plugin_' . $plugin_slug
120
+ );
121
+ $action = 'install';
122
+ }else{
123
+ $label = esc_html__( 'Activate Modula', 'mfbfw' );
124
+ $link = add_query_arg(
125
+ array(
126
+ 'action' => 'activate',
127
+ 'plugin' => rawurlencode( $plugin_path ),
128
+ 'plugin_status' => 'all',
129
+ 'paged' => '1',
130
+ '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin_path ),
131
+ ),
132
+ admin_url( 'plugins.php' )
133
+ );
134
+ $action = 'activate';
135
+ }
136
+
137
+ echo '<a href="' . esc_url( $link ) . '" class="mfbfw-modula-link button button-primary button-large" data-action="' . esc_attr( $action ) . '">' . esc_html( $label ) . '</a>';
138
+
139
+ }
140
+
141
+ ?>
142
+
143
+ </a>
144
+ </div>
145
+
146
+
147
+ <?php
148
+ }
149
+
150
+ ?>
assets/css/fancybox-admin.css CHANGED
@@ -1,376 +1,376 @@
1
- .settings_page_fancybox-for-wordpress #wpcontent {
2
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif
3
- }
4
-
5
- #mfbfwd {
6
- border-top: 1px dashed #DDD;
7
- margin: 20px auto 40px;
8
- overflow: hidden;
9
- padding-top: 25px;
10
- width: 726px
11
- }
12
-
13
- .mfbfw_box {
14
- border-radius: 3px;
15
- float: left;
16
- font-weight: 700;
17
- height: 90px;
18
- margin: 5px 5px 3px;
19
- opacity: .7;
20
- padding: 0 5px;
21
- text-align: center;
22
- width: 220px
23
- }
24
-
25
- .mfbfw_box:hover {
26
- opacity: .9
27
- }
28
-
29
- .mfbfw_blue,
30
- .mfbfw_yellow {
31
- background: #fdca57;
32
- border: 1px solid #d7922d;
33
- color: #975c25;
34
- -webkit-box-shadow: inset 0 0 20px 5px #fb9822, inset 0 1px 0 #fff, 0 0 0 2px rgba(0, 0, 0, .05), 0 0 2px rgba(0, 0, 0, .5);
35
- -moz-box-shadow: inset 0 0 20px 5px #fb9822, inset 0 1px 0 #fff, 0 0 0 2px rgba(0, 0, 0, .05), 0 0 2px rgba(0, 0, 0, .5);
36
- box-shadow: inset 0 0 20px 5px #fb9822, inset 0 1px 0 #fff, 0 0 0 2px rgba(0, 0, 0, .05), 0 0 2px rgba(0, 0, 0, .5);
37
- text-shadow: 0 1px 0 #fee27d;
38
- filter: dropshadow(color=#ffd21f, offx=0, offy=1)
39
- }
40
-
41
- #fbfwTabs {
42
- background: 0 0;
43
- border: none
44
- }
45
-
46
- #fbfwTabs .ui-tabs-nav {
47
- background: 0 0;
48
- border: 0;
49
- border-bottom: 1px solid #aaa
50
- }
51
-
52
- #fbfwTabs .ui-tabs-nav li {
53
- border-radius: 0;
54
- margin: 0 5px;
55
- background: #e5e5e5;
56
- top: 2px
57
- }
58
-
59
- #fbfwTabs .ui-tabs-nav li a {
60
- font-size: 15px;
61
- font-weight: 600;
62
- outline: 0;
63
- box-shadow: none
64
- }
65
-
66
- #fbfwTabs .ui-tabs-nav .ui-tabs-active {
67
- background: #f1f1f1;
68
- position: relative;
69
- color: #000;
70
- border: 1px solid #aaa
71
- }
72
-
73
- #fbfwTabs .ui-tabs-nav .ui-tabs-active a {
74
- color: #000
75
- }
76
-
77
- #fbfwTabs .ui-tabs-nav .ui-tabs-active:after {
78
- position: absolute;
79
- width: 100%;
80
- height: 3px;
81
- bottom: -2px;
82
- background: #f1f1f1;
83
- content: "";
84
- display: block
85
- }
86
-
87
- #fbfwTabs .inlined > div:not(.cf) {
88
- display: inline-block;
89
- width: 50%;
90
- vertical-align: middle
91
- }
92
-
93
- #fbfwTabs .CodeMirror,
94
- #fbfwTabs label[for=extraCalls],
95
- .inlined {
96
- width: 100%
97
- }
98
-
99
- .inlined {
100
- display: block
101
- }
102
-
103
- .inlined .slider-horizontal {
104
- dispaly: inline-block;
105
- width: 80%;
106
- max-width: 200px;
107
- height: 3px !important;
108
- border: 0 !important;
109
- background: #d6d6d6 !important;
110
- border-radius: 3px !important;
111
- margin-right: 25px
112
- }
113
-
114
- .slider-horizontal .ui-slider-range {
115
- background: #d6d6d6 !important;
116
- border-radius: 3px !important
117
- }
118
-
119
- .slider-horizontal .ui-slider-handle {
120
- border-radius: 50%;
121
- height: 18px !important;
122
- width: 18px !important;
123
- top: 50% !important;
124
- transform: translateY(-50%) !important
125
- }
126
-
127
- .slider-horizontal .ui-slider-handle.ui-state-active {
128
- background: #fff !important;
129
- border-color: #d6d6d6 !important
130
- }
131
-
132
- .inlined input {
133
- display: inline-block;
134
- vertical-align: middle;
135
- width: 20%;
136
- max-width: 40px
137
- }
138
-
139
- .inlined .slider-text {
140
- font-size: 12px;
141
- color: #333;
142
- border-radius: 10px;
143
- background-color: #f8f8f8;
144
- -webkit-box-shadow: inset 0 2px 5px 0 rgba(0, 0, 0, .1);
145
- -moz-box-shadow: inset 0 2px 5px 0 rgba(0, 0, 0, .1);
146
- box-shadow: inset 0 2px 5px 0 rgba(0, 0, 0, .1);
147
- width: 42px;
148
- height: 22px;
149
- text-align: center
150
- }
151
-
152
- #pluginLogo img {
153
- max-height: 150px;
154
- width: auto
155
- }
156
-
157
- .inlined > div {
158
- display: inline-block;
159
- vertical-align: top
160
- }
161
-
162
- .inlined #pluginLogo {
163
- width: 19%;
164
- text-align: right;
165
- min-width: 100px
166
- }
167
-
168
- .inlined #pluginDescription {
169
- width: 80%;
170
- text-align: left;
171
- min-width: 100px
172
- }
173
-
174
- #pluginDescription h2 {
175
- font-size: 2.8em;
176
- font-weight: 400;
177
- line-height: 1.2em
178
- }
179
-
180
- #pluginDescription p {
181
- font-size: 19px
182
- }
183
-
184
- .fancy-table .onoffswitch-checkbox {
185
- display: none
186
- }
187
-
188
- .fancy-table .onoffswitch-label {
189
- display: block;
190
- overflow: hidden;
191
- cursor: pointer;
192
- height: 22px;
193
- padding: 0;
194
- width: 50px;
195
- position: relative;
196
- line-height: 19px;
197
- transition: background-color .2s ease-in;
198
- -webkit-border-radius: 11px;
199
- -moz-border-radius: 11px;
200
- border-radius: 30px;
201
- background-color: #c4c4c4;
202
- -webkit-box-shadow: inset 0 2px 1px rgba(0, 0, 0, .11);
203
- -moz-box-shadow: inset 0 2px 1px rgba(0, 0, 0, .11);
204
- box-shadow: inset 0 2px 1px rgba(0, 0, 0, .11)
205
- }
206
-
207
- .fancy-table .onoffswitch-label:before {
208
- content: "";
209
- display: block;
210
- width: 18px;
211
- height: 18px;
212
- margin: 0;
213
- position: absolute;
214
- top: 2px;
215
- bottom: 0;
216
- right: 32px;
217
- background-color: #fff;
218
- -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .1);
219
- -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .1);
220
- box-shadow: 0 0 3px rgba(0, 0, 0, .1);
221
- -webkit-border-radius: 10px;
222
- -moz-border-radius: 10px;
223
- border-radius: 10px;
224
- transition: all .2s ease-in 0s
225
- }
226
-
227
- .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label:after,
228
- .fancy-table .onoffswitch-label:after {
229
- display: block;
230
- color: #fff;
231
- top: 2px;
232
- bottom: 2px;
233
- font-size: 11px;
234
- font-family: Arial;
235
- position: absolute
236
- }
237
-
238
- .fancy-table .onoffswitch-label:after {
239
- content: "OFF";
240
- right: 6px
241
- }
242
-
243
- .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label {
244
- background-color: #3caf0e
245
- }
246
-
247
- .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label,
248
- input[type=checkbox]:checked + .onoffswitch-label:before {
249
- border-color: #3caf0e
250
- }
251
-
252
- .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label:before {
253
- right: 2px
254
- }
255
-
256
- .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label:after {
257
- content: "ON";
258
- right: 27px
259
- }
260
-
261
- label.onoffswitch-label,
262
- span.switch-text {
263
- float: left;
264
- display: inline-block
265
- }
266
-
267
- span.switch-text {
268
- margin-left: 25px;
269
- padding: 5px
270
- }
271
-
272
- #extraCallsBlock {
273
- width: 80%
274
- }
275
-
276
- #callbackBlock label,
277
- .cf,
278
- .start-editing,
279
- .start-editing p {
280
- width: 100%
281
- }
282
-
283
- .start-editing {
284
- position: absolute;
285
- top: 0;
286
- right: 0;
287
- left: 0;
288
- bottom: 0;
289
- height: calc(100% - 5px);
290
- z-index: 2;
291
- background: rgba(0, 0, 0, .6);
292
- display: flex;
293
- flex-wrap: wrap;
294
- align-items: center;
295
- text-align: center;
296
- color: #fff;
297
- font-size: 20px;
298
- }
299
-
300
- .start-editing p {
301
- display: block;
302
- font-size: 20px !important;
303
- }
304
-
305
- #callbackBlock label,
306
- #customExpressionBlock label,
307
- label[for="extraCalls"] {
308
- width: 100%;
309
- position: relative
310
- }
311
-
312
- #callbackBlock label textarea,
313
- #customExpressionBlock label textarea,
314
- label[for="extraCalls"] textarea {
315
- width: 100%;
316
- height: 100%;
317
- }
318
-
319
- #fbfwTabs .ui-tabs-panel h3 {
320
- margin-top: 0
321
- }
322
-
323
- #fbfwTabs.ui-tabs .ui-tabs-panel {
324
- padding-left: 0 !important;
325
- padding-right: 0 !important
326
- }
327
-
328
- #callbackBlock .CodeMirror-wrap pre {
329
- margin-left: 15px
330
- }
331
-
332
- tr.spacer {
333
- height: 25px;
334
- }
335
-
336
- .line-spacer {
337
- height: 15px;
338
- }
339
-
340
- .hidden-block {
341
- margin-top: 15px;
342
- }
343
-
344
- .about-wrap.fbfw-wrap {
345
- max-width:70%;
346
- float:left;
347
- }
348
-
349
- .modula-wrap {
350
- float: left;
351
- max-width: 20%;
352
- padding-top: 32px;
353
- }
354
-
355
- a.modula-link {
356
- color:#000;
357
- text-decoration: none;
358
- }
359
- a.modula-link:hover {
360
- text-decoration: none;
361
- }
362
-
363
- .cf:after,
364
- .cf:before {
365
- content: " ";
366
- display: table
367
- }
368
-
369
- .cf:after {
370
- clear: both
371
- }
372
-
373
- .about-wrap.fbfw-wrap .about-text,
374
- .about-wrap.fbfw-wrap h1 {
375
- margin-right: 0;
376
  }
1
+ .settings_page_fancybox-for-wordpress #wpcontent {
2
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif
3
+ }
4
+
5
+ #mfbfwd {
6
+ border-top: 1px dashed #DDD;
7
+ margin: 20px auto 40px;
8
+ overflow: hidden;
9
+ padding-top: 25px;
10
+ width: 726px
11
+ }
12
+
13
+ .mfbfw_box {
14
+ border-radius: 3px;
15
+ float: left;
16
+ font-weight: 700;
17
+ height: 90px;
18
+ margin: 5px 5px 3px;
19
+ opacity: .7;
20
+ padding: 0 5px;
21
+ text-align: center;
22
+ width: 220px
23
+ }
24
+
25
+ .mfbfw_box:hover {
26
+ opacity: .9
27
+ }
28
+
29
+ .mfbfw_blue,
30
+ .mfbfw_yellow {
31
+ background: #fdca57;
32
+ border: 1px solid #d7922d;
33
+ color: #975c25;
34
+ -webkit-box-shadow: inset 0 0 20px 5px #fb9822, inset 0 1px 0 #fff, 0 0 0 2px rgba(0, 0, 0, .05), 0 0 2px rgba(0, 0, 0, .5);
35
+ -moz-box-shadow: inset 0 0 20px 5px #fb9822, inset 0 1px 0 #fff, 0 0 0 2px rgba(0, 0, 0, .05), 0 0 2px rgba(0, 0, 0, .5);
36
+ box-shadow: inset 0 0 20px 5px #fb9822, inset 0 1px 0 #fff, 0 0 0 2px rgba(0, 0, 0, .05), 0 0 2px rgba(0, 0, 0, .5);
37
+ text-shadow: 0 1px 0 #fee27d;
38
+ filter: dropshadow(color=#ffd21f, offx=0, offy=1)
39
+ }
40
+
41
+ #fbfwTabs {
42
+ background: 0 0;
43
+ border: none
44
+ }
45
+
46
+ #fbfwTabs .ui-tabs-nav {
47
+ background: 0 0;
48
+ border: 0;
49
+ border-bottom: 1px solid #aaa
50
+ }
51
+
52
+ #fbfwTabs .ui-tabs-nav li {
53
+ border-radius: 0;
54
+ margin: 0 5px;
55
+ background: #e5e5e5;
56
+ top: 2px
57
+ }
58
+
59
+ #fbfwTabs .ui-tabs-nav li a {
60
+ font-size: 15px;
61
+ font-weight: 600;
62
+ outline: 0;
63
+ box-shadow: none
64
+ }
65
+
66
+ #fbfwTabs .ui-tabs-nav .ui-tabs-active {
67
+ background: #f1f1f1;
68
+ position: relative;
69
+ color: #000;
70
+ border: 1px solid #aaa
71
+ }
72
+
73
+ #fbfwTabs .ui-tabs-nav .ui-tabs-active a {
74
+ color: #000
75
+ }
76
+
77
+ #fbfwTabs .ui-tabs-nav .ui-tabs-active:after {
78
+ position: absolute;
79
+ width: 100%;
80
+ height: 3px;
81
+ bottom: -2px;
82
+ background: #f1f1f1;
83
+ content: "";
84
+ display: block
85
+ }
86
+
87
+ #fbfwTabs .inlined > div:not(.cf) {
88
+ display: inline-block;
89
+ width: 50%;
90
+ vertical-align: middle
91
+ }
92
+
93
+ #fbfwTabs .CodeMirror,
94
+ #fbfwTabs label[for=extraCalls],
95
+ .inlined {
96
+ width: 100%
97
+ }
98
+
99
+ .inlined {
100
+ display: block
101
+ }
102
+
103
+ .inlined .slider-horizontal {
104
+ dispaly: inline-block;
105
+ width: 80%;
106
+ max-width: 200px;
107
+ height: 3px !important;
108
+ border: 0 !important;
109
+ background: #d6d6d6 !important;
110
+ border-radius: 3px !important;
111
+ margin-right: 25px
112
+ }
113
+
114
+ .slider-horizontal .ui-slider-range {
115
+ background: #d6d6d6 !important;
116
+ border-radius: 3px !important
117
+ }
118
+
119
+ .slider-horizontal .ui-slider-handle {
120
+ border-radius: 50%;
121
+ height: 18px !important;
122
+ width: 18px !important;
123
+ top: 50% !important;
124
+ transform: translateY(-50%) !important
125
+ }
126
+
127
+ .slider-horizontal .ui-slider-handle.ui-state-active {
128
+ background: #fff !important;
129
+ border-color: #d6d6d6 !important
130
+ }
131
+
132
+ .inlined input {
133
+ display: inline-block;
134
+ vertical-align: middle;
135
+ width: 20%;
136
+ max-width: 40px
137
+ }
138
+
139
+ .inlined .slider-text {
140
+ font-size: 12px;
141
+ color: #333;
142
+ border-radius: 10px;
143
+ background-color: #f8f8f8;
144
+ -webkit-box-shadow: inset 0 2px 5px 0 rgba(0, 0, 0, .1);
145
+ -moz-box-shadow: inset 0 2px 5px 0 rgba(0, 0, 0, .1);
146
+ box-shadow: inset 0 2px 5px 0 rgba(0, 0, 0, .1);
147
+ width: 42px;
148
+ height: 22px;
149
+ text-align: center
150
+ }
151
+
152
+ #pluginLogo img {
153
+ max-height: 150px;
154
+ width: auto
155
+ }
156
+
157
+ .inlined > div {
158
+ display: inline-block;
159
+ vertical-align: top
160
+ }
161
+
162
+ .inlined #pluginLogo {
163
+ width: 19%;
164
+ text-align: right;
165
+ min-width: 100px
166
+ }
167
+
168
+ .inlined #pluginDescription {
169
+ width: 80%;
170
+ text-align: left;
171
+ min-width: 100px
172
+ }
173
+
174
+ #pluginDescription h2 {
175
+ font-size: 2.8em;
176
+ font-weight: 400;
177
+ line-height: 1.2em
178
+ }
179
+
180
+ #pluginDescription p {
181
+ font-size: 19px
182
+ }
183
+
184
+ .fancy-table .onoffswitch-checkbox {
185
+ display: none
186
+ }
187
+
188
+ .fancy-table .onoffswitch-label {
189
+ display: block;
190
+ overflow: hidden;
191
+ cursor: pointer;
192
+ height: 22px;
193
+ padding: 0;
194
+ width: 50px;
195
+ position: relative;
196
+ line-height: 19px;
197
+ transition: background-color .2s ease-in;
198
+ -webkit-border-radius: 11px;
199
+ -moz-border-radius: 11px;
200
+ border-radius: 30px;
201
+ background-color: #c4c4c4;
202
+ -webkit-box-shadow: inset 0 2px 1px rgba(0, 0, 0, .11);
203
+ -moz-box-shadow: inset 0 2px 1px rgba(0, 0, 0, .11);
204
+ box-shadow: inset 0 2px 1px rgba(0, 0, 0, .11)
205
+ }
206
+
207
+ .fancy-table .onoffswitch-label:before {
208
+ content: "";
209
+ display: block;
210
+ width: 18px;
211
+ height: 18px;
212
+ margin: 0;
213
+ position: absolute;
214
+ top: 2px;
215
+ bottom: 0;
216
+ right: 32px;
217
+ background-color: #fff;
218
+ -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .1);
219
+ -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .1);
220
+ box-shadow: 0 0 3px rgba(0, 0, 0, .1);
221
+ -webkit-border-radius: 10px;
222
+ -moz-border-radius: 10px;
223
+ border-radius: 10px;
224
+ transition: all .2s ease-in 0s
225
+ }
226
+
227
+ .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label:after,
228
+ .fancy-table .onoffswitch-label:after {
229
+ display: block;
230
+ color: #fff;
231
+ top: 2px;
232
+ bottom: 2px;
233
+ font-size: 11px;
234
+ font-family: Arial;
235
+ position: absolute
236
+ }
237
+
238
+ .fancy-table .onoffswitch-label:after {
239
+ content: "OFF";
240
+ right: 6px
241
+ }
242
+
243
+ .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label {
244
+ background-color: #3caf0e
245
+ }
246
+
247
+ .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label,
248
+ input[type=checkbox]:checked + .onoffswitch-label:before {
249
+ border-color: #3caf0e
250
+ }
251
+
252
+ .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label:before {
253
+ right: 2px
254
+ }
255
+
256
+ .fancy-table .onoffswitch-checkbox:checked + .onoffswitch-label:after {
257
+ content: "ON";
258
+ right: 27px
259
+ }
260
+
261
+ label.onoffswitch-label,
262
+ span.switch-text {
263
+ float: left;
264
+ display: inline-block
265
+ }
266
+
267
+ span.switch-text {
268
+ margin-left: 25px;
269
+ padding: 5px
270
+ }
271
+
272
+ #extraCallsBlock {
273
+ width: 80%
274
+ }
275
+
276
+ #callbackBlock label,
277
+ .cf,
278
+ .start-editing,
279
+ .start-editing p {
280
+ width: 100%
281
+ }
282
+
283
+ .start-editing {
284
+ position: absolute;
285
+ top: 0;
286
+ right: 0;
287
+ left: 0;
288
+ bottom: 0;
289
+ height: calc(100% - 5px);
290
+ z-index: 2;
291
+ background: rgba(0, 0, 0, .6);
292
+ display: flex;
293
+ flex-wrap: wrap;
294
+ align-items: center;
295
+ text-align: center;
296
+ color: #fff;
297
+ font-size: 20px;
298
+ }
299
+
300
+ .start-editing p {
301
+ display: block;
302
+ font-size: 20px !important;
303
+ }
304
+
305
+ #callbackBlock label,
306
+ #customExpressionBlock label,
307
+ label[for="extraCalls"] {
308
+ width: 100%;
309
+ position: relative
310
+ }
311
+
312
+ #callbackBlock label textarea,
313
+ #customExpressionBlock label textarea,
314
+ label[for="extraCalls"] textarea {
315
+ width: 100%;
316
+ height: 100%;
317
+ }
318
+
319
+ #fbfwTabs .ui-tabs-panel h3 {
320
+ margin-top: 0
321
+ }
322
+
323
+ #fbfwTabs.ui-tabs .ui-tabs-panel {
324
+ padding-left: 0 !important;
325
+ padding-right: 0 !important
326
+ }
327
+
328
+ #callbackBlock .CodeMirror-wrap pre {
329
+ margin-left: 15px
330
+ }
331
+
332
+ tr.spacer {
333
+ height: 25px;
334
+ }
335
+
336
+ .line-spacer {
337
+ height: 15px;
338
+ }
339
+
340
+ .hidden-block {
341
+ margin-top: 15px;
342
+ }
343
+
344
+ .about-wrap.fbfw-wrap {
345
+ max-width:70%;
346
+ float:left;
347
+ }
348
+
349
+ .modula-wrap {
350
+ float: left;
351
+ max-width: 20%;
352
+ padding-top: 32px;
353
+ }
354
+
355
+ a.modula-link {
356
+ color:#000;
357
+ text-decoration: none;
358
+ }
359
+ a.modula-link:hover {
360
+ text-decoration: none;
361
+ }
362
+
363
+ .cf:after,
364
+ .cf:before {
365
+ content: " ";
366
+ display: table
367
+ }
368
+
369
+ .cf:after {
370
+ clear: both
371
+ }
372
+
373
+ .about-wrap.fbfw-wrap .about-text,
374
+ .about-wrap.fbfw-wrap h1 {
375
+ margin-right: 0;
376
  }
assets/css/fancybox.css CHANGED
@@ -1,898 +1,898 @@
1
- body.compensate-for-scrollbar {
2
- overflow: hidden;
3
- }
4
-
5
- .fancybox-active {
6
- height: auto;
7
- }
8
-
9
- .fancybox-is-hidden {
10
- left: -9999px;
11
- margin: 0;
12
- position: absolute !important;
13
- top: -9999px;
14
- visibility: hidden;
15
- }
16
-
17
- .fancybox-container {
18
- -webkit-backface-visibility: hidden;
19
- height: 100%;
20
- left: 0;
21
- outline: none;
22
- position: fixed;
23
- -webkit-tap-highlight-color: transparent;
24
- top: 0;
25
- -ms-touch-action: manipulation;
26
- touch-action: manipulation;
27
- -webkit-transform: translateZ(0);
28
- transform: translateZ(0);
29
- width: 100%;
30
- z-index: 99992;
31
- }
32
-
33
- .fancybox-container * {
34
- box-sizing: border-box;
35
- }
36
-
37
- .fancybox-outer,
38
- .fancybox-inner,
39
- .fancybox-bg,
40
- .fancybox-stage {
41
- bottom: 0;
42
- left: 0;
43
- position: absolute;
44
- right: 0;
45
- top: 0;
46
- }
47
-
48
- .fancybox-outer {
49
- -webkit-overflow-scrolling: touch;
50
- overflow-y: auto;
51
- }
52
-
53
- .fancybox-bg {
54
- background: #1e1e1e;
55
- opacity: 0;
56
- transition-duration: inherit;
57
- transition-property: opacity;
58
- transition-timing-function: cubic-bezier(0.47, 0, 0.74, 0.71);
59
- }
60
-
61
- .fancybox-is-open .fancybox-bg {
62
- opacity: .9;
63
- transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
64
- }
65
-
66
- .fancybox-infobar,
67
- .fancybox-toolbar,
68
- .fancybox-caption,
69
- .fancybox-navigation .fancybox-button {
70
- direction: ltr;
71
- opacity: 0;
72
- position: absolute;
73
- transition: opacity .25s ease, visibility 0s ease .25s;
74
- visibility: hidden;
75
- z-index: 99997;
76
- }
77
-
78
- .fancybox-show-infobar .fancybox-infobar,
79
- .fancybox-show-toolbar .fancybox-toolbar,
80
- .fancybox-show-caption .fancybox-caption,
81
- .fancybox-show-nav .fancybox-navigation .fancybox-button {
82
- opacity: 1;
83
- transition: opacity .25s ease 0s, visibility 0s ease 0s;
84
- visibility: visible;
85
- }
86
-
87
- .fancybox-infobar {
88
- color: #ccc;
89
- font-size: 13px;
90
- -webkit-font-smoothing: subpixel-antialiased;
91
- height: 44px;
92
- left: 0;
93
- line-height: 44px;
94
- min-width: 44px;
95
- mix-blend-mode: difference;
96
- padding: 0 10px;
97
- pointer-events: none;
98
- top: 0;
99
- -webkit-touch-callout: none;
100
- -webkit-user-select: none;
101
- -moz-user-select: none;
102
- -ms-user-select: none;
103
- user-select: none;
104
- }
105
-
106
- .fancybox-toolbar {
107
- right: 0;
108
- top: 0;
109
- }
110
-
111
- .fancybox-stage {
112
- direction: ltr;
113
- overflow: visible;
114
- -webkit-transform: translateZ(0);
115
- transform: translateZ(0);
116
- z-index: 99994;
117
- }
118
-
119
- .fancybox-is-open .fancybox-stage {
120
- overflow: hidden;
121
- }
122
-
123
- .fancybox-slide {
124
- -webkit-backface-visibility: hidden;
125
- /* Using without prefix would break IE11 */
126
- display: none;
127
- height: 100%;
128
- left: 0;
129
- outline: none;
130
- overflow: auto;
131
- -webkit-overflow-scrolling: touch;
132
- padding: 44px;
133
- position: absolute;
134
- text-align: center;
135
- top: 0;
136
- transition-property: opacity, -webkit-transform;
137
- transition-property: transform, opacity;
138
- transition-property: transform, opacity, -webkit-transform;
139
- white-space: normal;
140
- width: 100%;
141
- z-index: 99994;
142
- }
143
-
144
- .fancybox-slide::before {
145
- content: '';
146
- display: inline-block;
147
- font-size: 0;
148
- height: 100%;
149
- vertical-align: middle;
150
- width: 0;
151
- }
152
-
153
- .fancybox-is-sliding .fancybox-slide,
154
- .fancybox-slide--previous,
155
- .fancybox-slide--current,
156
- .fancybox-slide--next {
157
- display: block;
158
- }
159
-
160
- .fancybox-slide--image {
161
- overflow: hidden;
162
- padding: 44px 0;
163
- }
164
-
165
- .fancybox-slide--image::before {
166
- display: none;
167
- }
168
-
169
- .fancybox-slide--html {
170
- padding: 6px;
171
- }
172
-
173
- .fancybox-content {
174
- background: #fff;
175
- display: inline-block;
176
- margin: 0;
177
- max-width: 100%;
178
- overflow: auto;
179
- -webkit-overflow-scrolling: touch;
180
- padding: 44px;
181
- position: relative;
182
- text-align: left;
183
- vertical-align: middle;
184
- }
185
-
186
- .fancybox-slide--image .fancybox-content {
187
- -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.14, 1);
188
- animation-timing-function: cubic-bezier(0.5, 0, 0.14, 1);
189
- -webkit-backface-visibility: hidden;
190
- background: transparent;
191
- background-repeat: no-repeat;
192
- background-size: 100% 100%;
193
- left: 0;
194
- max-width: none;
195
- overflow: visible;
196
- padding: 0;
197
- position: absolute;
198
- top: 0;
199
- -webkit-transform-origin: top left;
200
- -ms-transform-origin: top left;
201
- transform-origin: top left;
202
- transition-property: opacity, -webkit-transform;
203
- transition-property: transform, opacity;
204
- transition-property: transform, opacity, -webkit-transform;
205
- -webkit-user-select: none;
206
- -moz-user-select: none;
207
- -ms-user-select: none;
208
- user-select: none;
209
- z-index: 99995;
210
- }
211
-
212
- .fancybox-can-zoomOut .fancybox-content {
213
- cursor: -webkit-zoom-out;
214
- cursor: zoom-out;
215
- }
216
-
217
- .fancybox-can-zoomIn .fancybox-content {
218
- cursor: -webkit-zoom-in;
219
- cursor: zoom-in;
220
- }
221
-
222
- .fancybox-can-swipe .fancybox-content,
223
- .fancybox-can-pan .fancybox-content {
224
- cursor: -webkit-grab;
225
- cursor: grab;
226
- }
227
-
228
- .fancybox-is-grabbing .fancybox-content {
229
- cursor: -webkit-grabbing;
230
- cursor: grabbing;
231
- }
232
-
233
- .fancybox-container [data-selectable='true'] {
234
- cursor: text;
235
- }
236
-
237
- .fancybox-image,
238
- .fancybox-spaceball {
239
- background: transparent;
240
- border: 0;
241
- height: 100%;
242
- left: 0;
243
- /* Fix images beeing distorted */
244
- object-fit: contain;
245
- margin: 0;
246
- max-height: none;
247
- max-width: none;
248
- padding: 0;
249
- position: absolute;
250
- top: 0;
251
- -webkit-user-select: none;
252
- -moz-user-select: none;
253
- -ms-user-select: none;
254
- user-select: none;
255
- width: 100%;
256
- }
257
-
258
- .fancybox-spaceball {
259
- z-index: 1;
260
- }
261
-
262
- .fancybox-slide--video .fancybox-content,
263
- .fancybox-slide--map .fancybox-content,
264
- .fancybox-slide--iframe .fancybox-content {
265
- height: 100%;
266
- overflow: visible;
267
- padding: 0;
268
- width: 100%;
269
- }
270
-
271
- .fancybox-slide--video .fancybox-content {
272
- background: #000;
273
- }
274
-
275
- .fancybox-slide--map .fancybox-content {
276
- background: #e5e3df;
277
- }
278
-
279
- .fancybox-slide--iframe .fancybox-content {
280
- background: #fff;
281
- }
282
-
283
- .fancybox-video,
284
- .fancybox-iframe {
285
- background: transparent;
286
- border: 0;
287
- display: block;
288
- height: 100%;
289
- margin: 0;
290
- overflow: hidden;
291
- padding: 0;
292
- width: 100%;
293
- }
294
-
295
- /* Fix iOS */
296
- .fancybox-iframe {
297
- left: 0;
298
- position: absolute;
299
- top: 0;
300
- }
301
-
302
- .fancybox-error {
303
- background: #fff;
304
- cursor: default;
305
- max-width: 400px;
306
- padding: 40px;
307
- width: 100%;
308
- }
309
-
310
- .fancybox-error p {
311
- color: #444;
312
- font-size: 16px;
313
- line-height: 20px;
314
- margin: 0;
315
- padding: 0;
316
- }
317
-
318
- /* Buttons */
319
- .fancybox-button {
320
- background: rgba(30, 30, 30, 0.6);
321
- border: 0;
322
- border-radius: 0;
323
- box-shadow: none;
324
- cursor: pointer;
325
- display: inline-block;
326
- height: 44px;
327
- margin: 0;
328
- padding: 10px;
329
- position: relative;
330
- transition: color .2s;
331
- vertical-align: top;
332
- visibility: inherit;
333
- width: 44px;
334
- }
335
-
336
- .fancybox-button,
337
- .fancybox-button:visited,
338
- .fancybox-button:link {
339
- color: #ccc;
340
- }
341
-
342
- .fancybox-button:hover {
343
- color: #fff;
344
- }
345
-
346
- .fancybox-button:focus {
347
- outline: none;
348
- }
349
-
350
- .fancybox-button.fancybox-focus {
351
- outline: 1px dotted;
352
- }
353
-
354
- .fancybox-button[disabled],
355
- .fancybox-button[disabled]:hover {
356
- color: #888;
357
- cursor: default;
358
- outline: none;
359
- }
360
-
361
- /* Fix IE11 */
362
- .fancybox-button div {
363
- height: 100%;
364
- }
365
-
366
- .fancybox-button svg {
367
- display: block;
368
- height: 100%;
369
- overflow: visible;
370
- position: relative;
371
- width: 100%;
372
- }
373
-
374
- .fancybox-button svg path {
375
- fill: currentColor;
376
- stroke-width: 0;
377
- }
378
-
379
- .fancybox-button--play svg:nth-child(2),
380
- .fancybox-button--fsenter svg:nth-child(2) {
381
- display: none;
382
- }
383
-
384
- .fancybox-button--pause svg:nth-child(1),
385
- .fancybox-button--fsexit svg:nth-child(1) {
386
- display: none;
387
- }
388
-
389
- .fancybox-progress {
390
- background: #ff5268;
391
- height: 2px;
392
- left: 0;
393
- position: absolute;
394
- right: 0;
395
- top: 0;
396
- -webkit-transform: scaleX(0);
397
- -ms-transform: scaleX(0);
398
- transform: scaleX(0);
399
- -webkit-transform-origin: 0;
400
- -ms-transform-origin: 0;
401
- transform-origin: 0;
402
- transition-property: -webkit-transform;
403
- transition-property: transform;
404
- transition-property: transform, -webkit-transform;
405
- transition-timing-function: linear;
406
- z-index: 99998;
407
- }
408
-
409
- /* Close button on the top right corner of html content */
410
- .fancybox-close-small {
411
- background: transparent;
412
- border: 0;
413
- border-radius: 0;
414
- color: #ccc;
415
- cursor: pointer;
416
- opacity: .8;
417
- padding: 8px;
418
- position: absolute;
419
- right: -12px;
420
- top: -44px;
421
- z-index: 401;
422
- }
423
-
424
- .fancybox-close-small:hover {
425
- color: #fff;
426
- opacity: 1;
427
- }
428
-
429
- .fancybox-slide--html .fancybox-close-small {
430
- color: currentColor;
431
- padding: 10px;
432
- right: 0;
433
- top: 0;
434
- }
435
-
436
- .fancybox-slide--image.fancybox-is-scaling .fancybox-content {
437
- overflow: hidden;
438
- }
439
-
440
- .fancybox-is-scaling .fancybox-close-small,
441
- .fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small {
442
- display: none;
443
- }
444
-
445
- /* Navigation arrows */
446
- .fancybox-navigation .fancybox-button {
447
- background-clip: content-box;
448
- height: 100px;
449
- opacity: 0;
450
- position: absolute;
451
- top: calc(50% - 50px);
452
- width: 70px;
453
- }
454
-
455
- .fancybox-navigation .fancybox-button div {
456
- padding: 7px;
457
- }
458
-
459
- .fancybox-navigation .fancybox-button--arrow_left {
460
- left: 0;
461
- padding: 31px 26px 31px 6px;
462
- }
463
-
464
- .fancybox-navigation .fancybox-button--arrow_right {
465
- padding: 31px 6px 31px 26px;
466
- right: 0;
467
- }
468
-
469
- /* Caption */
470
- .fancybox-caption {
471
- bottom: 0;
472
- color: #eee;
473
- font-size: 14px;
474
- font-weight: 400;
475
- left: 0;
476
- line-height: 1.5;
477
- padding: 25px 44px 25px 44px;
478
- right: 0;
479
- text-align: center;
480
- z-index: 99996;
481
- }
482
-
483
- .fancybox-caption::before {
484
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD6CAQAAADKSeXYAAAAYklEQVQoz42RwQ3AMAgDjfcfup8WoRykfBAK5mQHKSz5rbXJPis1hjiV3CIqgG0hLZPkVkA4p4x5oR1bVeDrdCLrW2Q0D5bcwY3TGMHbdw3mPRuOtaspYP1w//G1OIcW148H0DMCqI/3mMMAAAAASUVORK5CYII=);
485
- background-repeat: repeat-x;
486
- background-size: contain;
487
- bottom: 0;
488
- content: '';
489
- display: block;
490
- left: 0;
491
- pointer-events: none;
492
- position: absolute;
493
- right: 0;
494
- top: -44px;
495
- z-index: -1;
496
- }
497
-
498
- .fancybox-caption a,
499
- .fancybox-caption a:link,
500
- .fancybox-caption a:visited {
501
- color: #ccc;
502
- text-decoration: none;
503
- }
504
-
505
- .fancybox-caption a:hover {
506
- color: #fff;
507
- text-decoration: underline;
508
- }
509
-
510
- /* Loading indicator */
511
- .fancybox-loading {
512
- -webkit-animation: fancybox-rotate 1s linear infinite;
513
- animation: fancybox-rotate 1s linear infinite;
514
- background: transparent;
515
- border: 4px solid #888;
516
- border-bottom-color: #fff;
517
- border-radius: 50%;
518
- height: 50px;
519
- left: 50%;
520
- margin: -25px 0 0 -25px;
521
- opacity: .7;
522
- padding: 0;
523
- position: absolute;
524
- top: 50%;
525
- width: 50px;
526
- z-index: 99999;
527
- }
528
-
529
- @-webkit-keyframes fancybox-rotate {
530
- 100% {
531
- -webkit-transform: rotate(360deg);
532
- transform: rotate(360deg);
533
- }
534
- }
535
-
536
- @keyframes fancybox-rotate {
537
- 100% {
538
- -webkit-transform: rotate(360deg);
539
- transform: rotate(360deg);
540
- }
541
- }
542
-
543
- /* Transition effects */
544
- .fancybox-animated {
545
- transition-timing-function: cubic-bezier(0, 0, 0.25, 1);
546
- }
547
-
548
- /* transitionEffect: slide */
549
- .fancybox-fx-slide.fancybox-slide--previous {
550
- opacity: 0;
551
- -webkit-transform: translate3d(-100%, 0, 0);
552
- transform: translate3d(-100%, 0, 0);
553
- }
554
-
555
- .fancybox-fx-slide.fancybox-slide--next {
556
- opacity: 0;
557
- -webkit-transform: translate3d(100%, 0, 0);
558
- transform: translate3d(100%, 0, 0);
559
- }
560
-
561
- .fancybox-fx-slide.fancybox-slide--current {
562
- opacity: 1;
563
- -webkit-transform: translate3d(0, 0, 0);
564
- transform: translate3d(0, 0, 0);
565
- }
566
-
567
- /* transitionEffect: fade */
568
- .fancybox-fx-fade.fancybox-slide--previous,
569
- .fancybox-fx-fade.fancybox-slide--next {
570
- opacity: 0;
571
- transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
572
- }
573
-
574
- .fancybox-fx-fade.fancybox-slide--current {
575
- opacity: 1;
576
- }
577
-
578
- /* transitionEffect: zoom-in-out */
579
- .fancybox-fx-zoom-in-out.fancybox-slide--previous {
580
- opacity: 0;
581
- -webkit-transform: scale3d(1.5, 1.5, 1.5);
582
- transform: scale3d(1.5, 1.5, 1.5);
583
- }
584
-
585
- .fancybox-fx-zoom-in-out.fancybox-slide--next {
586
- opacity: 0;
587
- -webkit-transform: scale3d(0.5, 0.5, 0.5);
588
- transform: scale3d(0.5, 0.5, 0.5);
589
- }
590
-
591
- .fancybox-fx-zoom-in-out.fancybox-slide--current {
592
- opacity: 1;
593
- -webkit-transform: scale3d(1, 1, 1);
594
- transform: scale3d(1, 1, 1);
595
- }
596
-
597
- /* transitionEffect: rotate */
598
- .fancybox-fx-rotate.fancybox-slide--previous {
599
- opacity: 0;
600
- -webkit-transform: rotate(-360deg);
601
- -ms-transform: rotate(-360deg);
602
- transform: rotate(-360deg);
603
- }
604
-
605
- .fancybox-fx-rotate.fancybox-slide--next {
606
- opacity: 0;
607
- -webkit-transform: rotate(360deg);
608
- -ms-transform: rotate(360deg);
609
- transform: rotate(360deg);
610
- }
611
-
612
- .fancybox-fx-rotate.fancybox-slide--current {
613
- opacity: 1;
614
- -webkit-transform: rotate(0deg);
615
- -ms-transform: rotate(0deg);
616
- transform: rotate(0deg);
617
- }
618
-
619
- /* transitionEffect: circular */
620
- .fancybox-fx-circular.fancybox-slide--previous {
621
- opacity: 0;
622
- -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
623
- transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
624
- }
625
-
626
- .fancybox-fx-circular.fancybox-slide--next {
627
- opacity: 0;
628
- -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
629
- transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
630
- }
631
-
632
- .fancybox-fx-circular.fancybox-slide--current {
633
- opacity: 1;
634
- -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
635
- transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
636
- }
637
-
638
- /* transitionEffect: tube */
639
- .fancybox-fx-tube.fancybox-slide--previous {
640
- -webkit-transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
641
- transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
642
- }
643
-
644
- .fancybox-fx-tube.fancybox-slide--next {
645
- -webkit-transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
646
- transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
647
- }
648
-
649
- .fancybox-fx-tube.fancybox-slide--current {
650
- -webkit-transform: translate3d(0, 0, 0) scale(1);
651
- transform: translate3d(0, 0, 0) scale(1);
652
- }
653
-
654
- /* Styling for Small-Screen Devices */
655
- @media all and (max-height: 576px) {
656
- .fancybox-caption {
657
- padding: 12px;
658
- }
659
-
660
- .fancybox-slide {
661
- padding-left: 6px;
662
- padding-right: 6px;
663
- }
664
-
665
- .fancybox-slide--image {
666
- padding: 6px 0;
667
- }
668
-
669
- .fancybox-slide--image .fancybox-close-small {
670
- background: #4e4e4e;
671
- color: #f2f4f6;
672
- height: 36px;
673
- opacity: 1;
674
- padding: 6px;
675
- right: 0;
676
- top: 0;
677
- width: 36px;
678
- }
679
- }
680
-
681
- /* Share */
682
- .fancybox-share {
683
- background: #f4f4f4;
684
- border-radius: 3px;
685
- max-width: 90%;
686
- padding: 30px;
687
- text-align: center;
688
- }
689
-
690
- .fancybox-share h1 {
691
- color: #222;
692
- font-size: 35px;
693
- font-weight: 700;
694
- margin: 0 0 20px 0;
695
- }
696
-
697
- .fancybox-share p {
698
- margin: 0;
699
- padding: 0;
700
- }
701
-
702
- .fancybox-share__button {
703
- border: 0;
704
- border-radius: 3px;
705
- display: inline-block;
706
- font-size: 14px;
707
- font-weight: 700;
708
- line-height: 40px;
709
- margin: 0 5px 10px 5px;
710
- min-width: 130px;
711
- padding: 0 15px;
712
- text-decoration: none;
713
- transition: all .2s;
714
- -webkit-user-select: none;
715
- -moz-user-select: none;
716
- -ms-user-select: none;
717
- user-select: none;
718
- white-space: nowrap;
719
- }
720
-
721
- .fancybox-share__button:visited,
722
- .fancybox-share__button:link {
723
- color: #fff;
724
- }
725
-
726
- .fancybox-share__button:hover {
727
- text-decoration: none;
728
- }
729
-
730
- .fancybox-share__button--fb {
731
- background: #3b5998;
732
- }
733
-
734
- .fancybox-share__button--fb:hover {
735
- background: #344e86;
736
- }
737
-
738
- .fancybox-share__button--pt {
739
- background: #bd081d;
740
- }
741
-
742
- .fancybox-share__button--pt:hover {
743
- background: #aa0719;
744
- }
745
-
746
- .fancybox-share__button--tw {
747
- background: #1da1f2;
748
- }
749
-
750
- .fancybox-share__button--tw:hover {
751
- background: #0d95e8;
752
- }
753
-
754
- .fancybox-share__button svg {
755
- height: 25px;
756
- margin-right: 7px;
757
- position: relative;
758
- top: -1px;
759
- vertical-align: middle;
760
- width: 25px;
761
- }
762
-
763
- .fancybox-share__button svg path {
764
- fill: #fff;
765
- }
766
-
767
- .fancybox-share__input {
768
- background: transparent;
769
- border: 0;
770
- border-bottom: 1px solid #d7d7d7;
771
- border-radius: 0;
772
- color: #5d5b5b;
773
- font-size: 14px;
774
- margin: 10px 0 0 0;
775
- outline: none;
776
- padding: 10px 15px;
777
- width: 100%;
778
- }
779
-
780
- /* Thumbs */
781
- .fancybox-thumbs {
782
- background: #ddd;
783
- bottom: 0;
784
- display: none;
785
- margin: 0;
786
- -webkit-overflow-scrolling: touch;
787
- -ms-overflow-style: -ms-autohiding-scrollbar;
788
- padding: 2px 2px 4px 2px;
789
- position: absolute;
790
- right: 0;
791
- -webkit-tap-highlight-color: transparent;
792
- top: 0;
793
- width: 212px;
794
- z-index: 99995;
795
- }
796
-
797
- .fancybox-thumbs-x {
798
- overflow-x: auto;
799
- overflow-y: hidden;
800
- }
801
-
802
- .fancybox-show-thumbs .fancybox-thumbs {
803
- display: block;
804
- }
805
-
806
- .fancybox-show-thumbs .fancybox-inner {
807
- right: 212px;
808
- }
809
-
810
- .fancybox-thumbs__list {
811
- font-size: 0;
812
- height: 100%;
813
- list-style: none;
814
- margin: 0;
815
- overflow-x: hidden;
816
- overflow-y: auto;
817
- padding: 0;
818
- position: absolute;
819
- position: relative;
820
- white-space: nowrap;
821
- width: 100%;
822
- }
823
-
824
- .fancybox-thumbs-x .fancybox-thumbs__list {
825
- overflow: hidden;
826
- }
827
-
828
- .fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar {
829
- width: 7px;
830
- }
831
-
832
- .fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track {
833
- background: #fff;
834
- border-radius: 10px;
835
- box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
836
- }
837
-
838
- .fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb {
839
- background: #2a2a2a;
840
- border-radius: 10px;
841
- }
842
-
843
- .fancybox-thumbs__list a {
844
- -webkit-backface-visibility: hidden;
845
- backface-visibility: hidden;
846
- background-color: rgba(0, 0, 0, 0.1);
847
- background-position: center center;
848
- background-repeat: no-repeat;
849
- background-size: cover;
850
- cursor: pointer;
851
- float: left;
852
- height: 75px;
853
- margin: 2px;
854
- max-height: calc(100% - 8px);
855
- max-width: calc(50% - 4px);
856
- outline: none;
857
- overflow: hidden;
858
- padding: 0;
859
- position: relative;
860
- -webkit-tap-highlight-color: transparent;
861
- width: 100px;
862
- }
863
-
864
- .fancybox-thumbs__list a::before {
865
- border: 6px solid #ff5268;
866
- bottom: 0;
867
- content: '';
868
- left: 0;
869
- opacity: 0;
870
- position: absolute;
871
- right: 0;
872
- top: 0;
873
- transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
874
- z-index: 99991;
875
- }
876
-
877
- .fancybox-thumbs__list a:focus::before {
878
- opacity: .5;
879
- }
880
-
881
- .fancybox-thumbs__list a.fancybox-thumbs-active::before {
882
- opacity: 1;
883
- }
884
-
885
- /* Styling for Small-Screen Devices */
886
- @media all and (max-width: 576px) {
887
- .fancybox-thumbs {
888
- width: 110px;
889
- }
890
-
891
- .fancybox-show-thumbs .fancybox-inner {
892
- right: 110px;
893
- }
894
-
895
- .fancybox-thumbs__list a {
896
- max-width: calc(100% - 10px);
897
- }
898
- }
1
+ body.compensate-for-scrollbar {
2
+ overflow: hidden;
3
+ }
4
+
5
+ .fancybox-active {
6
+ height: auto;
7
+ }
8
+
9
+ .fancybox-is-hidden {
10
+ left: -9999px;
11
+ margin: 0;
12
+ position: absolute !important;
13
+ top: -9999px;
14
+ visibility: hidden;
15
+ }
16
+
17
+ .fancybox-container {
18
+ -webkit-backface-visibility: hidden;
19
+ height: 100%;
20
+ left: 0;
21
+ outline: none;
22
+ position: fixed;
23
+ -webkit-tap-highlight-color: transparent;
24
+ top: 0;
25
+ -ms-touch-action: manipulation;
26
+ touch-action: manipulation;
27
+ -webkit-transform: translateZ(0);
28
+ transform: translateZ(0);
29
+ width: 100%;
30
+ z-index: 99992;
31
+ }
32
+
33
+ .fancybox-container * {
34
+ box-sizing: border-box;
35
+ }
36
+
37
+ .fancybox-outer,
38
+ .fancybox-inner,
39
+ .fancybox-bg,
40
+ .fancybox-stage {
41
+ bottom: 0;
42
+ left: 0;
43
+ position: absolute;
44
+ right: 0;
45
+ top: 0;
46
+ }
47
+
48
+ .fancybox-outer {
49
+ -webkit-overflow-scrolling: touch;
50
+ overflow-y: auto;
51
+ }
52
+
53
+ .fancybox-bg {
54
+ background: #1e1e1e;
55
+ opacity: 0;
56
+ transition-duration: inherit;
57
+ transition-property: opacity;
58
+ transition-timing-function: cubic-bezier(0.47, 0, 0.74, 0.71);
59
+ }
60
+
61
+ .fancybox-is-open .fancybox-bg {
62
+ opacity: .9;
63
+ transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
64
+ }
65
+
66
+ .fancybox-infobar,
67
+ .fancybox-toolbar,
68
+ .fancybox-caption,
69
+ .fancybox-navigation .fancybox-button {
70
+ direction: ltr;
71
+ opacity: 0;
72
+ position: absolute;
73
+ transition: opacity .25s ease, visibility 0s ease .25s;
74
+ visibility: hidden;
75
+ z-index: 99997;
76
+ }
77
+
78
+ .fancybox-show-infobar .fancybox-infobar,
79
+ .fancybox-show-toolbar .fancybox-toolbar,
80
+ .fancybox-show-caption .fancybox-caption,
81
+ .fancybox-show-nav .fancybox-navigation .fancybox-button {
82
+ opacity: 1;
83
+ transition: opacity .25s ease 0s, visibility 0s ease 0s;
84
+ visibility: visible;
85
+ }
86
+
87
+ .fancybox-infobar {
88
+ color: #ccc;
89
+ font-size: 13px;
90
+ -webkit-font-smoothing: subpixel-antialiased;
91
+ height: 44px;
92
+ left: 0;
93
+ line-height: 44px;
94
+ min-width: 44px;
95
+ mix-blend-mode: difference;
96
+ padding: 0 10px;
97
+ pointer-events: none;
98
+ top: 0;
99
+ -webkit-touch-callout: none;
100
+ -webkit-user-select: none;
101
+ -moz-user-select: none;
102
+ -ms-user-select: none;
103
+ user-select: none;
104
+ }
105
+
106
+ .fancybox-toolbar {
107
+ right: 0;
108
+ top: 0;
109
+ }
110
+
111
+ .fancybox-stage {
112
+ direction: ltr;
113
+ overflow: visible;
114
+ -webkit-transform: translateZ(0);
115
+ transform: translateZ(0);
116
+ z-index: 99994;
117
+ }
118
+
119
+ .fancybox-is-open .fancybox-stage {
120
+ overflow: hidden;
121
+ }
122
+
123
+ .fancybox-slide {
124
+ -webkit-backface-visibility: hidden;
125
+ /* Using without prefix would break IE11 */
126
+ display: none;
127
+ height: 100%;
128
+ left: 0;
129
+ outline: none;
130
+ overflow: auto;
131
+ -webkit-overflow-scrolling: touch;
132
+ padding: 44px;
133
+ position: absolute;
134
+ text-align: center;
135
+ top: 0;
136
+ transition-property: opacity, -webkit-transform;
137
+ transition-property: transform, opacity;
138
+ transition-property: transform, opacity, -webkit-transform;
139
+ white-space: normal;
140
+ width: 100%;
141
+ z-index: 99994;
142
+ }
143
+
144
+ .fancybox-slide::before {
145
+ content: '';
146
+ display: inline-block;
147
+ font-size: 0;
148
+ height: 100%;
149
+ vertical-align: middle;
150
+ width: 0;
151
+ }
152
+
153
+ .fancybox-is-sliding .fancybox-slide,
154
+ .fancybox-slide--previous,
155
+ .fancybox-slide--current,
156
+ .fancybox-slide--next {
157
+ display: block;
158
+ }
159
+
160
+ .fancybox-slide--image {
161
+ overflow: hidden;
162
+ padding: 44px 0;
163
+ }
164
+
165
+ .fancybox-slide--image::before {
166
+ display: none;
167
+ }
168
+
169
+ .fancybox-slide--html {
170
+ padding: 6px;
171
+ }
172
+
173
+ .fancybox-content {
174
+ background: #fff;
175
+ display: inline-block;
176
+ margin: 0;
177
+ max-width: 100%;
178
+ overflow: auto;
179
+ -webkit-overflow-scrolling: touch;
180
+ padding: 44px;
181
+ position: relative;
182
+ text-align: left;
183
+ vertical-align: middle;
184
+ }
185
+
186
+ .fancybox-slide--image .fancybox-content {
187
+ -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.14, 1);
188
+ animation-timing-function: cubic-bezier(0.5, 0, 0.14, 1);
189
+ -webkit-backface-visibility: hidden;
190
+ background: transparent;
191
+ background-repeat: no-repeat;
192
+ background-size: 100% 100%;
193
+ left: 0;
194
+ max-width: none;
195
+ overflow: visible;
196
+ padding: 0;
197
+ position: absolute;
198
+ top: 0;
199
+ -webkit-transform-origin: top left;
200
+ -ms-transform-origin: top left;
201
+ transform-origin: top left;
202
+ transition-property: opacity, -webkit-transform;
203
+ transition-property: transform, opacity;
204
+ transition-property: transform, opacity, -webkit-transform;
205
+ -webkit-user-select: none;
206
+ -moz-user-select: none;
207
+ -ms-user-select: none;
208
+ user-select: none;
209
+ z-index: 99995;
210
+ }
211
+
212
+ .fancybox-can-zoomOut .fancybox-content {
213
+ cursor: -webkit-zoom-out;
214
+ cursor: zoom-out;
215
+ }
216
+
217
+ .fancybox-can-zoomIn .fancybox-content {
218
+ cursor: -webkit-zoom-in;
219
+ cursor: zoom-in;
220
+ }
221
+
222
+ .fancybox-can-swipe .fancybox-content,
223
+ .fancybox-can-pan .fancybox-content {
224
+ cursor: -webkit-grab;
225
+ cursor: grab;
226
+ }
227
+
228
+ .fancybox-is-grabbing .fancybox-content {
229
+ cursor: -webkit-grabbing;
230
+ cursor: grabbing;
231
+ }
232
+
233
+ .fancybox-container [data-selectable='true'] {
234
+ cursor: text;
235
+ }
236
+
237
+ .fancybox-image,
238
+ .fancybox-spaceball {
239
+ background: transparent;
240
+ border: 0;
241
+ height: 100%;
242
+ left: 0;
243
+ /* Fix images beeing distorted */
244
+ object-fit: contain;
245
+ margin: 0;
246
+ max-height: none;
247
+ max-width: none;
248
+ padding: 0;
249
+ position: absolute;
250
+ top: 0;
251
+ -webkit-user-select: none;
252
+ -moz-user-select: none;
253
+ -ms-user-select: none;
254
+ user-select: none;
255
+ width: 100%;
256
+ }
257
+
258
+ .fancybox-spaceball {
259
+ z-index: 1;
260
+ }
261
+
262
+ .fancybox-slide--video .fancybox-content,
263
+ .fancybox-slide--map .fancybox-content,
264
+ .fancybox-slide--iframe .fancybox-content {
265
+ height: 100%;
266
+ overflow: visible;
267
+ padding: 0;
268
+ width: 100%;
269
+ }
270
+
271
+ .fancybox-slide--video .fancybox-content {
272
+ background: #000;
273
+ }
274
+
275
+ .fancybox-slide--map .fancybox-content {
276
+ background: #e5e3df;
277
+ }
278
+
279
+ .fancybox-slide--iframe .fancybox-content {
280
+ background: #fff;
281
+ }
282
+
283
+ .fancybox-video,
284
+ .fancybox-iframe {
285
+ background: transparent;
286
+ border: 0;
287
+ display: block;
288
+ height: 100%;
289
+ margin: 0;
290
+ overflow: hidden;
291
+ padding: 0;
292
+ width: 100%;
293
+ }
294
+
295
+ /* Fix iOS */
296
+ .fancybox-iframe {
297
+ left: 0;
298
+ position: absolute;
299
+ top: 0;
300
+ }
301
+
302
+ .fancybox-error {
303
+ background: #fff;
304
+ cursor: default;
305
+ max-width: 400px;
306
+ padding: 40px;
307
+ width: 100%;
308
+ }
309
+
310
+ .fancybox-error p {
311
+ color: #444;
312
+ font-size: 16px;
313
+ line-height: 20px;
314
+ margin: 0;
315
+ padding: 0;
316
+ }
317
+
318
+ /* Buttons */
319
+ .fancybox-button {
320
+ background: rgba(30, 30, 30, 0.6);
321
+ border: 0;
322
+ border-radius: 0;
323
+ box-shadow: none;
324
+ cursor: pointer;
325
+ display: inline-block;
326
+ height: 44px;
327
+ margin: 0;
328
+ padding: 10px;
329
+ position: relative;
330
+ transition: color .2s;
331
+ vertical-align: top;
332
+ visibility: inherit;
333
+ width: 44px;
334
+ }
335
+
336
+ .fancybox-button,
337
+ .fancybox-button:visited,
338
+ .fancybox-button:link {
339
+ color: #ccc;
340
+ }
341
+
342
+ .fancybox-button:hover {
343
+ color: #fff;
344
+ }
345
+
346
+ .fancybox-button:focus {
347
+ outline: none;
348
+ }
349
+
350
+ .fancybox-button.fancybox-focus {
351
+ outline: 1px dotted;
352
+ }
353
+
354
+ .fancybox-button[disabled],
355
+ .fancybox-button[disabled]:hover {
356
+ color: #888;
357
+ cursor: default;
358
+ outline: none;
359
+ }
360
+
361
+ /* Fix IE11 */
362
+ .fancybox-button div {
363
+ height: 100%;
364
+ }
365
+
366
+ .fancybox-button svg {
367
+ display: block;
368
+ height: 100%;
369
+ overflow: visible;
370
+ position: relative;
371
+ width: 100%;
372
+ }
373
+
374
+ .fancybox-button svg path {
375
+ fill: currentColor;
376
+ stroke-width: 0;
377
+ }
378
+
379
+ .fancybox-button--play svg:nth-child(2),
380
+ .fancybox-button--fsenter svg:nth-child(2) {
381
+ display: none;
382
+ }
383
+
384
+ .fancybox-button--pause svg:nth-child(1),
385
+ .fancybox-button--fsexit svg:nth-child(1) {
386
+ display: none;
387
+ }
388
+
389
+ .fancybox-progress {
390
+ background: #ff5268;
391
+ height: 2px;
392
+ left: 0;
393
+ position: absolute;
394
+ right: 0;
395
+ top: 0;
396
+ -webkit-transform: scaleX(0);
397
+ -ms-transform: scaleX(0);
398
+ transform: scaleX(0);
399
+ -webkit-transform-origin: 0;
400
+ -ms-transform-origin: 0;
401
+ transform-origin: 0;
402
+ transition-property: -webkit-transform;
403
+ transition-property: transform;
404
+ transition-property: transform, -webkit-transform;
405
+ transition-timing-function: linear;
406
+ z-index: 99998;
407
+ }
408
+
409
+ /* Close button on the top right corner of html content */
410
+ .fancybox-close-small {
411
+ background: transparent;
412
+ border: 0;
413
+ border-radius: 0;
414
+ color: #ccc;
415
+ cursor: pointer;
416
+ opacity: .8;
417
+ padding: 8px;
418
+ position: absolute;
419
+ right: -12px;
420
+ top: -44px;
421
+ z-index: 401;
422
+ }
423
+
424
+ .fancybox-close-small:hover {
425
+ color: #fff;
426
+ opacity: 1;
427
+ }
428
+
429
+ .fancybox-slide--html .fancybox-close-small {
430
+ color: currentColor;
431
+ padding: 10px;
432
+ right: 0;
433
+ top: 0;
434
+ }
435
+
436
+ .fancybox-slide--image.fancybox-is-scaling .fancybox-content {
437
+ overflow: hidden;
438
+ }
439
+
440
+ .fancybox-is-scaling .fancybox-close-small,
441
+ .fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small {
442
+ display: none;
443
+ }
444
+
445
+ /* Navigation arrows */
446
+ .fancybox-navigation .fancybox-button {
447
+ background-clip: content-box;
448
+ height: 100px;
449
+ opacity: 0;
450
+ position: absolute;
451
+ top: calc(50% - 50px);
452
+ width: 70px;
453
+ }
454
+
455
+ .fancybox-navigation .fancybox-button div {
456
+ padding: 7px;
457
+ }
458
+
459
+ .fancybox-navigation .fancybox-button--arrow_left {
460
+ left: 0;
461
+ padding: 31px 26px 31px 6px;
462
+ }
463
+
464
+ .fancybox-navigation .fancybox-button--arrow_right {
465
+ padding: 31px 6px 31px 26px;
466
+ right: 0;
467
+ }
468
+
469
+ /* Caption */
470
+ .fancybox-caption {
471
+ bottom: 0;
472
+ color: #eee;
473
+ font-size: 14px;
474
+ font-weight: 400;
475
+ left: 0;
476
+ line-height: 1.5;
477
+ padding: 25px 44px 25px 44px;
478
+ right: 0;
479
+ text-align: center;
480
+ z-index: 99996;
481
+ }
482
+
483
+ .fancybox-caption::before {
484
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD6CAQAAADKSeXYAAAAYklEQVQoz42RwQ3AMAgDjfcfup8WoRykfBAK5mQHKSz5rbXJPis1hjiV3CIqgG0hLZPkVkA4p4x5oR1bVeDrdCLrW2Q0D5bcwY3TGMHbdw3mPRuOtaspYP1w//G1OIcW148H0DMCqI/3mMMAAAAASUVORK5CYII=);
485
+ background-repeat: repeat-x;
486
+ background-size: contain;
487
+ bottom: 0;
488
+ content: '';
489
+ display: block;
490
+ left: 0;
491
+ pointer-events: none;
492
+ position: absolute;
493
+ right: 0;
494
+ top: -44px;
495
+ z-index: -1;
496
+ }
497
+
498
+ .fancybox-caption a,
499
+ .fancybox-caption a:link,
500
+ .fancybox-caption a:visited {
501
+ color: #ccc;
502
+ text-decoration: none;
503
+ }
504
+
505
+ .fancybox-caption a:hover {
506
+ color: #fff;
507
+ text-decoration: underline;
508
+ }
509
+
510
+ /* Loading indicator */
511
+ .fancybox-loading {
512
+ -webkit-animation: fancybox-rotate 1s linear infinite;
513
+ animation: fancybox-rotate 1s linear infinite;
514
+ background: transparent;
515
+ border: 4px solid #888;
516
+ border-bottom-color: #fff;
517
+ border-radius: 50%;
518
+ height: 50px;
519
+ left: 50%;
520
+ margin: -25px 0 0 -25px;
521
+ opacity: .7;
522
+ padding: 0;
523
+ position: absolute;
524
+ top: 50%;
525
+ width: 50px;
526
+ z-index: 99999;
527
+ }
528
+
529
+ @-webkit-keyframes fancybox-rotate {
530
+ 100% {
531
+ -webkit-transform: rotate(360deg);
532
+ transform: rotate(360deg);
533
+ }
534
+ }
535
+
536
+ @keyframes fancybox-rotate {
537
+ 100% {
538
+ -webkit-transform: rotate(360deg);
539
+ transform: rotate(360deg);
540
+ }
541
+ }
542
+
543
+ /* Transition effects */
544
+ .fancybox-animated {
545
+ transition-timing-function: cubic-bezier(0, 0, 0.25, 1);
546
+ }
547
+
548
+ /* transitionEffect: slide */
549
+ .fancybox-fx-slide.fancybox-slide--previous {
550
+ opacity: 0;
551
+ -webkit-transform: translate3d(-100%, 0, 0);
552
+ transform: translate3d(-100%, 0, 0);
553
+ }
554
+
555
+ .fancybox-fx-slide.fancybox-slide--next {
556
+ opacity: 0;
557
+ -webkit-transform: translate3d(100%, 0, 0);
558
+ transform: translate3d(100%, 0, 0);
559
+ }
560
+
561
+ .fancybox-fx-slide.fancybox-slide--current {
562
+ opacity: 1;
563
+ -webkit-transform: translate3d(0, 0, 0);
564
+ transform: translate3d(0, 0, 0);
565
+ }
566
+
567
+ /* transitionEffect: fade */
568
+ .fancybox-fx-fade.fancybox-slide--previous,
569
+ .fancybox-fx-fade.fancybox-slide--next {
570
+ opacity: 0;
571
+ transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
572
+ }
573
+
574
+ .fancybox-fx-fade.fancybox-slide--current {
575
+ opacity: 1;
576
+ }
577
+
578
+ /* transitionEffect: zoom-in-out */
579
+ .fancybox-fx-zoom-in-out.fancybox-slide--previous {
580
+ opacity: 0;
581
+ -webkit-transform: scale3d(1.5, 1.5, 1.5);
582
+ transform: scale3d(1.5, 1.5, 1.5);
583
+ }
584
+
585
+ .fancybox-fx-zoom-in-out.fancybox-slide--next {
586
+ opacity: 0;
587
+ -webkit-transform: scale3d(0.5, 0.5, 0.5);
588
+ transform: scale3d(0.5, 0.5, 0.5);
589
+ }
590
+
591
+ .fancybox-fx-zoom-in-out.fancybox-slide--current {
592
+ opacity: 1;
593
+ -webkit-transform: scale3d(1, 1, 1);
594
+ transform: scale3d(1, 1, 1);
595
+ }
596
+
597
+ /* transitionEffect: rotate */
598
+ .fancybox-fx-rotate.fancybox-slide--previous {
599
+ opacity: 0;
600
+ -webkit-transform: rotate(-360deg);
601
+ -ms-transform: rotate(-360deg);
602
+ transform: rotate(-360deg);
603
+ }
604
+
605
+ .fancybox-fx-rotate.fancybox-slide--next {
606
+ opacity: 0;
607
+ -webkit-transform: rotate(360deg);
608
+ -ms-transform: rotate(360deg);
609
+ transform: rotate(360deg);
610
+ }
611
+
612
+ .fancybox-fx-rotate.fancybox-slide--current {
613
+ opacity: 1;
614
+ -webkit-transform: rotate(0deg);
615
+ -ms-transform: rotate(0deg);
616
+ transform: rotate(0deg);
617
+ }
618
+
619
+ /* transitionEffect: circular */
620
+ .fancybox-fx-circular.fancybox-slide--previous {
621
+ opacity: 0;
622
+ -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
623
+ transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
624
+ }
625
+
626
+ .fancybox-fx-circular.fancybox-slide--next {
627
+ opacity: 0;
628
+ -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
629
+ transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
630
+ }
631
+
632
+ .fancybox-fx-circular.fancybox-slide--current {
633
+ opacity: 1;
634
+ -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
635
+ transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
636
+ }
637
+
638
+ /* transitionEffect: tube */
639
+ .fancybox-fx-tube.fancybox-slide--previous {
640
+ -webkit-transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
641
+ transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
642
+ }
643
+
644
+ .fancybox-fx-tube.fancybox-slide--next {
645
+ -webkit-transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
646
+ transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
647
+ }
648
+
649
+ .fancybox-fx-tube.fancybox-slide--current {
650
+ -webkit-transform: translate3d(0, 0, 0) scale(1);
651
+ transform: translate3d(0, 0, 0) scale(1);
652
+ }
653
+
654
+ /* Styling for Small-Screen Devices */
655
+ @media all and (max-height: 576px) {
656
+ .fancybox-caption {
657
+ padding: 12px;
658
+ }
659
+
660
+ .fancybox-slide {
661
+ padding-left: 6px;
662
+ padding-right: 6px;
663
+ }
664
+
665
+ .fancybox-slide--image {
666
+ padding: 6px 0;
667
+ }
668
+
669
+ .fancybox-slide--image .fancybox-close-small {
670
+ background: #4e4e4e;
671
+ color: #f2f4f6;
672
+ height: 36px;
673
+ opacity: 1;
674
+ padding: 6px;
675
+ right: 0;
676
+ top: 0;
677
+ width: 36px;
678
+ }
679
+ }
680
+
681
+ /* Share */
682
+ .fancybox-share {
683
+ background: #f4f4f4;
684
+ border-radius: 3px;
685
+ max-width: 90%;
686
+ padding: 30px;
687
+ text-align: center;
688
+ }
689
+
690
+ .fancybox-share h1 {
691
+ color: #222;
692
+ font-size: 35px;
693
+ font-weight: 700;
694
+ margin: 0 0 20px 0;
695
+ }
696
+
697
+ .fancybox-share p {
698
+ margin: 0;
699
+ padding: 0;
700
+ }
701
+
702
+ .fancybox-share__button {
703
+ border: 0;
704
+ border-radius: 3px;
705
+ display: inline-block;
706
+ font-size: 14px;
707
+ font-weight: 700;
708
+ line-height: 40px;
709
+ margin: 0 5px 10px 5px;
710
+ min-width: 130px;
711
+ padding: 0 15px;
712
+ text-decoration: none;
713
+ transition: all .2s;
714
+ -webkit-user-select: none;
715
+ -moz-user-select: none;
716
+ -ms-user-select: none;
717
+ user-select: none;
718
+ white-space: nowrap;
719
+ }
720
+
721
+ .fancybox-share__button:visited,
722
+ .fancybox-share__button:link {
723
+ color: #fff;
724
+ }
725
+
726
+ .fancybox-share__button:hover {
727
+ text-decoration: none;
728
+ }
729
+
730
+ .fancybox-share__button--fb {
731
+ background: #3b5998;
732
+ }
733
+
734
+ .fancybox-share__button--fb:hover {
735
+ background: #344e86;
736
+ }
737
+
738
+ .fancybox-share__button--pt {
739
+ background: #bd081d;
740
+ }
741
+
742
+ .fancybox-share__button--pt:hover {
743
+ background: #aa0719;
744
+ }
745
+
746
+ .fancybox-share__button--tw {
747
+ background: #1da1f2;
748
+ }
749
+
750
+ .fancybox-share__button--tw:hover {
751
+ background: #0d95e8;
752
+ }
753
+
754
+ .fancybox-share__button svg {
755
+ height: 25px;
756
+ margin-right: 7px;
757
+ position: relative;
758
+ top: -1px;
759
+ vertical-align: middle;
760
+ width: 25px;
761
+ }
762
+
763
+ .fancybox-share__button svg path {
764
+ fill: #fff;
765
+ }
766
+
767
+ .fancybox-share__input {
768
+ background: transparent;
769
+ border: 0;
770
+ border-bottom: 1px solid #d7d7d7;
771
+ border-radius: 0;
772
+ color: #5d5b5b;
773
+ font-size: 14px;
774
+ margin: 10px 0 0 0;
775
+ outline: none;
776
+ padding: 10px 15px;
777
+ width: 100%;
778
+ }
779
+
780
+ /* Thumbs */
781
+ .fancybox-thumbs {
782
+ background: #ddd;
783
+ bottom: 0;
784
+ display: none;
785
+ margin: 0;
786
+ -webkit-overflow-scrolling: touch;
787
+ -ms-overflow-style: -ms-autohiding-scrollbar;
788
+ padding: 2px 2px 4px 2px;
789
+ position: absolute;
790
+ right: 0;
791
+ -webkit-tap-highlight-color: transparent;
792
+ top: 0;
793
+ width: 212px;
794
+ z-index: 99995;
795
+ }
796
+
797
+ .fancybox-thumbs-x {
798
+ overflow-x: auto;
799
+ overflow-y: hidden;
800
+ }
801
+
802
+ .fancybox-show-thumbs .fancybox-thumbs {
803
+ display: block;
804
+ }
805
+
806
+ .fancybox-show-thumbs .fancybox-inner {
807
+ right: 212px;
808
+ }
809
+
810
+ .fancybox-thumbs__list {
811
+ font-size: 0;
812
+ height: 100%;
813
+ list-style: none;
814
+ margin: 0;
815
+ overflow-x: hidden;
816
+ overflow-y: auto;
817
+ padding: 0;
818
+ position: absolute;
819
+ position: relative;
820
+ white-space: nowrap;
821
+ width: 100%;
822
+ }
823
+
824
+ .fancybox-thumbs-x .fancybox-thumbs__list {
825
+ overflow: hidden;
826
+ }
827
+
828
+ .fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar {
829
+ width: 7px;
830
+ }
831
+
832
+ .fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track {
833
+ background: #fff;
834
+ border-radius: 10px;
835
+ box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
836
+ }
837
+
838
+ .fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb {
839
+ background: #2a2a2a;
840
+ border-radius: 10px;
841
+ }
842
+
843
+ .fancybox-thumbs__list a {
844
+ -webkit-backface-visibility: hidden;
845
+ backface-visibility: hidden;
846
+ background-color: rgba(0, 0, 0, 0.1);
847
+ background-position: center center;
848
+ background-repeat: no-repeat;
849
+ background-size: cover;
850
+ cursor: pointer;
851
+ float: left;
852
+ height: 75px;
853
+ margin: 2px;
854
+ max-height: calc(100% - 8px);
855
+ max-width: calc(50% - 4px);
856
+ outline: none;
857
+ overflow: hidden;
858
+ padding: 0;
859
+ position: relative;
860
+ -webkit-tap-highlight-color: transparent;
861
+ width: 100px;
862
+ }
863
+
864
+ .fancybox-thumbs__list a::before {
865
+ border: 6px solid #ff5268;
866
+ bottom: 0;
867
+ content: '';
868
+ left: 0;
869
+ opacity: 0;
870
+ position: absolute;
871
+ right: 0;
872
+ top: 0;
873
+ transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
874
+ z-index: 99991;
875
+ }
876
+
877
+ .fancybox-thumbs__list a:focus::before {
878
+ opacity: .5;
879
+ }
880
+
881
+ .fancybox-thumbs__list a.fancybox-thumbs-active::before {
882
+ opacity: 1;
883
+ }
884
+
885
+ /* Styling for Small-Screen Devices */
886
+ @media all and (max-width: 576px) {
887
+ .fancybox-thumbs {
888
+ width: 110px;
889
+ }
890
+
891
+ .fancybox-show-thumbs .fancybox-inner {
892
+ right: 110px;
893
+ }
894
+
895
+ .fancybox-thumbs__list a {
896
+ max-width: calc(100% - 10px);
897
+ }
898
+ }
assets/css/jquery-ui.css CHANGED
@@ -1,64 +1,64 @@
1
- /*
2
- * jQuery UI CSS Framework
3
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
4
- * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
5
- */
6
-
7
-
8
- /* Layout helpers
9
- ----------------------------------*/
10
- .ui-helper-hidden { display: none; }
11
- .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
12
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
13
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
14
- .ui-helper-clearfix { display: inline-block; }
15
- /* required comment for clearfix to work in Opera \*/
16
- * html .ui-helper-clearfix { height:1%; }
17
- .ui-helper-clearfix { display:block; }
18
- /* end clearfix */
19
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
20
-
21
-
22
- /* Tabs
23
- ----------------------------------*/
24
- .ui-tabs { padding: .2em; zoom: 1; }
25
- .ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
26
- .ui-tabs .ui-tabs-nav li { font-size:.8em; position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
27
- .ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
28
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
29
- .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; }
30
- .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... */
31
- .ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
32
- .ui-tabs .ui-tabs-hide { display: none !important; }
33
-
34
-
35
- /* Component containers
36
- ----------------------------------*/
37
- .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
38
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
39
- .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(img/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; overflow: hidden; }
40
- .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(img/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
41
- .ui-widget-header a { color: #222222/*{fcHeader}*/; }
42
-
43
-
44
- /* Interaction states
45
- ----------------------------------*/
46
- .ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(img/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; outline: none; }
47
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; outline: none; }
48
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(img/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; outline: none; }
49
- .ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; outline: none; }
50
- .ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(img/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; outline: none; }
51
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; outline: none; text-decoration: none; }
52
-
53
-
54
- /* Misc visuals
55
- ----------------------------------*/
56
- .ui-corner-tl { border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; }
57
- .ui-corner-tr { border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; }
58
- .ui-corner-bl { border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; }
59
- .ui-corner-br { border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
60
- .ui-corner-top { border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; }
61
- .ui-corner-bottom { border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
62
- .ui-corner-right { border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
63
- .ui-corner-left { border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; }
64
- .ui-corner-all { border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; }
1
+ /*
2
+ * jQuery UI CSS Framework
3
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
4
+ * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
5
+ */
6
+
7
+
8
+ /* Layout helpers
9
+ ----------------------------------*/
10
+ .ui-helper-hidden { display: none; }
11
+ .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
12
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
13
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
14
+ .ui-helper-clearfix { display: inline-block; }
15
+ /* required comment for clearfix to work in Opera \*/
16
+ * html .ui-helper-clearfix { height:1%; }
17
+ .ui-helper-clearfix { display:block; }
18
+ /* end clearfix */
19
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
20
+
21
+
22
+ /* Tabs
23
+ ----------------------------------*/
24
+ .ui-tabs { padding: .2em; zoom: 1; }
25
+ .ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
26
+ .ui-tabs .ui-tabs-nav li { font-size:.8em; position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
27
+ .ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
28
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
29
+ .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; }
30
+ .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... */
31
+ .ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
32
+ .ui-tabs .ui-tabs-hide { display: none !important; }
33
+
34
+
35
+ /* Component containers
36
+ ----------------------------------*/
37
+ .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
38
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
39
+ .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(img/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; overflow: hidden; }
40
+ .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(img/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
41
+ .ui-widget-header a { color: #222222/*{fcHeader}*/; }
42
+
43
+
44
+ /* Interaction states
45
+ ----------------------------------*/
46
+ .ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(img/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; outline: none; }
47
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; outline: none; }
48
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(img/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; outline: none; }
49
+ .ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; outline: none; }
50
+ .ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(img/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; outline: none; }
51
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; outline: none; text-decoration: none; }
52
+
53
+
54
+ /* Misc visuals
55
+ ----------------------------------*/
56
+ .ui-corner-tl { border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; }
57
+ .ui-corner-tr { border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; }
58
+ .ui-corner-bl { border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; }
59
+ .ui-corner-br { border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
60
+ .ui-corner-top { border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; }
61
+ .ui-corner-bottom { border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
62
+ .ui-corner-right { border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
63
+ .ui-corner-left { border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; }
64
+ .ui-corner-all { border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; }
assets/js/admin.js CHANGED
@@ -1,173 +1,173 @@
1
- jQuery(function () {
2
-
3
- // Tabs
4
- jQuery("#fbfwTabs").tabs();
5
-
6
- // Hide form fields when not needed (switched by checkbox)
7
- function switchBlock(block, button) {
8
- var buttonValue = jQuery(button + ":checked").val();
9
- if (buttonValue == "on") {
10
- jQuery(block).css("display", "inline-block");
11
- } else {
12
- jQuery(block).css("display", "none");
13
- }
14
-
15
- jQuery(button).click(function () {
16
- jQuery(block).animate({
17
- opacity: "toggle",
18
- height: "toggle"
19
- }, 500);
20
- });
21
-
22
- }
23
-
24
-
25
- switchBlock("#borderColorBlock", "#border");
26
- switchBlock("#closeButtonBlock", "#showCloseButton");
27
- switchBlock("#overlayBlock", "#overlayShow");
28
- switchBlock("#titleBlock", "#titleShow");
29
- switchBlock("#callbackBlock", "#callbackEnable");
30
- switchBlock("#extraCallsBlock", "#extraCallsEnable");
31
- switchBlock("#easingBlock", "#easing");
32
-
33
- jQuery(document).ready(function () {
34
- jQuery(".slider-horizontal").each(function () {
35
- var mySl = jQuery(this);
36
- var defaultState = mySl.prev('input').val();
37
- mySl.attr('defSl', defaultState);
38
- });
39
-
40
-
41
-
42
-
43
- //Function enable codemirror on FancyBox Extra Calls
44
-
45
- jQuery('.start-editing').click(function () {
46
- wp.codeEditor.initialize(jQuery(this).next("textarea"));
47
- jQuery(this).hide();
48
- });
49
-
50
-
51
- //add color picker to buttons
52
- jQuery('.color-btn').wpColorPicker();
53
- });
54
-
55
- jQuery(window).load(function () {
56
- //function to initiate horizontal slider from jQuery UI
57
- jQuery(".slider-horizontal").each(function () {
58
- var mySl = jQuery(this);
59
- var minSl = parseFloat(mySl.attr("minSl"));
60
- var maxSl = parseFloat(mySl.attr("maxSl"));
61
- var defSl = parseFloat(mySl.attr("defSl"));
62
- var stepSl = parseFloat(mySl.attr("stepSl"));
63
- jQuery(this).slider({
64
- orientation: "horizontal",
65
- range: "min",
66
- min: minSl,
67
- max: maxSl,
68
- value: defSl,
69
- step: stepSl,
70
- slide: function (event, ui) {
71
- mySl.prev("input").val(ui.value);
72
- }
73
- });
74
- });
75
- });
76
-
77
- // Hide Title Color if not needed
78
- var titlePosition = jQuery("input:radio[class=titlePosition]:checked").val();
79
-
80
- switch (titlePosition) {
81
- case "float":
82
- case "outside":
83
- case "over":
84
- jQuery("#titleColorBlock").css("display", "none");
85
- }
86
-
87
- jQuery("#titlePositionFloat, #titlePositionOutside, #titlePositionOver").click(function () {
88
- jQuery("#titleColorBlock").hide("slow");
89
- });
90
-
91
- jQuery("#titlePositionInside").click(function () {
92
- jQuery("#titleColorBlock").show("slow");
93
- });
94
-
95
-
96
- // Gallery Type
97
- var galleryType = jQuery("input:radio[class=galleryType]:checked").val();
98
-
99
- switch (galleryType) {
100
- case "all":
101
- case "none":
102
- case "post":
103
- jQuery("#customExpressionBlock").css("display", "none");
104
- }
105
-
106
- jQuery("#galleryTypeAll, #galleryTypeNone, #galleryTypePost").click(function () {
107
- jQuery("#customExpressionBlock").hide("slow");
108
- });
109
-
110
- jQuery("#galleryTypeCustom").click(function () {
111
- jQuery("#customExpressionBlock").show("slow");
112
- });
113
-
114
- });
115
-
116
- function confirmDefaults() {
117
- if (confirm(defaults_prompt) == true)
118
- return true;
119
- else
120
- return false;
121
- }
122
-
123
- var defaults_prompt = "Are you sure you want to restore FancyBox for WordPress to default settings?";
124
-
125
- function activatePlugin( url ) {
126
- jQuery.ajax( {
127
- async: true,
128
- type: 'GET',
129
- dataType: 'html',
130
- url: url,
131
- success: function() {
132
- location.reload();
133
- }
134
- } );
135
- }
136
-
137
- jQuery( '.mfbfw-modula-link' ).click(function(evt){
138
- evt.preventDefault();
139
-
140
- var action = jQuery( this ).data( 'action' ),
141
- link = jQuery( this ).attr( 'href' );
142
-
143
- jQuery(this).addClass( 'updating-message' );
144
- jQuery(this).attr( 'disabled', 'disabled' );
145
-
146
- if ( 'install' == action ) {
147
- wp.updates.installPlugin( { slug: 'modula-best-grid-gallery' } );
148
- }else{
149
- activatePlugin( link );
150
- }
151
-
152
- });
153
-
154
- jQuery( document ).on( 'wp-plugin-install-success', function( response, data ) {
155
-
156
- if ( 'modula-best-grid-gallery' == data.slug ) {
157
-
158
- jQuery.ajax( {
159
- type: 'POST',
160
- data: { action: 'mfbfw_activate_link' },
161
- dataType: 'json',
162
- url: ajaxurl,
163
- success: function( json ) {
164
- if ( json.status ) {
165
- activatePlugin( json.link );
166
- }
167
- }
168
- });
169
-
170
- }
171
- console.log( response );
172
- console.log( data );
173
  });
1
+ jQuery(function () {
2
+
3
+ // Tabs
4
+ jQuery("#fbfwTabs").tabs();
5
+
6
+ // Hide form fields when not needed (switched by checkbox)
7
+ function switchBlock(block, button) {
8
+ var buttonValue = jQuery(button + ":checked").val();
9
+ if (buttonValue == "on") {
10
+ jQuery(block).css("display", "inline-block");
11
+ } else {
12
+ jQuery(block).css("display", "none");
13
+ }
14
+
15
+ jQuery(button).click(function () {
16
+ jQuery(block).animate({
17
+ opacity: "toggle",
18
+ height: "toggle"
19
+ }, 500);
20
+ });
21
+
22
+ }
23
+
24
+
25
+ switchBlock("#borderColorBlock", "#border");
26
+ switchBlock("#closeButtonBlock", "#showCloseButton");
27
+ switchBlock("#overlayBlock", "#overlayShow");
28
+ switchBlock("#titleBlock", "#titleShow");
29
+ switchBlock("#callbackBlock", "#callbackEnable");
30
+ switchBlock("#extraCallsBlock", "#extraCallsEnable");
31
+ switchBlock("#easingBlock", "#easing");
32
+
33
+ jQuery(document).ready(function () {
34
+ jQuery(".slider-horizontal").each(function () {
35
+ var mySl = jQuery(this);
36
+ var defaultState = mySl.prev('input').val();
37
+ mySl.attr('defSl', defaultState);
38
+ });
39
+
40
+
41
+
42
+
43
+ //Function enable codemirror on FancyBox Extra Calls
44
+
45
+ jQuery('.start-editing').click(function () {
46
+ wp.codeEditor.initialize(jQuery(this).next("textarea"));
47
+ jQuery(this).hide();
48
+ });
49
+
50
+
51
+ //add color picker to buttons
52
+ jQuery('.color-btn').wpColorPicker();
53
+ });
54
+
55
+ jQuery(window).load(function () {
56
+ //function to initiate horizontal slider from jQuery UI
57
+ jQuery(".slider-horizontal").each(function () {
58
+ var mySl = jQuery(this);
59
+ var minSl = parseFloat(mySl.attr("minSl"));
60
+ var maxSl = parseFloat(mySl.attr("maxSl"));
61
+ var defSl = parseFloat(mySl.attr("defSl"));
62
+ var stepSl = parseFloat(mySl.attr("stepSl"));
63
+ jQuery(this).slider({
64
+ orientation: "horizontal",
65
+ range: "min",
66
+ min: minSl,
67
+ max: maxSl,
68
+ value: defSl,
69
+ step: stepSl,
70
+ slide: function (event, ui) {
71
+ mySl.prev("input").val(ui.value);
72
+ }
73
+ });
74
+ });
75
+ });
76
+
77
+ // Hide Title Color if not needed
78
+ var titlePosition = jQuery("input:radio[class=titlePosition]:checked").val();
79
+
80
+ switch (titlePosition) {
81
+ case "float":
82
+ case "outside":
83
+ case "over":
84
+ jQuery("#titleColorBlock").css("display", "none");
85
+ }
86
+
87
+ jQuery("#titlePositionFloat, #titlePositionOutside, #titlePositionOver").click(function () {
88
+ jQuery("#titleColorBlock").hide("slow");
89
+ });
90
+
91
+ jQuery("#titlePositionInside").click(function () {
92
+ jQuery("#titleColorBlock").show("slow");
93
+ });
94
+
95
+
96
+ // Gallery Type
97
+ var galleryType = jQuery("input:radio[class=galleryType]:checked").val();
98
+
99
+ switch (galleryType) {
100
+ case "all":
101
+ case "none":
102
+ case "post":
103
+ jQuery("#customExpressionBlock").css("display", "none");
104
+ }
105
+
106
+ jQuery("#galleryTypeAll, #galleryTypeNone, #galleryTypePost").click(function () {
107
+ jQuery("#customExpressionBlock").hide("slow");
108
+ });
109
+
110
+ jQuery("#galleryTypeCustom").click(function () {
111
+ jQuery("#customExpressionBlock").show("slow");
112
+ });
113
+
114
+ });
115
+
116
+ function confirmDefaults() {
117
+ if (confirm(defaults_prompt) == true)
118
+ return true;
119
+ else
120
+ return false;
121
+ }
122
+
123
+ var defaults_prompt = "Are you sure you want to restore FancyBox for WordPress to default settings?";
124
+
125
+ function activatePlugin( url ) {
126
+ jQuery.ajax( {
127
+ async: true,
128
+ type: 'GET',
129
+ dataType: 'html',
130
+ url: url,
131
+ success: function() {
132
+ location.reload();
133
+ }
134
+ } );
135
+ }
136
+
137
+ jQuery( '.mfbfw-modula-link' ).click(function(evt){
138
+ evt.preventDefault();
139
+
140
+ var action = jQuery( this ).data( 'action' ),
141
+ link = jQuery( this ).attr( 'href' );
142
+
143
+ jQuery(this).addClass( 'updating-message' );
144
+ jQuery(this).attr( 'disabled', 'disabled' );
145
+
146
+ if ( 'install' == action ) {
147
+ wp.updates.installPlugin( { slug: 'modula-best-grid-gallery' } );
148
+ }else{
149
+ activatePlugin( link );
150
+ }
151
+
152
+ });
153
+
154
+ jQuery( document ).on( 'wp-plugin-install-success', function( response, data ) {
155
+
156
+ if ( 'modula-best-grid-gallery' == data.slug ) {
157
+
158
+ jQuery.ajax( {
159
+ type: 'POST',
160
+ data: { action: 'mfbfw_activate_link' },
161
+ dataType: 'json',
162
+ url: ajaxurl,
163
+ success: function( json ) {
164
+ if ( json.status ) {
165
+ activatePlugin( json.link );
166
+ }
167
+ }
168
+ });
169
+
170
+ }
171
+ console.log( response );
172
+ console.log( data );
173
  });
assets/js/jquery.fancybox.js CHANGED
@@ -1,5613 +1,5613 @@
1
- // ==================================================
2
- // fancyBox v3.5.1
3
- //
4
- // Licensed GPLv3 for open source use
5
- // or fancyBox Commercial License for commercial use
6
- //
7
- // http://fancyapps.com/fancybox/
8
- // Copyright 2018 fancyApps
9
- //
10
- // ==================================================
11
- (function(window, document, $, undefined) {
12
- "use strict";
13
-
14
- window.console = window.console || {
15
- info: function(stuff) {}
16
- };
17
-
18
- // If there's no jQuery, fancyBox can't work
19
- // =========================================
20
-
21
- if (!$) {
22
- return;
23
- }
24
-
25
- // Check if fancyBox is already initialized
26
- // ========================================
27
-
28
- if ($.fn.fancybox) {
29
- console.info("fancyBox already initialized");
30
-
31
- return;
32
- }
33
-
34
- // Private default settings
35
- // ========================
36
-
37
- var defaults = {
38
- // Close existing modals
39
- // Set this to false if you do not need to stack multiple instances
40
- closeExisting: false,
41
-
42
- // Enable infinite gallery navigation
43
- loop: false,
44
-
45
- // Horizontal space between slides
46
- gutter: 50,
47
-
48
- // Enable keyboard navigation
49
- keyboard: true,
50
-
51
- // Should allow caption to overlap the content
52
- preventCaptionOverlap: true,
53
-
54
- // Should display navigation arrows at the screen edges
55
- arrows: true,
56
-
57
- // Should display counter at the top left corner
58
- infobar: true,
59
-
60
- // Should display close button (using `btnTpl.smallBtn` template) over the content
61
- // Can be true, false, "auto"
62
- // If "auto" - will be automatically enabled for "html", "inline" or "ajax" items
63
- smallBtn: "auto",
64
-
65
- // Should display toolbar (buttons at the top)
66
- // Can be true, false, "auto"
67
- // If "auto" - will be automatically hidden if "smallBtn" is enabled
68
- toolbar: "auto",
69
-
70
- // What buttons should appear in the top right corner.
71
- // Buttons will be created using templates from `btnTpl` option
72
- // and they will be placed into toolbar (class="fancybox-toolbar"` element)
73
- buttons: [
74
- "zoom",
75
- //"share",
76
- "slideShow",
77
- //"fullScreen",
78
- //"download",
79
- "thumbs",
80
- "close"
81
- ],
82
-
83
- // Detect "idle" time in seconds
84
- idleTime: 3,
85
-
86
- // Disable right-click and use simple image protection for images
87
- protect: false,
88
-
89
- // Shortcut to make content "modal" - disable keyboard navigtion, hide buttons, etc
90
- modal: false,
91
-
92
- image: {
93
- // Wait for images to load before displaying
94
- // true - wait for image to load and then display;
95
- // false - display thumbnail and load the full-sized image over top,
96
- // requires predefined image dimensions (`data-width` and `data-height` attributes)
97
- preload: false
98
- },
99
-
100
- ajax: {
101
- // Object containing settings for ajax request
102
- settings: {
103
- // This helps to indicate that request comes from the modal
104
- // Feel free to change naming
105
- data: {
106
- fancybox: true
107
- }
108
- }
109
- },
110
-
111
- iframe: {
112
- // Iframe template
113
- tpl:
114
- '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen allow="autoplay; fullscreen" src=""></iframe>',
115
-
116
- // Preload iframe before displaying it
117
- // This allows to calculate iframe content width and height
118
- // (note: Due to "Same Origin Policy", you can't get cross domain data).
119
- preload: true,
120
-
121
- // Custom CSS styling for iframe wrapping element
122
- // You can use this to set custom iframe dimensions
123
- css: {},
124
-
125
- // Iframe tag attributes
126
- attr: {
127
- scrolling: "auto"
128
- }
129
- },
130
-
131
- // For HTML5 video only
132
- video: {
133
- tpl:
134
- '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}">' +
135
- '<source src="{{src}}" type="{{format}}" />' +
136
- 'Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!' +
137
- "</video>",
138
- format: "", // custom video format
139
- autoStart: true
140
- },
141
-
142
- // Default content type if cannot be detected automatically
143
- defaultType: "image",
144
-
145
- // Open/close animation type
146
- // Possible values:
147
- // false - disable
148
- // "zoom" - zoom images from/to thumbnail
149
- // "fade"
150
- // "zoom-in-out"
151
- //
152
- animationEffect: "zoom",
153
-
154
- // Duration in ms for open/close animation
155
- animationDuration: 366,
156
-
157
- // Should image change opacity while zooming
158
- // If opacity is "auto", then opacity will be changed if image and thumbnail have different aspect ratios
159
- zoomOpacity: "auto",
160
-
161
- // Transition effect between slides
162
- //
163
- // Possible values:
164
- // false - disable
165
- // "fade'
166
- // "slide'
167
- // "circular'
168
- // "tube'
169
- // "zoom-in-out'
170
- // "rotate'
171
- //
172
- transitionEffect: "fade",
173
-
174
- // Duration in ms for transition animation
175
- transitionDuration: 366,
176
-
177
- // Custom CSS class for slide element
178
- slideClass: "",
179
-
180
- // Custom CSS class for layout
181
- baseClass: "",
182
-
183
- // Base template for layout
184
- baseTpl:
185
- '<div class="fancybox-container" role="dialog" tabindex="-1">' +
186
- '<div class="fancybox-bg"></div>' +
187
- '<div class="fancybox-inner">' +
188
- '<div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div>' +
189
- '<div class="fancybox-toolbar">{{buttons}}</div>' +
190
- '<div class="fancybox-navigation">{{arrows}}</div>' +
191
- '<div class="fancybox-stage"></div>' +
192
- '<div class="fancybox-caption"></div>' +
193
- "</div>" +
194
- "</div>",
195
-
196
- // Loading indicator template
197
- spinnerTpl: '<div class="fancybox-loading"></div>',
198
-
199
- // Error message template
200
- errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>',
201
-
202
- btnTpl: {
203
- download:
204
- '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;">' +
205
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg>' +
206
- "</a>",
207
-
208
- zoom:
209
- '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}">' +
210
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg>' +
211
- "</button>",
212
-
213
- close:
214
- '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}">' +
215
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg>' +
216
- "</button>",
217
-
218
- // Arrows
219
- arrowLeft:
220
- '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}">' +
221
- '<div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div>' +
222
- "</button>",
223
-
224
- arrowRight:
225
- '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}">' +
226
- '<div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div>' +
227
- "</button>",
228
-
229
- // This small close button will be appended to your html/inline/ajax content by default,
230
- // if "smallBtn" option is not set to false
231
- smallBtn:
232
- '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}">' +
233
- '<svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg>' +
234
- "</button>"
235
- },
236
-
237
- // Container is injected into this element
238
- parentEl: "body",
239
-
240
- // Hide browser vertical scrollbars; use at your own risk
241
- hideScrollbar: true,
242
-
243
- // Focus handling
244
- // ==============
245
-
246
- // Try to focus on the first focusable element after opening
247
- autoFocus: true,
248
-
249
- // Put focus back to active element after closing
250
- backFocus: true,
251
-
252
- // Do not let user to focus on element outside modal content
253
- trapFocus: true,
254
-
255
- // Module specific options
256
- // =======================
257
-
258
- fullScreen: {
259
- autoStart: false
260
- },
261
-
262
- // Set `touch: false` to disable panning/swiping
263
- touch: {
264
- vertical: true, // Allow to drag content vertically
265
- momentum: true // Continue movement after releasing mouse/touch when panning
266
- },
267
-
268
- // Hash value when initializing manually,
269
- // set `false` to disable hash change
270
- hash: null,
271
-
272
- // Customize or add new media types
273
- // Example:
274
- /*
275
- media : {
276
- youtube : {
277
- params : {
278
- autoplay : 0
279
- }
280
- }
281
- }
282
- */
283
- media: {},
284
-
285
- slideShow: {
286
- autoStart: false,
287
- speed: 3000
288
- },
289
-
290
- thumbs: {
291
- autoStart: false, // Display thumbnails on opening
292
- hideOnClose: true, // Hide thumbnail grid when closing animation starts
293
- parentEl: ".fancybox-container", // Container is injected into this element
294
- axis: "y" // Vertical (y) or horizontal (x) scrolling
295
- },
296
-
297
- // Use mousewheel to navigate gallery
298
- // If 'auto' - enabled for images only
299
- wheel: "auto",
300
-
301
- // Callbacks
302
- //==========
303
-
304
- // See Documentation/API/Events for more information
305
- // Example:
306
- /*
307
- afterShow: function( instance, current ) {
308
- console.info( 'Clicked element:' );
309
- console.info( current.opts.$orig );
310
- }
311
- */
312
-
313
- onInit: $.noop, // When instance has been initialized
314
-
315
- beforeLoad: $.noop, // Before the content of a slide is being loaded
316
- afterLoad: $.noop, // When the content of a slide is done loading
317
-
318
- beforeShow: $.noop, // Before open animation starts
319
- afterShow: $.noop, // When content is done loading and animating
320
-
321
- beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.
322
- afterClose: $.noop, // After instance has been closed
323
-
324
- onActivate: $.noop, // When instance is brought to front
325
- onDeactivate: $.noop, // When other instance has been activated
326
-
327
- // Interaction
328
- // ===========
329
-
330
- // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,
331
- // each option can be string or method that returns value.
332
- //
333
- // Possible values:
334
- // "close" - close instance
335
- // "next" - move to next gallery item
336
- // "nextOrClose" - move to next gallery item or close if gallery has only one item
337
- // "toggleControls" - show/hide controls
338
- // "zoom" - zoom image (if loaded)
339
- // false - do nothing
340
-
341
- // Clicked on the content
342
- clickContent: function(current, event) {
343
- return current.type === "image" ? "zoom" : false;
344
- },
345
-
346
- // Clicked on the slide
347
- clickSlide: "close",
348
-
349
- // Clicked on the background (backdrop) element;
350
- // if you have not changed the layout, then most likely you need to use `clickSlide` option
351
- clickOutside: "close",
352
-
353
- // Same as previous two, but for double click
354
- dblclickContent: false,
355
- dblclickSlide: false,
356
- dblclickOutside: false,
357
-
358
- // Custom options when mobile device is detected
359
- // =============================================
360
-
361
- mobile: {
362
- preventCaptionOverlap: false,
363
- idleTime: false,
364
- clickContent: function(current, event) {
365
- return current.type === "image" ? "toggleControls" : false;
366
- },
367
- clickSlide: function(current, event) {
368
- return current.type === "image" ? "toggleControls" : "close";
369
- },
370
- dblclickContent: function(current, event) {
371
- return current.type === "image" ? "zoom" : false;
372
- },
373
- dblclickSlide: function(current, event) {
374
- return current.type === "image" ? "zoom" : false;
375
- }
376
- },
377
-
378
- // Internationalization
379
- // ====================
380
-
381
- lang: "en",
382
- i18n: {
383
- en: {
384
- CLOSE: "Close",
385
- NEXT: "Next",
386
- PREV: "Previous",
387
- ERROR: "The requested content cannot be loaded. <br/> Please try again later.",
388
- PLAY_START: "Start slideshow",
389
- PLAY_STOP: "Pause slideshow",
390
- FULL_SCREEN: "Full screen",
391
- THUMBS: "Thumbnails",
392
- DOWNLOAD: "Download",
393
- SHARE: "Share",
394
- ZOOM: "Zoom"
395
- },
396
- de: {
397
- CLOSE: "Schliessen",
398
- NEXT: "Weiter",
399
- PREV: "Zurück",
400
- ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es später nochmal.",
401
- PLAY_START: "Diaschau starten",
402
- PLAY_STOP: "Diaschau beenden",
403
- FULL_SCREEN: "Vollbild",
404
- THUMBS: "Vorschaubilder",
405
- DOWNLOAD: "Herunterladen",
406
- SHARE: "Teilen",
407
- ZOOM: "Maßstab"
408
- }
409
- }
410
- };
411
-
412
- // Few useful variables and methods
413
- // ================================
414
-
415
- var $W = $(window);
416
- var $D = $(document);
417
-
418
- var called = 0;
419
-
420
- // Check if an object is a jQuery object and not a native JavaScript object
421
- // ========================================================================
422
- var isQuery = function(obj) {
423
- return obj && obj.hasOwnProperty && obj instanceof $;
424
- };
425
-
426
- // Handle multiple browsers for "requestAnimationFrame" and "cancelAnimationFrame"
427
- // ===============================================================================
428
- var requestAFrame = (function() {
429
- return (
430
- window.requestAnimationFrame ||
431
- window.webkitRequestAnimationFrame ||
432
- window.mozRequestAnimationFrame ||
433
- window.oRequestAnimationFrame ||
434
- // if all else fails, use setTimeout
435
- function(callback) {
436
- return window.setTimeout(callback, 1000 / 60);
437
- }
438
- );
439
- })();
440
-
441
- var cancelAFrame = (function() {
442
- return (
443
- window.cancelAnimationFrame ||
444
- window.webkitCancelAnimationFrame ||
445
- window.mozCancelAnimationFrame ||
446
- window.oCancelAnimationFrame ||
447
- function(id) {
448
- window.clearTimeout(id);
449
- }
450
- );
451
- })();
452
-
453
- // Detect the supported transition-end event property name
454
- // =======================================================
455
- var transitionEnd = (function() {
456
- var el = document.createElement("fakeelement"),
457
- t;
458
-
459
- var transitions = {
460
- transition: "transitionend",
461
- OTransition: "oTransitionEnd",
462
- MozTransition: "transitionend",
463
- WebkitTransition: "webkitTransitionEnd"
464
- };
465
-
466
- for (t in transitions) {
467
- if (el.style[t] !== undefined) {
468
- return transitions[t];
469
- }
470
- }
471
-
472
- return "transitionend";
473
- })();
474
-
475
- // Force redraw on an element.
476
- // This helps in cases where the browser doesn't redraw an updated element properly
477
- // ================================================================================
478
- var forceRedraw = function($el) {
479
- return $el && $el.length && $el[0].offsetHeight;
480
- };
481
-
482
- // Exclude array (`buttons`) options from deep merging
483
- // ===================================================
484
- var mergeOpts = function(opts1, opts2) {
485
- var rez = $.extend(true, {}, opts1, opts2);
486
-
487
- $.each(opts2, function(key, value) {
488
- if ($.isArray(value)) {
489
- rez[key] = value;
490
- }
491
- });
492
-
493
- return rez;
494
- };
495
-
496
- // How much of an element is visible in viewport
497
- // =============================================
498
-
499
- var inViewport = function(elem) {
500
- var elemCenter, rez;
501
-
502
- if (!elem || elem.ownerDocument !== document) {
503
- return false;
504
- }
505
-
506
- $(".fancybox-container").css("pointer-events", "none");
507
-
508
- elemCenter = {
509
- x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,
510
- y: elem.getBoundingClientRect().top + elem.offsetHeight / 2
511
- };
512
-
513
- rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;
514
-
515
- $(".fancybox-container").css("pointer-events", "");
516
-
517
- return rez;
518
- };
519
-
520
- // Class definition
521
- // ================
522
-
523
- var FancyBox = function(content, opts, index) {
524
- var self = this;
525
-
526
- self.opts = mergeOpts({index: index}, $.fancybox.defaults);
527
-
528
- if ($.isPlainObject(opts)) {
529
- self.opts = mergeOpts(self.opts, opts);
530
- }
531
-
532
- if ($.fancybox.isMobile) {
533
- self.opts = mergeOpts(self.opts, self.opts.mobile);
534
- }
535
-
536
- self.id = self.opts.id || ++called;
537
-
538
- self.currIndex = parseInt(self.opts.index, 10) || 0;
539
- self.prevIndex = null;
540
-
541
- self.prevPos = null;
542
- self.currPos = 0;
543
-
544
- self.firstRun = true;
545
-
546
- // All group items
547
- self.group = [];
548
-
549
- // Existing slides (for current, next and previous gallery items)
550
- self.slides = {};
551
-
552
- // Create group elements
553
- self.addContent(content);
554
-
555
- if (!self.group.length) {
556
- return;
557
- }
558
-
559
- self.init();
560
- };
561
-
562
- $.extend(FancyBox.prototype, {
563
- // Create DOM structure
564
- // ====================
565
-
566
- init: function() {
567
- var self = this,
568
- firstItem = self.group[self.currIndex],
569
- firstItemOpts = firstItem.opts,
570
- $container,
571
- buttonStr;
572
-
573
- if (firstItemOpts.closeExisting) {
574
- $.fancybox.close(true);
575
- }
576
-
577
- // Hide scrollbars
578
- // ===============
579
-
580
- $("body").addClass("fancybox-active");
581
-
582
- if (
583
- !$.fancybox.getInstance() &&
584
- firstItemOpts.hideScrollbar !== false &&
585
- !$.fancybox.isMobile &&
586
- document.body.scrollHeight > window.innerHeight
587
- ) {
588
- $("head").append(
589
- '<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' +
590
- (window.innerWidth - document.documentElement.clientWidth) +
591
- "px;}</style>"
592
- );
593
-
594
- $("body").addClass("compensate-for-scrollbar");
595
- }
596
-
597
- // Build html markup and set references
598
- // ====================================
599
-
600
- // Build html code for buttons and insert into main template
601
- buttonStr = "";
602
-
603
- $.each(firstItemOpts.buttons, function(index, value) {
604
- buttonStr += firstItemOpts.btnTpl[value] || "";
605
- });
606
-
607
- // Create markup from base template, it will be initially hidden to
608
- // avoid unnecessary work like painting while initializing is not complete
609
- $container = $(
610
- self.translate(
611
- self,
612
- firstItemOpts.baseTpl
613
- .replace("{{buttons}}", buttonStr)
614
- .replace("{{arrows}}", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)
615
- )
616
- )
617
- .attr("id", "fancybox-container-" + self.id)
618
- .addClass(firstItemOpts.baseClass)
619
- .data("FancyBox", self)
620
- .appendTo(firstItemOpts.parentEl);
621
-
622
- // Create object holding references to jQuery wrapped nodes
623
- self.$refs = {
624
- container: $container
625
- };
626
-
627
- ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function(item) {
628
- self.$refs[item] = $container.find(".fancybox-" + item);
629
- });
630
-
631
- self.trigger("onInit");
632
-
633
- // Enable events, deactive previous instances
634
- self.activate();
635
-
636
- // Build slides, load and reveal content
637
- self.jumpTo(self.currIndex);
638
- },
639
-
640
- // Simple i18n support - replaces object keys found in template
641
- // with corresponding values
642
- // ============================================================
643
-
644
- translate: function(obj, str) {
645
- var arr = obj.opts.i18n[obj.opts.lang];
646
-
647
- return str.replace(/\{\{(\w+)\}\}/g, function(match, n) {
648
- var value = arr[n];
649
-
650
- if (value === undefined) {
651
- return match;
652
- }
653
-
654
- return value;
655
- });
656
- },
657
-
658
- // Populate current group with fresh content
659
- // Check if each object has valid type and content
660
- // ===============================================
661
-
662
- addContent: function(content) {
663
- var self = this,
664
- items = $.makeArray(content),
665
- thumbs;
666
-
667
- $.each(items, function(i, item) {
668
- var obj = {},
669
- opts = {},
670
- $item,
671
- type,
672
- found,
673
- src,
674
- srcParts;
675
-
676
- // Step 1 - Make sure we have an object
677
- // ====================================
678
-
679
- if ($.isPlainObject(item)) {
680
- // We probably have manual usage here, something like
681
- // $.fancybox.open( [ { src : "image.jpg", type : "image" } ] )
682
-
683
- obj = item;
684
- opts = item.opts || item;
685
- } else if ($.type(item) === "object" && $(item).length) {
686
- // Here we probably have jQuery collection returned by some selector
687
- $item = $(item);
688
-
689
- // Support attributes like `data-options='{"touch" : false}'` and `data-touch='false'`
690
- opts = $item.data() || {};
691
- opts = $.extend(true, {}, opts, opts.options);
692
-
693
- // Here we store clicked element
694
- opts.$orig = $item;
695
-
696
- obj.src = self.opts.src || opts.src || $item.attr("href");
697
-
698
- // Assume that simple syntax is used, for example:
699
- // `$.fancybox.open( $("#test"), {} );`
700
- if (!obj.type && !obj.src) {
701
- obj.type = "inline";
702
- obj.src = item;
703
- }
704
- } else {
705
- // Assume we have a simple html code, for example:
706
- // $.fancybox.open( '<div><h1>Hi!</h1></div>' );
707
- obj = {
708
- type: "html",
709
- src: item + ""
710
- };
711
- }
712
-
713
- // Each gallery object has full collection of options
714
- obj.opts = $.extend(true, {}, self.opts, opts);
715
-
716
- // Do not merge buttons array
717
- if ($.isArray(opts.buttons)) {
718
- obj.opts.buttons = opts.buttons;
719
- }
720
-
721
- if ($.fancybox.isMobile && obj.opts.mobile) {
722
- obj.opts = mergeOpts(obj.opts, obj.opts.mobile);
723
- }
724
-
725
- // Step 2 - Make sure we have content type, if not - try to guess
726
- // ==============================================================
727
-
728
- type = obj.type || obj.opts.type;
729
- src = obj.src || "";
730
-
731
- if (!type && src) {
732
- if ((found = src.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))) {
733
- type = "video";
734
-
735
- if (!obj.opts.video.format) {
736
- obj.opts.video.format = "video/" + (found[1] === "ogv" ? "ogg" : found[1]);
737
- }
738
- } else if (src.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)) {
739
- type = "image";
740
- } else if (src.match(/\.(pdf)((\?|#).*)?$/i)) {
741
- type = "iframe";
742
- } else if (src.charAt(0) === "#") {
743
- type = "inline";
744
- }
745
- }
746
-
747
- if (type) {
748
- obj.type = type;
749
- } else {
750
- self.trigger("objectNeedsType", obj);
751
- }
752
-
753
- if (!obj.contentType) {
754
- obj.contentType = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1 ? "html" : obj.type;
755
- }
756
-
757
- // Step 3 - Some adjustments
758
- // =========================
759
-
760
- obj.index = self.group.length;
761
-
762
- if (obj.opts.smallBtn == "auto") {
763
- obj.opts.smallBtn = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1;
764
- }
765
-
766
- if (obj.opts.toolbar === "auto") {
767
- obj.opts.toolbar = !obj.opts.smallBtn;
768
- }
769
-
770
- // Find thumbnail image, check if exists and if is in the viewport
771
- obj.$thumb = obj.opts.$thumb || null;
772
-
773
- if (obj.opts.$trigger && obj.index === self.opts.index) {
774
- obj.$thumb = obj.opts.$trigger.find("img:first");
775
-
776
- if (obj.$thumb.length) {
777
- obj.opts.$orig = obj.opts.$trigger;
778
- }
779
- }
780
-
781
- if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {
782
- obj.$thumb = obj.opts.$orig.find("img:first");
783
- }
784
-
785
- if (obj.$thumb && !obj.$thumb.length) {
786
- obj.$thumb = null;
787
- }
788
-
789
- obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);
790
-
791
- // "caption" is a "special" option, it can be used to customize caption per gallery item
792
- if ($.type(obj.opts.caption) === "function") {
793
- obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);
794
- }
795
-
796
- if ($.type(self.opts.caption) === "function") {
797
- obj.opts.caption = self.opts.caption.apply(item, [self, obj]);
798
- }
799
-
800
- // Make sure we have caption as a string or jQuery object
801
- if (!(obj.opts.caption instanceof $)) {
802
- obj.opts.caption = obj.opts.caption === undefined ? "" : obj.opts.caption + "";
803
- }
804
-
805
- // Check if url contains "filter" used to filter the content
806
- // Example: "ajax.html #something"
807
- if (obj.type === "ajax") {
808
- srcParts = src.split(/\s+/, 2);
809
-
810
- if (srcParts.length > 1) {
811
- obj.src = srcParts.shift();
812
-
813
- obj.opts.filter = srcParts.shift();
814
- }
815
- }
816
-
817
- // Hide all buttons and disable interactivity for modal items
818
- if (obj.opts.modal) {
819
- obj.opts = $.extend(true, obj.opts, {
820
- trapFocus: true,
821
- // Remove buttons
822
- infobar: 0,
823
- toolbar: 0,
824
-
825
- smallBtn: 0,
826
-
827
- // Disable keyboard navigation
828
- keyboard: 0,
829
-
830
- // Disable some modules
831
- slideShow: 0,
832
- fullScreen: 0,
833
- thumbs: 0,
834
- touch: 0,
835
-
836
- // Disable click event handlers
837
- clickContent: false,
838
- clickSlide: false,
839
- clickOutside: false,
840
- dblclickContent: false,
841
- dblclickSlide: false,
842
- dblclickOutside: false
843
- });
844
- }
845
-
846
- // Step 4 - Add processed object to group
847
- // ======================================
848
-
849
- self.group.push(obj);
850
- });
851
-
852
- // Update controls if gallery is already opened
853
- if (Object.keys(self.slides).length) {
854
- self.updateControls();
855
-
856
- // Update thumbnails, if needed
857
- thumbs = self.Thumbs;
858
-
859
- if (thumbs && thumbs.isActive) {
860
- thumbs.create();
861
-
862
- thumbs.focus();
863
- }
864
- }
865
- },
866
-
867
- // Attach an event handler functions for:
868
- // - navigation buttons
869
- // - browser scrolling, resizing;
870
- // - focusing
871
- // - keyboard
872
- // - detecting inactivity
873
- // ======================================
874
-
875
- addEvents: function() {
876
- var self = this;
877
-
878
- self.removeEvents();
879
-
880
- // Make navigation elements clickable
881
- // ==================================
882
-
883
- self.$refs.container
884
- .on("click.fb-close", "[data-fancybox-close]", function(e) {
885
- e.stopPropagation();
886
- e.preventDefault();
887
-
888
- self.close(e);
889
- })
890
- .on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function(e) {
891
- e.stopPropagation();
892
- e.preventDefault();
893
-
894
- self.previous();
895
- })
896
- .on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function(e) {
897
- e.stopPropagation();
898
- e.preventDefault();
899
-
900
- self.next();
901
- })
902
- .on("click.fb", "[data-fancybox-zoom]", function(e) {
903
- // Click handler for zoom button
904
- self[self.isScaledDown() ? "scaleToActual" : "scaleToFit"]();
905
- });
906
-
907
- // Handle page scrolling and browser resizing
908
- // ==========================================
909
-
910
- $W.on("orientationchange.fb resize.fb", function(e) {
911
- if (e && e.originalEvent && e.originalEvent.type === "resize") {
912
- if (self.requestId) {
913
- cancelAFrame(self.requestId);
914
- }
915
-
916
- self.requestId = requestAFrame(function() {
917
- self.update(e);
918
- });
919
- } else {
920
- if (self.current && self.current.type === "iframe") {
921
- self.$refs.stage.hide();
922
- }
923
-
924
- setTimeout(function() {
925
- self.$refs.stage.show();
926
-
927
- self.update(e);
928
- }, $.fancybox.isMobile ? 600 : 250);
929
- }
930
- });
931
-
932
- $D.on("keydown.fb", function(e) {
933
- var instance = $.fancybox ? $.fancybox.getInstance() : null,
934
- current = instance.current,
935
- keycode = e.keyCode || e.which;
936
-
937
- // Trap keyboard focus inside of the modal
938
- // =======================================
939
-
940
- if (keycode == 9) {
941
- if (current.opts.trapFocus) {
942
- self.focus(e);
943
- }
944
-
945
- return;
946
- }
947
-
948
- // Enable keyboard navigation
949
- // ==========================
950
-
951
- if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is("input") || $(e.target).is("textarea")) {
952
- return;
953
- }
954
-
955
- // Backspace and Esc keys
956
- if (keycode === 8 || keycode === 27) {
957
- e.preventDefault();
958
-
959
- self.close(e);
960
-
961
- return;
962
- }
963
-
964
- // Left arrow and Up arrow
965
- if (keycode === 37 || keycode === 38) {
966
- e.preventDefault();
967
-
968
- self.previous();
969
-
970
- return;
971
- }
972
-
973
- // Righ arrow and Down arrow
974
- if (keycode === 39 || keycode === 40) {
975
- e.preventDefault();
976
-
977
- self.next();
978
-
979
- return;
980
- }
981
-
982
- self.trigger("afterKeydown", e, keycode);
983
- });
984
-
985
- // Hide controls after some inactivity period
986
- if (self.group[self.currIndex].opts.idleTime) {
987
- self.idleSecondsCounter = 0;
988
-
989
- $D.on(
990
- "mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",
991
- function(e) {
992
- self.idleSecondsCounter = 0;
993
-
994
- if (self.isIdle) {
995
- self.showControls();
996
- }
997
-
998
- self.isIdle = false;
999
- }
1000
- );
1001
-
1002
- self.idleInterval = window.setInterval(function() {
1003
- self.idleSecondsCounter++;
1004
-
1005
- if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {
1006
- self.isIdle = true;
1007
- self.idleSecondsCounter = 0;
1008
-
1009
- self.hideControls();
1010
- }
1011
- }, 1000);
1012
- }
1013
- },
1014
-
1015
- // Remove events added by the core
1016
- // ===============================
1017
-
1018
- removeEvents: function() {
1019
- var self = this;
1020
-
1021
- $W.off("orientationchange.fb resize.fb");
1022
- $D.off("keydown.fb .fb-idle");
1023
-
1024
- this.$refs.container.off(".fb-close .fb-prev .fb-next");
1025
-
1026
- if (self.idleInterval) {
1027
- window.clearInterval(self.idleInterval);
1028
-
1029
- self.idleInterval = null;
1030
- }
1031
- },
1032
-
1033
- // Change to previous gallery item
1034
- // ===============================
1035
-
1036
- previous: function(duration) {
1037
- return this.jumpTo(this.currPos - 1, duration);
1038
- },
1039
-
1040
- // Change to next gallery item
1041
- // ===========================
1042
-
1043
- next: function(duration) {
1044
- return this.jumpTo(this.currPos + 1, duration);
1045
- },
1046
-
1047
- // Switch to selected gallery item
1048
- // ===============================
1049
-
1050
- jumpTo: function(pos, duration) {
1051
- var self = this,
1052
- groupLen = self.group.length,
1053
- firstRun,
1054
- isMoved,
1055
- loop,
1056
- current,
1057
- previous,
1058
- slidePos,
1059
- stagePos,
1060
- prop,
1061
- diff;
1062
-
1063
- if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {
1064
- return;
1065
- }
1066
-
1067
- // Should loop?
1068
- pos = parseInt(pos, 10);
1069
- loop = self.current ? self.current.opts.loop : self.opts.loop;
1070
-
1071
- if (!loop && (pos < 0 || pos >= groupLen)) {
1072
- return false;
1073
- }
1074
-
1075
- // Check if opening for the first time; this helps to speed things up
1076
- firstRun = self.firstRun = !Object.keys(self.slides).length;
1077
-
1078
- // Create slides
1079
- previous = self.current;
1080
-
1081
- self.prevIndex = self.currIndex;
1082
- self.prevPos = self.currPos;
1083
-
1084
- current = self.createSlide(pos);
1085
-
1086
- if (groupLen > 1) {
1087
- if (loop || current.index < groupLen - 1) {
1088
- self.createSlide(pos + 1);
1089
- }
1090
-
1091
- if (loop || current.index > 0) {
1092
- self.createSlide(pos - 1);
1093
- }
1094
- }
1095
-
1096
- self.current = current;
1097
- self.currIndex = current.index;
1098
- self.currPos = current.pos;
1099
-
1100
- self.trigger("beforeShow", firstRun);
1101
-
1102
- self.updateControls();
1103
-
1104
- // Validate duration length
1105
- current.forcedDuration = undefined;
1106
-
1107
- if ($.isNumeric(duration)) {
1108
- current.forcedDuration = duration;
1109
- } else {
1110
- duration = current.opts[firstRun ? "animationDuration" : "transitionDuration"];
1111
- }
1112
-
1113
- duration = parseInt(duration, 10);
1114
-
1115
- // Check if user has swiped the slides or if still animating
1116
- isMoved = self.isMoved(current);
1117
-
1118
- // Make sure current slide is visible
1119
- current.$slide.addClass("fancybox-slide--current");
1120
-
1121
- // Fresh start - reveal container, current slide and start loading content
1122
- if (firstRun) {
1123
- if (current.opts.animationEffect && duration) {
1124
- self.$refs.container.css("transition-duration", duration + "ms");
1125
- }
1126
-
1127
- self.$refs.container.addClass("fancybox-is-open").trigger("focus");
1128
-
1129
- // Attempt to load content into slide
1130
- // This will later call `afterLoad` -> `revealContent`
1131
- self.loadSlide(current);
1132
-
1133
- self.preload("image");
1134
-
1135
- return;
1136
- }
1137
-
1138
- // Get actual slide/stage positions (before cleaning up)
1139
- slidePos = $.fancybox.getTranslate(previous.$slide);
1140
- stagePos = $.fancybox.getTranslate(self.$refs.stage);
1141
-
1142
- // Clean up all slides
1143
- $.each(self.slides, function(index, slide) {
1144
- $.fancybox.stop(slide.$slide, true);
1145
- });
1146
-
1147
- if (previous.pos !== current.pos) {
1148
- previous.isComplete = false;
1149
- }
1150
-
1151
- previous.$slide.removeClass("fancybox-slide--complete fancybox-slide--current");
1152
-
1153
- // If slides are out of place, then animate them to correct position
1154
- if (isMoved) {
1155
- // Calculate horizontal swipe distance
1156
- diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);
1157
-
1158
- $.each(self.slides, function(index, slide) {
1159
- slide.$slide.removeClass("fancybox-animated").removeClass(function(index, className) {
1160
- return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
1161
- });
1162
-
1163
- // Make sure that each slide is in equal distance
1164
- // This is mostly needed for freshly added slides, because they are not yet positioned
1165
- var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;
1166
-
1167
- $.fancybox.setTranslate(slide.$slide, {top: 0, left: leftPos - stagePos.left + diff});
1168
-
1169
- if (slide.pos !== current.pos) {
1170
- slide.$slide.addClass("fancybox-slide--" + (slide.pos > current.pos ? "next" : "previous"));
1171
- }
1172
-
1173
- // Redraw to make sure that transition will start
1174
- forceRedraw(slide.$slide);
1175
-
1176
- // Animate the slide
1177
- $.fancybox.animate(
1178
- slide.$slide,
1179
- {
1180
- top: 0,
1181
- left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter
1182
- },
1183
- duration,
1184
- function() {
1185
- slide.$slide
1186
- .css({
1187
- transform: "",
1188
- opacity: ""
1189
- })
1190
- .removeClass("fancybox-slide--next fancybox-slide--previous");
1191
-
1192
- if (slide.pos === self.currPos) {
1193
- self.complete();
1194
- }
1195
- }
1196
- );
1197
- });
1198
- } else if (duration && current.opts.transitionEffect) {
1199
- // Set transition effect for previously active slide
1200
- prop = "fancybox-animated fancybox-fx-" + current.opts.transitionEffect;
1201
-
1202
- previous.$slide.addClass("fancybox-slide--" + (previous.pos > current.pos ? "next" : "previous"));
1203
-
1204
- $.fancybox.animate(
1205
- previous.$slide,
1206
- prop,
1207
- duration,
1208
- function() {
1209
- previous.$slide.removeClass(prop).removeClass("fancybox-slide--next fancybox-slide--previous");
1210
- },
1211
- false
1212
- );
1213
- }
1214
-
1215
- if (current.isLoaded) {
1216
- self.revealContent(current);
1217
- } else {
1218
- self.loadSlide(current);
1219
- }
1220
-
1221
- self.preload("image");
1222
- },
1223
-
1224
- // Create new "slide" element
1225
- // These are gallery items that are actually added to DOM
1226
- // =======================================================
1227
-
1228
- createSlide: function(pos) {
1229
- var self = this,
1230
- $slide,
1231
- index;
1232
-
1233
- index = pos % self.group.length;
1234
- index = index < 0 ? self.group.length + index : index;
1235
-
1236
- if (!self.slides[pos] && self.group[index]) {
1237
- $slide = $('<div class="fancybox-slide"></div>').appendTo(self.$refs.stage);
1238
-
1239
- self.slides[pos] = $.extend(true, {}, self.group[index], {
1240
- pos: pos,
1241
- $slide: $slide,
1242
- isLoaded: false
1243
- });
1244
-
1245
- self.updateSlide(self.slides[pos]);
1246
- }
1247
-
1248
- return self.slides[pos];
1249
- },
1250
-
1251
- // Scale image to the actual size of the image;
1252
- // x and y values should be relative to the slide
1253
- // ==============================================
1254
-
1255
- scaleToActual: function(x, y, duration) {
1256
- var self = this,
1257
- current = self.current,
1258
- $content = current.$content,
1259
- canvasWidth = $.fancybox.getTranslate(current.$slide).width,
1260
- canvasHeight = $.fancybox.getTranslate(current.$slide).height,
1261
- newImgWidth = current.width,
1262
- newImgHeight = current.height,
1263
- imgPos,
1264
- posX,
1265
- posY,
1266
- scaleX,
1267
- scaleY;
1268
-
1269
- if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) {
1270
- return;
1271
- }
1272
-
1273
- self.isAnimating = true;
1274
-
1275
- $.fancybox.stop($content);
1276
-
1277
- x = x === undefined ? canvasWidth * 0.5 : x;
1278
- y = y === undefined ? canvasHeight * 0.5 : y;
1279
-
1280
- imgPos = $.fancybox.getTranslate($content);
1281
-
1282
- imgPos.top -= $.fancybox.getTranslate(current.$slide).top;
1283
- imgPos.left -= $.fancybox.getTranslate(current.$slide).left;
1284
-
1285
- scaleX = newImgWidth / imgPos.width;
1286
- scaleY = newImgHeight / imgPos.height;
1287
-
1288
- // Get center position for original image
1289
- posX = canvasWidth * 0.5 - newImgWidth * 0.5;
1290
- posY = canvasHeight * 0.5 - newImgHeight * 0.5;
1291
-
1292
- // Make sure image does not move away from edges
1293
- if (newImgWidth > canvasWidth) {
1294
- posX = imgPos.left * scaleX - (x * scaleX - x);
1295
-
1296
- if (posX > 0) {
1297
- posX = 0;
1298
- }
1299
-
1300
- if (posX < canvasWidth - newImgWidth) {
1301
- posX = canvasWidth - newImgWidth;
1302
- }
1303
- }
1304
-
1305
- if (newImgHeight > canvasHeight) {
1306
- posY = imgPos.top * scaleY - (y * scaleY - y);
1307
-
1308
- if (posY > 0) {
1309
- posY = 0;
1310
- }
1311
-
1312
- if (posY < canvasHeight - newImgHeight) {
1313
- posY = canvasHeight - newImgHeight;
1314
- }
1315
- }
1316
-
1317
- self.updateCursor(newImgWidth, newImgHeight);
1318
-
1319
- $.fancybox.animate(
1320
- $content,
1321
- {
1322
- top: posY,
1323
- left: posX,
1324
- scaleX: scaleX,
1325
- scaleY: scaleY
1326
- },
1327
- duration || 330,
1328
- function() {
1329
- self.isAnimating = false;
1330
- }
1331
- );
1332
-
1333
- // Stop slideshow
1334
- if (self.SlideShow && self.SlideShow.isActive) {
1335
- self.SlideShow.stop();
1336
- }
1337
- },
1338
-
1339
- // Scale image to fit inside parent element
1340
- // ========================================
1341
-
1342
- scaleToFit: function(duration) {
1343
- var self = this,
1344
- current = self.current,
1345
- $content = current.$content,
1346
- end;
1347
-
1348
- if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) {
1349
- return;
1350
- }
1351
-
1352
- self.isAnimating = true;
1353
-
1354
- $.fancybox.stop($content);
1355
-
1356
- end = self.getFitPos(current);
1357
-
1358
- self.updateCursor(end.width, end.height);
1359
-
1360
- $.fancybox.animate(
1361
- $content,
1362
- {
1363
- top: end.top,
1364
- left: end.left,
1365
- scaleX: end.width / $content.width(),
1366
- scaleY: end.height / $content.height()
1367
- },
1368
- duration || 330,
1369
- function() {
1370
- self.isAnimating = false;
1371
- }
1372
- );
1373
- },
1374
-
1375
- // Calculate image size to fit inside viewport
1376
- // ===========================================
1377
-
1378
- getFitPos: function(slide) {
1379
- var self = this,
1380
- $content = slide.$content,
1381
- $slide = slide.$slide,
1382
- width = slide.width || slide.opts.width,
1383
- height = slide.height || slide.opts.height,
1384
- maxWidth,
1385
- maxHeight,
1386
- minRatio,
1387
- aspectRatio,
1388
- rez = {};
1389
-
1390
- if (!slide.isLoaded || !$content || !$content.length) {
1391
- return false;
1392
- }
1393
-
1394
- maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;
1395
- maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;
1396
-
1397
- maxWidth -=
1398
- parseFloat($slide.css("paddingLeft")) +
1399
- parseFloat($slide.css("paddingRight")) +
1400
- parseFloat($content.css("marginLeft")) +
1401
- parseFloat($content.css("marginRight"));
1402
-
1403
- maxHeight -=
1404
- parseFloat($slide.css("paddingTop")) +
1405
- parseFloat($slide.css("paddingBottom")) +
1406
- parseFloat($content.css("marginTop")) +
1407
- parseFloat($content.css("marginBottom"));
1408
-
1409
- if (!width || !height) {
1410
- width = maxWidth;
1411
- height = maxHeight;
1412
- }
1413
-
1414
- minRatio = Math.min(1, maxWidth / width, maxHeight / height);
1415
-
1416
- width = minRatio * width;
1417
- height = minRatio * height;
1418
-
1419
- // Adjust width/height to precisely fit into container
1420
- if (width > maxWidth - 0.5) {
1421
- width = maxWidth;
1422
- }
1423
-
1424
- if (height > maxHeight - 0.5) {
1425
- height = maxHeight;
1426
- }
1427
-
1428
- if (slide.type === "image") {
1429
- rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css("paddingTop"));
1430
- rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css("paddingLeft"));
1431
- } else if (slide.contentType === "video") {
1432
- // Force aspect ratio for the video
1433
- // "I say the whole world must learn of our peaceful ways… by force!"
1434
- aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;
1435
-
1436
- if (height > width / aspectRatio) {
1437
- height = width / aspectRatio;
1438
- } else if (width > height * aspectRatio) {
1439
- width = height * aspectRatio;
1440
- }
1441
- }
1442
-
1443
- rez.width = width;
1444
- rez.height = height;
1445
-
1446
- return rez;
1447
- },
1448
-
1449
- // Update content size and position for all slides
1450
- // ==============================================
1451
-
1452
- update: function(e) {
1453
- var self = this;
1454
-
1455
- $.each(self.slides, function(key, slide) {
1456
- self.updateSlide(slide, e);
1457
- });
1458
- },
1459
-
1460
- // Update slide content position and size
1461
- // ======================================
1462
-
1463
- updateSlide: function(slide, e) {
1464
- var self = this,
1465
- $content = slide && slide.$content,
1466
- width = slide.width || slide.opts.width,
1467
- height = slide.height || slide.opts.height,
1468
- $slide = slide.$slide;
1469
-
1470
- // First, prevent caption overlap, if needed
1471
- self.adjustCaption(slide);
1472
-
1473
- // Then resize content to fit inside the slide
1474
- if ($content && (width || height || slide.contentType === "video") && !slide.hasError) {
1475
- $.fancybox.stop($content);
1476
-
1477
- $.fancybox.setTranslate($content, self.getFitPos(slide));
1478
-
1479
- if (slide.pos === self.currPos) {
1480
- self.isAnimating = false;
1481
-
1482
- self.updateCursor();
1483
- }
1484
- }
1485
-
1486
- // Then some adjustments
1487
- self.adjustLayout(slide);
1488
-
1489
- if ($slide.length) {
1490
- $slide.trigger("refresh");
1491
-
1492
- if (slide.pos === self.currPos) {
1493
- self.$refs.toolbar
1494
- .add(self.$refs.navigation.find(".fancybox-button--arrow_right"))
1495
- .toggleClass("compensate-for-scrollbar", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);
1496
- }
1497
- }
1498
-
1499
- self.trigger("onUpdate", slide, e);
1500
- },
1501
-
1502
- // Horizontally center slide
1503
- // =========================
1504
-
1505
- centerSlide: function(duration) {
1506
- var self = this,
1507
- current = self.current,
1508
- $slide = current.$slide;
1509
-
1510
- if (self.isClosing || !current) {
1511
- return;
1512
- }
1513
-
1514
- $slide.siblings().css({
1515
- transform: "",
1516
- opacity: ""
1517
- });
1518
-
1519
- $slide
1520
- .parent()
1521
- .children()
1522
- .removeClass("fancybox-slide--previous fancybox-slide--next");
1523
-
1524
- $.fancybox.animate(
1525
- $slide,
1526
- {
1527
- top: 0,
1528
- left: 0,
1529
- opacity: 1
1530
- },
1531
- duration === undefined ? 0 : duration,
1532
- function() {
1533
- // Clean up
1534
- $slide.css({
1535
- transform: "",
1536
- opacity: ""
1537
- });
1538
-
1539
- if (!current.isComplete) {
1540
- self.complete();
1541
- }
1542
- },
1543
- false
1544
- );
1545
- },
1546
-
1547
- // Check if current slide is moved (swiped)
1548
- // ========================================
1549
-
1550
- isMoved: function(slide) {
1551
- var current = slide || this.current,
1552
- slidePos,
1553
- stagePos;
1554
-
1555
- if (!current) {
1556
- return false;
1557
- }
1558
-
1559
- stagePos = $.fancybox.getTranslate(this.$refs.stage);
1560
- slidePos = $.fancybox.getTranslate(current.$slide);
1561
-
1562
- return (
1563
- !current.$slide.hasClass("fancybox-animated") &&
1564
- (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)
1565
- );
1566
- },
1567
-
1568
- // Update cursor style depending if content can be zoomed
1569
- // ======================================================
1570
-
1571
- updateCursor: function(nextWidth, nextHeight) {
1572
- var self = this,
1573
- current = self.current,
1574
- $container = self.$refs.container,
1575
- canPan,
1576
- isZoomable;
1577
-
1578
- if (!current || self.isClosing || !self.Guestures) {
1579
- return;
1580
- }
1581
-
1582
- $container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan");
1583
-
1584
- canPan = self.canPan(nextWidth, nextHeight);
1585
-
1586
- isZoomable = canPan ? true : self.isZoomable();
1587
-
1588
- $container.toggleClass("fancybox-is-zoomable", isZoomable);
1589
-
1590
- $("[data-fancybox-zoom]").prop("disabled", !isZoomable);
1591
-
1592
- if (canPan) {
1593
- $container.addClass("fancybox-can-pan");
1594
- } else if (
1595
- isZoomable &&
1596
- (current.opts.clickContent === "zoom" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == "zoom"))
1597
- ) {
1598
- $container.addClass("fancybox-can-zoomIn");
1599
- } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== "video") {
1600
- $container.addClass("fancybox-can-swipe");
1601
- }
1602
- },
1603
-
1604
- // Check if current slide is zoomable
1605
- // ==================================
1606
-
1607
- isZoomable: function() {
1608
- var self = this,
1609
- current = self.current,
1610
- fitPos;
1611
-
1612
- // Assume that slide is zoomable if:
1613
- // - image is still loading
1614
- // - actual size of the image is smaller than available area
1615
- if (current && !self.isClosing && current.type === "image" && !current.hasError) {
1616
- if (!current.isLoaded) {
1617
- return true;
1618
- }
1619
-
1620
- fitPos = self.getFitPos(current);
1621
-
1622
- if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {
1623
- return true;
1624
- }
1625
- }
1626
-
1627
- return false;
1628
- },
1629
-
1630
- // Check if current image dimensions are smaller than actual
1631
- // =========================================================
1632
-
1633
- isScaledDown: function(nextWidth, nextHeight) {
1634
- var self = this,
1635
- rez = false,
1636
- current = self.current,
1637
- $content = current.$content;
1638
-
1639
- if (nextWidth !== undefined && nextHeight !== undefined) {
1640
- rez = nextWidth < current.width && nextHeight < current.height;
1641
- } else if ($content) {
1642
- rez = $.fancybox.getTranslate($content);
1643
- rez = rez.width < current.width && rez.height < current.height;
1644
- }
1645
-
1646
- return rez;
1647
- },
1648
-
1649
- // Check if image dimensions exceed parent element
1650
- // ===============================================
1651
-
1652
- canPan: function(nextWidth, nextHeight) {
1653
- var self = this,
1654
- current = self.current,
1655
- pos = null,
1656
- rez = false;
1657
-
1658
- if (current.type === "image" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {
1659
- rez = self.getFitPos(current);
1660
-
1661
- if (nextWidth !== undefined && nextHeight !== undefined) {
1662
- pos = {width: nextWidth, height: nextHeight};
1663
- } else if (current.isComplete) {
1664
- pos = $.fancybox.getTranslate(current.$content);
1665
- }
1666
-
1667
- if (pos && rez) {
1668
- rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;
1669
- }
1670
- }
1671
-
1672
- return rez;
1673
- },
1674
-
1675
- // Load content into the slide
1676
- // ===========================
1677
-
1678
- loadSlide: function(slide) {
1679
- var self = this,
1680
- type,
1681
- $slide,
1682
- ajaxLoad;
1683
-
1684
- if (slide.isLoading || slide.isLoaded) {
1685
- return;
1686
- }
1687
-
1688
- slide.isLoading = true;
1689
-
1690
- if (self.trigger("beforeLoad", slide) === false) {
1691
- slide.isLoading = false;
1692
-
1693
- return false;
1694
- }
1695
-
1696
- type = slide.type;
1697
- $slide = slide.$slide;
1698
-
1699
- $slide
1700
- .off("refresh")
1701
- .trigger("onReset")
1702
- .addClass(slide.opts.slideClass);
1703
-
1704
- // Create content depending on the type
1705
- switch (type) {
1706
- case "image":
1707
- self.setImage(slide);
1708
-
1709
- break;
1710
-
1711
- case "iframe":
1712
- self.setIframe(slide);
1713
-
1714
- break;
1715
-
1716
- case "html":
1717
- self.setContent(slide, slide.src || slide.content);
1718
-
1719
- break;
1720
-
1721
- case "video":
1722
- self.setContent(
1723
- slide,
1724
- slide.opts.video.tpl
1725
- .replace(/\{\{src\}\}/gi, slide.src)
1726
- .replace("{{format}}", slide.opts.videoFormat || slide.opts.video.format || "")
1727
- .replace("{{poster}}", slide.thumb || "")
1728
- );
1729
-
1730
- break;
1731
-
1732
- case "inline":
1733
- if ($(slide.src).length) {
1734
- self.setContent(slide, $(slide.src));
1735
- } else {
1736
- self.setError(slide);
1737
- }
1738
-
1739
- break;
1740
-
1741
- case "ajax":
1742
- self.showLoading(slide);
1743
-
1744
- ajaxLoad = $.ajax(
1745
- $.extend({}, slide.opts.ajax.settings, {
1746
- url: slide.src,
1747
- success: function(data, textStatus) {
1748
- if (textStatus === "success") {
1749
- self.setContent(slide, data);
1750
- }
1751
- },
1752
- error: function(jqXHR, textStatus) {
1753
- if (jqXHR && textStatus !== "abort") {
1754
- self.setError(slide);
1755
- }
1756
- }
1757
- })
1758
- );
1759
-
1760
- $slide.one("onReset", function() {
1761
- ajaxLoad.abort();
1762
- });
1763
-
1764
- break;
1765
-
1766
- default:
1767
- self.setError(slide);
1768
-
1769
- break;
1770
- }
1771
-
1772
- return true;
1773
- },
1774
-
1775
- // Use thumbnail image, if possible
1776
- // ================================
1777
-
1778
- setImage: function(slide) {
1779
- var self = this,
1780
- ghost;
1781
-
1782
- // Check if need to show loading icon
1783
- requestAFrame(function() {
1784
- requestAFrame(function() {
1785
- var $img = slide.$image;
1786
-
1787
- if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {
1788
- self.showLoading(slide);
1789
- }
1790
- });
1791
- });
1792
-
1793
- //Check if image has srcset
1794
- self.checkSrcset(slide);
1795
-
1796
- // This will be wrapper containing both ghost and actual image
1797
- slide.$content = $('<div class="fancybox-content"></div>')
1798
- .addClass("fancybox-is-hidden")
1799
- .appendTo(slide.$slide.addClass("fancybox-slide--image"));
1800
-
1801
- // If we have a thumbnail, we can display it while actual image is loading
1802
- // Users will not stare at black screen and actual image will appear gradually
1803
- if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {
1804
- slide.width = slide.opts.width;
1805
- slide.height = slide.opts.height;
1806
-
1807
- ghost = document.createElement("img");
1808
-
1809
- ghost.onerror = function() {
1810
- $(this).remove();
1811
-
1812
- slide.$ghost = null;
1813
- };
1814
-
1815
- ghost.onload = function() {
1816
- self.afterLoad(slide);
1817
- };
1818
-
1819
- slide.$ghost = $(ghost)
1820
- .addClass("fancybox-image")
1821
- .appendTo(slide.$content)
1822
- .attr("src", slide.thumb);
1823
- }
1824
-
1825
- // Start loading actual image
1826
- self.setBigImage(slide);
1827
- },
1828
-
1829
- // Check if image has srcset and get the source
1830
- // ============================================
1831
- checkSrcset: function(slide) {
1832
- var srcset = slide.opts.srcset || slide.opts.image.srcset,
1833
- found,
1834
- temp,
1835
- pxRatio,
1836
- windowWidth;
1837
-
1838
- // If we have "srcset", then we need to find first matching "src" value.
1839
- // This is necessary, because when you set an src attribute, the browser will preload the image
1840
- // before any javascript or even CSS is applied.
1841
- if (srcset) {
1842
- pxRatio = window.devicePixelRatio || 1;
1843
- windowWidth = window.innerWidth * pxRatio;
1844
-
1845
- temp = srcset.split(",").map(function(el) {
1846
- var ret = {};
1847
-
1848
- el.trim()
1849
- .split(/\s+/)
1850
- .forEach(function(el, i) {
1851
- var value = parseInt(el.substring(0, el.length - 1), 10);
1852
-
1853
- if (i === 0) {
1854
- return (ret.url = el);
1855
- }
1856
-
1857
- if (value) {
1858
- ret.value = value;
1859
- ret.postfix = el[el.length - 1];
1860
- }
1861
- });
1862
-
1863
- return ret;
1864
- });
1865
-
1866
- // Sort by value
1867
- temp.sort(function(a, b) {
1868
- return a.value - b.value;
1869
- });
1870
-
1871
- // Ok, now we have an array of all srcset values
1872
- for (var j = 0; j < temp.length; j++) {
1873
- var el = temp[j];
1874
-
1875
- if ((el.postfix === "w" && el.value >= windowWidth) || (el.postfix === "x" && el.value >= pxRatio)) {
1876
- found = el;
1877
- break;
1878
- }
1879
- }
1880
-
1881
- // If not found, take the last one
1882
- if (!found && temp.length) {
1883
- found = temp[temp.length - 1];
1884
- }
1885
-
1886
- if (found) {
1887
- slide.src = found.url;
1888
-
1889
- // If we have default width/height values, we can calculate height for matching source
1890
- if (slide.width && slide.height && found.postfix == "w") {
1891
- slide.height = (slide.width / slide.height) * found.value;
1892
- slide.width = found.value;
1893
- }
1894
-
1895
- slide.opts.srcset = srcset;
1896
- }
1897
- }
1898
- },
1899
-
1900
- // Create full-size image
1901
- // ======================
1902
-
1903
- setBigImage: function(slide) {
1904
- var self = this,
1905
- img = document.createElement("img"),
1906
- $img = $(img);
1907
-
1908
- slide.$image = $img
1909
- .one("error", function() {
1910
- self.setError(slide);
1911
- })
1912
- .one("load", function() {
1913
- var sizes;
1914
-
1915
- if (!slide.$ghost) {
1916
- self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);
1917
-
1918
- self.afterLoad(slide);
1919
- }
1920
-
1921
- if (self.isClosing) {
1922
- return;
1923
- }
1924
-
1925
- if (slide.opts.srcset) {
1926
- sizes = slide.opts.sizes;
1927
-
1928
- if (!sizes || sizes === "auto") {
1929
- sizes =
1930
- (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? "100" : Math.round((slide.width / slide.height) * 100)) +
1931
- "vw";
1932
- }
1933
-
1934
- $img.attr("sizes", sizes).attr("srcset", slide.opts.srcset);
1935
- }
1936
-
1937
- // Hide temporary image after some delay
1938
- if (slide.$ghost) {
1939
- setTimeout(function() {
1940
- if (slide.$ghost && !self.isClosing) {
1941
- slide.$ghost.hide();
1942
- }
1943
- }, Math.min(300, Math.max(1000, slide.height / 1600)));
1944
- }
1945
-
1946
- self.hideLoading(slide);
1947
- })
1948
- .addClass("fancybox-image")
1949
- .attr("src", slide.src)
1950
- .appendTo(slide.$content);
1951
-
1952
- if ((img.complete || img.readyState == "complete") && $img.naturalWidth && $img.naturalHeight) {
1953
- $img.trigger("load");
1954
- } else if (img.error) {
1955
- $img.trigger("error");
1956
- }
1957
- },
1958
-
1959
- // Computes the slide size from image size and maxWidth/maxHeight
1960
- // ==============================================================
1961
-
1962
- resolveImageSlideSize: function(slide, imgWidth, imgHeight) {
1963
- var maxWidth = parseInt(slide.opts.width, 10),
1964
- maxHeight = parseInt(slide.opts.height, 10);
1965
-
1966
- // Sets the default values from the image
1967
- slide.width = imgWidth;
1968
- slide.height = imgHeight;
1969
-
1970
- if (maxWidth > 0) {
1971
- slide.width = maxWidth;
1972
- slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);
1973
- }
1974
-
1975
- if (maxHeight > 0) {
1976
- slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);
1977
- slide.height = maxHeight;
1978
- }
1979
- },
1980
-
1981
- // Create iframe wrapper, iframe and bindings
1982
- // ==========================================
1983
-
1984
- setIframe: function(slide) {
1985
- var self = this,
1986
- opts = slide.opts.iframe,
1987
- $slide = slide.$slide,
1988
- $iframe;
1989
-
1990
- // Fix responsive iframes on iOS (along with `position:absolute;` for iframe element)
1991
- if ($.fancybox.isMobile) {
1992
- opts.css.overflow = "scroll";
1993
- }
1994
-
1995
- slide.$content = $('<div class="fancybox-content' + (opts.preload ? " fancybox-is-hidden" : "") + '"></div>')
1996
- .css(opts.css)
1997
- .appendTo($slide);
1998
-
1999
- $slide.addClass("fancybox-slide--" + slide.contentType);
2000
-
2001
- slide.$iframe = $iframe = $(opts.tpl.replace(/\{rnd\}/g, new Date().getTime()))
2002
- .attr(opts.attr)
2003
- .appendTo(slide.$content);
2004
-
2005
- if (opts.preload) {
2006
- self.showLoading(slide);
2007
-
2008
- // Unfortunately, it is not always possible to determine if iframe is successfully loaded
2009
- // (due to browser security policy)
2010
-
2011
- $iframe.on("load.fb error.fb", function(e) {
2012
- this.isReady = 1;
2013
-
2014
- slide.$slide.trigger("refresh");
2015
-
2016
- self.afterLoad(slide);
2017
- });
2018
-
2019
- // Recalculate iframe content size
2020
- // ===============================
2021
-
2022
- $slide.on("refresh.fb", function() {
2023
- var $content = slide.$content,
2024
- frameWidth = opts.css.width,
2025
- frameHeight = opts.css.height,
2026
- $contents,
2027
- $body;
2028
-
2029
- if ($iframe[0].isReady !== 1) {
2030
- return;
2031
- }
2032
-
2033
- try {
2034
- $contents = $iframe.contents();
2035
- $body = $contents.find("body");
2036
- } catch (ignore) {}
2037
-
2038
- // Calculate contnet dimensions if it is accessible
2039
- if ($body && $body.length && $body.children().length) {
2040
- // Avoid scrolling to top (if multiple instances)
2041
- $slide.css("overflow", "visible");
2042
-
2043
- $content.css({
2044
- width: "100%",
2045
- "max-width": "100%",
2046
- height: "9999px"
2047
- });
2048
-
2049
- if (frameWidth === undefined) {
2050
- frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));
2051
- }
2052
-
2053
- $content.css("width", frameWidth ? frameWidth : "").css("max-width", "");
2054
-
2055
- if (frameHeight === undefined) {
2056
- frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));
2057
- }
2058
-
2059
- $content.css("height", frameHeight ? frameHeight : "");
2060
-
2061
- $slide.css("overflow", "auto");
2062
- }
2063
-
2064
- $content.removeClass("fancybox-is-hidden");
2065
- });
2066
- } else {
2067
- self.afterLoad(slide);
2068
- }
2069
-
2070
- $iframe.attr("src", slide.src);
2071
-
2072
- // Remove iframe if closing or changing gallery item
2073
- $slide.one("onReset", function() {
2074
- // This helps IE not to throw errors when closing
2075
- try {
2076
- $(this)
2077
- .find("iframe")
2078
- .hide()
2079
- .unbind()
2080
- .attr("src", "//about:blank");
2081
- } catch (ignore) {}
2082
-
2083
- $(this)
2084
- .off("refresh.fb")
2085
- .empty();
2086
-
2087
- slide.isLoaded = false;
2088
- slide.isRevealed = false;
2089
- });
2090
- },
2091
-
2092
- // Wrap and append content to the slide
2093
- // ======================================
2094
-
2095
- setContent: function(slide, content) {
2096
- var self = this;
2097
-
2098
- if (self.isClosing) {
2099
- return;
2100
- }
2101
-
2102
- self.hideLoading(slide);
2103
-
2104
- if (slide.$content) {
2105
- $.fancybox.stop(slide.$content);
2106
- }
2107
-
2108
- slide.$slide.empty();
2109
-
2110
- // If content is a jQuery object, then it will be moved to the slide.
2111
- // The placeholder is created so we will know where to put it back.
2112
- if (isQuery(content) && content.parent().length) {
2113
- // Make sure content is not already moved to fancyBox
2114
- if (content.hasClass("fancybox-content")) {
2115
- content.parent(".fancybox-slide--html").trigger("onReset");
2116
- }
2117
-
2118
- // Create temporary element marking original place of the content
2119
- slide.$placeholder = $("<div>")
2120
- .hide()
2121
- .insertAfter(content);
2122
-
2123
- // Make sure content is visible
2124
- content.css("display", "inline-block");
2125
- } else if (!slide.hasError) {
2126
- // If content is just a plain text, try to convert it to html
2127
- if ($.type(content) === "string") {
2128
- content = $("<div>")
2129
- .append($.trim(content))
2130
- .contents();
2131
- }
2132
-
2133
- // If "filter" option is provided, then filter content
2134
- if (slide.opts.filter) {
2135
- content = $("<div>")
2136
- .html(content)
2137
- .find(slide.opts.filter);
2138
- }
2139
- }
2140
-
2141
- slide.$slide.one("onReset", function() {
2142
- // Pause all html5 video/audio
2143
- $(this)
2144
- .find("video,audio")
2145
- .trigger("pause");
2146
-
2147
- // Put content back
2148
- if (slide.$placeholder) {
2149
- slide.$placeholder.after(content.removeClass("fancybox-content").hide()).remove();
2150
-
2151
- slide.$placeholder = null;
2152
- }
2153
-
2154
- // Remove custom close button
2155
- if (slide.$smallBtn) {
2156
- slide.$smallBtn.remove();
2157
-
2158
- slide.$smallBtn = null;
2159
- }
2160
-
2161
- // Remove content and mark slide as not loaded
2162
- if (!slide.hasError) {
2163
- $(this).empty();
2164
-
2165
- slide.isLoaded = false;
2166
- slide.isRevealed = false;
2167
- }
2168
- });
2169
-
2170
- $(content).appendTo(slide.$slide);
2171
-
2172
- if ($(content).is("video,audio")) {
2173
- $(content).addClass("fancybox-video");
2174
-
2175
- $(content).wrap("<div></div>");
2176
-
2177
- slide.contentType = "video";
2178
-
2179
- slide.opts.width = slide.opts.width || $(content).attr("width");
2180
- slide.opts.height = slide.opts.height || $(content).attr("height");
2181
- }
2182
-
2183
- slide.$content = slide.$slide
2184
- .children()
2185
- .filter("div,form,main,video,audio,article,.fancybox-content")
2186
- .first();
2187
-
2188
- slide.$content.siblings().hide();
2189
-
2190
- // Re-check if there is a valid content
2191
- // (in some cases, ajax response can contain various elements or plain text)
2192
- if (!slide.$content.length) {
2193
- slide.$content = slide.$slide
2194
- .wrapInner("<div></div>")
2195
- .children()
2196
- .first();
2197
- }
2198
-
2199
- slide.$content.addClass("fancybox-content");
2200
-
2201
- slide.$slide.addClass("fancybox-slide--" + slide.contentType);
2202
-
2203
- self.afterLoad(slide);
2204
- },
2205
-
2206
- // Display error message
2207
- // =====================
2208
-
2209
- setError: function(slide) {
2210
- slide.hasError = true;
2211
-
2212
- slide.$slide
2213
- .trigger("onReset")
2214
- .removeClass("fancybox-slide--" + slide.contentType)
2215
- .addClass("fancybox-slide--error");
2216
-
2217
- slide.contentType = "html";
2218
-
2219
- this.setContent(slide, this.translate(slide, slide.opts.errorTpl));
2220
-
2221
- if (slide.pos === this.currPos) {
2222
- this.isAnimating = false;
2223
- }
2224
- },
2225
-
2226
- // Show loading icon inside the slide
2227
- // ==================================
2228
-
2229
- showLoading: function(slide) {
2230
- var self = this;
2231
-
2232
- slide = slide || self.current;
2233
-
2234
- if (slide && !slide.$spinner) {
2235
- slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))
2236
- .appendTo(slide.$slide)
2237
- .hide()
2238
- .fadeIn("fast");
2239
- }
2240
- },
2241
-
2242
- // Remove loading icon from the slide
2243
- // ==================================
2244
-
2245
- hideLoading: function(slide) {
2246
- var self = this;
2247
-
2248
- slide = slide || self.current;
2249
-
2250
- if (slide && slide.$spinner) {
2251
- slide.$spinner.stop().remove();
2252
-
2253
- delete slide.$spinner;
2254
- }
2255
- },
2256
-
2257
- // Adjustments after slide content has been loaded
2258
- // ===============================================
2259
-
2260
- afterLoad: function(slide) {
2261
- var self = this;
2262
-
2263
- if (self.isClosing) {
2264
- return;
2265
- }
2266
-
2267
- slide.isLoading = false;
2268
- slide.isLoaded = true;
2269
-
2270
- self.trigger("afterLoad", slide);
2271
-
2272
- self.hideLoading(slide);
2273
-
2274
- // Add small close button
2275
- if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {
2276
- slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);
2277
- }
2278
-
2279
- // Disable right click
2280
- if (slide.opts.protect && slide.$content && !slide.hasError) {
2281
- slide.$content.on("contextmenu.fb", function(e) {
2282
- if (e.button == 2) {
2283
- e.preventDefault();
2284
- }
2285
-
2286
- return true;
2287
- });
2288
-
2289
- // Add fake element on top of the image
2290
- // This makes a bit harder for user to select image
2291
- if (slide.type === "image") {
2292
- $('<div class="fancybox-spaceball"></div>').appendTo(slide.$content);
2293
- }
2294
- }
2295
-
2296
- self.adjustCaption(slide);
2297
-
2298
- self.adjustLayout(slide);
2299
-
2300
- if (slide.pos === self.currPos) {
2301
- self.updateCursor();
2302
- }
2303
-
2304
- self.revealContent(slide);
2305
- },
2306
-
2307
- // Prevent caption overlap,
2308
- // fix css inconsistency across browsers
2309
- // =====================================
2310
-
2311
- adjustCaption: function(slide) {
2312
- var self = this,
2313
- current = slide || self.current,
2314
- caption = current.opts.caption,
2315
- $caption = self.$refs.caption,
2316
- captionH = false;
2317
-
2318
- if (current.opts.preventCaptionOverlap && caption && caption.length) {
2319
- if (current.pos !== self.currPos) {
2320
- $caption = $caption
2321
- .clone()
2322
- .empty()
2323
- .appendTo($caption.parent());
2324
-
2325
- $caption.html(caption);
2326
-
2327
- captionH = $caption.outerHeight(true);
2328
-
2329
- $caption.empty().remove();
2330
- } else if (self.$caption) {
2331
- captionH = self.$caption.outerHeight(true);
2332
- }
2333
-
2334
- current.$slide.css("padding-bottom", captionH || "");
2335
- }
2336
- },
2337
-
2338
- // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):
2339
- // https://bugzilla.mozilla.org/show_bug.cgi?id=748518
2340
- // ====================================================================================
2341
-
2342
- adjustLayout: function(slide) {
2343
- var self = this,
2344
- current = slide || self.current,
2345
- scrollHeight,
2346
- marginBottom,
2347
- inlinePadding,
2348
- actualPadding;
2349
-
2350
- if (current.isLoaded && current.opts.disableLayoutFix !== true) {
2351
- current.$content.css("margin-bottom", "");
2352
-
2353
- // If we would always set margin-bottom for the content,
2354
- // then it would potentially break vertical align
2355
- if (current.$content.outerHeight() > current.$slide.height() + 0.5) {
2356
- inlinePadding = current.$slide[0].style["padding-bottom"];
2357
- actualPadding = current.$slide.css("padding-bottom");
2358
-
2359
- if (parseFloat(actualPadding) > 0) {
2360
- scrollHeight = current.$slide[0].scrollHeight;
2361
-
2362
- current.$slide.css("padding-bottom", 0);
2363
-
2364
- if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {
2365
- marginBottom = actualPadding;
2366
- }
2367
-
2368
- current.$slide.css("padding-bottom", inlinePadding);
2369
- }
2370
- }
2371
-
2372
- current.$content.css("margin-bottom", marginBottom);
2373
- }
2374
- },
2375
-
2376
- // Make content visible
2377
- // This method is called right after content has been loaded or
2378
- // user navigates gallery and transition should start
2379
- // ============================================================
2380
-
2381
- revealContent: function(slide) {
2382
- var self = this,
2383
- $slide = slide.$slide,
2384
- end = false,
2385
- start = false,
2386
- isMoved = self.isMoved(slide),
2387
- isRevealed = slide.isRevealed,
2388
- effect,
2389
- effectClassName,
2390
- duration,
2391
- opacity;
2392
-
2393
- slide.isRevealed = true;
2394
-
2395
- effect = slide.opts[self.firstRun ? "animationEffect" : "transitionEffect"];
2396
- duration = slide.opts[self.firstRun ? "animationDuration" : "transitionDuration"];
2397
-
2398
- duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);
2399
-
2400
- if (isMoved || slide.pos !== self.currPos || !duration) {
2401
- effect = false;
2402
- }
2403
-
2404
- // Check if can zoom
2405
- if (effect === "zoom") {
2406
- if (slide.pos === self.currPos && duration && slide.type === "image" && !slide.hasError && (start = self.getThumbPos(slide))) {
2407
- end = self.getFitPos(slide);
2408
- } else {
2409
- effect = "fade";
2410
- }
2411
- }
2412
-
2413
- // Zoom animation
2414
- // ==============
2415
- if (effect === "zoom") {
2416
- self.isAnimating = true;
2417
-
2418
- end.scaleX = end.width / start.width;
2419
- end.scaleY = end.height / start.height;
2420
-
2421
- // Check if we need to animate opacity
2422
- opacity = slide.opts.zoomOpacity;
2423
-
2424
- if (opacity == "auto") {
2425
- opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;
2426
- }
2427
-
2428
- if (opacity) {
2429
- start.opacity = 0.1;
2430
- end.opacity = 1;
2431
- }
2432
-
2433
- // Draw image at start position
2434
- $.fancybox.setTranslate(slide.$content.removeClass("fancybox-is-hidden"), start);
2435
-
2436
- forceRedraw(slide.$content);
2437
-
2438
- // Start animation
2439
- $.fancybox.animate(slide.$content, end, duration, function() {
2440
- self.isAnimating = false;
2441
-
2442
- self.complete();
2443
- });
2444
-
2445
- return;
2446
- }
2447
-
2448
- self.updateSlide(slide);
2449
-
2450
- // Simply show content if no effect
2451
- // ================================
2452
- if (!effect) {
2453
- slide.$content.removeClass("fancybox-is-hidden");
2454
-
2455
- if (!isRevealed && isMoved && slide.type === "image" && !slide.hasError) {
2456
- slide.$content.hide().fadeIn("fast");
2457
- }
2458
-
2459
- if (slide.pos === self.currPos) {
2460
- self.complete();
2461
- }
2462
-
2463
- return;
2464
- }
2465
-
2466
- // Prepare for CSS transiton
2467
- // =========================
2468
- $.fancybox.stop($slide);
2469
-
2470
- //effectClassName = "fancybox-animated fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-fx-" + effect;
2471
- effectClassName = "fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + effect;
2472
-
2473
- $slide.addClass(effectClassName).removeClass("fancybox-slide--current"); //.addClass(effectClassName);
2474
-
2475
- slide.$content.removeClass("fancybox-is-hidden");
2476
-
2477
- // Force reflow
2478
- forceRedraw($slide);
2479
-
2480
- if (slide.type !== "image") {
2481
- slide.$content.hide().show(0);
2482
- }
2483
-
2484
- $.fancybox.animate(
2485
- $slide,
2486
- "fancybox-slide--current",
2487
- duration,
2488
- function() {
2489
- $slide.removeClass(effectClassName).css({
2490
- transform: "",
2491
- opacity: ""
2492
- });
2493
-
2494
- if (slide.pos === self.currPos) {
2495
- self.complete();
2496
- }
2497
- },
2498
- true
2499
- );
2500
- },
2501
-
2502
- // Check if we can and have to zoom from thumbnail
2503
- //================================================
2504
-
2505
- getThumbPos: function(slide) {
2506
- var rez = false,
2507
- $thumb = slide.$thumb,
2508
- thumbPos,
2509
- btw,
2510
- brw,
2511
- bbw,
2512
- blw;
2513
-
2514
- if (!$thumb || !inViewport($thumb[0])) {
2515
- return false;
2516
- }
2517
-
2518
- thumbPos = $.fancybox.getTranslate($thumb);
2519
-
2520
- btw = parseFloat($thumb.css("border-top-width") || 0);
2521
- brw = parseFloat($thumb.css("border-right-width") || 0);
2522
- bbw = parseFloat($thumb.css("border-bottom-width") || 0);
2523
- blw = parseFloat($thumb.css("border-left-width") || 0);
2524
-
2525
- rez = {
2526
- top: thumbPos.top + btw,
2527
- left: thumbPos.left + blw,
2528
- width: thumbPos.width - brw - blw,
2529
- height: thumbPos.height - btw - bbw,
2530
- scaleX: 1,
2531
- scaleY: 1
2532
- };
2533
-
2534
- return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;
2535
- },
2536
-
2537
- // Final adjustments after current gallery item is moved to position
2538
- // and it`s content is loaded
2539
- // ==================================================================
2540
-
2541
- complete: function() {
2542
- var self = this,
2543
- current = self.current,
2544
- slides = {},
2545
- $el;
2546
-
2547
- if (self.isMoved() || !current.isLoaded) {
2548
- return;
2549
- }
2550
-
2551
- if (!current.isComplete) {
2552
- current.isComplete = true;
2553
-
2554
- current.$slide.siblings().trigger("onReset");
2555
-
2556
- self.preload("inline");
2557
-
2558
- // Trigger any CSS transiton inside the slide
2559
- forceRedraw(current.$slide);
2560
-
2561
- current.$slide.addClass("fancybox-slide--complete");
2562
-
2563
- // Remove unnecessary slides
2564
- $.each(self.slides, function(key, slide) {
2565
- if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {
2566
- slides[slide.pos] = slide;
2567
- } else if (slide) {
2568
- $.fancybox.stop(slide.$slide);
2569
-
2570
- slide.$slide.off().remove();
2571
- }
2572
- });
2573
-
2574
- self.slides = slides;
2575
- }
2576
-
2577
- self.isAnimating = false;
2578
-
2579
- self.updateCursor();
2580
-
2581
- self.trigger("afterShow");
2582
-
2583
- // Autoplay first html5 video/audio
2584
- if (!!current.opts.video.autoStart) {
2585
- current.$slide
2586
- .find("video,audio")
2587
- .filter(":visible:first")
2588
- .trigger("play")
2589
- .on("ended", $.proxy(self.next, self));
2590
- }
2591
-
2592
- // Try to focus on the first focusable element
2593
- if (current.opts.autoFocus && current.contentType === "html") {
2594
- // Look for the first input with autofocus attribute
2595
- $el = current.$content.find("input[autofocus]:enabled:visible:first");
2596
-
2597
- if ($el.length) {
2598
- $el.trigger("focus");
2599
- } else {
2600
- self.focus(null, true);
2601
- }
2602
- }
2603
-
2604
- // Avoid jumping
2605
- current.$slide.scrollTop(0).scrollLeft(0);
2606
- },
2607
-
2608
- // Preload next and previous slides
2609
- // ================================
2610
-
2611
- preload: function(type) {
2612
- var self = this,
2613
- next = self.slides[self.currPos + 1],
2614
- prev = self.slides[self.currPos - 1];
2615
-
2616
- if (prev && prev.type === type) {
2617
- self.loadSlide(prev);
2618
- }
2619
-
2620
- if (next && next.type === type) {
2621
- self.loadSlide(next);
2622
- }
2623
- },
2624
-
2625
- // Try to find and focus on the first focusable element
2626
- // ====================================================
2627
-
2628
- focus: function(e, firstRun) {
2629
- var self = this,
2630
- focusableStr = [
2631
- "a[href]",
2632
- "area[href]",
2633
- 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
2634
- "select:not([disabled]):not([aria-hidden])",
2635
- "textarea:not([disabled]):not([aria-hidden])",
2636
- "button:not([disabled]):not([aria-hidden])",
2637
- "iframe",
2638
- "object",
2639
- "embed",
2640
- "[contenteditable]",
2641
- '[tabindex]:not([tabindex^="-"])'
2642
- ].join(","),
2643
- focusableItems,
2644
- focusedItemIndex;
2645
-
2646
- if (self.isClosing) {
2647
- return;
2648
- }
2649
-
2650
- if (e || !self.current || !self.current.isComplete) {
2651
- // Focus on any element inside fancybox
2652
- focusableItems = self.$refs.container.find("*:visible");
2653
- } else {
2654
- // Focus inside current slide
2655
- focusableItems = self.current.$slide.find("*:visible" + (firstRun ? ":not(.fancybox-close-small)" : ""));
2656
- }
2657
-
2658
- focusableItems = focusableItems.filter(focusableStr).filter(function() {
2659
- return $(this).css("visibility") !== "hidden" && !$(this).hasClass("disabled");
2660
- });
2661
-
2662
- if (focusableItems.length) {
2663
- focusedItemIndex = focusableItems.index(document.activeElement);
2664
-
2665
- if (e && e.shiftKey) {
2666
- // Back tab
2667
- if (focusedItemIndex < 0 || focusedItemIndex == 0) {
2668
- e.preventDefault();
2669
-
2670
- focusableItems.eq(focusableItems.length - 1).trigger("focus");
2671
- }
2672
- } else {
2673
- // Outside or Forward tab
2674
- if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {
2675
- if (e) {
2676
- e.preventDefault();
2677
- }
2678
-
2679
- focusableItems.eq(0).trigger("focus");
2680
- }
2681
- }
2682
- } else {
2683
- self.$refs.container.trigger("focus");
2684
- }
2685
- },
2686
-
2687
- // Activates current instance - brings container to the front and enables keyboard,
2688
- // notifies other instances about deactivating
2689
- // =================================================================================
2690
-
2691
- activate: function() {
2692
- var self = this;
2693
-
2694
- // Deactivate all instances
2695
- $(".fancybox-container").each(function() {
2696
- var instance = $(this).data("FancyBox");
2697
-
2698
- // Skip self and closing instances
2699
- if (instance && instance.id !== self.id && !instance.isClosing) {
2700
- instance.trigger("onDeactivate");
2701
-
2702
- instance.removeEvents();
2703
-
2704
- instance.isVisible = false;
2705
- }
2706
- });
2707
-
2708
- self.isVisible = true;
2709
-
2710
- if (self.current || self.isIdle) {
2711
- self.update();
2712
-
2713
- self.updateControls();
2714
- }
2715
-
2716
- self.trigger("onActivate");
2717
-
2718
- self.addEvents();
2719
- },
2720
-
2721
- // Start closing procedure
2722
- // This will start "zoom-out" animation if needed and clean everything up afterwards
2723
- // =================================================================================
2724
-
2725
- close: function(e, d) {
2726
- var self = this,
2727
- current = self.current,
2728
- effect,
2729
- duration,
2730
- $content,
2731
- domRect,
2732
- opacity,
2733
- start,
2734
- end;
2735
-
2736
- var done = function() {
2737
- self.cleanUp(e);
2738
- };
2739
-
2740
- if (self.isClosing) {
2741
- return false;
2742
- }
2743
-
2744
- self.isClosing = true;
2745
-
2746
- // If beforeClose callback prevents closing, make sure content is centered
2747
- if (self.trigger("beforeClose", e) === false) {
2748
- self.isClosing = false;
2749
-
2750
- requestAFrame(function() {
2751
- self.update();
2752
- });
2753
-
2754
- return false;
2755
- }
2756
-
2757
- // Remove all events
2758
- // If there are multiple instances, they will be set again by "activate" method
2759
- self.removeEvents();
2760
-
2761
- $content = current.$content;
2762
- effect = current.opts.animationEffect;
2763
- duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;
2764
-
2765
- current.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated");
2766
-
2767
- if (e !== true) {
2768
- $.fancybox.stop(current.$slide);
2769
- } else {
2770
- effect = false;
2771
- }
2772
-
2773
- // Remove other slides
2774
- current.$slide
2775
- .siblings()
2776
- .trigger("onReset")
2777
- .remove();
2778
-
2779
- // Trigger animations
2780
- if (duration) {
2781
- self.$refs.container
2782
- .removeClass("fancybox-is-open")
2783
- .addClass("fancybox-is-closing")
2784
- .css("transition-duration", duration + "ms");
2785
- }
2786
-
2787
- // Clean up
2788
- self.hideLoading(current);
2789
-
2790
- self.hideControls(true);
2791
-
2792
- self.updateCursor();
2793
-
2794
- // Check if possible to zoom-out
2795
- if (
2796
- effect === "zoom" &&
2797
- !($content && duration && current.type === "image" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))
2798
- ) {
2799
- effect = "fade";
2800
- }
2801
-
2802
- if (effect === "zoom") {
2803
- $.fancybox.stop($content);
2804
-
2805
- domRect = $.fancybox.getTranslate($content);
2806
-
2807
- start = {
2808
- top: domRect.top,
2809
- left: domRect.left,
2810
- scaleX: domRect.width / end.width,
2811
- scaleY: domRect.height / end.height,
2812
- width: end.width,
2813
- height: end.height
2814
- };
2815
-
2816
- // Check if we need to animate opacity
2817
- opacity = current.opts.zoomOpacity;
2818
-
2819
- if (opacity == "auto") {
2820
- opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;
2821
- }
2822
-
2823
- if (opacity) {
2824
- end.opacity = 0;
2825
- }
2826
-
2827
- $.fancybox.setTranslate($content, start);
2828
-
2829
- forceRedraw($content);
2830
-
2831
- $.fancybox.animate($content, end, duration, done);
2832
-
2833
- return true;
2834
- }
2835
-
2836
- if (effect && duration) {
2837
- $.fancybox.animate(
2838
- current.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),
2839
- "fancybox-animated fancybox-fx-" + effect,
2840
- duration,
2841
- done
2842
- );
2843
- } else {
2844
- // If skip animation
2845
- if (e === true) {
2846
- setTimeout(done, duration);
2847
- } else {
2848
- done();
2849
- }
2850
- }
2851
-
2852
- return true;
2853
- },
2854
-
2855
- // Final adjustments after removing the instance
2856
- // =============================================
2857
-
2858
- cleanUp: function(e) {
2859
- var self = this,
2860
- instance,
2861
- $focus = self.current.opts.$orig,
2862
- x,
2863
- y;
2864
-
2865
- self.current.$slide.trigger("onReset");
2866
-
2867
- self.$refs.container.empty().remove();
2868
-
2869
- self.trigger("afterClose", e);
2870
-
2871
- // Place back focus
2872
- if (!!self.current.opts.backFocus) {
2873
- if (!$focus || !$focus.length || !$focus.is(":visible")) {
2874
- $focus = self.$trigger;
2875
- }
2876
-
2877
- if ($focus && $focus.length) {
2878
- x = window.scrollX;
2879
- y = window.scrollY;
2880
-
2881
- $focus.trigger("focus");
2882
-
2883
- $("html, body")
2884
- .scrollTop(y)
2885
- .scrollLeft(x);
2886
- }
2887
- }
2888
-
2889
- self.current = null;
2890
-
2891
- // Check if there are other instances
2892
- instance = $.fancybox.getInstance();
2893
-
2894
- if (instance) {
2895
- instance.activate();
2896
- } else {
2897
- $("body").removeClass("fancybox-active compensate-for-scrollbar");
2898
-
2899
- $("#fancybox-style-noscroll").remove();
2900
- }
2901
- },
2902
-
2903
- // Call callback and trigger an event
2904
- // ==================================
2905
-
2906
- trigger: function(name, slide) {
2907
- var args = Array.prototype.slice.call(arguments, 1),
2908
- self = this,
2909
- obj = slide && slide.opts ? slide : self.current,
2910
- rez;
2911
-
2912
- if (obj) {
2913
- args.unshift(obj);
2914
- } else {
2915
- obj = self;
2916
- }
2917
-
2918
- args.unshift(self);
2919
-
2920
- if ($.isFunction(obj.opts[name])) {
2921
- rez = obj.opts[name].apply(obj, args);
2922
- }
2923
-
2924
- if (rez === false) {
2925
- return rez;
2926
- }
2927
-
2928
- if (name === "afterClose" || !self.$refs) {
2929
- $D.trigger(name + ".fb", args);
2930
- } else {
2931
- self.$refs.container.trigger(name + ".fb", args);
2932
- }
2933
- },
2934
-
2935
- // Update infobar values, navigation button states and reveal caption
2936
- // ==================================================================
2937
-
2938
- updateControls: function() {
2939
- var self = this,
2940
- current = self.current,
2941
- index = current.index,
2942
- $container = self.$refs.container,
2943
- $caption = self.$refs.caption,
2944
- caption = current.opts.caption;
2945
-
2946
- // Recalculate content dimensions
2947
- current.$slide.trigger("refresh");
2948
-
2949
- self.$caption = caption && caption.length ? $caption.html(caption) : null;
2950
-
2951
- if (!self.hasHiddenControls && !self.isIdle) {
2952
- self.showControls();
2953
- }
2954
-
2955
- // Update info and navigation elements
2956
- $container.find("[data-fancybox-count]").html(self.group.length);
2957
- $container.find("[data-fancybox-index]").html(index + 1);
2958
-
2959
- $container.find("[data-fancybox-prev]").prop("disabled", !current.opts.loop && index <= 0);
2960
- $container.find("[data-fancybox-next]").prop("disabled", !current.opts.loop && index >= self.group.length - 1);
2961
-
2962
- if (current.type === "image") {
2963
- // Re-enable buttons; update download button source
2964
- $container
2965
- .find("[data-fancybox-zoom]")
2966
- .show()
2967
- .end()
2968
- .find("[data-fancybox-download]")
2969
- .attr("href", current.opts.image.src || current.src)
2970
- .show();
2971
- } else if (current.opts.toolbar) {
2972
- $container.find("[data-fancybox-download],[data-fancybox-zoom]").hide();
2973
- }
2974
-
2975
- // Make sure focus is not on disabled button/element
2976
- if ($(document.activeElement).is(":hidden,[disabled]")) {
2977
- self.$refs.container.trigger("focus");
2978
- }
2979
- },
2980
-
2981
- // Hide toolbar and caption
2982
- // ========================
2983
-
2984
- hideControls: function(andCaption) {
2985
- var self = this,
2986
- arr = ["infobar", "toolbar", "nav"];
2987
-
2988
- if (andCaption || !self.current.opts.preventCaptionOverlap) {
2989
- arr.push("caption");
2990
- }
2991
-
2992
- this.$refs.container.removeClass(
2993
- arr
2994
- .map(function(i) {
2995
- return "fancybox-show-" + i;
2996
- })
2997
- .join(" ")
2998
- );
2999
-
3000
- this.hasHiddenControls = true;
3001
- },
3002
-
3003
- showControls: function() {
3004
- var self = this,
3005
- opts = self.current ? self.current.opts : self.opts,
3006
- $container = self.$refs.container;
3007
-
3008
- self.hasHiddenControls = false;
3009
- self.idleSecondsCounter = 0;
3010
-
3011
- $container
3012
- .toggleClass("fancybox-show-toolbar", !!(opts.toolbar && opts.buttons))
3013
- .toggleClass("fancybox-show-infobar", !!(opts.infobar && self.group.length > 1))
3014
- .toggleClass("fancybox-show-caption", !!self.$caption)
3015
- .toggleClass("fancybox-show-nav", !!(opts.arrows && self.group.length > 1))
3016
- .toggleClass("fancybox-is-modal", !!opts.modal);
3017
- },
3018
-
3019
- // Toggle toolbar and caption
3020
- // ==========================
3021
-
3022
- toggleControls: function() {
3023
- if (this.hasHiddenControls) {
3024
- this.showControls();
3025
- } else {
3026
- this.hideControls();
3027
- }
3028
- }
3029
- });
3030
-
3031
- $.fancybox = {
3032
- version: "3.5.1",
3033
- defaults: defaults,
3034
-
3035
- // Get current instance and execute a command.
3036
- //
3037
- // Examples of usage:
3038
- //
3039
- // $instance = $.fancybox.getInstance();
3040
- // $.fancybox.getInstance().jumpTo( 1 );
3041
- // $.fancybox.getInstance( 'jumpTo', 1 );
3042
- // $.fancybox.getInstance( function() {
3043
- // console.info( this.currIndex );
3044
- // });
3045
- // ======================================================
3046
-
3047
- getInstance: function(command) {
3048
- var instance = $('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),
3049
- args = Array.prototype.slice.call(arguments, 1);
3050
-
3051
- if (instance instanceof FancyBox) {
3052
- if ($.type(command) === "string") {
3053
- instance[command].apply(instance, args);
3054
- } else if ($.type(command) === "function") {
3055
- command.apply(instance, args);
3056
- }
3057
-
3058
- return instance;
3059
- }
3060
-
3061
- return false;
3062
- },
3063
-
3064
- // Create new instance
3065
- // ===================
3066
-
3067
- open: function(items, opts, index) {
3068
- return new FancyBox(items, opts, index);
3069
- },
3070
-
3071
- // Close current or all instances
3072
- // ==============================
3073
-
3074
- close: function(all) {
3075
- var instance = this.getInstance();
3076
-
3077
- if (instance) {
3078
- instance.close();
3079
-
3080
- // Try to find and close next instance
3081
- if (all === true) {
3082
- this.close(all);
3083
- }
3084
- }
3085
- },
3086
-
3087
- // Close all instances and unbind all events
3088
- // =========================================
3089
-
3090
- destroy: function() {
3091
- this.close(true);
3092
-
3093
- $D.add("body").off("click.fb-start", "**");
3094
- },
3095
-
3096
- // Try to detect mobile devices
3097
- // ============================
3098
-
3099
- isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
3100
-
3101
- // Detect if 'translate3d' support is available
3102
- // ============================================
3103
-
3104
- use3d: (function() {
3105
- var div = document.createElement("div");
3106
-
3107
- return (
3108
- window.getComputedStyle &&
3109
- window.getComputedStyle(div) &&
3110
- window.getComputedStyle(div).getPropertyValue("transform") &&
3111
- !(document.documentMode && document.documentMode < 11)
3112
- );
3113
- })(),
3114
-
3115
- // Helper function to get current visual state of an element
3116
- // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]
3117
- // =====================================================================
3118
-
3119
- getTranslate: function($el) {
3120
- var domRect;
3121
-
3122
- if (!$el || !$el.length) {
3123
- return false;
3124
- }
3125
-
3126
- domRect = $el[0].getBoundingClientRect();
3127
-
3128
- return {
3129
- top: domRect.top || 0,
3130
- left: domRect.left || 0,
3131
- width: domRect.width,
3132
- height: domRect.height,
3133
- opacity: parseFloat($el.css("opacity"))
3134
- };
3135
- },
3136
-
3137
- // Shortcut for setting "translate3d" properties for element
3138
- // Can set be used to set opacity, too
3139
- // ========================================================
3140
-
3141
- setTranslate: function($el, props) {
3142
- var str = "",
3143
- css = {};
3144
-
3145
- if (!$el || !props) {
3146
- return;
3147
- }
3148
-
3149
- if (props.left !== undefined || props.top !== undefined) {
3150
- str =
3151
- (props.left === undefined ? $el.position().left : props.left) +
3152
- "px, " +
3153
- (props.top === undefined ? $el.position().top : props.top) +
3154
- "px";
3155
-
3156
- if (this.use3d) {
3157
- str = "translate3d(" + str + ", 0px)";
3158
- } else {
3159
- str = "translate(" + str + ")";
3160
- }
3161
- }
3162
-
3163
- if (props.scaleX !== undefined && props.scaleY !== undefined) {
3164
- str += " scale(" + props.scaleX + ", " + props.scaleY + ")";
3165
- } else if (props.scaleX !== undefined) {
3166
- str += " scaleX(" + props.scaleX + ")";
3167
- }
3168
-
3169
- if (str.length) {
3170
- css.transform = str;
3171
- }
3172
-
3173
- if (props.opacity !== undefined) {
3174
- css.opacity = props.opacity;
3175
- }
3176
-
3177
- if (props.width !== undefined) {
3178
- css.width = props.width;
3179
- }
3180
-
3181
- if (props.height !== undefined) {
3182
- css.height = props.height;
3183
- }
3184
-
3185
- return $el.css(css);
3186
- },
3187
-
3188
- // Simple CSS transition handler
3189
- // =============================
3190
-
3191
- animate: function($el, to, duration, callback, leaveAnimationName) {
3192
- var self = this,
3193
- from;
3194
-
3195
- if ($.isFunction(duration)) {
3196
- callback = duration;
3197
- duration = null;
3198
- }
3199
-
3200
- self.stop($el);
3201
-
3202
- from = self.getTranslate($el);
3203
-
3204
- $el.on(transitionEnd, function(e) {
3205
- // Skip events from child elements and z-index change
3206
- if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == "z-index")) {
3207
- return;
3208
- }
3209
-
3210
- self.stop($el);
3211
-
3212
- if ($.isNumeric(duration)) {
3213
- $el.css("transition-duration", "");
3214
- }
3215
-
3216
- if ($.isPlainObject(to)) {
3217
- if (to.scaleX !== undefined && to.scaleY !== undefined) {
3218
- self.setTranslate($el, {
3219
- top: to.top,
3220
- left: to.left,
3221
- width: from.width * to.scaleX,
3222
- height: from.height * to.scaleY,
3223
- scaleX: 1,
3224
- scaleY: 1
3225
- });
3226
- }
3227
- } else if (leaveAnimationName !== true) {
3228
- $el.removeClass(to);
3229
- }
3230
-
3231
- if ($.isFunction(callback)) {
3232
- callback(e);
3233
- }
3234
- });
3235
-
3236
- if ($.isNumeric(duration)) {
3237
- $el.css("transition-duration", duration + "ms");
3238
- }
3239
-
3240
- // Start animation by changing CSS properties or class name
3241
- if ($.isPlainObject(to)) {
3242
- if (to.scaleX !== undefined && to.scaleY !== undefined) {
3243
- delete to.width;
3244
- delete to.height;
3245
-
3246
- if ($el.parent().hasClass("fancybox-slide--image")) {
3247
- $el.parent().addClass("fancybox-is-scaling");
3248
- }
3249
- }
3250
-
3251
- $.fancybox.setTranslate($el, to);
3252
- } else {
3253
- $el.addClass(to);
3254
- }
3255
-
3256
- // Make sure that `transitionend` callback gets fired
3257
- $el.data(
3258
- "timer",
3259
- setTimeout(function() {
3260
- $el.trigger(transitionEnd);
3261
- }, duration + 33)
3262
- );
3263
- },
3264
-
3265
- stop: function($el, callCallback) {
3266
- if ($el && $el.length) {
3267
- clearTimeout($el.data("timer"));
3268
-
3269
- if (callCallback) {
3270
- $el.trigger(transitionEnd);
3271
- }
3272
-
3273
- $el.off(transitionEnd).css("transition-duration", "");
3274
-
3275
- $el.parent().removeClass("fancybox-is-scaling");
3276
- }
3277
- }
3278
- };
3279
-
3280
- // Default click handler for "fancyboxed" links
3281
- // ============================================
3282
-
3283
- function _run(e, opts) {
3284
- var items = [],
3285
- index = 0,
3286
- $target,
3287
- value,
3288
- instance;
3289
-
3290
- // Avoid opening multiple times
3291
- if (e && e.isDefaultPrevented()) {
3292
- return;
3293
- }
3294
-
3295
- e.preventDefault();
3296
-
3297
- opts = opts || {};
3298
-
3299
- if (e && e.data) {
3300
- opts = mergeOpts(e.data.options, opts);
3301
- }
3302
-
3303
- $target = opts.$target || $(e.currentTarget).trigger("blur");
3304
- instance = $.fancybox.getInstance();
3305
-
3306
- if (instance && instance.$trigger && instance.$trigger.is($target)) {
3307
- return;
3308
- }
3309
-
3310
- if (opts.selector) {
3311
- items = $(opts.selector);
3312
- } else {
3313
- // Get all related items and find index for clicked one
3314
- value = $target.attr("data-fancybox") || "";
3315
-
3316
- if (value) {
3317
- items = e.data ? e.data.items : [];
3318
- items = items.length ? items.filter('[data-fancybox="' + value + '"]') : $('[data-fancybox="' + value + '"]');
3319
- } else {
3320
- items = [$target];
3321
- }
3322
- }
3323
-
3324
- index = $(items).index($target);
3325
-
3326
- // Sometimes current item can not be found
3327
- if (index < 0) {
3328
- index = 0;
3329
- }
3330
-
3331
- instance = $.fancybox.open(items, opts, index);
3332
-
3333
- // Save last active element
3334
- instance.$trigger = $target;
3335
- }
3336
-
3337
- // Create a jQuery plugin
3338
- // ======================
3339
-
3340
- $.fn.fancybox = function(options) {
3341
- var selector;
3342
-
3343
- options = options || {};
3344
- selector = options.selector || false;
3345
-
3346
- if (selector) {
3347
- // Use body element instead of document so it executes first
3348
- $("body")
3349
- .off("click.fb-start", selector)
3350
- .on("click.fb-start", selector, {options: options}, _run);
3351
- } else {
3352
- this.off("click.fb-start").on(
3353
- "click.fb-start",
3354
- {
3355
- items: this,
3356
- options: options
3357
- },
3358
- _run
3359
- );
3360
- }
3361
-
3362
- return this;
3363
- };
3364
-
3365
- // Self initializing plugin for all elements having `data-fancybox` attribute
3366
- // ==========================================================================
3367
-
3368
- $D.on("click.fb-start", "[data-fancybox]", _run);
3369
-
3370
- // Enable "trigger elements"
3371
- // =========================
3372
-
3373
- $D.on("click.fb-start", "[data-fancybox-trigger]", function(e) {
3374
- $('[data-fancybox="' + $(this).attr("data-fancybox-trigger") + '"]')
3375
- .eq($(this).attr("data-fancybox-index") || 0)
3376
- .trigger("click.fb-start", {
3377
- $trigger: $(this)
3378
- });
3379
- });
3380
-
3381
- // Track focus event for better accessibility styling
3382
- // ==================================================
3383
- (function() {
3384
- var buttonStr = ".fancybox-button",
3385
- focusStr = "fancybox-focus",
3386
- $pressed = null;
3387
-
3388
- $D.on("mousedown mouseup focus blur", buttonStr, function(e) {
3389
- switch (e.type) {
3390
- case "mousedown":
3391
- $pressed = $(this);
3392
- break;
3393
- case "mouseup":
3394
- $pressed = null;
3395
- break;
3396
- case "focusin":
3397
- $(buttonStr).removeClass(focusStr);
3398
-
3399
- if (!$(this).is($pressed) && !$(this).is("[disabled]")) {
3400
- $(this).addClass(focusStr);
3401
- }
3402
- break;
3403
- case "focusout":
3404
- $(buttonStr).removeClass(focusStr);
3405
- break;
3406
- }
3407
- });
3408
- })();
3409
- })(window, document, jQuery);
3410
-
3411
- // ==========================================================================
3412
- //
3413
- // Media
3414
- // Adds additional media type support
3415
- //
3416
- // ==========================================================================
3417
- (function($) {
3418
- "use strict";
3419
-
3420
- // Object containing properties for each media type
3421
- var defaults = {
3422
- youtube: {
3423
- matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
3424
- params: {
3425
- autoplay: 1,
3426
- autohide: 1,
3427
- fs: 1,
3428
- rel: 0,
3429
- hd: 1,
3430
- wmode: "transparent",
3431
- enablejsapi: 1,
3432
- html5: 1
3433
- },
3434
- paramPlace: 8,
3435
- type: "iframe",
3436
- url: "//www.youtube-nocookie.com/embed/$4",
3437
- thumb: "//img.youtube.com/vi/$4/hqdefault.jpg"
3438
- },
3439
-
3440
- vimeo: {
3441
- matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
3442
- params: {
3443
- autoplay: 1,
3444
- hd: 1,
3445
- show_title: 1,
3446
- show_byline: 1,
3447
- show_portrait: 0,
3448
- fullscreen: 1
3449
- },
3450
- paramPlace: 3,
3451
- type: "iframe",
3452
- url: "//player.vimeo.com/video/$2"
3453
- },
3454
-
3455
- instagram: {
3456
- matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
3457
- type: "image",
3458
- url: "//$1/p/$2/media/?size=l"
3459
- },
3460
-
3461
- // Examples:
3462
- // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
3463
- // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z
3464
- // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en
3465
- // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572
3466
- gmap_place: {
3467
- matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
3468
- type: "iframe",
3469
- url: function(rez) {
3470
- return (
3471
- "//maps.google." +
3472
- rez[2] +
3473
- "/?ll=" +
3474
- (rez[9] ? rez[9] + "&z=" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\//, "&") : "") : rez[12] + "").replace(/\?/, "&") +
3475
- "&output=" +
3476
- (rez[12] && rez[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
3477
- );
3478
- }
3479
- },
3480
-
3481
- // Examples:
3482
- // https://www.google.com/maps/search/Empire+State+Building/
3483
- // https://www.google.com/maps/search/?api=1&query=centurylink+field
3484
- // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393
3485
- gmap_search: {
3486
- matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
3487
- type: "iframe",
3488
- url: function(rez) {
3489
- return "//maps.google." + rez[2] + "/maps?q=" + rez[5].replace("query=", "q=").replace("api=1", "") + "&output=embed";
3490
- }
3491
- }
3492
- };
3493
-
3494
- // Formats matching url to final form
3495
- var format = function(url, rez, params) {
3496
- if (!url) {
3497
- return;
3498
- }
3499
-
3500
- params = params || "";
3501
-
3502
- if ($.type(params) === "object") {
3503
- params = $.param(params, true);
3504
- }
3505
-
3506
- $.each(rez, function(key, value) {
3507
- url = url.replace("$" + key, value || "");
3508
- });
3509
-
3510
- if (params.length) {
3511
- url += (url.indexOf("?") > 0 ? "&" : "?") + params;
3512
- }
3513
-
3514
- return url;
3515
- };
3516
-
3517
- $(document).on("objectNeedsType.fb", function(e, instance, item) {
3518
- var url = item.src || "",
3519
- type = false,
3520
- media,
3521
- thumb,
3522
- rez,
3523
- params,
3524
- urlParams,
3525
- paramObj,
3526
- provider;
3527
-
3528
- media = $.extend(true, {}, defaults, item.opts.media);
3529
-
3530
- // Look for any matching media type
3531
- $.each(media, function(providerName, providerOpts) {
3532
- rez = url.match(providerOpts.matcher);
3533
-
3534
- if (!rez) {
3535
- return;
3536
- }
3537
-
3538
- type = providerOpts.type;
3539
- provider = providerName;
3540
- paramObj = {};
3541
-
3542
- if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {
3543
- urlParams = rez[providerOpts.paramPlace];
3544
-
3545
- if (urlParams[0] == "?") {
3546
- urlParams = urlParams.substring(1);
3547
- }
3548
-
3549
- urlParams = urlParams.split("&");
3550
-
3551
- for (var m = 0; m < urlParams.length; ++m) {
3552
- var p = urlParams[m].split("=", 2);
3553
-
3554
- if (p.length == 2) {
3555
- paramObj[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
3556
- }
3557
- }
3558
- }
3559
-
3560
- params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);
3561
-
3562
- url =
3563
- $.type(providerOpts.url) === "function" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);
3564
-
3565
- thumb =
3566
- $.type(providerOpts.thumb) === "function" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);
3567
-
3568
- if (providerName === "youtube") {
3569
- url = url.replace(/&t=((\d+)m)?(\d+)s/, function(match, p1, m, s) {
3570
- return "&start=" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));
3571
- });
3572
- } else if (providerName === "vimeo") {
3573
- url = url.replace("&%23", "#");
3574
- }
3575
-
3576
- return false;
3577
- });
3578
-
3579
- // If it is found, then change content type and update the url
3580
-
3581
- if (type) {
3582
- if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {
3583
- item.opts.thumb = thumb;
3584
- }
3585
-
3586
- if (type === "iframe") {
3587
- item.opts = $.extend(true, item.opts, {
3588
- iframe: {
3589
- preload: false,
3590
- attr: {
3591
- scrolling: "no"
3592
- }
3593
- }
3594
- });
3595
- }
3596
-
3597
- $.extend(item, {
3598
- type: type,
3599
- src: url,
3600
- origSrc: item.src,
3601
- contentSource: provider,
3602
- contentType: type === "image" ? "image" : provider == "gmap_place" || provider == "gmap_search" ? "map" : "video"
3603
- });
3604
- } else if (url) {
3605
- item.type = item.opts.defaultType;
3606
- }
3607
- });
3608
-
3609
- // Load YouTube/Video API on request to detect when video finished playing
3610
- var VideoAPILoader = {
3611
- youtube: {
3612
- src: "https://www.youtube.com/iframe_api",
3613
- class: "YT",
3614
- loading: false,
3615
- loaded: false
3616
- },
3617
-
3618
- vimeo: {
3619
- src: "https://player.vimeo.com/api/player.js",
3620
- class: "Vimeo",
3621
- loading: false,
3622
- loaded: false
3623
- },
3624
-
3625
- load: function(vendor) {
3626
- var _this = this,
3627
- script;
3628
-
3629
- if (this[vendor].loaded) {
3630
- setTimeout(function() {
3631
- _this.done(vendor);
3632
- });
3633
- return;
3634
- }
3635
-
3636
- if (this[vendor].loading) {
3637
- return;
3638
- }
3639
-
3640
- this[vendor].loading = true;
3641
-
3642
- script = document.createElement("script");
3643
- script.type = "text/javascript";
3644
- script.src = this[vendor].src;
3645
-
3646
- if (vendor === "youtube") {
3647
- window.onYouTubeIframeAPIReady = function() {
3648
- _this[vendor].loaded = true;
3649
- _this.done(vendor);
3650
- };
3651
- } else {
3652
- script.onload = function() {
3653
- _this[vendor].loaded = true;
3654
- _this.done(vendor);
3655
- };
3656
- }
3657
-
3658
- document.body.appendChild(script);
3659
- },
3660
- done: function(vendor) {
3661
- var instance, $el, player;
3662
-
3663
- if (vendor === "youtube") {
3664
- delete window.onYouTubeIframeAPIReady;
3665
- }
3666
-
3667
- instance = $.fancybox.getInstance();
3668
-
3669
- if (instance) {
3670
- $el = instance.current.$content.find("iframe");
3671
-
3672
- if (vendor === "youtube" && YT !== undefined && YT) {
3673
- player = new YT.Player($el.attr("id"), {
3674
- events: {
3675
- onStateChange: function(e) {
3676
- if (e.data == 0) {
3677
- instance.next();
3678
- }
3679
- }
3680
- }
3681
- });
3682
- } else if (vendor === "vimeo" && Vimeo !== undefined && Vimeo) {
3683
- player = new Vimeo.Player($el);
3684
-
3685
- player.on("ended", function() {
3686
- instance.next();
3687
- });
3688
- }
3689
- }
3690
- }
3691
- };
3692
-
3693
- $(document).on({
3694
- "afterShow.fb": function(e, instance, current) {
3695
- if (instance.group.length > 1 && (current.contentSource === "youtube" || current.contentSource === "vimeo")) {
3696
- VideoAPILoader.load(current.contentSource);
3697
- }
3698
- }
3699
- });
3700
- })(jQuery);
3701
-
3702
- // ==========================================================================
3703
- //
3704
- // Guestures
3705
- // Adds touch guestures, handles click and tap events
3706
- //
3707
- // ==========================================================================
3708
- (function(window, document, $) {
3709
- "use strict";
3710
-
3711
- var requestAFrame = (function() {
3712
- return (
3713
- window.requestAnimationFrame ||
3714
- window.webkitRequestAnimationFrame ||
3715
- window.mozRequestAnimationFrame ||
3716
- window.oRequestAnimationFrame ||
3717
- // if all else fails, use setTimeout
3718
- function(callback) {
3719
- return window.setTimeout(callback, 1000 / 60);
3720
- }
3721
- );
3722
- })();
3723
-
3724
- var cancelAFrame = (function() {
3725
- return (
3726
- window.cancelAnimationFrame ||
3727
- window.webkitCancelAnimationFrame ||
3728
- window.mozCancelAnimationFrame ||
3729
- window.oCancelAnimationFrame ||
3730
- function(id) {
3731
- window.clearTimeout(id);
3732
- }
3733
- );
3734
- })();
3735
-
3736
- var getPointerXY = function(e) {
3737
- var result = [];
3738
-
3739
- e = e.originalEvent || e || window.e;
3740
- e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];
3741
-
3742
- for (var key in e) {
3743
- if (e[key].pageX) {
3744
- result.push({
3745
- x: e[key].pageX,
3746
- y: e[key].pageY
3747
- });
3748
- } else if (e[key].clientX) {
3749
- result.push({
3750
- x: e[key].clientX,
3751
- y: e[key].clientY
3752
- });
3753
- }
3754
- }
3755
-
3756
- return result;
3757
- };
3758
-
3759
- var distance = function(point2, point1, what) {
3760
- if (!point1 || !point2) {
3761
- return 0;
3762
- }
3763
-
3764
- if (what === "x") {
3765
- return point2.x - point1.x;
3766
- } else if (what === "y") {
3767
- return point2.y - point1.y;
3768
- }
3769
-
3770
- return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));
3771
- };
3772
-
3773
- var isClickable = function($el) {
3774
- if (
3775
- $el.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') ||
3776
- $.isFunction($el.get(0).onclick) ||
3777
- $el.data("selectable")
3778
- ) {
3779
- return true;
3780
- }
3781
-
3782
- // Check for attributes like data-fancybox-next or data-fancybox-close
3783
- for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {
3784
- if (atts[i].nodeName.substr(0, 14) === "data-fancybox-") {
3785
- return true;
3786
- }
3787
- }
3788
-
3789
- return false;
3790
- };
3791
-
3792
- var hasScrollbars = function(el) {
3793
- var overflowY = window.getComputedStyle(el)["overflow-y"],
3794
- overflowX = window.getComputedStyle(el)["overflow-x"],
3795
- vertical = (overflowY === "scroll" || overflowY === "auto") && el.scrollHeight > el.clientHeight,
3796
- horizontal = (overflowX === "scroll" || overflowX === "auto") && el.scrollWidth > el.clientWidth;
3797
-
3798
- return vertical || horizontal;
3799
- };
3800
-
3801
- var isScrollable = function($el) {
3802
- var rez = false;
3803
-
3804
- while (true) {
3805
- rez = hasScrollbars($el.get(0));
3806
-
3807
- if (rez) {
3808
- break;
3809
- }
3810
-
3811
- $el = $el.parent();
3812
-
3813
- if (!$el.length || $el.hasClass("fancybox-stage") || $el.is("body")) {
3814
- break;
3815
- }
3816
- }
3817
-
3818
- return rez;
3819
- };
3820
-
3821
- var Guestures = function(instance) {
3822
- var self = this;
3823
-
3824
- self.instance = instance;
3825
-
3826
- self.$bg = instance.$refs.bg;
3827
- self.$stage = instance.$refs.stage;
3828
- self.$container = instance.$refs.container;
3829
-
3830
- self.destroy();
3831
-
3832
- self.$container.on("touchstart.fb.touch mousedown.fb.touch", $.proxy(self, "ontouchstart"));
3833
- };
3834
-
3835
- Guestures.prototype.destroy = function() {
3836
- var self = this;
3837
-
3838
- self.$container.off(".fb.touch");
3839
-
3840
- $(document).off(".fb.touch");
3841
-
3842
- if (self.requestId) {
3843
- cancelAFrame(self.requestId);
3844
- self.requestId = null;
3845
- }
3846
-
3847
- if (self.tapped) {
3848
- clearTimeout(self.tapped);
3849
- self.tapped = null;
3850
- }
3851
- };
3852
-
3853
- Guestures.prototype.ontouchstart = function(e) {
3854
- var self = this,
3855
- $target = $(e.target),
3856
- instance = self.instance,
3857
- current = instance.current,
3858
- $slide = current.$slide,
3859
- $content = current.$content,
3860
- isTouchDevice = e.type == "touchstart";
3861
-
3862
- // Do not respond to both (touch and mouse) events
3863
- if (isTouchDevice) {
3864
- self.$container.off("mousedown.fb.touch");
3865
- }
3866
-
3867
- // Ignore right click
3868
- if (e.originalEvent && e.originalEvent.button == 2) {
3869
- return;
3870
- }
3871
-
3872
- // Ignore taping on links, buttons, input elements
3873
- if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {
3874
- return;
3875
- }
3876
- // Ignore clicks on the scrollbar
3877
- if (!$target.is("img") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {
3878
- return;
3879
- }
3880
-
3881
- // Ignore clicks while zooming or closing
3882
- if (!current || instance.isAnimating || current.$slide.hasClass("fancybox-animated")) {
3883
- e.stopPropagation();
3884
- e.preventDefault();
3885
-
3886
- return;
3887
- }
3888
-
3889
- self.realPoints = self.startPoints = getPointerXY(e);
3890
-
3891
- if (!self.startPoints.length) {
3892
- return;
3893
- }
3894
-
3895
- // Allow other scripts to catch touch event if "touch" is set to false
3896
- if (current.touch) {
3897
- e.stopPropagation();
3898
- }
3899
-
3900
- self.startEvent = e;
3901
-
3902
- self.canTap = true;
3903
- self.$target = $target;
3904
- self.$content = $content;
3905
- self.opts = current.opts.touch;
3906
-
3907
- self.isPanning = false;
3908
- self.isSwiping = false;
3909
- self.isZooming = false;
3910
- self.isScrolling = false;
3911
- self.canPan = instance.canPan();
3912
-
3913
- self.startTime = new Date().getTime();
3914
- self.distanceX = self.distanceY = self.distance = 0;
3915
-
3916
- self.canvasWidth = Math.round($slide[0].clientWidth);
3917
- self.canvasHeight = Math.round($slide[0].clientHeight);
3918
-
3919
- self.contentLastPos = null;
3920
- self.contentStartPos = $.fancybox.getTranslate(self.$content) || {top: 0, left: 0};
3921
- self.sliderStartPos = $.fancybox.getTranslate($slide);
3922
-
3923
- // Since position will be absolute, but we need to make it relative to the stage
3924
- self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);
3925
-
3926
- self.sliderStartPos.top -= self.stagePos.top;
3927
- self.sliderStartPos.left -= self.stagePos.left;
3928
-
3929
- self.contentStartPos.top -= self.stagePos.top;
3930
- self.contentStartPos.left -= self.stagePos.left;
3931
-
3932
- $(document)
3933
- .off(".fb.touch")
3934
- .on(isTouchDevice ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", $.proxy(self, "ontouchend"))
3935
- .on(isTouchDevice ? "touchmove.fb.touch" : "mousemove.fb.touch", $.proxy(self, "ontouchmove"));
3936
-
3937
- if ($.fancybox.isMobile) {
3938
- document.addEventListener("scroll", self.onscroll, true);
3939
- }
3940
-
3941
- // Skip if clicked outside the sliding area
3942
- if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {
3943
- if ($target.is(".fancybox-image")) {
3944
- e.preventDefault();
3945
- }
3946
-
3947
- if (!($.fancybox.isMobile && $target.hasClass("fancybox-caption"))) {
3948
- return;
3949
- }
3950
- }
3951
-
3952
- self.isScrollable = isScrollable($target) || isScrollable($target.parent());
3953
-
3954
- // Check if element is scrollable and try to prevent default behavior (scrolling)
3955
- if (!($.fancybox.isMobile && self.isScrollable)) {
3956
- e.preventDefault();
3957
- }
3958
-
3959
- // One finger or mouse click - swipe or pan an image
3960
- if (self.startPoints.length === 1 || current.hasError) {
3961
- if (self.canPan) {
3962
- $.fancybox.stop(self.$content);
3963
-
3964
- self.isPanning = true;
3965
- } else {
3966
- self.isSwiping = true;
3967
- }
3968
-
3969
- self.$container.addClass("fancybox-is-grabbing");
3970
- }
3971
-
3972
- // Two fingers - zoom image
3973
- if (self.startPoints.length === 2 && current.type === "image" && (current.isLoaded || current.$ghost)) {
3974
- self.canTap = false;
3975
- self.isSwiping = false;
3976
- self.isPanning = false;
3977
-
3978
- self.isZooming = true;
3979
-
3980
- $.fancybox.stop(self.$content);
3981
-
3982
- self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();
3983
- self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();
3984
-
3985
- self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;
3986
- self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;
3987
-
3988
- self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);
3989
- }
3990
- };
3991
-
3992
- Guestures.prototype.onscroll = function(e) {
3993
- var self = this;
3994
-
3995
- self.isScrolling = true;
3996
-
3997
- document.removeEventListener("scroll", self.onscroll, true);
3998
- };
3999
-
4000
- Guestures.prototype.ontouchmove = function(e) {
4001
- var self = this;
4002
-
4003
- // Make sure user has not released over iframe or disabled element
4004
- if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {
4005
- self.ontouchend(e);
4006
- return;
4007
- }
4008
-
4009
- if (self.isScrolling) {
4010
- self.canTap = false;
4011
- return;
4012
- }
4013
-
4014
- self.newPoints = getPointerXY(e);
4015
-
4016
- if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {
4017
- return;
4018
- }
4019
-
4020
- if (!(self.isSwiping && self.isSwiping === true)) {
4021
- e.preventDefault();
4022
- }
4023
-
4024
- self.distanceX = distance(self.newPoints[0], self.startPoints[0], "x");
4025
- self.distanceY = distance(self.newPoints[0], self.startPoints[0], "y");
4026
-
4027
- self.distance = distance(self.newPoints[0], self.startPoints[0]);
4028
-
4029
- // Skip false ontouchmove events (Chrome)
4030
- if (self.distance > 0) {
4031
- if (self.isSwiping) {
4032
- self.onSwipe(e);
4033
- } else if (self.isPanning) {
4034
- self.onPan();
4035
- } else if (self.isZooming) {
4036
- self.onZoom();
4037
- }
4038
- }
4039
- };
4040
-
4041
- Guestures.prototype.onSwipe = function(e) {
4042
- var self = this,
4043
- instance = self.instance,
4044
- swiping = self.isSwiping,
4045
- left = self.sliderStartPos.left || 0,
4046
- angle;
4047
-
4048
- // If direction is not yet determined
4049
- if (swiping === true) {
4050
- // We need at least 10px distance to correctly calculate an angle
4051
- if (Math.abs(self.distance) > 10) {
4052
- self.canTap = false;
4053
-
4054
- if (instance.group.length < 2 && self.opts.vertical) {
4055
- self.isSwiping = "y";
4056
- } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === "auto" && $(window).width() > 800)) {
4057
- self.isSwiping = "x";
4058
- } else {
4059
- angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);
4060
-
4061
- self.isSwiping = angle > 45 && angle < 135 ? "y" : "x";
4062
- }
4063
-
4064
- if (self.isSwiping === "y" && $.fancybox.isMobile && self.isScrollable) {
4065
- self.isScrolling = true;
4066
-
4067
- return;
4068
- }
4069
-
4070
- instance.isDragging = self.isSwiping;
4071
-
4072
- // Reset points to avoid jumping, because we dropped first swipes to calculate the angle
4073
- self.startPoints = self.newPoints;
4074
-
4075
- $.each(instance.slides, function(index, slide) {
4076
- var slidePos, stagePos;
4077
-
4078
- $.fancybox.stop(slide.$slide);
4079
-
4080
- slidePos = $.fancybox.getTranslate(slide.$slide);
4081
- stagePos = $.fancybox.getTranslate(instance.$refs.stage);
4082
-
4083
- slide.$slide
4084
- .css({
4085
- transform: "",
4086
- opacity: "",
4087
- "transition-duration": ""
4088
- })
4089
- .removeClass("fancybox-animated")
4090
- .removeClass(function(index, className) {
4091
- return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
4092
- });
4093
-
4094
- if (slide.pos === instance.current.pos) {
4095
- self.sliderStartPos.top = slidePos.top - stagePos.top;
4096
- self.sliderStartPos.left = slidePos.left - stagePos.left;
4097
- }
4098
-
4099
- $.fancybox.setTranslate(slide.$slide, {
4100
- top: slidePos.top - stagePos.top,
4101
- left: slidePos.left - stagePos.left
4102
- });
4103
- });
4104
-
4105
- // Stop slideshow
4106
- if (instance.SlideShow && instance.SlideShow.isActive) {
4107
- instance.SlideShow.stop();
4108
- }
4109
- }
4110
-
4111
- return;
4112
- }
4113
-
4114
- // Sticky edges
4115
- if (swiping == "x") {
4116
- if (
4117
- self.distanceX > 0 &&
4118
- (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))
4119
- ) {
4120
- left = left + Math.pow(self.distanceX, 0.8);
4121
- } else if (
4122
- self.distanceX < 0 &&
4123
- (self.instance.group.length < 2 ||
4124
- (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))
4125
- ) {
4126
- left = left - Math.pow(-self.distanceX, 0.8);
4127
- } else {
4128
- left = left + self.distanceX;
4129
- }
4130
- }
4131
-
4132
- self.sliderLastPos = {
4133
- top: swiping == "x" ? 0 : self.sliderStartPos.top + self.distanceY,
4134
- left: left
4135
- };
4136
-
4137
- if (self.requestId) {
4138
- cancelAFrame(self.requestId);
4139
-
4140
- self.requestId = null;
4141
- }
4142
-
4143
- self.requestId = requestAFrame(function() {
4144
- if (self.sliderLastPos) {
4145
- $.each(self.instance.slides, function(index, slide) {
4146
- var pos = slide.pos - self.instance.currPos;
4147
-
4148
- $.fancybox.setTranslate(slide.$slide, {
4149
- top: self.sliderLastPos.top,
4150
- left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter
4151
- });
4152
- });
4153
-
4154
- self.$container.addClass("fancybox-is-sliding");
4155
- }
4156
- });
4157
- };
4158
-
4159
- Guestures.prototype.onPan = function() {
4160
- var self = this;
4161
-
4162
- // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)
4163
- if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {
4164
- self.startPoints = self.newPoints;
4165
- return;
4166
- }
4167
-
4168
- self.canTap = false;
4169
-
4170
- self.contentLastPos = self.limitMovement();
4171
-
4172
- if (self.requestId) {
4173
- cancelAFrame(self.requestId);
4174
- }
4175
-
4176
- self.requestId = requestAFrame(function() {
4177
- $.fancybox.setTranslate(self.$content, self.contentLastPos);
4178
- });
4179
- };
4180
-
4181
- // Make panning sticky to the edges
4182
- Guestures.prototype.limitMovement = function() {
4183
- var self = this;
4184
-
4185
- var canvasWidth = self.canvasWidth;
4186
- var canvasHeight = self.canvasHeight;
4187
-
4188
- var distanceX = self.distanceX;
4189
- var distanceY = self.distanceY;
4190
-
4191
- var contentStartPos = self.contentStartPos;
4192
-
4193
- var currentOffsetX = contentStartPos.left;
4194
- var currentOffsetY = contentStartPos.top;
4195
-
4196
- var currentWidth = contentStartPos.width;
4197
- var currentHeight = contentStartPos.height;
4198
-
4199
- var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;
4200
-
4201
- if (currentWidth > canvasWidth) {
4202
- newOffsetX = currentOffsetX + distanceX;
4203
- } else {
4204
- newOffsetX = currentOffsetX;
4205
- }
4206
-
4207
- newOffsetY = currentOffsetY + distanceY;
4208
-
4209
- // Slow down proportionally to traveled distance
4210
- minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);
4211
- minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);
4212
-
4213
- maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);
4214
- maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);
4215
-
4216
- // ->
4217
- if (distanceX > 0 && newOffsetX > minTranslateX) {
4218
- newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;
4219
- }
4220
-
4221
- // <-
4222
- if (distanceX < 0 && newOffsetX < maxTranslateX) {
4223
- newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;
4224
- }
4225
-
4226
- // \/
4227
- if (distanceY > 0 && newOffsetY > minTranslateY) {
4228
- newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;
4229
- }
4230
-
4231
- // /\
4232
- if (distanceY < 0 && newOffsetY < maxTranslateY) {
4233
- newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;
4234
- }
4235
-
4236
- return {
4237
- top: newOffsetY,
4238
- left: newOffsetX
4239
- };
4240
- };
4241
-
4242
- Guestures.prototype.limitPosition = function(newOffsetX, newOffsetY, newWidth, newHeight) {
4243
- var self = this;
4244
-
4245
- var canvasWidth = self.canvasWidth;
4246
- var canvasHeight = self.canvasHeight;
4247
-
4248
- if (newWidth > canvasWidth) {
4249
- newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;
4250
- newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;
4251
- } else {
4252
- // Center horizontally
4253
- newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);
4254
- }
4255
-
4256
- if (newHeight > canvasHeight) {
4257
- newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;
4258
- newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;
4259
- } else {
4260
- // Center vertically
4261
- newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);
4262
- }
4263
-
4264
- return {
4265
- top: newOffsetY,
4266
- left: newOffsetX
4267
- };
4268
- };
4269
-
4270
- Guestures.prototype.onZoom = function() {
4271
- var self = this;
4272
-
4273
- // Calculate current distance between points to get pinch ratio and new width and height
4274
- var contentStartPos = self.contentStartPos;
4275
-
4276
- var currentWidth = contentStartPos.width;
4277
- var currentHeight = contentStartPos.height;
4278
-
4279
- var currentOffsetX = contentStartPos.left;
4280
- var currentOffsetY = contentStartPos.top;
4281
-
4282
- var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);
4283
-
4284
- var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;
4285
-
4286
- var newWidth = Math.floor(currentWidth * pinchRatio);
4287
- var newHeight = Math.floor(currentHeight * pinchRatio);
4288
-
4289
- // This is the translation due to pinch-zooming
4290
- var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;
4291
- var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;
4292
-
4293
- // Point between the two touches
4294
- var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();
4295
- var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();
4296
-
4297
- // And this is the translation due to translation of the centerpoint
4298
- // between the two fingers
4299
- var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;
4300
- var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;
4301
-
4302
- // The new offset is the old/current one plus the total translation
4303
- var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);
4304
- var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);
4305
-
4306
- var newPos = {
4307
- top: newOffsetY,
4308
- left: newOffsetX,
4309
- scaleX: pinchRatio,
4310
- scaleY: pinchRatio
4311
- };
4312
-
4313
- self.canTap = false;
4314
-
4315
- self.newWidth = newWidth;
4316
- self.newHeight = newHeight;
4317
-
4318
- self.contentLastPos = newPos;
4319
-
4320
- if (self.requestId) {
4321
- cancelAFrame(self.requestId);
4322
- }
4323
-
4324
- self.requestId = requestAFrame(function() {
4325
- $.fancybox.setTranslate(self.$content, self.contentLastPos);
4326
- });
4327
- };
4328
-
4329
- Guestures.prototype.ontouchend = function(e) {
4330
- var self = this;
4331
-
4332
- var swiping = self.isSwiping;
4333
- var panning = self.isPanning;
4334
- var zooming = self.isZooming;
4335
- var scrolling = self.isScrolling;
4336
-
4337
- self.endPoints = getPointerXY(e);
4338
- self.dMs = Math.max(new Date().getTime() - self.startTime, 1);
4339
-
4340
- self.$container.removeClass("fancybox-is-grabbing");
4341
-
4342
- $(document).off(".fb.touch");
4343
-
4344
- document.removeEventListener("scroll", self.onscroll, true);
4345
-
4346
- if (self.requestId) {
4347
- cancelAFrame(self.requestId);
4348
-
4349
- self.requestId = null;
4350
- }
4351
-
4352
- self.isSwiping = false;
4353
- self.isPanning = false;
4354
- self.isZooming = false;
4355
- self.isScrolling = false;
4356
-
4357
- self.instance.isDragging = false;
4358
-
4359
- if (self.canTap) {
4360
- return self.onTap(e);
4361
- }
4362
-
4363
- self.speed = 100;
4364
-
4365
- // Speed in px/ms
4366
- self.velocityX = (self.distanceX / self.dMs) * 0.5;
4367
- self.velocityY = (self.distanceY / self.dMs) * 0.5;
4368
-
4369
- if (panning) {
4370
- self.endPanning();
4371
- } else if (zooming) {
4372
- self.endZooming();
4373
- } else {
4374
- self.endSwiping(swiping, scrolling);
4375
- }
4376
-
4377
- return;
4378
- };
4379
-
4380
- Guestures.prototype.endSwiping = function(swiping, scrolling) {
4381
- var self = this,
4382
- ret = false,
4383
- len = self.instance.group.length,
4384
- distanceX = Math.abs(self.distanceX),
4385
- canAdvance = swiping == "x" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),
4386
- speedX = 300;
4387
-
4388
- self.sliderLastPos = null;
4389
-
4390
- // Close if swiped vertically / navigate if horizontally
4391
- if (swiping == "y" && !scrolling && Math.abs(self.distanceY) > 50) {
4392
- // Continue vertical movement
4393
- $.fancybox.animate(
4394
- self.instance.current.$slide,
4395
- {
4396
- top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,
4397
- opacity: 0
4398
- },
4399
- 200
4400
- );
4401
- ret = self.instance.close(true, 250);
4402
- } else if (canAdvance && self.distanceX > 0) {
4403
- ret = self.instance.previous(speedX);
4404
- } else if (canAdvance && self.distanceX < 0) {
4405
- ret = self.instance.next(speedX);
4406
- }
4407
-
4408
- if (ret === false && (swiping == "x" || swiping == "y")) {
4409
- self.instance.centerSlide(200);
4410
- }
4411
-
4412
- self.$container.removeClass("fancybox-is-sliding");
4413
- };
4414
-
4415
- // Limit panning from edges
4416
- // ========================
4417
- Guestures.prototype.endPanning = function() {
4418
- var self = this,
4419
- newOffsetX,
4420
- newOffsetY,
4421
- newPos;
4422
-
4423
- if (!self.contentLastPos) {
4424
- return;
4425
- }
4426
-
4427
- if (self.opts.momentum === false || self.dMs > 350) {
4428
- newOffsetX = self.contentLastPos.left;
4429
- newOffsetY = self.contentLastPos.top;
4430
- } else {
4431
- // Continue movement
4432
- newOffsetX = self.contentLastPos.left + self.velocityX * 500;
4433
- newOffsetY = self.contentLastPos.top + self.velocityY * 500;
4434
- }
4435
-
4436
- newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);
4437
-
4438
- newPos.width = self.contentStartPos.width;
4439
- newPos.height = self.contentStartPos.height;
4440
-
4441
- $.fancybox.animate(self.$content, newPos, 330);
4442
- };
4443
-
4444
- Guestures.prototype.endZooming = function() {
4445
- var self = this;
4446
-
4447
- var current = self.instance.current;
4448
-
4449
- var newOffsetX, newOffsetY, newPos, reset;
4450
-
4451
- var newWidth = self.newWidth;
4452
- var newHeight = self.newHeight;
4453
-
4454
- if (!self.contentLastPos) {
4455
- return;
4456
- }
4457
-
4458
- newOffsetX = self.contentLastPos.left;
4459
- newOffsetY = self.contentLastPos.top;
4460
-
4461
- reset = {
4462
- top: newOffsetY,
4463
- left: newOffsetX,
4464
- width: newWidth,
4465
- height: newHeight,
4466
- scaleX: 1,
4467
- scaleY: 1
4468
- };
4469
-
4470
- // Reset scalex/scaleY values; this helps for perfomance and does not break animation
4471
- $.fancybox.setTranslate(self.$content, reset);
4472
-
4473
- if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {
4474
- self.instance.scaleToFit(150);
4475
- } else if (newWidth > current.width || newHeight > current.height) {
4476
- self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);
4477
- } else {
4478
- newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);
4479
-
4480
- $.fancybox.animate(self.$content, newPos, 150);
4481
- }
4482
- };
4483
-
4484
- Guestures.prototype.onTap = function(e) {
4485
- var self = this;
4486
- var $target = $(e.target);
4487
-
4488
- var instance = self.instance;
4489
- var current = instance.current;
4490
-
4491
- var endPoints = (e && getPointerXY(e)) || self.startPoints;
4492
-
4493
- var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;
4494
- var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;
4495
-
4496
- var where;
4497
-
4498
- var process = function(prefix) {
4499
- var action = current.opts[prefix];
4500
-
4501
- if ($.isFunction(action)) {
4502
- action = action.apply(instance, [current, e]);
4503
- }
4504
-
4505
- if (!action) {
4506
- return;
4507
- }
4508
-
4509
- switch (action) {
4510
- case "close":
4511
- instance.close(self.startEvent);
4512
-
4513
- break;
4514
-
4515
- case "toggleControls":
4516
- instance.toggleControls();
4517
-
4518
- break;
4519
-
4520
- case "next":
4521
- instance.next();
4522
-
4523
- break;
4524
-
4525
- case "nextOrClose":
4526
- if (instance.group.length > 1) {
4527
- instance.next();
4528
- } else {
4529
- instance.close(self.startEvent);
4530
- }
4531
-
4532
- break;
4533
-
4534
- case "zoom":
4535
- if (current.type == "image" && (current.isLoaded || current.$ghost)) {
4536
- if (instance.canPan()) {
4537
- instance.scaleToFit();
4538
- } else if (instance.isScaledDown()) {
4539
- instance.scaleToActual(tapX, tapY);
4540
- } else if (instance.group.length < 2) {
4541
- instance.close(self.startEvent);
4542
- }
4543
- }
4544
-
4545
- break;
4546
- }
4547
- };
4548
-
4549
- // Ignore right click
4550
- if (e.originalEvent && e.originalEvent.button == 2) {
4551
- return;
4552
- }
4553
-
4554
- // Skip if clicked on the scrollbar
4555
- if (!$target.is("img") && tapX > $target[0].clientWidth + $target.offset().left) {
4556
- return;
4557
- }
4558
-
4559
- // Check where is clicked
4560
- if ($target.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) {
4561
- where = "Outside";
4562
- } else if ($target.is(".fancybox-slide")) {
4563
- where = "Slide";
4564
- } else if (
4565
- instance.current.$content &&
4566
- instance.current.$content
4567
- .find($target)
4568
- .addBack()
4569
- .filter($target).length
4570
- ) {
4571
- where = "Content";
4572
- } else {
4573
- return;
4574
- }
4575
-
4576
- // Check if this is a double tap
4577
- if (self.tapped) {
4578
- // Stop previously created single tap
4579
- clearTimeout(self.tapped);
4580
- self.tapped = null;
4581
-
4582
- // Skip if distance between taps is too big
4583
- if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {
4584
- return this;
4585
- }
4586
-
4587
- // OK, now we assume that this is a double-tap
4588
- process("dblclick" + where);
4589
- } else {
4590
- // Single tap will be processed if user has not clicked second time within 300ms
4591
- // or there is no need to wait for double-tap
4592
- self.tapX = tapX;
4593
- self.tapY = tapY;
4594
-
4595
- if (current.opts["dblclick" + where] && current.opts["dblclick" + where] !== current.opts["click" + where]) {
4596
- self.tapped = setTimeout(function() {
4597
- self.tapped = null;
4598
-
4599
- if (!instance.isAnimating) {
4600
- process("click" + where);
4601
- }
4602
- }, 500);
4603
- } else {
4604
- process("click" + where);
4605
- }
4606
- }
4607
-
4608
- return this;
4609
- };
4610
-
4611
- $(document)
4612
- .on("onActivate.fb", function(e, instance) {
4613
- if (instance && !instance.Guestures) {
4614
- instance.Guestures = new Guestures(instance);
4615
- }
4616
- })
4617
- .on("beforeClose.fb", function(e, instance) {
4618
- if (instance && instance.Guestures) {
4619
- instance.Guestures.destroy();
4620
- }
4621
- });
4622
- })(window, document, jQuery);
4623
-
4624
- // ==========================================================================
4625
- //
4626
- // SlideShow
4627
- // Enables slideshow functionality
4628
- //
4629
- // Example of usage:
4630
- // $.fancybox.getInstance().SlideShow.start()
4631
- //
4632
- // ==========================================================================
4633
- (function(document, $) {
4634
- "use strict";
4635
-
4636
- $.extend(true, $.fancybox.defaults, {
4637
- btnTpl: {
4638
- slideShow:
4639
- '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}">' +
4640
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg>' +
4641
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg>' +
4642
- "</button>"
4643
- },
4644
- slideShow: {
4645
- autoStart: false,
4646
- speed: 3000,
4647
- progress: true
4648
- }
4649
- });
4650
-
4651
- var SlideShow = function(instance) {
4652
- this.instance = instance;
4653
- this.init();
4654
- };
4655
-
4656
- $.extend(SlideShow.prototype, {
4657
- timer: null,
4658
- isActive: false,
4659
- $button: null,
4660
-
4661
- init: function() {
4662
- var self = this,
4663
- instance = self.instance,
4664
- opts = instance.group[instance.currIndex].opts.slideShow;
4665
-
4666
- self.$button = instance.$refs.toolbar.find("[data-fancybox-play]").on("click", function() {
4667
- self.toggle();
4668
- });
4669
-
4670
- if (instance.group.length < 2 || !opts) {
4671
- self.$button.hide();
4672
- } else if (opts.progress) {
4673
- self.$progress = $('<div class="fancybox-progress"></div>').appendTo(instance.$refs.inner);
4674
- }
4675
- },
4676
-
4677
- set: function(force) {
4678
- var self = this,
4679
- instance = self.instance,
4680
- current = instance.current;
4681
-
4682
- // Check if reached last element
4683
- if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {
4684
- if (self.isActive && current.contentType !== "video") {
4685
- if (self.$progress) {
4686
- $.fancybox.animate(self.$progress.show(), {scaleX: 1}, current.opts.slideShow.speed);
4687
- }
4688
-
4689
- self.timer = setTimeout(function() {
4690
- instance.jumpTo((instance.currIndex + 1) % instance.group.length);
4691
- }, current.opts.slideShow.speed);
4692
- }
4693
- } else {
4694
- self.stop();
4695
- instance.idleSecondsCounter = 0;
4696
- instance.showControls();
4697
- }
4698
- },
4699
-
4700
- clear: function() {
4701
- var self = this;
4702
-
4703
- clearTimeout(self.timer);
4704
-
4705
- self.timer = null;
4706
-
4707
- if (self.$progress) {
4708
- self.$progress.removeAttr("style").hide();
4709
- }
4710
- },
4711
-
4712
- start: function() {
4713
- var self = this,
4714
- current = self.instance.current;
4715
-
4716
- if (current) {
4717
- self.$button
4718
- .attr("title", current.opts.i18n[current.opts.lang].PLAY_STOP)
4719
- .removeClass("fancybox-button--play")
4720
- .addClass("fancybox-button--pause");
4721
-
4722
- self.isActive = true;
4723
-
4724
- if (current.isComplete) {
4725
- self.set(true);
4726
- }
4727
-
4728
- self.instance.trigger("onSlideShowChange", true);
4729
- }
4730
- },
4731
-
4732
- stop: function() {
4733
- var self = this,
4734
- current = self.instance.current;
4735
-
4736
- self.clear();
4737
-
4738
- self.$button
4739
- .attr("title", current.opts.i18n[current.opts.lang].PLAY_START)
4740
- .removeClass("fancybox-button--pause")
4741
- .addClass("fancybox-button--play");
4742
-
4743
- self.isActive = false;
4744
-
4745
- self.instance.trigger("onSlideShowChange", false);
4746
-
4747
- if (self.$progress) {
4748
- self.$progress.removeAttr("style").hide();
4749
- }
4750
- },
4751
-
4752
- toggle: function() {
4753
- var self = this;
4754
-
4755
- if (self.isActive) {
4756
- self.stop();
4757
- } else {
4758
- self.start();
4759
- }
4760
- }
4761
- });
4762
-
4763
- $(document).on({
4764
- "onInit.fb": function(e, instance) {
4765
- if (instance && !instance.SlideShow) {
4766
- instance.SlideShow = new SlideShow(instance);
4767
- }
4768
- },
4769
-
4770
- "beforeShow.fb": function(e, instance, current, firstRun) {
4771
- var SlideShow = instance && instance.SlideShow;
4772
-
4773
- if (firstRun) {
4774
- if (SlideShow && current.opts.slideShow.autoStart) {
4775
- SlideShow.start();
4776
- }
4777
- } else if (SlideShow && SlideShow.isActive) {
4778
- SlideShow.clear();
4779
- }
4780
- },
4781
-
4782
- "afterShow.fb": function(e, instance, current) {
4783
- var SlideShow = instance && instance.SlideShow;
4784
-
4785
- if (SlideShow && SlideShow.isActive) {
4786
- SlideShow.set();
4787
- }
4788
- },
4789
-
4790
- "afterKeydown.fb": function(e, instance, current, keypress, keycode) {
4791
- var SlideShow = instance && instance.SlideShow;
4792
-
4793
- // "P" or Spacebar
4794
- if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is("button,a,input")) {
4795
- keypress.preventDefault();
4796
-
4797
- SlideShow.toggle();
4798
- }
4799
- },
4800
-
4801
- "beforeClose.fb onDeactivate.fb": function(e, instance) {
4802
- var SlideShow = instance && instance.SlideShow;
4803
-
4804
- if (SlideShow) {
4805
- SlideShow.stop();
4806
- }
4807
- }
4808
- });
4809
-
4810
- // Page Visibility API to pause slideshow when window is not active
4811
- $(document).on("visibilitychange", function() {
4812
- var instance = $.fancybox.getInstance(),
4813
- SlideShow = instance && instance.SlideShow;
4814
-
4815
- if (SlideShow && SlideShow.isActive) {
4816
- if (document.hidden) {
4817
- SlideShow.clear();
4818
- } else {
4819
- SlideShow.set();
4820
- }
4821
- }
4822
- });
4823
- })(document, jQuery);
4824
-
4825
- // ==========================================================================
4826
- //
4827
- // FullScreen
4828
- // Adds fullscreen functionality
4829
- //
4830
- // ==========================================================================
4831
- (function(document, $) {
4832
- "use strict";
4833
-
4834
- // Collection of methods supported by user browser
4835
- var fn = (function() {
4836
- var fnMap = [
4837
- ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
4838
- // new WebKit
4839
- [
4840
- "webkitRequestFullscreen",
4841
- "webkitExitFullscreen",
4842
- "webkitFullscreenElement",
4843
- "webkitFullscreenEnabled",
4844
- "webkitfullscreenchange",
4845
- "webkitfullscreenerror"
4846
- ],
4847
- // old WebKit (Safari 5.1)
4848
- [
4849
- "webkitRequestFullScreen",
4850
- "webkitCancelFullScreen",
4851
- "webkitCurrentFullScreenElement",
4852
- "webkitCancelFullScreen",
4853
- "webkitfullscreenchange",
4854
- "webkitfullscreenerror"
4855
- ],
4856
- [
4857
- "mozRequestFullScreen",
4858
- "mozCancelFullScreen",
4859
- "mozFullScreenElement",
4860
- "mozFullScreenEnabled",
4861
- "mozfullscreenchange",
4862
- "mozfullscreenerror"
4863
- ],
4864
- ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
4865
- ];
4866
-
4867
- var ret = {};
4868
-
4869
- for (var i = 0; i < fnMap.length; i++) {
4870
- var val = fnMap[i];
4871
-
4872
- if (val && val[1] in document) {
4873
- for (var j = 0; j < val.length; j++) {
4874
- ret[fnMap[0][j]] = val[j];
4875
- }
4876
-
4877
- return ret;
4878
- }
4879
- }
4880
-
4881
- return false;
4882
- })();
4883
-
4884
- if (fn) {
4885
- var FullScreen = {
4886
- request: function(elem) {
4887
- elem = elem || document.documentElement;
4888
-
4889
- elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);
4890
- },
4891
- exit: function() {
4892
- document[fn.exitFullscreen]();
4893
- },
4894
- toggle: function(elem) {
4895
- elem = elem || document.documentElement;
4896
-
4897
- if (this.isFullscreen()) {
4898
- this.exit();
4899
- } else {
4900
- this.request(elem);
4901
- }
4902
- },
4903
- isFullscreen: function() {
4904
- return Boolean(document[fn.fullscreenElement]);
4905
- },
4906
- enabled: function() {
4907
- return Boolean(document[fn.fullscreenEnabled]);
4908
- }
4909
- };
4910
-
4911
- $.extend(true, $.fancybox.defaults, {
4912
- btnTpl: {
4913
- fullScreen:
4914
- '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}">' +
4915
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg>' +
4916
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg>' +
4917
- "</button>"
4918
- },
4919
- fullScreen: {
4920
- autoStart: false
4921
- }
4922
- });
4923
-
4924
- $(document).on(fn.fullscreenchange, function() {
4925
- var isFullscreen = FullScreen.isFullscreen(),
4926
- instance = $.fancybox.getInstance();
4927
-
4928
- if (instance) {
4929
- // If image is zooming, then force to stop and reposition properly
4930
- if (instance.current && instance.current.type === "image" && instance.isAnimating) {
4931
- instance.current.$content.css("transition", "none");
4932
-
4933
- instance.isAnimating = false;
4934
-
4935
- instance.update(true, true, 0);
4936
- }
4937
-
4938
- instance.trigger("onFullscreenChange", isFullscreen);
4939
-
4940
- instance.$refs.container.toggleClass("fancybox-is-fullscreen", isFullscreen);
4941
-
4942
- instance.$refs.toolbar
4943
- .find("[data-fancybox-fullscreen]")
4944
- .toggleClass("fancybox-button--fsenter", !isFullscreen)
4945
- .toggleClass("fancybox-button--fsexit", isFullscreen);
4946
- }
4947
- });
4948
- }
4949
-
4950
- $(document).on({
4951
- "onInit.fb": function(e, instance) {
4952
- var $container;
4953
-
4954
- if (!fn) {
4955
- instance.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();
4956
-
4957
- return;
4958
- }
4959
-
4960
- if (instance && instance.group[instance.currIndex].opts.fullScreen) {
4961
- $container = instance.$refs.container;
4962
-
4963
- $container.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function(e) {
4964
- e.stopPropagation();
4965
- e.preventDefault();
4966
-
4967
- FullScreen.toggle();
4968
- });
4969
-
4970
- if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {
4971
- FullScreen.request();
4972
- }
4973
-
4974
- // Expose API
4975
- instance.FullScreen = FullScreen;
4976
- } else if (instance) {
4977
- instance.$refs.toolbar.find("[data-fancybox-fullscreen]").hide();
4978
- }
4979
- },
4980
-
4981
- "afterKeydown.fb": function(e, instance, current, keypress, keycode) {
4982
- // "F"
4983
- if (instance && instance.FullScreen && keycode === 70) {
4984
- keypress.preventDefault();
4985
-
4986
- instance.FullScreen.toggle();
4987
- }
4988
- },
4989
-
4990
- "beforeClose.fb": function(e, instance) {
4991
- if (instance && instance.FullScreen && instance.$refs.container.hasClass("fancybox-is-fullscreen")) {
4992
- FullScreen.exit();
4993
- }
4994
- }
4995
- });
4996
- })(document, jQuery);
4997
-
4998
- // ==========================================================================
4999
- //
5000
- // Thumbs
5001
- // Displays thumbnails in a grid
5002
- //
5003
- // ==========================================================================
5004
- (function(document, $) {
5005
- "use strict";
5006
-
5007
- var CLASS = "fancybox-thumbs",
5008
- CLASS_ACTIVE = CLASS + "-active";
5009
-
5010
- // Make sure there are default values
5011
- $.fancybox.defaults = $.extend(
5012
- true,
5013
- {
5014
- btnTpl: {
5015
- thumbs:
5016
- '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}">' +
5017
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg>' +
5018
- "</button>"
5019
- },
5020
- thumbs: {
5021
- autoStart: false, // Display thumbnails on opening
5022
- hideOnClose: true, // Hide thumbnail grid when closing animation starts
5023
- parentEl: ".fancybox-container", // Container is injected into this element
5024
- axis: "y" // Vertical (y) or horizontal (x) scrolling
5025
- }
5026
- },
5027
- $.fancybox.defaults
5028
- );
5029
-
5030
- var FancyThumbs = function(instance) {
5031
- this.init(instance);
5032
- };
5033
-
5034
- $.extend(FancyThumbs.prototype, {
5035
- $button: null,
5036
- $grid: null,
5037
- $list: null,
5038
- isVisible: false,
5039
- isActive: false,
5040
-
5041
- init: function(instance) {
5042
- var self = this,
5043
- group = instance.group,
5044
- enabled = 0;
5045
-
5046
- self.instance = instance;
5047
- self.opts = group[instance.currIndex].opts.thumbs;
5048
-
5049
- instance.Thumbs = self;
5050
-
5051
- self.$button = instance.$refs.toolbar.find("[data-fancybox-thumbs]");
5052
-
5053
- // Enable thumbs if at least two group items have thumbnails
5054
- for (var i = 0, len = group.length; i < len; i++) {
5055
- if (group[i].thumb) {
5056
- enabled++;
5057
- }
5058
-
5059
- if (enabled > 1) {
5060
- break;
5061
- }
5062
- }
5063
-
5064
- if (enabled > 1 && !!self.opts) {
5065
- self.$button.removeAttr("style").on("click", function() {
5066
- self.toggle();
5067
- });
5068
-
5069
- self.isActive = true;
5070
- } else {
5071
- self.$button.hide();
5072
- }
5073
- },
5074
-
5075
- create: function() {
5076
- var self = this,
5077
- instance = self.instance,
5078
- parentEl = self.opts.parentEl,
5079
- list = [],
5080
- src;
5081
-
5082
- if (!self.$grid) {
5083
- // Create main element
5084
- self.$grid = $('<div class="' + CLASS + " " + CLASS + "-" + self.opts.axis + '"></div>').appendTo(
5085
- instance.$refs.container
5086
- .find(parentEl)
5087
- .addBack()
5088
- .filter(parentEl)
5089
- );
5090
-
5091
- // Add "click" event that performs gallery navigation
5092
- self.$grid.on("click", "a", function() {
5093
- instance.jumpTo($(this).attr("data-index"));
5094
- });
5095
- }
5096
-
5097
- // Build the list
5098
- if (!self.$list) {
5099
- self.$list = $('<div class="' + CLASS + '__list">').appendTo(self.$grid);
5100
- }
5101
-
5102
- $.each(instance.group, function(i, item) {
5103
- src = item.thumb;
5104
-
5105
- if (!src && item.type === "image") {
5106
- src = item.src;
5107
- }
5108
-
5109
- list.push(
5110
- '<a href="javascript:;" tabindex="0" data-index="' +
5111
- i +
5112
- '"' +
5113
- (src && src.length ? ' style="background-image:url(' + src + ')"' : 'class="fancybox-thumbs-missing"') +
5114
- "></a>"
5115
- );
5116
- });
5117
-
5118
- self.$list[0].innerHTML = list.join("");
5119
-
5120
- if (self.opts.axis === "x") {
5121
- // Set fixed width for list element to enable horizontal scrolling
5122
- self.$list.width(
5123
- parseInt(self.$grid.css("padding-right"), 10) +
5124
- instance.group.length *
5125
- self.$list
5126
- .children()
5127
- .eq(0)
5128
- .outerWidth(true)
5129
- );
5130
- }
5131
- },
5132
-
5133
- focus: function(duration) {
5134
- var self = this,
5135
- $list = self.$list,
5136
- $grid = self.$grid,
5137
- thumb,
5138
- thumbPos;
5139
-
5140
- if (!self.instance.current) {
5141
- return;
5142
- }
5143
-
5144
- thumb = $list
5145
- .children()
5146
- .removeClass(CLASS_ACTIVE)
5147
- .filter('[data-index="' + self.instance.current.index + '"]')
5148
- .addClass(CLASS_ACTIVE);
5149
-
5150
- thumbPos = thumb.position();
5151
-
5152
- // Check if need to scroll to make current thumb visible
5153
- if (self.opts.axis === "y" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {
5154
- $list.stop().animate(
5155
- {
5156
- scrollTop: $list.scrollTop() + thumbPos.top
5157
- },
5158
- duration
5159
- );
5160
- } else if (
5161
- self.opts.axis === "x" &&
5162
- (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))
5163
- ) {
5164
- $list
5165
- .parent()
5166
- .stop()
5167
- .animate(
5168
- {
5169
- scrollLeft: thumbPos.left
5170
- },
5171
- duration
5172
- );
5173
- }
5174
- },
5175
-
5176
- update: function() {
5177
- var that = this;
5178
- that.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible);
5179
-
5180
- if (that.isVisible) {
5181
- if (!that.$grid) {
5182
- that.create();
5183
- }
5184
-
5185
- that.instance.trigger("onThumbsShow");
5186
-
5187
- that.focus(0);
5188
- } else if (that.$grid) {
5189
- that.instance.trigger("onThumbsHide");
5190
- }
5191
-
5192
- // Update content position
5193
- that.instance.update();
5194
- },
5195
-
5196
- hide: function() {
5197
- this.isVisible = false;
5198
- this.update();
5199
- },
5200
-
5201
- show: function() {
5202
- this.isVisible = true;
5203
- this.update();
5204
- },
5205
-
5206
- toggle: function() {
5207
- this.isVisible = !this.isVisible;
5208
- this.update();
5209
- }
5210
- });
5211
-
5212
- $(document).on({
5213
- "onInit.fb": function(e, instance) {
5214
- var Thumbs;
5215
-
5216
- if (instance && !instance.Thumbs) {
5217
- Thumbs = new FancyThumbs(instance);
5218
-
5219
- if (Thumbs.isActive && Thumbs.opts.autoStart === true) {
5220
- Thumbs.show();
5221
- }
5222
- }
5223
- },
5224
-
5225
- "beforeShow.fb": function(e, instance, item, firstRun) {
5226
- var Thumbs = instance && instance.Thumbs;
5227
-
5228
- if (Thumbs && Thumbs.isVisible) {
5229
- Thumbs.focus(firstRun ? 0 : 250);
5230
- }
5231
- },
5232
-
5233
- "afterKeydown.fb": function(e, instance, current, keypress, keycode) {
5234
- var Thumbs = instance && instance.Thumbs;
5235
-
5236
- // "G"
5237
- if (Thumbs && Thumbs.isActive && keycode === 71) {
5238
- keypress.preventDefault();
5239
-
5240
- Thumbs.toggle();
5241
- }
5242
- },
5243
-
5244
- "beforeClose.fb": function(e, instance) {
5245
- var Thumbs = instance && instance.Thumbs;
5246
-
5247
- if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {
5248
- Thumbs.$grid.hide();
5249
- }
5250
- }
5251
- });
5252
- })(document, jQuery);
5253
-
5254
- //// ==========================================================================
5255
- //
5256
- // Share
5257
- // Displays simple form for sharing current url
5258
- //
5259
- // ==========================================================================
5260
- (function(document, $) {
5261
- "use strict";
5262
-
5263
- $.extend(true, $.fancybox.defaults, {
5264
- btnTpl: {
5265
- share:
5266
- '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}">' +
5267
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg>' +
5268
- "</button>"
5269
- },
5270
- share: {
5271
- url: function(instance, item) {
5272
- return (
5273
- (!instance.currentHash && !(item.type === "inline" || item.type === "html") ? item.origSrc || item.src : false) || window.location
5274
- );
5275
- },
5276
- tpl:
5277
- '<div class="fancybox-share">' +
5278
- "<h1>{{SHARE}}</h1>" +
5279
- "<p>" +
5280
- '<a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}">' +
5281
- '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg>' +
5282
- "<span>Facebook</span>" +
5283
- "</a>" +
5284
- '<a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}">' +
5285
- '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg>' +
5286
- "<span>Twitter</span>" +
5287
- "</a>" +
5288
- '<a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}">' +
5289
- '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg>' +
5290
- "<span>Pinterest</span>" +
5291
- "</a>" +
5292
- "</p>" +
5293
- '<p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p>' +
5294
- "</div>"
5295
- }
5296
- });
5297
-
5298
- function escapeHtml(string) {
5299
- var entityMap = {
5300
- "&": "&amp;",
5301
- "<": "&lt;",
5302
- ">": "&gt;",
5303
- '"': "&quot;",
5304
- "'": "&#39;",
5305
- "/": "&#x2F;",
5306
- "`": "&#x60;",
5307
- "=": "&#x3D;"
5308
- };
5309
-
5310
- return String(string).replace(/[&<>"'`=\/]/g, function(s) {
5311
- return entityMap[s];
5312
- });
5313
- }
5314
-
5315
- $(document).on("click", "[data-fancybox-share]", function() {
5316
- var instance = $.fancybox.getInstance(),
5317
- current = instance.current || null,
5318
- url,
5319
- tpl;
5320
-
5321
- if (!current) {
5322
- return;
5323
- }
5324
-
5325
- if ($.type(current.opts.share.url) === "function") {
5326
- url = current.opts.share.url.apply(current, [instance, current]);
5327
- }
5328
-
5329
- tpl = current.opts.share.tpl
5330
- .replace(/\{\{media\}\}/g, current.type === "image" ? encodeURIComponent(current.src) : "")
5331
- .replace(/\{\{url\}\}/g, encodeURIComponent(url))
5332
- .replace(/\{\{url_raw\}\}/g, escapeHtml(url))
5333
- .replace(/\{\{descr\}\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : "");
5334
-
5335
- $.fancybox.open({
5336
- src: instance.translate(instance, tpl),
5337
- type: "html",
5338
- opts: {
5339
- touch: false,
5340
- animationEffect: false,
5341
- afterLoad: function(shareInstance, shareCurrent) {
5342
- // Close self if parent instance is closing
5343
- instance.$refs.container.one("beforeClose.fb", function() {
5344
- shareInstance.close(null, 0);
5345
- });
5346
-
5347
- // Opening links in a popup window
5348
- shareCurrent.$content.find(".fancybox-share__button").click(function() {
5349
- window.open(this.href, "Share", "width=550, height=450");
5350
- return false;
5351
- });
5352
- },
5353
- mobile: {
5354
- autoFocus: false
5355
- }
5356
- }
5357
- });
5358
- });
5359
- })(document, jQuery);
5360
-
5361
- // ==========================================================================
5362
- //
5363
- // Hash
5364
- // Enables linking to each modal
5365
- //
5366
- // ==========================================================================
5367
- (function(window, document, $) {
5368
- "use strict";
5369
-
5370
- // Simple $.escapeSelector polyfill (for jQuery prior v3)
5371
- if (!$.escapeSelector) {
5372
- $.escapeSelector = function(sel) {
5373
- var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
5374
- var fcssescape = function(ch, asCodePoint) {
5375
- if (asCodePoint) {
5376
- // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
5377
- if (ch === "\0") {
5378
- return "\uFFFD";
5379
- }
5380
-
5381
- // Control characters and (dependent upon position) numbers get escaped as code points
5382
- return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " ";
5383
- }
5384
-
5385
- // Other potentially-special ASCII characters get backslash-escaped
5386
- return "\\" + ch;
5387
- };
5388
-
5389
- return (sel + "").replace(rcssescape, fcssescape);
5390
- };
5391
- }
5392
-
5393
- // Get info about gallery name and current index from url
5394
- function parseUrl() {
5395
- var hash = window.location.hash.substr(1),
5396
- rez = hash.split("-"),
5397
- index = rez.length > 1 && /^\+?\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,
5398
- gallery = rez.join("-");
5399
-
5400
- return {
5401
- hash: hash,
5402
- /* Index is starting from 1 */
5403
- index: index < 1 ? 1 : index,
5404
- gallery: gallery
5405
- };
5406
- }
5407
-
5408
- // Trigger click evnt on links to open new fancyBox instance
5409
- function triggerFromUrl(url) {
5410
- if (url.gallery !== "") {
5411
- // If we can find element matching 'data-fancybox' atribute,
5412
- // then triggering click event should start fancyBox
5413
- $("[data-fancybox='" + $.escapeSelector(url.gallery) + "']")
5414
- .eq(url.index - 1)
5415
- .focus()
5416
- .trigger("click.fb-start");
5417
- }
5418
- }
5419
-
5420
- // Get gallery name from current instance
5421
- function getGalleryID(instance) {
5422
- var opts, ret;
5423
-
5424
- if (!instance) {
5425
- return false;
5426
- }
5427
-
5428
- opts = instance.current ? instance.current.opts : instance.opts;
5429
- ret = opts.hash || (opts.$orig ? opts.$orig.data("fancybox") || opts.$orig.data("fancybox-trigger") : "");
5430
-
5431
- return ret === "" ? false : ret;
5432
- }
5433
-
5434
- // Start when DOM becomes ready
5435
- $(function() {
5436
- // Check if user has disabled this module
5437
- if ($.fancybox.defaults.hash === false) {
5438
- return;
5439
- }
5440
-
5441
- // Update hash when opening/closing fancyBox
5442
- $(document).on({
5443
- "onInit.fb": function(e, instance) {
5444
- var url, gallery;
5445
-
5446
- if (instance.group[instance.currIndex].opts.hash === false) {
5447
- return;
5448
- }
5449
-
5450
- url = parseUrl();
5451
- gallery = getGalleryID(instance);
5452
-
5453
- // Make sure gallery start index matches index from hash
5454
- if (gallery && url.gallery && gallery == url.gallery) {
5455
- instance.currIndex = url.index - 1;
5456
- }
5457
- },
5458
-
5459
- "beforeShow.fb": function(e, instance, current, firstRun) {
5460
- var gallery;
5461
-
5462
- if (!current || current.opts.hash === false) {
5463
- return;
5464
- }
5465
-
5466
- // Check if need to update window hash
5467
- gallery = getGalleryID(instance);
5468
-
5469
- if (!gallery) {
5470
- return;
5471
- }
5472
-
5473
- // Variable containing last hash value set by fancyBox
5474
- // It will be used to determine if fancyBox needs to close after hash change is detected
5475
- instance.currentHash = gallery + (instance.group.length > 1 ? "-" + (current.index + 1) : "");
5476
-
5477
- // If current hash is the same (this instance most likely is opened by hashchange), then do nothing
5478
- if (window.location.hash === "#" + instance.currentHash) {
5479
- return;
5480
- }
5481
-
5482
- if (firstRun && !instance.origHash) {
5483
- instance.origHash = window.location.hash;
5484
- }
5485
-
5486
- if (instance.hashTimer) {
5487
- clearTimeout(instance.hashTimer);
5488
- }
5489
-
5490
- // Update hash
5491
- instance.hashTimer = setTimeout(function() {
5492
- if ("replaceState" in window.history) {
5493
- window.history[firstRun ? "pushState" : "replaceState"](
5494
- {},
5495
- document.title,
5496
- window.location.pathname + window.location.search + "#" + instance.currentHash
5497
- );
5498
-
5499
- if (firstRun) {
5500
- instance.hasCreatedHistory = true;
5501
- }
5502
- } else {
5503
- window.location.hash = instance.currentHash;
5504
- }
5505
-
5506
- instance.hashTimer = null;
5507
- }, 300);
5508
- },
5509
-
5510
- "beforeClose.fb": function(e, instance, current) {
5511
- if (current.opts.hash === false) {
5512
- return;
5513
- }
5514
-
5515
- clearTimeout(instance.hashTimer);
5516
-
5517
- // Goto previous history entry
5518
- if (instance.currentHash && instance.hasCreatedHistory) {
5519
- window.history.back();
5520
- } else if (instance.currentHash) {
5521
- if ("replaceState" in window.history) {
5522
- window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || ""));
5523
- } else {
5524
- window.location.hash = instance.origHash;
5525
- }
5526
- }
5527
-
5528
- instance.currentHash = null;
5529
- }
5530
- });
5531
-
5532
- // Check if need to start/close after url has changed
5533
- $(window).on("hashchange.fb", function() {
5534
- var url = parseUrl(),
5535
- fb = null;
5536
-
5537
- // Find last fancyBox instance that has "hash"
5538
- $.each(
5539
- $(".fancybox-container")
5540
- .get()
5541
- .reverse(),
5542
- function(index, value) {
5543
- var tmp = $(value).data("FancyBox");
5544
-
5545
- if (tmp && tmp.currentHash) {
5546
- fb = tmp;
5547
- return false;
5548
- }
5549
- }
5550
- );
5551
-
5552
- if (fb) {
5553
- // Now, compare hash values
5554
- if (fb.currentHash !== url.gallery + "-" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {
5555
- fb.currentHash = null;
5556
-
5557
- fb.close();
5558
- }
5559
- } else if (url.gallery !== "") {
5560
- triggerFromUrl(url);
5561
- }
5562
- });
5563
-
5564
- // Check current hash and trigger click event on matching element to start fancyBox, if needed
5565
- setTimeout(function() {
5566
- if (!$.fancybox.getInstance()) {
5567
- triggerFromUrl(parseUrl());
5568
- }
5569
- }, 50);
5570
- });
5571
- })(window, document, jQuery);
5572
-
5573
- // ==========================================================================
5574
- //
5575
- // Wheel
5576
- // Basic mouse weheel support for gallery navigation
5577
- //
5578
- // ==========================================================================
5579
- (function(document, $) {
5580
- "use strict";
5581
-
5582
- var prevTime = new Date().getTime();
5583
-
5584
- $(document).on({
5585
- "onInit.fb": function(e, instance, current) {
5586
- instance.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(e) {
5587
- var current = instance.current,
5588
- currTime = new Date().getTime();
5589
-
5590
- if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === "auto" && current.type !== "image")) {
5591
- return;
5592
- }
5593
-
5594
- e.preventDefault();
5595
- e.stopPropagation();
5596
-
5597
- if (current.$slide.hasClass("fancybox-animated")) {
5598
- return;
5599
- }
5600
-
5601
- e = e.originalEvent || e;
5602
-
5603
- if (currTime - prevTime < 250) {
5604
- return;
5605
- }
5606
-
5607
- prevTime = currTime;
5608
-
5609
- instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? "next" : "previous"]();
5610
- });
5611
- }
5612
- });
5613
- })(document, jQuery);
1
+ // ==================================================
2
+ // fancyBox v3.5.1
3
+ //
4
+ // Licensed GPLv3 for open source use
5
+ // or fancyBox Commercial License for commercial use
6
+ //
7
+ // http://fancyapps.com/fancybox/
8
+ // Copyright 2018 fancyApps
9
+ //
10
+ // ==================================================
11
+ (function(window, document, $, undefined) {
12
+ "use strict";
13
+
14
+ window.console = window.console || {
15
+ info: function(stuff) {}
16
+ };
17
+
18
+ // If there's no jQuery, fancyBox can't work
19
+ // =========================================
20
+
21
+ if (!$) {
22
+ return;
23
+ }
24
+
25
+ // Check if fancyBox is already initialized
26
+ // ========================================
27
+
28
+ if ($.fn.fancybox) {
29
+ console.info("fancyBox already initialized");
30
+
31
+ return;
32
+ }
33
+
34
+ // Private default settings
35
+ // ========================
36
+
37
+ var defaults = {
38
+ // Close existing modals
39
+ // Set this to false if you do not need to stack multiple instances
40
+ closeExisting: false,
41
+
42
+ // Enable infinite gallery navigation
43
+ loop: false,
44
+
45
+ // Horizontal space between slides
46
+ gutter: 50,
47
+
48
+ // Enable keyboard navigation
49
+ keyboard: true,
50
+
51
+ // Should allow caption to overlap the content
52
+ preventCaptionOverlap: true,
53
+
54
+ // Should display navigation arrows at the screen edges
55
+ arrows: true,
56
+
57
+ // Should display counter at the top left corner
58
+ infobar: true,
59
+
60
+ // Should display close button (using `btnTpl.smallBtn` template) over the content
61
+ // Can be true, false, "auto"
62
+ // If "auto" - will be automatically enabled for "html", "inline" or "ajax" items
63
+ smallBtn: "auto",
64
+
65
+ // Should display toolbar (buttons at the top)
66
+ // Can be true, false, "auto"
67
+ // If "auto" - will be automatically hidden if "smallBtn" is enabled
68
+ toolbar: "auto",
69
+
70
+ // What buttons should appear in the top right corner.
71
+ // Buttons will be created using templates from `btnTpl` option
72
+ // and they will be placed into toolbar (class="fancybox-toolbar"` element)
73
+ buttons: [
74
+ "zoom",
75
+ //"share",
76
+ "slideShow",
77
+ //"fullScreen",
78
+ //"download",
79
+ "thumbs",
80
+ "close"
81
+ ],
82
+
83
+ // Detect "idle" time in seconds
84
+ idleTime: 3,
85
+
86
+ // Disable right-click and use simple image protection for images
87
+ protect: false,
88
+
89
+ // Shortcut to make content "modal" - disable keyboard navigtion, hide buttons, etc
90
+ modal: false,
91
+
92
+ image: {
93
+ // Wait for images to load before displaying
94
+ // true - wait for image to load and then display;
95
+ // false - display thumbnail and load the full-sized image over top,
96
+ // requires predefined image dimensions (`data-width` and `data-height` attributes)
97
+ preload: false
98
+ },
99
+
100
+ ajax: {
101
+ // Object containing settings for ajax request
102
+ settings: {
103
+ // This helps to indicate that request comes from the modal
104
+ // Feel free to change naming
105
+ data: {
106
+ fancybox: true
107
+ }
108
+ }
109
+ },
110
+
111
+ iframe: {
112
+ // Iframe template
113
+ tpl:
114
+ '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen allow="autoplay; fullscreen" src=""></iframe>',
115
+
116
+ // Preload iframe before displaying it
117
+ // This allows to calculate iframe content width and height
118
+ // (note: Due to "Same Origin Policy", you can't get cross domain data).
119
+ preload: true,
120
+
121
+ // Custom CSS styling for iframe wrapping element
122
+ // You can use this to set custom iframe dimensions
123
+ css: {},
124
+
125
+ // Iframe tag attributes
126
+ attr: {
127
+ scrolling: "auto"
128
+ }
129
+ },
130
+
131
+ // For HTML5 video only
132
+ video: {
133
+ tpl:
134
+ '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}">' +
135
+ '<source src="{{src}}" type="{{format}}" />' +
136
+ 'Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!' +
137
+ "</video>",
138
+ format: "", // custom video format
139
+ autoStart: true
140
+ },
141
+
142
+ // Default content type if cannot be detected automatically
143
+ defaultType: "image",
144
+
145
+ // Open/close animation type
146
+ // Possible values:
147
+ // false - disable
148
+ // "zoom" - zoom images from/to thumbnail
149
+ // "fade"
150
+ // "zoom-in-out"
151
+ //
152
+ animationEffect: "zoom",
153
+
154
+ // Duration in ms for open/close animation
155
+ animationDuration: 366,
156
+
157
+ // Should image change opacity while zooming
158
+ // If opacity is "auto", then opacity will be changed if image and thumbnail have different aspect ratios
159
+ zoomOpacity: "auto",
160
+
161
+ // Transition effect between slides
162
+ //
163
+ // Possible values:
164
+ // false - disable
165
+ // "fade'
166
+ // "slide'
167
+ // "circular'
168
+ // "tube'
169
+ // "zoom-in-out'
170
+ // "rotate'
171
+ //
172
+ transitionEffect: "fade",
173
+
174
+ // Duration in ms for transition animation
175
+ transitionDuration: 366,
176
+
177
+ // Custom CSS class for slide element
178
+ slideClass: "",
179
+
180
+ // Custom CSS class for layout
181
+ baseClass: "",
182
+
183
+ // Base template for layout
184
+ baseTpl:
185
+ '<div class="fancybox-container" role="dialog" tabindex="-1">' +
186
+ '<div class="fancybox-bg"></div>' +
187
+ '<div class="fancybox-inner">' +
188
+ '<div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div>' +
189
+ '<div class="fancybox-toolbar">{{buttons}}</div>' +
190
+ '<div class="fancybox-navigation">{{arrows}}</div>' +
191
+ '<div class="fancybox-stage"></div>' +
192
+ '<div class="fancybox-caption"></div>' +
193
+ "</div>" +
194
+ "</div>",
195
+
196
+ // Loading indicator template
197
+ spinnerTpl: '<div class="fancybox-loading"></div>',
198
+
199
+ // Error message template
200
+ errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>',
201
+
202
+ btnTpl: {
203
+ download:
204
+ '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;">' +
205
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg>' +
206
+ "</a>",
207
+
208
+ zoom:
209
+ '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}">' +
210
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg>' +
211
+ "</button>",
212
+
213
+ close:
214
+ '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}">' +
215
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg>' +
216
+ "</button>",
217
+
218
+ // Arrows
219
+ arrowLeft:
220
+ '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}">' +
221
+ '<div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div>' +
222
+ "</button>",
223
+
224
+ arrowRight:
225
+ '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}">' +
226
+ '<div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div>' +
227
+ "</button>",
228
+
229
+ // This small close button will be appended to your html/inline/ajax content by default,
230
+ // if "smallBtn" option is not set to false
231
+ smallBtn:
232
+ '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}">' +
233
+ '<svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg>' +
234
+ "</button>"
235
+ },
236
+
237
+ // Container is injected into this element
238
+ parentEl: "body",
239
+
240
+ // Hide browser vertical scrollbars; use at your own risk
241
+ hideScrollbar: true,
242
+
243
+ // Focus handling
244
+ // ==============
245
+
246
+ // Try to focus on the first focusable element after opening
247
+ autoFocus: true,
248
+
249
+ // Put focus back to active element after closing
250
+ backFocus: true,
251
+
252
+ // Do not let user to focus on element outside modal content
253
+ trapFocus: true,
254
+
255
+ // Module specific options
256
+ // =======================
257
+
258
+ fullScreen: {
259
+ autoStart: false
260
+ },
261
+
262
+ // Set `touch: false` to disable panning/swiping
263
+ touch: {
264
+ vertical: true, // Allow to drag content vertically
265
+ momentum: true // Continue movement after releasing mouse/touch when panning
266
+ },
267
+
268
+ // Hash value when initializing manually,
269
+ // set `false` to disable hash change
270
+ hash: null,
271
+
272
+ // Customize or add new media types
273
+ // Example:
274
+ /*
275
+ media : {
276
+ youtube : {
277
+ params : {
278
+ autoplay : 0
279
+ }
280
+ }
281
+ }
282
+ */
283
+ media: {},
284
+
285
+ slideShow: {
286
+ autoStart: false,
287
+ speed: 3000
288
+ },
289
+
290
+ thumbs: {
291
+ autoStart: false, // Display thumbnails on opening
292
+ hideOnClose: true, // Hide thumbnail grid when closing animation starts
293
+ parentEl: ".fancybox-container", // Container is injected into this element
294
+ axis: "y" // Vertical (y) or horizontal (x) scrolling
295
+ },
296
+
297
+ // Use mousewheel to navigate gallery
298
+ // If 'auto' - enabled for images only
299
+ wheel: "auto",
300
+
301
+ // Callbacks
302
+ //==========
303
+
304
+ // See Documentation/API/Events for more information
305
+ // Example:
306
+ /*
307
+ afterShow: function( instance, current ) {
308
+ console.info( 'Clicked element:' );
309
+ console.info( current.opts.$orig );
310
+ }
311
+ */
312
+
313
+ onInit: $.noop, // When instance has been initialized
314
+
315
+ beforeLoad: $.noop, // Before the content of a slide is being loaded
316
+ afterLoad: $.noop, // When the content of a slide is done loading
317
+
318
+ beforeShow: $.noop, // Before open animation starts
319
+ afterShow: $.noop, // When content is done loading and animating
320
+
321
+ beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.
322
+ afterClose: $.noop, // After instance has been closed
323
+
324
+ onActivate: $.noop, // When instance is brought to front
325
+ onDeactivate: $.noop, // When other instance has been activated
326
+
327
+ // Interaction
328
+ // ===========
329
+
330
+ // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,
331
+ // each option can be string or method that returns value.
332
+ //
333
+ // Possible values:
334
+ // "close" - close instance
335
+ // "next" - move to next gallery item
336
+ // "nextOrClose" - move to next gallery item or close if gallery has only one item
337
+ // "toggleControls" - show/hide controls
338
+ // "zoom" - zoom image (if loaded)
339
+ // false - do nothing
340
+
341
+ // Clicked on the content
342
+ clickContent: function(current, event) {
343
+ return current.type === "image" ? "zoom" : false;
344
+ },
345
+
346
+ // Clicked on the slide
347
+ clickSlide: "close",
348
+
349
+ // Clicked on the background (backdrop) element;
350
+ // if you have not changed the layout, then most likely you need to use `clickSlide` option
351
+ clickOutside: "close",
352
+
353
+ // Same as previous two, but for double click
354
+ dblclickContent: false,
355
+ dblclickSlide: false,
356
+ dblclickOutside: false,
357
+
358
+ // Custom options when mobile device is detected
359
+ // =============================================
360
+
361
+ mobile: {
362
+ preventCaptionOverlap: false,
363
+ idleTime: false,
364
+ clickContent: function(current, event) {
365
+ return current.type === "image" ? "toggleControls" : false;
366
+ },
367
+ clickSlide: function(current, event) {
368
+ return current.type === "image" ? "toggleControls" : "close";
369
+ },
370
+ dblclickContent: function(current, event) {
371
+ return current.type === "image" ? "zoom" : false;
372
+ },
373
+ dblclickSlide: function(current, event) {
374
+ return current.type === "image" ? "zoom" : false;
375
+ }
376
+ },
377
+
378
+ // Internationalization
379
+ // ====================
380
+
381
+ lang: "en",
382
+ i18n: {
383
+ en: {
384
+ CLOSE: "Close",
385
+ NEXT: "Next",
386
+ PREV: "Previous",
387
+ ERROR: "The requested content cannot be loaded. <br/> Please try again later.",
388
+ PLAY_START: "Start slideshow",
389
+ PLAY_STOP: "Pause slideshow",
390
+ FULL_SCREEN: "Full screen",
391
+ THUMBS: "Thumbnails",
392
+ DOWNLOAD: "Download",
393
+ SHARE: "Share",
394
+ ZOOM: "Zoom"
395
+ },
396
+ de: {
397
+ CLOSE: "Schliessen",
398
+ NEXT: "Weiter",
399
+ PREV: "Zurück",
400
+ ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es später nochmal.",
401
+ PLAY_START: "Diaschau starten",
402
+ PLAY_STOP: "Diaschau beenden",
403
+ FULL_SCREEN: "Vollbild",
404
+ THUMBS: "Vorschaubilder",
405
+ DOWNLOAD: "Herunterladen",
406
+ SHARE: "Teilen",
407
+ ZOOM: "Maßstab"
408
+ }
409
+ }
410
+ };
411
+
412
+ // Few useful variables and methods
413
+ // ================================
414
+
415
+ var $W = $(window);
416
+ var $D = $(document);
417
+
418
+ var called = 0;
419
+
420
+ // Check if an object is a jQuery object and not a native JavaScript object
421
+ // ========================================================================
422
+ var isQuery = function(obj) {
423
+ return obj && obj.hasOwnProperty && obj instanceof $;
424
+ };
425
+
426
+ // Handle multiple browsers for "requestAnimationFrame" and "cancelAnimationFrame"
427
+ // ===============================================================================
428
+ var requestAFrame = (function() {
429
+ return (
430
+ window.requestAnimationFrame ||
431
+ window.webkitRequestAnimationFrame ||
432
+ window.mozRequestAnimationFrame ||
433
+ window.oRequestAnimationFrame ||
434
+ // if all else fails, use setTimeout
435
+ function(callback) {
436
+ return window.setTimeout(callback, 1000 / 60);
437
+ }
438
+ );
439
+ })();
440
+
441
+ var cancelAFrame = (function() {
442
+ return (
443
+ window.cancelAnimationFrame ||
444
+ window.webkitCancelAnimationFrame ||
445
+ window.mozCancelAnimationFrame ||
446
+ window.oCancelAnimationFrame ||
447
+ function(id) {
448
+ window.clearTimeout(id);
449
+ }
450
+ );
451
+ })();
452
+
453
+ // Detect the supported transition-end event property name
454
+ // =======================================================
455
+ var transitionEnd = (function() {
456
+ var el = document.createElement("fakeelement"),
457
+ t;
458
+
459
+ var transitions = {
460
+ transition: "transitionend",
461
+ OTransition: "oTransitionEnd",
462
+ MozTransition: "transitionend",
463
+ WebkitTransition: "webkitTransitionEnd"
464
+ };
465
+
466
+ for (t in transitions) {
467
+ if (el.style[t] !== undefined) {
468
+ return transitions[t];
469
+ }
470
+ }
471
+
472
+ return "transitionend";
473
+ })();
474
+
475
+ // Force redraw on an element.
476
+ // This helps in cases where the browser doesn't redraw an updated element properly
477
+ // ================================================================================
478
+ var forceRedraw = function($el) {
479
+ return $el && $el.length && $el[0].offsetHeight;
480
+ };
481
+
482
+ // Exclude array (`buttons`) options from deep merging
483
+ // ===================================================
484
+ var mergeOpts = function(opts1, opts2) {
485
+ var rez = $.extend(true, {}, opts1, opts2);
486
+
487
+ $.each(opts2, function(key, value) {
488
+ if ($.isArray(value)) {
489
+ rez[key] = value;
490
+ }
491
+ });
492
+
493
+ return rez;
494
+ };
495
+
496
+ // How much of an element is visible in viewport
497
+ // =============================================
498
+
499
+ var inViewport = function(elem) {
500
+ var elemCenter, rez;
501
+
502
+ if (!elem || elem.ownerDocument !== document) {
503
+ return false;
504
+ }
505
+
506
+ $(".fancybox-container").css("pointer-events", "none");
507
+
508
+ elemCenter = {
509
+ x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,
510
+ y: elem.getBoundingClientRect().top + elem.offsetHeight / 2
511
+ };
512
+
513
+ rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;
514
+
515
+ $(".fancybox-container").css("pointer-events", "");
516
+
517
+ return rez;
518
+ };
519
+
520
+ // Class definition
521
+ // ================
522
+
523
+ var FancyBox = function(content, opts, index) {
524
+ var self = this;
525
+
526
+ self.opts = mergeOpts({index: index}, $.fancybox.defaults);
527
+
528
+ if ($.isPlainObject(opts)) {
529
+ self.opts = mergeOpts(self.opts, opts);
530
+ }
531
+
532
+ if ($.fancybox.isMobile) {
533
+ self.opts = mergeOpts(self.opts, self.opts.mobile);
534
+ }
535
+
536
+ self.id = self.opts.id || ++called;
537
+
538
+ self.currIndex = parseInt(self.opts.index, 10) || 0;
539
+ self.prevIndex = null;
540
+
541
+ self.prevPos = null;
542
+ self.currPos = 0;
543
+
544
+ self.firstRun = true;
545
+
546
+ // All group items
547
+ self.group = [];
548
+
549
+ // Existing slides (for current, next and previous gallery items)
550
+ self.slides = {};
551
+
552
+ // Create group elements
553
+ self.addContent(content);
554
+
555
+ if (!self.group.length) {
556
+ return;
557
+ }
558
+
559
+ self.init();
560
+ };
561
+
562
+ $.extend(FancyBox.prototype, {
563
+ // Create DOM structure
564
+ // ====================
565
+
566
+ init: function() {
567
+ var self = this,
568
+ firstItem = self.group[self.currIndex],
569
+ firstItemOpts = firstItem.opts,
570
+ $container,
571
+ buttonStr;
572
+
573
+ if (firstItemOpts.closeExisting) {
574
+ $.fancybox.close(true);
575
+ }
576
+
577
+ // Hide scrollbars
578
+ // ===============
579
+
580
+ $("body").addClass("fancybox-active");
581
+
582
+ if (
583
+ !$.fancybox.getInstance() &&
584
+ firstItemOpts.hideScrollbar !== false &&
585
+ !$.fancybox.isMobile &&
586
+ document.body.scrollHeight > window.innerHeight
587
+ ) {
588
+ $("head").append(
589
+ '<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' +
590
+ (window.innerWidth - document.documentElement.clientWidth) +
591
+ "px;}</style>"
592
+ );
593
+
594
+ $("body").addClass("compensate-for-scrollbar");
595
+ }
596
+
597
+ // Build html markup and set references
598
+ // ====================================
599
+
600
+ // Build html code for buttons and insert into main template
601
+ buttonStr = "";
602
+
603
+ $.each(firstItemOpts.buttons, function(index, value) {
604
+ buttonStr += firstItemOpts.btnTpl[value] || "";
605
+ });
606
+
607
+ // Create markup from base template, it will be initially hidden to
608
+ // avoid unnecessary work like painting while initializing is not complete
609
+ $container = $(
610
+ self.translate(
611
+ self,
612
+ firstItemOpts.baseTpl
613
+ .replace("{{buttons}}", buttonStr)
614
+ .replace("{{arrows}}", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)
615
+ )
616
+ )
617
+ .attr("id", "fancybox-container-" + self.id)
618
+ .addClass(firstItemOpts.baseClass)
619
+ .data("FancyBox", self)
620
+ .appendTo(firstItemOpts.parentEl);
621
+
622
+ // Create object holding references to jQuery wrapped nodes
623
+ self.$refs = {
624
+ container: $container
625
+ };
626
+
627
+ ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function(item) {
628
+ self.$refs[item] = $container.find(".fancybox-" + item);
629
+ });
630
+
631
+ self.trigger("onInit");
632
+
633
+ // Enable events, deactive previous instances
634
+ self.activate();
635
+
636
+ // Build slides, load and reveal content
637
+ self.jumpTo(self.currIndex);
638
+ },
639
+
640
+ // Simple i18n support - replaces object keys found in template
641
+ // with corresponding values
642
+ // ============================================================
643
+
644
+ translate: function(obj, str) {
645
+ var arr = obj.opts.i18n[obj.opts.lang];
646
+
647
+ return str.replace(/\{\{(\w+)\}\}/g, function(match, n) {
648
+ var value = arr[n];
649
+
650
+ if (value === undefined) {
651
+ return match;
652
+ }
653
+
654
+ return value;
655
+ });
656
+ },
657
+
658
+ // Populate current group with fresh content
659
+ // Check if each object has valid type and content
660
+ // ===============================================
661
+
662
+ addContent: function(content) {
663
+ var self = this,
664
+ items = $.makeArray(content),
665
+ thumbs;
666
+
667
+ $.each(items, function(i, item) {
668
+ var obj = {},
669
+ opts = {},
670
+ $item,
671
+ type,
672
+ found,
673
+ src,
674
+ srcParts;
675
+
676
+ // Step 1 - Make sure we have an object
677
+ // ====================================
678
+
679
+ if ($.isPlainObject(item)) {
680
+ // We probably have manual usage here, something like
681
+ // $.fancybox.open( [ { src : "image.jpg", type : "image" } ] )
682
+
683
+ obj = item;
684
+ opts = item.opts || item;
685
+ } else if ($.type(item) === "object" && $(item).length) {
686
+ // Here we probably have jQuery collection returned by some selector
687
+ $item = $(item);
688
+
689
+ // Support attributes like `data-options='{"touch" : false}'` and `data-touch='false'`
690
+ opts = $item.data() || {};
691
+ opts = $.extend(true, {}, opts, opts.options);
692
+
693
+ // Here we store clicked element
694
+ opts.$orig = $item;
695
+
696
+ obj.src = self.opts.src || opts.src || $item.attr("href");
697
+
698
+ // Assume that simple syntax is used, for example:
699
+ // `$.fancybox.open( $("#test"), {} );`
700
+ if (!obj.type && !obj.src) {
701
+ obj.type = "inline";
702
+ obj.src = item;
703
+ }
704
+ } else {
705
+ // Assume we have a simple html code, for example:
706
+ // $.fancybox.open( '<div><h1>Hi!</h1></div>' );
707
+ obj = {
708
+ type: "html",
709
+ src: item + ""
710
+ };
711
+ }
712
+
713
+ // Each gallery object has full collection of options
714
+ obj.opts = $.extend(true, {}, self.opts, opts);
715
+
716
+ // Do not merge buttons array
717
+ if ($.isArray(opts.buttons)) {
718
+ obj.opts.buttons = opts.buttons;
719
+ }
720
+
721
+ if ($.fancybox.isMobile && obj.opts.mobile) {
722
+ obj.opts = mergeOpts(obj.opts, obj.opts.mobile);
723
+ }
724
+
725
+ // Step 2 - Make sure we have content type, if not - try to guess
726
+ // ==============================================================
727
+
728
+ type = obj.type || obj.opts.type;
729
+ src = obj.src || "";
730
+
731
+ if (!type && src) {
732
+ if ((found = src.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))) {
733
+ type = "video";
734
+
735
+ if (!obj.opts.video.format) {
736
+ obj.opts.video.format = "video/" + (found[1] === "ogv" ? "ogg" : found[1]);
737
+ }
738
+ } else if (src.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)) {
739
+ type = "image";
740
+ } else if (src.match(/\.(pdf)((\?|#).*)?$/i)) {
741
+ type = "iframe";
742
+ } else if (src.charAt(0) === "#") {
743
+ type = "inline";
744
+ }
745
+ }
746
+
747
+ if (type) {
748
+ obj.type = type;
749
+ } else {
750
+ self.trigger("objectNeedsType", obj);
751
+ }
752
+
753
+ if (!obj.contentType) {
754
+ obj.contentType = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1 ? "html" : obj.type;
755
+ }
756
+
757
+ // Step 3 - Some adjustments
758
+ // =========================
759
+
760
+ obj.index = self.group.length;
761
+
762
+ if (obj.opts.smallBtn == "auto") {
763
+ obj.opts.smallBtn = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1;
764
+ }
765
+
766
+ if (obj.opts.toolbar === "auto") {
767
+ obj.opts.toolbar = !obj.opts.smallBtn;
768
+ }
769
+
770
+ // Find thumbnail image, check if exists and if is in the viewport
771
+ obj.$thumb = obj.opts.$thumb || null;
772
+
773
+ if (obj.opts.$trigger && obj.index === self.opts.index) {
774
+ obj.$thumb = obj.opts.$trigger.find("img:first");
775
+
776
+ if (obj.$thumb.length) {
777
+ obj.opts.$orig = obj.opts.$trigger;
778
+ }
779
+ }
780
+
781
+ if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {
782
+ obj.$thumb = obj.opts.$orig.find("img:first");
783
+ }
784
+
785
+ if (obj.$thumb && !obj.$thumb.length) {
786
+ obj.$thumb = null;
787
+ }
788
+
789
+ obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);
790
+
791
+ // "caption" is a "special" option, it can be used to customize caption per gallery item
792
+ if ($.type(obj.opts.caption) === "function") {
793
+ obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);
794
+ }
795
+
796
+ if ($.type(self.opts.caption) === "function") {
797
+ obj.opts.caption = self.opts.caption.apply(item, [self, obj]);
798
+ }
799
+
800
+ // Make sure we have caption as a string or jQuery object
801
+ if (!(obj.opts.caption instanceof $)) {
802
+ obj.opts.caption = obj.opts.caption === undefined ? "" : obj.opts.caption + "";
803
+ }
804
+
805
+ // Check if url contains "filter" used to filter the content
806
+ // Example: "ajax.html #something"
807
+ if (obj.type === "ajax") {
808
+ srcParts = src.split(/\s+/, 2);
809
+
810
+ if (srcParts.length > 1) {
811
+ obj.src = srcParts.shift();
812
+
813
+ obj.opts.filter = srcParts.shift();
814
+ }
815
+ }
816
+
817
+ // Hide all buttons and disable interactivity for modal items
818
+ if (obj.opts.modal) {
819
+ obj.opts = $.extend(true, obj.opts, {
820
+ trapFocus: true,
821
+ // Remove buttons
822
+ infobar: 0,
823
+ toolbar: 0,
824
+
825
+ smallBtn: 0,
826
+
827
+ // Disable keyboard navigation
828
+ keyboard: 0,
829
+
830
+ // Disable some modules
831
+ slideShow: 0,
832
+ fullScreen: 0,
833
+ thumbs: 0,
834
+ touch: 0,
835
+
836
+ // Disable click event handlers
837
+ clickContent: false,
838
+ clickSlide: false,
839
+ clickOutside: false,
840
+ dblclickContent: false,
841
+ dblclickSlide: false,
842
+ dblclickOutside: false
843
+ });
844
+ }
845
+
846
+ // Step 4 - Add processed object to group
847
+ // ======================================
848
+
849
+ self.group.push(obj);
850
+ });
851
+
852
+ // Update controls if gallery is already opened
853
+ if (Object.keys(self.slides).length) {
854
+ self.updateControls();
855
+
856
+ // Update thumbnails, if needed
857
+ thumbs = self.Thumbs;
858
+
859
+ if (thumbs && thumbs.isActive) {
860
+ thumbs.create();
861
+
862
+ thumbs.focus();
863
+ }
864
+ }
865
+ },
866
+
867
+ // Attach an event handler functions for:
868
+ // - navigation buttons
869
+ // - browser scrolling, resizing;
870
+ // - focusing
871
+ // - keyboard
872
+ // - detecting inactivity
873
+ // ======================================
874
+
875
+ addEvents: function() {
876
+ var self = this;
877
+
878
+ self.removeEvents();
879
+
880
+ // Make navigation elements clickable
881
+ // ==================================
882
+
883
+ self.$refs.container
884
+ .on("click.fb-close", "[data-fancybox-close]", function(e) {
885
+ e.stopPropagation();
886
+ e.preventDefault();
887
+
888
+ self.close(e);
889
+ })
890
+ .on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function(e) {
891
+ e.stopPropagation();
892
+ e.preventDefault();
893
+
894
+ self.previous();
895
+ })
896
+ .on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function(e) {
897
+ e.stopPropagation();
898
+ e.preventDefault();
899
+
900
+ self.next();
901
+ })
902
+ .on("click.fb", "[data-fancybox-zoom]", function(e) {
903
+ // Click handler for zoom button
904
+ self[self.isScaledDown() ? "scaleToActual" : "scaleToFit"]();
905
+ });
906
+
907
+ // Handle page scrolling and browser resizing
908
+ // ==========================================
909
+
910
+ $W.on("orientationchange.fb resize.fb", function(e) {
911
+ if (e && e.originalEvent && e.originalEvent.type === "resize") {
912
+ if (self.requestId) {
913
+ cancelAFrame(self.requestId);
914
+ }
915
+
916
+ self.requestId = requestAFrame(function() {
917
+ self.update(e);
918
+ });
919
+ } else {
920
+ if (self.current && self.current.type === "iframe") {
921
+ self.$refs.stage.hide();
922
+ }
923
+
924
+ setTimeout(function() {
925
+ self.$refs.stage.show();
926
+
927
+ self.update(e);
928
+ }, $.fancybox.isMobile ? 600 : 250);
929
+ }
930
+ });
931
+
932
+ $D.on("keydown.fb", function(e) {
933
+ var instance = $.fancybox ? $.fancybox.getInstance() : null,
934
+ current = instance.current,
935
+ keycode = e.keyCode || e.which;
936
+
937
+ // Trap keyboard focus inside of the modal
938
+ // =======================================
939
+
940
+ if (keycode == 9) {
941
+ if (current.opts.trapFocus) {
942
+ self.focus(e);
943
+ }
944
+
945
+ return;
946
+ }
947
+
948
+ // Enable keyboard navigation
949
+ // ==========================
950
+
951
+ if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is("input") || $(e.target).is("textarea")) {
952
+ return;
953
+ }
954
+
955
+ // Backspace and Esc keys
956
+ if (keycode === 8 || keycode === 27) {
957
+ e.preventDefault();
958
+
959
+ self.close(e);
960
+
961
+ return;
962
+ }
963
+
964
+ // Left arrow and Up arrow
965
+ if (keycode === 37 || keycode === 38) {
966
+ e.preventDefault();
967
+
968
+ self.previous();
969
+
970
+ return;
971
+ }
972
+
973
+ // Righ arrow and Down arrow
974
+ if (keycode === 39 || keycode === 40) {
975
+ e.preventDefault();
976
+
977
+ self.next();
978
+
979
+ return;
980
+ }
981
+
982
+ self.trigger("afterKeydown", e, keycode);
983
+ });
984
+
985
+ // Hide controls after some inactivity period
986
+ if (self.group[self.currIndex].opts.idleTime) {
987
+ self.idleSecondsCounter = 0;
988
+
989
+ $D.on(
990
+ "mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",
991
+ function(e) {
992
+ self.idleSecondsCounter = 0;
993
+
994
+ if (self.isIdle) {
995
+ self.showControls();
996
+ }
997
+
998
+ self.isIdle = false;
999
+ }
1000
+ );
1001
+
1002
+ self.idleInterval = window.setInterval(function() {
1003
+ self.idleSecondsCounter++;
1004
+
1005
+ if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {
1006
+ self.isIdle = true;
1007
+ self.idleSecondsCounter = 0;
1008
+
1009
+ self.hideControls();
1010
+ }
1011
+ }, 1000);
1012
+ }
1013
+ },
1014
+
1015
+ // Remove events added by the core
1016
+ // ===============================
1017
+
1018
+ removeEvents: function() {
1019
+ var self = this;
1020
+
1021
+ $W.off("orientationchange.fb resize.fb");
1022
+ $D.off("keydown.fb .fb-idle");
1023
+
1024
+ this.$refs.container.off(".fb-close .fb-prev .fb-next");
1025
+
1026
+ if (self.idleInterval) {
1027
+ window.clearInterval(self.idleInterval);
1028
+
1029
+ self.idleInterval = null;
1030
+ }
1031
+ },
1032
+
1033
+ // Change to previous gallery item
1034
+ // ===============================
1035
+
1036
+ previous: function(duration) {
1037
+ return this.jumpTo(this.currPos - 1, duration);
1038
+ },
1039
+
1040
+ // Change to next gallery item
1041
+ // ===========================
1042
+
1043
+ next: function(duration) {
1044
+ return this.jumpTo(this.currPos + 1, duration);
1045
+ },
1046
+
1047
+ // Switch to selected gallery item
1048
+ // ===============================
1049
+
1050
+ jumpTo: function(pos, duration) {
1051
+ var self = this,
1052
+ groupLen = self.group.length,
1053
+ firstRun,
1054
+ isMoved,
1055
+ loop,
1056
+ current,
1057
+ previous,
1058
+ slidePos,
1059
+ stagePos,
1060
+ prop,
1061
+ diff;
1062
+
1063
+ if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {
1064
+ return;
1065
+ }
1066
+
1067
+ // Should loop?
1068
+ pos = parseInt(pos, 10);
1069
+ loop = self.current ? self.current.opts.loop : self.opts.loop;
1070
+
1071
+ if (!loop && (pos < 0 || pos >= groupLen)) {
1072
+ return false;
1073
+ }
1074
+
1075
+ // Check if opening for the first time; this helps to speed things up
1076
+ firstRun = self.firstRun = !Object.keys(self.slides).length;
1077
+
1078
+ // Create slides
1079
+ previous = self.current;
1080
+
1081
+ self.prevIndex = self.currIndex;
1082
+ self.prevPos = self.currPos;
1083
+
1084
+ current = self.createSlide(pos);
1085
+
1086
+ if (groupLen > 1) {
1087
+ if (loop || current.index < groupLen - 1) {
1088
+ self.createSlide(pos + 1);
1089
+ }
1090
+
1091
+ if (loop || current.index > 0) {
1092
+ self.createSlide(pos - 1);
1093
+ }
1094
+ }
1095
+
1096
+ self.current = current;
1097
+ self.currIndex = current.index;
1098
+ self.currPos = current.pos;
1099
+
1100
+ self.trigger("beforeShow", firstRun);
1101
+
1102
+ self.updateControls();
1103
+
1104
+ // Validate duration length
1105
+ current.forcedDuration = undefined;
1106
+
1107
+ if ($.isNumeric(duration)) {
1108
+ current.forcedDuration = duration;
1109
+ } else {
1110
+ duration = current.opts[firstRun ? "animationDuration" : "transitionDuration"];
1111
+ }
1112
+
1113
+ duration = parseInt(duration, 10);
1114
+
1115
+ // Check if user has swiped the slides or if still animating
1116
+ isMoved = self.isMoved(current);
1117
+
1118
+ // Make sure current slide is visible
1119
+ current.$slide.addClass("fancybox-slide--current");
1120
+
1121
+ // Fresh start - reveal container, current slide and start loading content
1122
+ if (firstRun) {
1123
+ if (current.opts.animationEffect && duration) {
1124
+ self.$refs.container.css("transition-duration", duration + "ms");
1125
+ }
1126
+
1127
+ self.$refs.container.addClass("fancybox-is-open").trigger("focus");
1128
+
1129
+ // Attempt to load content into slide
1130
+ // This will later call `afterLoad` -> `revealContent`
1131
+ self.loadSlide(current);
1132
+
1133
+ self.preload("image");
1134
+
1135
+ return;
1136
+ }
1137
+
1138
+ // Get actual slide/stage positions (before cleaning up)
1139
+ slidePos = $.fancybox.getTranslate(previous.$slide);
1140
+ stagePos = $.fancybox.getTranslate(self.$refs.stage);
1141
+
1142
+ // Clean up all slides
1143
+ $.each(self.slides, function(index, slide) {
1144
+ $.fancybox.stop(slide.$slide, true);
1145
+ });
1146
+
1147
+ if (previous.pos !== current.pos) {
1148
+ previous.isComplete = false;
1149
+ }
1150
+
1151
+ previous.$slide.removeClass("fancybox-slide--complete fancybox-slide--current");
1152
+
1153
+ // If slides are out of place, then animate them to correct position
1154
+ if (isMoved) {
1155
+ // Calculate horizontal swipe distance
1156
+ diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);
1157
+
1158
+ $.each(self.slides, function(index, slide) {
1159
+ slide.$slide.removeClass("fancybox-animated").removeClass(function(index, className) {
1160
+ return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
1161
+ });
1162
+
1163
+ // Make sure that each slide is in equal distance
1164
+ // This is mostly needed for freshly added slides, because they are not yet positioned
1165
+ var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;
1166
+
1167
+ $.fancybox.setTranslate(slide.$slide, {top: 0, left: leftPos - stagePos.left + diff});
1168
+
1169
+ if (slide.pos !== current.pos) {
1170
+ slide.$slide.addClass("fancybox-slide--" + (slide.pos > current.pos ? "next" : "previous"));
1171
+ }
1172
+
1173
+ // Redraw to make sure that transition will start
1174
+ forceRedraw(slide.$slide);
1175
+
1176
+ // Animate the slide
1177
+ $.fancybox.animate(
1178
+ slide.$slide,
1179
+ {
1180
+ top: 0,
1181
+ left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter
1182
+ },
1183
+ duration,
1184
+ function() {
1185
+ slide.$slide
1186
+ .css({
1187
+ transform: "",
1188
+ opacity: ""
1189
+ })
1190
+ .removeClass("fancybox-slide--next fancybox-slide--previous");
1191
+
1192
+ if (slide.pos === self.currPos) {
1193
+ self.complete();
1194
+ }
1195
+ }
1196
+ );
1197
+ });
1198
+ } else if (duration && current.opts.transitionEffect) {
1199
+ // Set transition effect for previously active slide
1200
+ prop = "fancybox-animated fancybox-fx-" + current.opts.transitionEffect;
1201
+
1202
+ previous.$slide.addClass("fancybox-slide--" + (previous.pos > current.pos ? "next" : "previous"));
1203
+
1204
+ $.fancybox.animate(
1205
+ previous.$slide,
1206
+ prop,
1207
+ duration,
1208
+ function() {
1209
+ previous.$slide.removeClass(prop).removeClass("fancybox-slide--next fancybox-slide--previous");
1210
+ },
1211
+ false
1212
+ );
1213
+ }
1214
+
1215
+ if (current.isLoaded) {
1216
+ self.revealContent(current);
1217
+ } else {
1218
+ self.loadSlide(current);
1219
+ }
1220
+
1221
+ self.preload("image");
1222
+ },
1223
+
1224
+ // Create new "slide" element
1225
+ // These are gallery items that are actually added to DOM
1226
+ // =======================================================
1227
+
1228
+ createSlide: function(pos) {
1229
+ var self = this,
1230
+ $slide,
1231
+ index;
1232
+
1233
+ index = pos % self.group.length;
1234
+ index = index < 0 ? self.group.length + index : index;
1235
+
1236
+ if (!self.slides[pos] && self.group[index]) {
1237
+ $slide = $('<div class="fancybox-slide"></div>').appendTo(self.$refs.stage);
1238
+
1239
+ self.slides[pos] = $.extend(true, {}, self.group[index], {
1240
+ pos: pos,
1241
+ $slide: $slide,
1242
+ isLoaded: false
1243
+ });
1244
+
1245
+ self.updateSlide(self.slides[pos]);
1246
+ }
1247
+
1248
+ return self.slides[pos];
1249
+ },
1250
+
1251
+ // Scale image to the actual size of the image;
1252
+ // x and y values should be relative to the slide
1253
+ // ==============================================
1254
+
1255
+ scaleToActual: function(x, y, duration) {
1256
+ var self = this,
1257
+ current = self.current,
1258
+ $content = current.$content,
1259
+ canvasWidth = $.fancybox.getTranslate(current.$slide).width,
1260
+ canvasHeight = $.fancybox.getTranslate(current.$slide).height,
1261
+ newImgWidth = current.width,
1262
+ newImgHeight = current.height,
1263
+ imgPos,
1264
+ posX,
1265
+ posY,
1266
+ scaleX,
1267
+ scaleY;
1268
+
1269
+ if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) {
1270
+ return;
1271
+ }
1272
+
1273
+ self.isAnimating = true;
1274
+
1275
+ $.fancybox.stop($content);
1276
+
1277
+ x = x === undefined ? canvasWidth * 0.5 : x;
1278
+ y = y === undefined ? canvasHeight * 0.5 : y;
1279
+
1280
+ imgPos = $.fancybox.getTranslate($content);
1281
+
1282
+ imgPos.top -= $.fancybox.getTranslate(current.$slide).top;
1283
+ imgPos.left -= $.fancybox.getTranslate(current.$slide).left;
1284
+
1285
+ scaleX = newImgWidth / imgPos.width;
1286
+ scaleY = newImgHeight / imgPos.height;
1287
+
1288
+ // Get center position for original image
1289
+ posX = canvasWidth * 0.5 - newImgWidth * 0.5;
1290
+ posY = canvasHeight * 0.5 - newImgHeight * 0.5;
1291
+
1292
+ // Make sure image does not move away from edges
1293
+ if (newImgWidth > canvasWidth) {
1294
+ posX = imgPos.left * scaleX - (x * scaleX - x);
1295
+
1296
+ if (posX > 0) {
1297
+ posX = 0;
1298
+ }
1299
+
1300
+ if (posX < canvasWidth - newImgWidth) {
1301
+ posX = canvasWidth - newImgWidth;
1302
+ }
1303
+ }
1304
+
1305
+ if (newImgHeight > canvasHeight) {
1306
+ posY = imgPos.top * scaleY - (y * scaleY - y);
1307
+
1308
+ if (posY > 0) {
1309
+ posY = 0;
1310
+ }
1311
+
1312
+ if (posY < canvasHeight - newImgHeight) {
1313
+ posY = canvasHeight - newImgHeight;
1314
+ }
1315
+ }
1316
+
1317
+ self.updateCursor(newImgWidth, newImgHeight);
1318
+
1319
+ $.fancybox.animate(
1320
+ $content,
1321
+ {
1322
+ top: posY,
1323
+ left: posX,
1324
+ scaleX: scaleX,
1325
+ scaleY: scaleY
1326
+ },
1327
+ duration || 330,
1328
+ function() {
1329
+ self.isAnimating = false;
1330
+ }
1331
+ );
1332
+
1333
+ // Stop slideshow
1334
+ if (self.SlideShow && self.SlideShow.isActive) {
1335
+ self.SlideShow.stop();
1336
+ }
1337
+ },
1338
+
1339
+ // Scale image to fit inside parent element
1340
+ // ========================================
1341
+
1342
+ scaleToFit: function(duration) {
1343
+ var self = this,
1344
+ current = self.current,
1345
+ $content = current.$content,
1346
+ end;
1347
+
1348
+ if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) {
1349
+ return;
1350
+ }
1351
+
1352
+ self.isAnimating = true;
1353
+
1354
+ $.fancybox.stop($content);
1355
+
1356
+ end = self.getFitPos(current);
1357
+
1358
+ self.updateCursor(end.width, end.height);
1359
+
1360
+ $.fancybox.animate(
1361
+ $content,
1362
+ {
1363
+ top: end.top,
1364
+ left: end.left,
1365
+ scaleX: end.width / $content.width(),
1366
+ scaleY: end.height / $content.height()
1367
+ },
1368
+ duration || 330,
1369
+ function() {
1370
+ self.isAnimating = false;
1371
+ }
1372
+ );
1373
+ },
1374
+
1375
+ // Calculate image size to fit inside viewport
1376
+ // ===========================================
1377
+
1378
+ getFitPos: function(slide) {
1379
+ var self = this,
1380
+ $content = slide.$content,
1381
+ $slide = slide.$slide,
1382
+ width = slide.width || slide.opts.width,
1383
+ height = slide.height || slide.opts.height,
1384
+ maxWidth,
1385
+ maxHeight,
1386
+ minRatio,
1387
+ aspectRatio,
1388
+ rez = {};
1389
+
1390
+ if (!slide.isLoaded || !$content || !$content.length) {
1391
+ return false;
1392
+ }
1393
+
1394
+ maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;
1395
+ maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;
1396
+
1397
+ maxWidth -=
1398
+ parseFloat($slide.css("paddingLeft")) +
1399
+ parseFloat($slide.css("paddingRight")) +
1400
+ parseFloat($content.css("marginLeft")) +
1401
+ parseFloat($content.css("marginRight"));
1402
+
1403
+ maxHeight -=
1404
+ parseFloat($slide.css("paddingTop")) +
1405
+ parseFloat($slide.css("paddingBottom")) +
1406
+ parseFloat($content.css("marginTop")) +
1407
+ parseFloat($content.css("marginBottom"));
1408
+
1409
+ if (!width || !height) {
1410
+ width = maxWidth;
1411
+ height = maxHeight;
1412
+ }
1413
+
1414
+ minRatio = Math.min(1, maxWidth / width, maxHeight / height);
1415
+
1416
+ width = minRatio * width;
1417
+ height = minRatio * height;
1418
+
1419
+ // Adjust width/height to precisely fit into container
1420
+ if (width > maxWidth - 0.5) {
1421
+ width = maxWidth;
1422
+ }
1423
+
1424
+ if (height > maxHeight - 0.5) {
1425
+ height = maxHeight;
1426
+ }
1427
+
1428
+ if (slide.type === "image") {
1429
+ rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css("paddingTop"));
1430
+ rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css("paddingLeft"));
1431
+ } else if (slide.contentType === "video") {
1432
+ // Force aspect ratio for the video
1433
+ // "I say the whole world must learn of our peaceful ways… by force!"
1434
+ aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;
1435
+
1436
+ if (height > width / aspectRatio) {
1437
+ height = width / aspectRatio;
1438
+ } else if (width > height * aspectRatio) {
1439
+ width = height * aspectRatio;
1440
+ }
1441
+ }
1442
+
1443
+ rez.width = width;
1444
+ rez.height = height;
1445
+
1446
+ return rez;
1447
+ },
1448
+
1449
+ // Update content size and position for all slides
1450
+ // ==============================================
1451
+
1452
+ update: function(e) {
1453
+ var self = this;
1454
+
1455
+ $.each(self.slides, function(key, slide) {
1456
+ self.updateSlide(slide, e);
1457
+ });
1458
+ },
1459
+
1460
+ // Update slide content position and size
1461
+ // ======================================
1462
+
1463
+ updateSlide: function(slide, e) {
1464
+ var self = this,
1465
+ $content = slide && slide.$content,
1466
+ width = slide.width || slide.opts.width,
1467
+ height = slide.height || slide.opts.height,
1468
+ $slide = slide.$slide;
1469
+
1470
+ // First, prevent caption overlap, if needed
1471
+ self.adjustCaption(slide);
1472
+
1473
+ // Then resize content to fit inside the slide
1474
+ if ($content && (width || height || slide.contentType === "video") && !slide.hasError) {
1475
+ $.fancybox.stop($content);
1476
+
1477
+ $.fancybox.setTranslate($content, self.getFitPos(slide));
1478
+
1479
+ if (slide.pos === self.currPos) {
1480
+ self.isAnimating = false;
1481
+
1482
+ self.updateCursor();
1483
+ }
1484
+ }
1485
+
1486
+ // Then some adjustments
1487
+ self.adjustLayout(slide);
1488
+
1489
+ if ($slide.length) {
1490
+ $slide.trigger("refresh");
1491
+
1492
+ if (slide.pos === self.currPos) {
1493
+ self.$refs.toolbar
1494
+ .add(self.$refs.navigation.find(".fancybox-button--arrow_right"))
1495
+ .toggleClass("compensate-for-scrollbar", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);
1496
+ }
1497
+ }
1498
+
1499
+ self.trigger("onUpdate", slide, e);
1500
+ },
1501
+
1502
+ // Horizontally center slide
1503
+ // =========================
1504
+
1505
+ centerSlide: function(duration) {
1506
+ var self = this,
1507
+ current = self.current,
1508
+ $slide = current.$slide;
1509
+
1510
+ if (self.isClosing || !current) {
1511
+ return;
1512
+ }
1513
+
1514
+ $slide.siblings().css({
1515
+ transform: "",
1516
+ opacity: ""
1517
+ });
1518
+
1519
+ $slide
1520
+ .parent()
1521
+ .children()
1522
+ .removeClass("fancybox-slide--previous fancybox-slide--next");
1523
+
1524
+ $.fancybox.animate(
1525
+ $slide,
1526
+ {
1527
+ top: 0,
1528
+ left: 0,
1529
+ opacity: 1
1530
+ },
1531
+ duration === undefined ? 0 : duration,
1532
+ function() {
1533
+ // Clean up
1534
+ $slide.css({
1535
+ transform: "",
1536
+ opacity: ""
1537
+ });
1538
+
1539
+ if (!current.isComplete) {
1540
+ self.complete();
1541
+ }
1542
+ },
1543
+ false
1544
+ );
1545
+ },
1546
+
1547
+ // Check if current slide is moved (swiped)
1548
+ // ========================================
1549
+
1550
+ isMoved: function(slide) {
1551
+ var current = slide || this.current,
1552
+ slidePos,
1553
+ stagePos;
1554
+
1555
+ if (!current) {
1556
+ return false;
1557
+ }
1558
+
1559
+ stagePos = $.fancybox.getTranslate(this.$refs.stage);
1560
+ slidePos = $.fancybox.getTranslate(current.$slide);
1561
+
1562
+ return (
1563
+ !current.$slide.hasClass("fancybox-animated") &&
1564
+ (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)
1565
+ );
1566
+ },
1567
+
1568
+ // Update cursor style depending if content can be zoomed
1569
+ // ======================================================
1570
+
1571
+ updateCursor: function(nextWidth, nextHeight) {
1572
+ var self = this,
1573
+ current = self.current,
1574
+ $container = self.$refs.container,
1575
+ canPan,
1576
+ isZoomable;
1577
+
1578
+ if (!current || self.isClosing || !self.Guestures) {
1579
+ return;
1580
+ }
1581
+
1582
+ $container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan");
1583
+
1584
+ canPan = self.canPan(nextWidth, nextHeight);
1585
+
1586
+ isZoomable = canPan ? true : self.isZoomable();
1587
+
1588
+ $container.toggleClass("fancybox-is-zoomable", isZoomable);
1589
+
1590
+ $("[data-fancybox-zoom]").prop("disabled", !isZoomable);
1591
+
1592
+ if (canPan) {
1593
+ $container.addClass("fancybox-can-pan");
1594
+ } else if (
1595
+ isZoomable &&
1596
+ (current.opts.clickContent === "zoom" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == "zoom"))
1597
+ ) {
1598
+ $container.addClass("fancybox-can-zoomIn");
1599
+ } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== "video") {
1600
+ $container.addClass("fancybox-can-swipe");
1601
+ }
1602
+ },
1603
+
1604
+ // Check if current slide is zoomable
1605
+ // ==================================
1606
+
1607
+ isZoomable: function() {
1608
+ var self = this,
1609
+ current = self.current,
1610
+ fitPos;
1611
+
1612
+ // Assume that slide is zoomable if:
1613
+ // - image is still loading
1614
+ // - actual size of the image is smaller than available area
1615
+ if (current && !self.isClosing && current.type === "image" && !current.hasError) {
1616
+ if (!current.isLoaded) {
1617
+ return true;
1618
+ }
1619
+
1620
+ fitPos = self.getFitPos(current);
1621
+
1622
+ if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {
1623
+ return true;
1624
+ }
1625
+ }
1626
+
1627
+ return false;
1628
+ },
1629
+
1630
+ // Check if current image dimensions are smaller than actual
1631
+ // =========================================================
1632
+
1633
+ isScaledDown: function(nextWidth, nextHeight) {
1634
+ var self = this,
1635
+ rez = false,
1636
+ current = self.current,
1637
+ $content = current.$content;
1638
+
1639
+ if (nextWidth !== undefined && nextHeight !== undefined) {
1640
+ rez = nextWidth < current.width && nextHeight < current.height;
1641
+ } else if ($content) {
1642
+ rez = $.fancybox.getTranslate($content);
1643
+ rez = rez.width < current.width && rez.height < current.height;
1644
+ }
1645
+
1646
+ return rez;
1647
+ },
1648
+
1649
+ // Check if image dimensions exceed parent element
1650
+ // ===============================================
1651
+
1652
+ canPan: function(nextWidth, nextHeight) {
1653
+ var self = this,
1654
+ current = self.current,
1655
+ pos = null,
1656
+ rez = false;
1657
+
1658
+ if (current.type === "image" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {
1659
+ rez = self.getFitPos(current);
1660
+
1661
+ if (nextWidth !== undefined && nextHeight !== undefined) {
1662
+ pos = {width: nextWidth, height: nextHeight};
1663
+ } else if (current.isComplete) {
1664
+ pos = $.fancybox.getTranslate(current.$content);
1665
+ }
1666
+
1667
+ if (pos && rez) {
1668
+ rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;
1669
+ }
1670
+ }
1671
+
1672
+ return rez;
1673
+ },
1674
+
1675
+ // Load content into the slide
1676
+ // ===========================
1677
+
1678
+ loadSlide: function(slide) {
1679
+ var self = this,
1680
+ type,
1681
+ $slide,
1682
+ ajaxLoad;
1683
+
1684
+ if (slide.isLoading || slide.isLoaded) {
1685
+ return;
1686
+ }
1687
+
1688
+ slide.isLoading = true;
1689
+
1690
+ if (self.trigger("beforeLoad", slide) === false) {
1691
+ slide.isLoading = false;
1692
+
1693
+ return false;
1694
+ }
1695
+
1696
+ type = slide.type;
1697
+ $slide = slide.$slide;
1698
+
1699
+ $slide
1700
+ .off("refresh")
1701
+ .trigger("onReset")
1702
+ .addClass(slide.opts.slideClass);
1703
+
1704
+ // Create content depending on the type
1705
+ switch (type) {
1706
+ case "image":
1707
+ self.setImage(slide);
1708
+
1709
+ break;
1710
+
1711
+ case "iframe":
1712
+ self.setIframe(slide);
1713
+
1714
+ break;
1715
+
1716
+ case "html":
1717
+ self.setContent(slide, slide.src || slide.content);
1718
+
1719
+ break;
1720
+
1721
+ case "video":
1722
+ self.setContent(
1723
+ slide,
1724
+ slide.opts.video.tpl
1725
+ .replace(/\{\{src\}\}/gi, slide.src)
1726
+ .replace("{{format}}", slide.opts.videoFormat || slide.opts.video.format || "")
1727
+ .replace("{{poster}}", slide.thumb || "")
1728
+ );
1729
+
1730
+ break;
1731
+
1732
+ case "inline":
1733
+ if ($(slide.src).length) {
1734
+ self.setContent(slide, $(slide.src));
1735
+ } else {
1736
+ self.setError(slide);
1737
+ }
1738
+
1739
+ break;
1740
+
1741
+ case "ajax":
1742
+ self.showLoading(slide);
1743
+
1744
+ ajaxLoad = $.ajax(
1745
+ $.extend({}, slide.opts.ajax.settings, {
1746
+ url: slide.src,
1747
+ success: function(data, textStatus) {
1748
+ if (textStatus === "success") {
1749
+ self.setContent(slide, data);
1750
+ }
1751
+ },
1752
+ error: function(jqXHR, textStatus) {
1753
+ if (jqXHR && textStatus !== "abort") {
1754
+ self.setError(slide);
1755
+ }
1756
+ }
1757
+ })
1758
+ );
1759
+
1760
+ $slide.one("onReset", function() {
1761
+ ajaxLoad.abort();
1762
+ });
1763
+
1764
+ break;
1765
+
1766
+ default:
1767
+ self.setError(slide);
1768
+
1769
+ break;
1770
+ }
1771
+
1772
+ return true;
1773
+ },
1774
+
1775
+ // Use thumbnail image, if possible
1776
+ // ================================
1777
+
1778
+ setImage: function(slide) {
1779
+ var self = this,
1780
+ ghost;
1781
+
1782
+ // Check if need to show loading icon
1783
+ requestAFrame(function() {
1784
+ requestAFrame(function() {
1785
+ var $img = slide.$image;
1786
+
1787
+ if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {
1788
+ self.showLoading(slide);
1789
+ }
1790
+ });
1791
+ });
1792
+
1793
+ //Check if image has srcset
1794
+ self.checkSrcset(slide);
1795
+
1796
+ // This will be wrapper containing both ghost and actual image
1797
+ slide.$content = $('<div class="fancybox-content"></div>')
1798
+ .addClass("fancybox-is-hidden")
1799
+ .appendTo(slide.$slide.addClass("fancybox-slide--image"));
1800
+
1801
+ // If we have a thumbnail, we can display it while actual image is loading
1802
+ // Users will not stare at black screen and actual image will appear gradually
1803
+ if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {
1804
+ slide.width = slide.opts.width;
1805
+ slide.height = slide.opts.height;
1806
+
1807
+ ghost = document.createElement("img");
1808
+
1809
+ ghost.onerror = function() {
1810
+ $(this).remove();
1811
+
1812
+ slide.$ghost = null;
1813
+ };
1814
+
1815
+ ghost.onload = function() {
1816
+ self.afterLoad(slide);
1817
+ };
1818
+
1819
+ slide.$ghost = $(ghost)
1820
+ .addClass("fancybox-image")
1821
+ .appendTo(slide.$content)
1822
+ .attr("src", slide.thumb);
1823
+ }
1824
+
1825
+ // Start loading actual image
1826
+ self.setBigImage(slide);
1827
+ },
1828
+
1829
+ // Check if image has srcset and get the source
1830
+ // ============================================
1831
+ checkSrcset: function(slide) {
1832
+ var srcset = slide.opts.srcset || slide.opts.image.srcset,
1833
+ found,
1834
+ temp,
1835
+ pxRatio,
1836
+ windowWidth;
1837
+
1838
+ // If we have "srcset", then we need to find first matching "src" value.
1839
+ // This is necessary, because when you set an src attribute, the browser will preload the image
1840
+ // before any javascript or even CSS is applied.
1841
+ if (srcset) {
1842
+ pxRatio = window.devicePixelRatio || 1;
1843
+ windowWidth = window.innerWidth * pxRatio;
1844
+
1845
+ temp = srcset.split(",").map(function(el) {
1846
+ var ret = {};
1847
+
1848
+ el.trim()
1849
+ .split(/\s+/)
1850
+ .forEach(function(el, i) {
1851
+ var value = parseInt(el.substring(0, el.length - 1), 10);
1852
+
1853
+ if (i === 0) {
1854
+ return (ret.url = el);
1855
+ }
1856
+
1857
+ if (value) {
1858
+ ret.value = value;
1859
+ ret.postfix = el[el.length - 1];
1860
+ }
1861
+ });
1862
+
1863
+ return ret;
1864
+ });
1865
+
1866
+ // Sort by value
1867
+ temp.sort(function(a, b) {
1868
+ return a.value - b.value;
1869
+ });
1870
+
1871
+ // Ok, now we have an array of all srcset values
1872
+ for (var j = 0; j < temp.length; j++) {
1873
+ var el = temp[j];
1874
+
1875
+ if ((el.postfix === "w" && el.value >= windowWidth) || (el.postfix === "x" && el.value >= pxRatio)) {
1876
+ found = el;
1877
+ break;
1878
+ }
1879
+ }
1880
+
1881
+ // If not found, take the last one
1882
+ if (!found && temp.length) {
1883
+ found = temp[temp.length - 1];
1884
+ }
1885
+
1886
+ if (found) {
1887
+ slide.src = found.url;
1888
+
1889
+ // If we have default width/height values, we can calculate height for matching source
1890
+ if (slide.width && slide.height && found.postfix == "w") {
1891
+ slide.height = (slide.width / slide.height) * found.value;
1892
+ slide.width = found.value;
1893
+ }
1894
+
1895
+ slide.opts.srcset = srcset;
1896
+ }
1897
+ }
1898
+ },
1899
+
1900
+ // Create full-size image
1901
+ // ======================
1902
+
1903
+ setBigImage: function(slide) {
1904
+ var self = this,
1905
+ img = document.createElement("img"),
1906
+ $img = $(img);
1907
+
1908
+ slide.$image = $img
1909
+ .one("error", function() {
1910
+ self.setError(slide);
1911
+ })
1912
+ .one("load", function() {
1913
+ var sizes;
1914
+
1915
+ if (!slide.$ghost) {
1916
+ self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);
1917
+
1918
+ self.afterLoad(slide);
1919
+ }
1920
+
1921
+ if (self.isClosing) {
1922
+ return;
1923
+ }
1924
+
1925
+ if (slide.opts.srcset) {
1926
+ sizes = slide.opts.sizes;
1927
+
1928
+ if (!sizes || sizes === "auto") {
1929
+ sizes =
1930
+ (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? "100" : Math.round((slide.width / slide.height) * 100)) +
1931
+ "vw";
1932
+ }
1933
+
1934
+ $img.attr("sizes", sizes).attr("srcset", slide.opts.srcset);
1935
+ }
1936
+
1937
+ // Hide temporary image after some delay
1938
+ if (slide.$ghost) {
1939
+ setTimeout(function() {
1940
+ if (slide.$ghost && !self.isClosing) {
1941
+ slide.$ghost.hide();
1942
+ }
1943
+ }, Math.min(300, Math.max(1000, slide.height / 1600)));
1944
+ }
1945
+
1946
+ self.hideLoading(slide);
1947
+ })
1948
+ .addClass("fancybox-image")
1949
+ .attr("src", slide.src)
1950
+ .appendTo(slide.$content);
1951
+
1952
+ if ((img.complete || img.readyState == "complete") && $img.naturalWidth && $img.naturalHeight) {
1953
+ $img.trigger("load");
1954
+ } else if (img.error) {
1955
+ $img.trigger("error");
1956
+ }
1957
+ },
1958
+
1959
+ // Computes the slide size from image size and maxWidth/maxHeight
1960
+ // ==============================================================
1961
+
1962
+ resolveImageSlideSize: function(slide, imgWidth, imgHeight) {
1963
+ var maxWidth = parseInt(slide.opts.width, 10),
1964
+ maxHeight = parseInt(slide.opts.height, 10);
1965
+
1966
+ // Sets the default values from the image
1967
+ slide.width = imgWidth;
1968
+ slide.height = imgHeight;
1969
+
1970
+ if (maxWidth > 0) {
1971
+ slide.width = maxWidth;
1972
+ slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);
1973
+ }
1974
+
1975
+ if (maxHeight > 0) {
1976
+ slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);
1977
+ slide.height = maxHeight;
1978
+ }
1979
+ },
1980
+
1981
+ // Create iframe wrapper, iframe and bindings
1982
+ // ==========================================
1983
+
1984
+ setIframe: function(slide) {
1985
+ var self = this,
1986
+ opts = slide.opts.iframe,
1987
+ $slide = slide.$slide,
1988
+ $iframe;
1989
+
1990
+ // Fix responsive iframes on iOS (along with `position:absolute;` for iframe element)
1991
+ if ($.fancybox.isMobile) {
1992
+ opts.css.overflow = "scroll";
1993
+ }
1994
+
1995
+ slide.$content = $('<div class="fancybox-content' + (opts.preload ? " fancybox-is-hidden" : "") + '"></div>')
1996
+ .css(opts.css)
1997
+ .appendTo($slide);
1998
+
1999
+ $slide.addClass("fancybox-slide--" + slide.contentType);
2000
+
2001
+ slide.$iframe = $iframe = $(opts.tpl.replace(/\{rnd\}/g, new Date().getTime()))
2002
+ .attr(opts.attr)
2003
+ .appendTo(slide.$content);
2004
+
2005
+ if (opts.preload) {
2006
+ self.showLoading(slide);
2007
+
2008
+ // Unfortunately, it is not always possible to determine if iframe is successfully loaded
2009
+ // (due to browser security policy)
2010
+
2011
+ $iframe.on("load.fb error.fb", function(e) {
2012
+ this.isReady = 1;
2013
+
2014
+ slide.$slide.trigger("refresh");
2015
+
2016
+ self.afterLoad(slide);
2017
+ });
2018
+
2019
+ // Recalculate iframe content size
2020
+ // ===============================
2021
+
2022
+ $slide.on("refresh.fb", function() {
2023
+ var $content = slide.$content,
2024
+ frameWidth = opts.css.width,
2025
+ frameHeight = opts.css.height,
2026
+ $contents,
2027
+ $body;
2028
+
2029
+ if ($iframe[0].isReady !== 1) {
2030
+ return;
2031
+ }
2032
+
2033
+ try {
2034
+ $contents = $iframe.contents();
2035
+ $body = $contents.find("body");
2036
+ } catch (ignore) {}
2037
+
2038
+ // Calculate contnet dimensions if it is accessible
2039
+ if ($body && $body.length && $body.children().length) {
2040
+ // Avoid scrolling to top (if multiple instances)
2041
+ $slide.css("overflow", "visible");
2042
+
2043
+ $content.css({
2044
+ width: "100%",
2045
+ "max-width": "100%",
2046
+ height: "9999px"
2047
+ });
2048
+
2049
+ if (frameWidth === undefined) {
2050
+ frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));
2051
+ }
2052
+
2053
+ $content.css("width", frameWidth ? frameWidth : "").css("max-width", "");
2054
+
2055
+ if (frameHeight === undefined) {
2056
+ frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));
2057
+ }
2058
+
2059
+ $content.css("height", frameHeight ? frameHeight : "");
2060
+
2061
+ $slide.css("overflow", "auto");
2062
+ }
2063
+
2064
+ $content.removeClass("fancybox-is-hidden");
2065
+ });
2066
+ } else {
2067
+ self.afterLoad(slide);
2068
+ }
2069
+
2070
+ $iframe.attr("src", slide.src);
2071
+
2072
+ // Remove iframe if closing or changing gallery item
2073
+ $slide.one("onReset", function() {
2074
+ // This helps IE not to throw errors when closing
2075
+ try {
2076
+ $(this)
2077
+ .find("iframe")
2078
+ .hide()
2079
+ .unbind()
2080
+ .attr("src", "//about:blank");
2081
+ } catch (ignore) {}
2082
+
2083
+ $(this)
2084
+ .off("refresh.fb")
2085
+ .empty();
2086
+
2087
+ slide.isLoaded = false;
2088
+ slide.isRevealed = false;
2089
+ });
2090
+ },
2091
+
2092
+ // Wrap and append content to the slide
2093
+ // ======================================
2094
+
2095
+ setContent: function(slide, content) {
2096
+ var self = this;
2097
+
2098
+ if (self.isClosing) {
2099
+ return;
2100
+ }
2101
+
2102
+ self.hideLoading(slide);
2103
+
2104
+ if (slide.$content) {
2105
+ $.fancybox.stop(slide.$content);
2106
+ }
2107
+
2108
+ slide.$slide.empty();
2109
+
2110
+ // If content is a jQuery object, then it will be moved to the slide.
2111
+ // The placeholder is created so we will know where to put it back.
2112
+ if (isQuery(content) && content.parent().length) {
2113
+ // Make sure content is not already moved to fancyBox
2114
+ if (content.hasClass("fancybox-content")) {
2115
+ content.parent(".fancybox-slide--html").trigger("onReset");
2116
+ }
2117
+
2118
+ // Create temporary element marking original place of the content
2119
+ slide.$placeholder = $("<div>")
2120
+ .hide()
2121
+ .insertAfter(content);
2122
+
2123
+ // Make sure content is visible
2124
+ content.css("display", "inline-block");
2125
+ } else if (!slide.hasError) {
2126
+ // If content is just a plain text, try to convert it to html
2127
+ if ($.type(content) === "string") {
2128
+ content = $("<div>")
2129
+ .append($.trim(content))
2130
+ .contents();
2131
+ }
2132
+
2133
+ // If "filter" option is provided, then filter content
2134
+ if (slide.opts.filter) {
2135
+ content = $("<div>")
2136
+ .html(content)
2137
+ .find(slide.opts.filter);
2138
+ }
2139
+ }
2140
+
2141
+ slide.$slide.one("onReset", function() {
2142
+ // Pause all html5 video/audio
2143
+ $(this)
2144
+ .find("video,audio")
2145
+ .trigger("pause");
2146
+
2147
+ // Put content back
2148
+ if (slide.$placeholder) {
2149
+ slide.$placeholder.after(content.removeClass("fancybox-content").hide()).remove();
2150
+
2151
+ slide.$placeholder = null;
2152
+ }
2153
+
2154
+ // Remove custom close button
2155
+ if (slide.$smallBtn) {
2156
+ slide.$smallBtn.remove();
2157
+
2158
+ slide.$smallBtn = null;
2159
+ }
2160
+
2161
+ // Remove content and mark slide as not loaded
2162
+ if (!slide.hasError) {
2163
+ $(this).empty();
2164
+
2165
+ slide.isLoaded = false;
2166
+ slide.isRevealed = false;
2167
+ }
2168
+ });
2169
+
2170
+ $(content).appendTo(slide.$slide);
2171
+
2172
+ if ($(content).is("video,audio")) {
2173
+ $(content).addClass("fancybox-video");
2174
+
2175
+ $(content).wrap("<div></div>");
2176
+
2177
+ slide.contentType = "video";
2178
+
2179
+ slide.opts.width = slide.opts.width || $(content).attr("width");
2180
+ slide.opts.height = slide.opts.height || $(content).attr("height");
2181
+ }
2182
+
2183
+ slide.$content = slide.$slide
2184
+ .children()
2185
+ .filter("div,form,main,video,audio,article,.fancybox-content")
2186
+ .first();
2187
+
2188
+ slide.$content.siblings().hide();
2189
+
2190
+ // Re-check if there is a valid content
2191
+ // (in some cases, ajax response can contain various elements or plain text)
2192
+ if (!slide.$content.length) {
2193
+ slide.$content = slide.$slide
2194
+ .wrapInner("<div></div>")
2195
+ .children()
2196
+ .first();
2197
+ }
2198
+
2199
+ slide.$content.addClass("fancybox-content");
2200
+
2201
+ slide.$slide.addClass("fancybox-slide--" + slide.contentType);
2202
+
2203
+ self.afterLoad(slide);
2204
+ },
2205
+
2206
+ // Display error message
2207
+ // =====================
2208
+
2209
+ setError: function(slide) {
2210
+ slide.hasError = true;
2211
+
2212
+ slide.$slide
2213
+ .trigger("onReset")
2214
+ .removeClass("fancybox-slide--" + slide.contentType)
2215
+ .addClass("fancybox-slide--error");
2216
+
2217
+ slide.contentType = "html";
2218
+
2219
+ this.setContent(slide, this.translate(slide, slide.opts.errorTpl));
2220
+
2221
+ if (slide.pos === this.currPos) {
2222
+ this.isAnimating = false;
2223
+ }
2224
+ },
2225
+
2226
+ // Show loading icon inside the slide
2227
+ // ==================================
2228
+
2229
+ showLoading: function(slide) {
2230
+ var self = this;
2231
+
2232
+ slide = slide || self.current;
2233
+
2234
+ if (slide && !slide.$spinner) {
2235
+ slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))
2236
+ .appendTo(slide.$slide)
2237
+ .hide()
2238
+ .fadeIn("fast");
2239
+ }
2240
+ },
2241
+
2242
+ // Remove loading icon from the slide
2243
+ // ==================================
2244
+
2245
+ hideLoading: function(slide) {
2246
+ var self = this;
2247
+
2248
+ slide = slide || self.current;
2249
+
2250
+ if (slide && slide.$spinner) {
2251
+ slide.$spinner.stop().remove();
2252
+
2253
+ delete slide.$spinner;
2254
+ }
2255
+ },
2256
+
2257
+ // Adjustments after slide content has been loaded
2258
+ // ===============================================
2259
+
2260
+ afterLoad: function(slide) {
2261
+ var self = this;
2262
+
2263
+ if (self.isClosing) {
2264
+ return;
2265
+ }
2266
+
2267
+ slide.isLoading = false;
2268
+ slide.isLoaded = true;
2269
+
2270
+ self.trigger("afterLoad", slide);
2271
+
2272
+ self.hideLoading(slide);
2273
+
2274
+ // Add small close button
2275
+ if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {
2276
+ slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);
2277
+ }
2278
+
2279
+ // Disable right click
2280
+ if (slide.opts.protect && slide.$content && !slide.hasError) {
2281
+ slide.$content.on("contextmenu.fb", function(e) {
2282
+ if (e.button == 2) {
2283
+ e.preventDefault();
2284
+ }
2285
+
2286
+ return true;
2287
+ });
2288
+
2289
+ // Add fake element on top of the image
2290
+ // This makes a bit harder for user to select image
2291
+ if (slide.type === "image") {
2292
+ $('<div class="fancybox-spaceball"></div>').appendTo(slide.$content);
2293
+ }
2294
+ }
2295
+
2296
+ self.adjustCaption(slide);
2297
+
2298
+ self.adjustLayout(slide);
2299
+
2300
+ if (slide.pos === self.currPos) {
2301
+ self.updateCursor();
2302
+ }
2303
+
2304
+ self.revealContent(slide);
2305
+ },
2306
+
2307
+ // Prevent caption overlap,
2308
+ // fix css inconsistency across browsers
2309
+ // =====================================
2310
+
2311
+ adjustCaption: function(slide) {
2312
+ var self = this,
2313
+ current = slide || self.current,
2314
+ caption = current.opts.caption,
2315
+ $caption = self.$refs.caption,
2316
+ captionH = false;
2317
+
2318
+ if (current.opts.preventCaptionOverlap && caption && caption.length) {
2319
+ if (current.pos !== self.currPos) {
2320
+ $caption = $caption
2321
+ .clone()
2322
+ .empty()
2323
+ .appendTo($caption.parent());
2324
+
2325
+ $caption.html(caption);
2326
+
2327
+ captionH = $caption.outerHeight(true);
2328
+
2329
+ $caption.empty().remove();
2330
+ } else if (self.$caption) {
2331
+ captionH = self.$caption.outerHeight(true);
2332
+ }
2333
+
2334
+ current.$slide.css("padding-bottom", captionH || "");
2335
+ }
2336
+ },
2337
+
2338
+ // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):
2339
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=748518
2340
+ // ====================================================================================
2341
+
2342
+ adjustLayout: function(slide) {
2343
+ var self = this,
2344
+ current = slide || self.current,
2345
+ scrollHeight,
2346
+ marginBottom,
2347
+ inlinePadding,
2348
+ actualPadding;
2349
+
2350
+ if (current.isLoaded && current.opts.disableLayoutFix !== true) {
2351
+ current.$content.css("margin-bottom", "");
2352
+
2353
+ // If we would always set margin-bottom for the content,
2354
+ // then it would potentially break vertical align
2355
+ if (current.$content.outerHeight() > current.$slide.height() + 0.5) {
2356
+ inlinePadding = current.$slide[0].style["padding-bottom"];
2357
+ actualPadding = current.$slide.css("padding-bottom");
2358
+
2359
+ if (parseFloat(actualPadding) > 0) {
2360
+ scrollHeight = current.$slide[0].scrollHeight;
2361
+
2362
+ current.$slide.css("padding-bottom", 0);
2363
+
2364
+ if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {
2365
+ marginBottom = actualPadding;
2366
+ }
2367
+
2368
+ current.$slide.css("padding-bottom", inlinePadding);
2369
+ }
2370
+ }
2371
+
2372
+ current.$content.css("margin-bottom", marginBottom);
2373
+ }
2374
+ },
2375
+
2376
+ // Make content visible
2377
+ // This method is called right after content has been loaded or
2378
+ // user navigates gallery and transition should start
2379
+ // ============================================================
2380
+
2381
+ revealContent: function(slide) {
2382
+ var self = this,
2383
+ $slide = slide.$slide,
2384
+ end = false,
2385
+ start = false,
2386
+ isMoved = self.isMoved(slide),
2387
+ isRevealed = slide.isRevealed,
2388
+ effect,
2389
+ effectClassName,
2390
+ duration,
2391
+ opacity;
2392
+
2393
+ slide.isRevealed = true;
2394
+
2395
+ effect = slide.opts[self.firstRun ? "animationEffect" : "transitionEffect"];
2396
+ duration = slide.opts[self.firstRun ? "animationDuration" : "transitionDuration"];
2397
+
2398
+ duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);
2399
+
2400
+ if (isMoved || slide.pos !== self.currPos || !duration) {
2401
+ effect = false;
2402
+ }
2403
+
2404
+ // Check if can zoom
2405
+ if (effect === "zoom") {
2406
+ if (slide.pos === self.currPos && duration && slide.type === "image" && !slide.hasError && (start = self.getThumbPos(slide))) {
2407
+ end = self.getFitPos(slide);
2408
+ } else {
2409
+ effect = "fade";
2410
+ }
2411
+ }
2412
+
2413
+ // Zoom animation
2414
+ // ==============
2415
+ if (effect === "zoom") {
2416
+ self.isAnimating = true;
2417
+
2418
+ end.scaleX = end.width / start.width;
2419
+ end.scaleY = end.height / start.height;
2420
+
2421
+ // Check if we need to animate opacity
2422
+ opacity = slide.opts.zoomOpacity;
2423
+
2424
+ if (opacity == "auto") {
2425
+ opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;
2426
+ }
2427
+
2428
+ if (opacity) {
2429
+ start.opacity = 0.1;
2430
+ end.opacity = 1;
2431
+ }
2432
+
2433
+ // Draw image at start position
2434
+ $.fancybox.setTranslate(slide.$content.removeClass("fancybox-is-hidden"), start);
2435
+
2436
+ forceRedraw(slide.$content);
2437
+
2438
+ // Start animation
2439
+ $.fancybox.animate(slide.$content, end, duration, function() {
2440
+ self.isAnimating = false;
2441
+
2442
+ self.complete();
2443
+ });
2444
+
2445
+ return;
2446
+ }
2447
+
2448
+ self.updateSlide(slide);
2449
+
2450
+ // Simply show content if no effect
2451
+ // ================================
2452
+ if (!effect) {
2453
+ slide.$content.removeClass("fancybox-is-hidden");
2454
+
2455
+ if (!isRevealed && isMoved && slide.type === "image" && !slide.hasError) {
2456
+ slide.$content.hide().fadeIn("fast");
2457
+ }
2458
+
2459
+ if (slide.pos === self.currPos) {
2460
+ self.complete();
2461
+ }
2462
+
2463
+ return;
2464
+ }
2465
+
2466
+ // Prepare for CSS transiton
2467
+ // =========================
2468
+ $.fancybox.stop($slide);
2469
+
2470
+ //effectClassName = "fancybox-animated fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-fx-" + effect;
2471
+ effectClassName = "fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + effect;
2472
+
2473
+ $slide.addClass(effectClassName).removeClass("fancybox-slide--current"); //.addClass(effectClassName);
2474
+
2475
+ slide.$content.removeClass("fancybox-is-hidden");
2476
+
2477
+ // Force reflow
2478
+ forceRedraw($slide);
2479
+
2480
+ if (slide.type !== "image") {
2481
+ slide.$content.hide().show(0);
2482
+ }
2483
+
2484
+ $.fancybox.animate(
2485
+ $slide,
2486
+ "fancybox-slide--current",
2487
+ duration,
2488
+ function() {
2489
+ $slide.removeClass(effectClassName).css({
2490
+ transform: "",
2491
+ opacity: ""
2492
+ });
2493
+
2494
+ if (slide.pos === self.currPos) {
2495
+ self.complete();
2496
+ }
2497
+ },
2498
+ true
2499
+ );
2500
+ },
2501
+
2502
+ // Check if we can and have to zoom from thumbnail
2503
+ //================================================
2504
+
2505
+ getThumbPos: function(slide) {
2506
+ var rez = false,
2507
+ $thumb = slide.$thumb,
2508
+ thumbPos,
2509
+ btw,
2510
+ brw,
2511
+ bbw,
2512
+ blw;
2513
+
2514
+ if (!$thumb || !inViewport($thumb[0])) {
2515
+ return false;
2516
+ }
2517
+
2518
+ thumbPos = $.fancybox.getTranslate($thumb);
2519
+
2520
+ btw = parseFloat($thumb.css("border-top-width") || 0);
2521
+ brw = parseFloat($thumb.css("border-right-width") || 0);
2522
+ bbw = parseFloat($thumb.css("border-bottom-width") || 0);
2523
+ blw = parseFloat($thumb.css("border-left-width") || 0);
2524
+
2525
+ rez = {
2526
+ top: thumbPos.top + btw,
2527
+ left: thumbPos.left + blw,
2528
+ width: thumbPos.width - brw - blw,
2529
+ height: thumbPos.height - btw - bbw,
2530
+ scaleX: 1,
2531
+ scaleY: 1
2532
+ };
2533
+
2534
+ return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;
2535
+ },
2536
+
2537
+ // Final adjustments after current gallery item is moved to position
2538
+ // and it`s content is loaded
2539
+ // ==================================================================
2540
+
2541
+ complete: function() {
2542
+ var self = this,
2543
+ current = self.current,
2544
+ slides = {},
2545
+ $el;
2546
+
2547
+ if (self.isMoved() || !current.isLoaded) {
2548
+ return;
2549
+ }
2550
+
2551
+ if (!current.isComplete) {
2552
+ current.isComplete = true;
2553
+
2554
+ current.$slide.siblings().trigger("onReset");
2555
+
2556
+ self.preload("inline");
2557
+
2558
+ // Trigger any CSS transiton inside the slide
2559
+ forceRedraw(current.$slide);
2560
+
2561
+ current.$slide.addClass("fancybox-slide--complete");
2562
+
2563
+ // Remove unnecessary slides
2564
+ $.each(self.slides, function(key, slide) {
2565
+ if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {
2566
+ slides[slide.pos] = slide;
2567
+ } else if (slide) {
2568
+ $.fancybox.stop(slide.$slide);
2569
+
2570
+ slide.$slide.off().remove();
2571
+ }
2572
+ });
2573
+
2574
+ self.slides = slides;
2575
+ }
2576
+
2577
+ self.isAnimating = false;
2578
+
2579
+ self.updateCursor();
2580
+
2581
+ self.trigger("afterShow");
2582
+
2583
+ // Autoplay first html5 video/audio
2584
+ if (!!current.opts.video.autoStart) {
2585
+ current.$slide
2586
+ .find("video,audio")
2587
+ .filter(":visible:first")
2588
+ .trigger("play")
2589
+ .on("ended", $.proxy(self.next, self));
2590
+ }
2591
+
2592
+ // Try to focus on the first focusable element
2593
+ if (current.opts.autoFocus && current.contentType === "html") {
2594
+ // Look for the first input with autofocus attribute
2595
+ $el = current.$content.find("input[autofocus]:enabled:visible:first");
2596
+
2597
+ if ($el.length) {
2598
+ $el.trigger("focus");
2599
+ } else {
2600
+ self.focus(null, true);
2601
+ }
2602
+ }
2603
+
2604
+ // Avoid jumping
2605
+ current.$slide.scrollTop(0).scrollLeft(0);
2606
+ },
2607
+
2608
+ // Preload next and previous slides
2609
+ // ================================
2610
+
2611
+ preload: function(type) {
2612
+ var self = this,
2613
+ next = self.slides[self.currPos + 1],
2614
+ prev = self.slides[self.currPos - 1];
2615
+
2616
+ if (prev && prev.type === type) {
2617
+ self.loadSlide(prev);
2618
+ }
2619
+
2620
+ if (next && next.type === type) {
2621
+ self.loadSlide(next);
2622
+ }
2623
+ },
2624
+
2625
+ // Try to find and focus on the first focusable element
2626
+ // ====================================================
2627
+
2628
+ focus: function(e, firstRun) {
2629
+ var self = this,
2630
+ focusableStr = [
2631
+ "a[href]",
2632
+ "area[href]",
2633
+ 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
2634
+ "select:not([disabled]):not([aria-hidden])",
2635
+ "textarea:not([disabled]):not([aria-hidden])",
2636
+ "button:not([disabled]):not([aria-hidden])",
2637
+ "iframe",
2638
+ "object",
2639
+ "embed",
2640
+ "[contenteditable]",
2641
+ '[tabindex]:not([tabindex^="-"])'
2642
+ ].join(","),
2643
+ focusableItems,
2644
+ focusedItemIndex;
2645
+
2646
+ if (self.isClosing) {
2647
+ return;
2648
+ }
2649
+
2650
+ if (e || !self.current || !self.current.isComplete) {
2651
+ // Focus on any element inside fancybox
2652
+ focusableItems = self.$refs.container.find("*:visible");
2653
+ } else {
2654
+ // Focus inside current slide
2655
+ focusableItems = self.current.$slide.find("*:visible" + (firstRun ? ":not(.fancybox-close-small)" : ""));
2656
+ }
2657
+
2658
+ focusableItems = focusableItems.filter(focusableStr).filter(function() {
2659
+ return $(this).css("visibility") !== "hidden" && !$(this).hasClass("disabled");
2660
+ });
2661
+
2662
+ if (focusableItems.length) {
2663
+ focusedItemIndex = focusableItems.index(document.activeElement);
2664
+
2665
+ if (e && e.shiftKey) {
2666
+ // Back tab
2667
+ if (focusedItemIndex < 0 || focusedItemIndex == 0) {
2668
+ e.preventDefault();
2669
+
2670
+ focusableItems.eq(focusableItems.length - 1).trigger("focus");
2671
+ }
2672
+ } else {
2673
+ // Outside or Forward tab
2674
+ if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {
2675
+ if (e) {
2676
+ e.preventDefault();
2677
+ }
2678
+
2679
+ focusableItems.eq(0).trigger("focus");
2680
+ }
2681
+ }
2682
+ } else {
2683
+ self.$refs.container.trigger("focus");
2684
+ }
2685
+ },
2686
+
2687
+ // Activates current instance - brings container to the front and enables keyboard,
2688
+ // notifies other instances about deactivating
2689
+ // =================================================================================
2690
+
2691
+ activate: function() {
2692
+ var self = this;
2693
+
2694
+ // Deactivate all instances
2695
+ $(".fancybox-container").each(function() {
2696
+ var instance = $(this).data("FancyBox");
2697
+
2698
+ // Skip self and closing instances
2699
+ if (instance && instance.id !== self.id && !instance.isClosing) {
2700
+ instance.trigger("onDeactivate");
2701
+
2702
+ instance.removeEvents();
2703
+
2704
+ instance.isVisible = false;
2705
+ }
2706
+ });
2707
+
2708
+ self.isVisible = true;
2709
+
2710
+ if (self.current || self.isIdle) {
2711
+ self.update();
2712
+
2713
+ self.updateControls();
2714
+ }
2715
+
2716
+ self.trigger("onActivate");
2717
+
2718
+ self.addEvents();
2719
+ },
2720
+
2721
+ // Start closing procedure
2722
+ // This will start "zoom-out" animation if needed and clean everything up afterwards
2723
+ // =================================================================================
2724
+
2725
+ close: function(e, d) {
2726
+ var self = this,
2727
+ current = self.current,
2728
+ effect,
2729
+ duration,
2730
+ $content,
2731
+ domRect,
2732
+ opacity,
2733
+ start,
2734
+ end;
2735
+
2736
+ var done = function() {
2737
+ self.cleanUp(e);
2738
+ };
2739
+
2740
+ if (self.isClosing) {
2741
+ return false;
2742
+ }
2743
+
2744
+ self.isClosing = true;
2745
+
2746
+ // If beforeClose callback prevents closing, make sure content is centered
2747
+ if (self.trigger("beforeClose", e) === false) {
2748
+ self.isClosing = false;
2749
+
2750
+ requestAFrame(function() {
2751
+ self.update();
2752
+ });
2753
+
2754
+ return false;
2755
+ }
2756
+
2757
+ // Remove all events
2758
+ // If there are multiple instances, they will be set again by "activate" method
2759
+ self.removeEvents();
2760
+
2761
+ $content = current.$content;
2762
+ effect = current.opts.animationEffect;
2763
+ duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;
2764
+
2765
+ current.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated");
2766
+
2767
+ if (e !== true) {
2768
+ $.fancybox.stop(current.$slide);
2769
+ } else {
2770
+ effect = false;
2771
+ }
2772
+
2773
+ // Remove other slides
2774
+ current.$slide
2775
+ .siblings()
2776
+ .trigger("onReset")
2777
+ .remove();
2778
+
2779
+ // Trigger animations
2780
+ if (duration) {
2781
+ self.$refs.container
2782
+ .removeClass("fancybox-is-open")
2783
+ .addClass("fancybox-is-closing")
2784
+ .css("transition-duration", duration + "ms");
2785
+ }
2786
+
2787
+ // Clean up
2788
+ self.hideLoading(current);
2789
+
2790
+ self.hideControls(true);
2791
+
2792
+ self.updateCursor();
2793
+
2794
+ // Check if possible to zoom-out
2795
+ if (
2796
+ effect === "zoom" &&
2797
+ !($content && duration && current.type === "image" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))
2798
+ ) {
2799
+ effect = "fade";
2800
+ }
2801
+
2802
+ if (effect === "zoom") {
2803
+ $.fancybox.stop($content);
2804
+
2805
+ domRect = $.fancybox.getTranslate($content);
2806
+
2807
+ start = {
2808
+ top: domRect.top,
2809
+ left: domRect.left,
2810
+ scaleX: domRect.width / end.width,
2811
+ scaleY: domRect.height / end.height,
2812
+ width: end.width,
2813
+ height: end.height
2814
+ };
2815
+
2816
+ // Check if we need to animate opacity
2817
+ opacity = current.opts.zoomOpacity;
2818
+
2819
+ if (opacity == "auto") {
2820
+ opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;
2821
+ }
2822
+
2823
+ if (opacity) {
2824
+ end.opacity = 0;
2825
+ }
2826
+
2827
+ $.fancybox.setTranslate($content, start);
2828
+
2829
+ forceRedraw($content);
2830
+
2831
+ $.fancybox.animate($content, end, duration, done);
2832
+
2833
+ return true;
2834
+ }
2835
+
2836
+ if (effect && duration) {
2837
+ $.fancybox.animate(
2838
+ current.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),
2839
+ "fancybox-animated fancybox-fx-" + effect,
2840
+ duration,
2841
+ done
2842
+ );
2843
+ } else {
2844
+ // If skip animation
2845
+ if (e === true) {
2846
+ setTimeout(done, duration);
2847
+ } else {
2848
+ done();
2849
+ }
2850
+ }
2851
+
2852
+ return true;
2853
+ },
2854
+
2855
+ // Final adjustments after removing the instance
2856
+ // =============================================
2857
+
2858
+ cleanUp: function(e) {
2859
+ var self = this,
2860
+ instance,
2861
+ $focus = self.current.opts.$orig,
2862
+ x,
2863
+ y;
2864
+
2865
+ self.current.$slide.trigger("onReset");
2866
+
2867
+ self.$refs.container.empty().remove();
2868
+
2869
+ self.trigger("afterClose", e);
2870
+
2871
+ // Place back focus
2872
+ if (!!self.current.opts.backFocus) {
2873
+ if (!$focus || !$focus.length || !$focus.is(":visible")) {
2874
+ $focus = self.$trigger;
2875
+ }
2876
+
2877
+ if ($focus && $focus.length) {
2878
+ x = window.scrollX;
2879
+ y = window.scrollY;
2880
+
2881
+ $focus.trigger("focus");
2882
+
2883
+ $("html, body")
2884
+ .scrollTop(y)
2885
+ .scrollLeft(x);
2886
+ }
2887
+ }
2888
+
2889
+ self.current = null;
2890
+
2891
+ // Check if there are other instances
2892
+ instance = $.fancybox.getInstance();
2893
+
2894
+ if (instance) {
2895
+ instance.activate();
2896
+ } else {
2897
+ $("body").removeClass("fancybox-active compensate-for-scrollbar");
2898
+
2899
+ $("#fancybox-style-noscroll").remove();
2900
+ }
2901
+ },
2902
+
2903
+ // Call callback and trigger an event
2904
+ // ==================================
2905
+
2906
+ trigger: function(name, slide) {
2907
+ var args = Array.prototype.slice.call(arguments, 1),
2908
+ self = this,
2909
+ obj = slide && slide.opts ? slide : self.current,
2910
+ rez;
2911
+
2912
+ if (obj) {
2913
+ args.unshift(obj);
2914
+ } else {
2915
+ obj = self;
2916
+ }
2917
+
2918
+ args.unshift(self);
2919
+
2920
+ if ($.isFunction(obj.opts[name])) {
2921
+ rez = obj.opts[name].apply(obj, args);
2922
+ }
2923
+
2924
+ if (rez === false) {
2925
+ return rez;
2926
+ }
2927
+
2928
+ if (name === "afterClose" || !self.$refs) {
2929
+ $D.trigger(name + ".fb", args);
2930
+ } else {
2931
+ self.$refs.container.trigger(name + ".fb", args);
2932
+ }
2933
+ },
2934
+
2935
+ // Update infobar values, navigation button states and reveal caption
2936
+ // ==================================================================
2937
+
2938
+ updateControls: function() {
2939
+ var self = this,
2940
+ current = self.current,
2941
+ index = current.index,
2942
+ $container = self.$refs.container,
2943
+ $caption = self.$refs.caption,
2944
+ caption = current.opts.caption;
2945
+
2946
+ // Recalculate content dimensions
2947
+ current.$slide.trigger("refresh");
2948
+
2949
+ self.$caption = caption && caption.length ? $caption.html(caption) : null;
2950
+
2951
+ if (!self.hasHiddenControls && !self.isIdle) {
2952
+ self.showControls();
2953
+ }
2954
+
2955
+ // Update info and navigation elements
2956
+ $container.find("[data-fancybox-count]").html(self.group.length);
2957
+ $container.find("[data-fancybox-index]").html(index + 1);
2958
+
2959
+ $container.find("[data-fancybox-prev]").prop("disabled", !current.opts.loop && index <= 0);
2960
+ $container.find("[data-fancybox-next]").prop("disabled", !current.opts.loop && index >= self.group.length - 1);
2961
+
2962
+ if (current.type === "image") {
2963
+ // Re-enable buttons; update download button source
2964
+ $container
2965
+ .find("[data-fancybox-zoom]")
2966
+ .show()
2967
+ .end()
2968
+ .find("[data-fancybox-download]")
2969
+ .attr("href", current.opts.image.src || current.src)
2970
+ .show();
2971
+ } else if (current.opts.toolbar) {
2972
+ $container.find("[data-fancybox-download],[data-fancybox-zoom]").hide();
2973
+ }
2974
+
2975
+ // Make sure focus is not on disabled button/element
2976
+ if ($(document.activeElement).is(":hidden,[disabled]")) {
2977
+ self.$refs.container.trigger("focus");
2978
+ }
2979
+ },
2980
+
2981
+ // Hide toolbar and caption
2982
+ // ========================
2983
+
2984
+ hideControls: function(andCaption) {
2985
+ var self = this,
2986
+ arr = ["infobar", "toolbar", "nav"];
2987
+
2988
+ if (andCaption || !self.current.opts.preventCaptionOverlap) {
2989
+ arr.push("caption");
2990
+ }
2991
+
2992
+ this.$refs.container.removeClass(
2993
+ arr
2994
+ .map(function(i) {
2995
+ return "fancybox-show-" + i;
2996
+ })
2997
+ .join(" ")
2998
+ );
2999
+
3000
+ this.hasHiddenControls = true;
3001
+ },
3002
+
3003
+ showControls: function() {
3004
+ var self = this,
3005
+ opts = self.current ? self.current.opts : self.opts,
3006
+ $container = self.$refs.container;
3007
+
3008
+ self.hasHiddenControls = false;
3009
+ self.idleSecondsCounter = 0;
3010
+
3011
+ $container
3012
+ .toggleClass("fancybox-show-toolbar", !!(opts.toolbar && opts.buttons))
3013
+ .toggleClass("fancybox-show-infobar", !!(opts.infobar && self.group.length > 1))
3014
+ .toggleClass("fancybox-show-caption", !!self.$caption)
3015
+ .toggleClass("fancybox-show-nav", !!(opts.arrows && self.group.length > 1))
3016
+ .toggleClass("fancybox-is-modal", !!opts.modal);
3017
+ },
3018
+
3019
+ // Toggle toolbar and caption
3020
+ // ==========================
3021
+
3022
+ toggleControls: function() {
3023
+ if (this.hasHiddenControls) {
3024
+ this.showControls();
3025
+ } else {
3026
+ this.hideControls();
3027
+ }
3028
+ }
3029
+ });
3030
+
3031
+ $.fancybox = {
3032
+ version: "3.5.1",
3033
+ defaults: defaults,
3034
+
3035
+ // Get current instance and execute a command.
3036
+ //
3037
+ // Examples of usage:
3038
+ //
3039
+ // $instance = $.fancybox.getInstance();
3040
+ // $.fancybox.getInstance().jumpTo( 1 );
3041
+ // $.fancybox.getInstance( 'jumpTo', 1 );
3042
+ // $.fancybox.getInstance( function() {
3043
+ // console.info( this.currIndex );
3044
+ // });
3045
+ // ======================================================
3046
+
3047
+ getInstance: function(command) {
3048
+ var instance = $('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),
3049
+ args = Array.prototype.slice.call(arguments, 1);
3050
+
3051
+ if (instance instanceof FancyBox) {
3052
+ if ($.type(command) === "string") {
3053
+ instance[command].apply(instance, args);
3054
+ } else if ($.type(command) === "function") {
3055
+ command.apply(instance, args);
3056
+ }
3057
+
3058
+ return instance;
3059
+ }
3060
+
3061
+ return false;
3062
+ },
3063
+
3064
+ // Create new instance
3065
+ // ===================
3066
+
3067
+ open: function(items, opts, index) {
3068
+ return new FancyBox(items, opts, index);
3069
+ },
3070
+
3071
+ // Close current or all instances
3072
+ // ==============================
3073
+
3074
+ close: function(all) {
3075
+ var instance = this.getInstance();
3076
+
3077
+ if (instance) {
3078
+ instance.close();
3079
+
3080
+ // Try to find and close next instance
3081
+ if (all === true) {
3082
+ this.close(all);
3083
+ }
3084
+ }
3085
+ },
3086
+
3087
+ // Close all instances and unbind all events
3088
+ // =========================================
3089
+
3090
+ destroy: function() {
3091
+ this.close(true);
3092
+
3093
+ $D.add("body").off("click.fb-start", "**");
3094
+ },
3095
+
3096
+ // Try to detect mobile devices
3097
+ // ============================
3098
+
3099
+ isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
3100
+
3101
+ // Detect if 'translate3d' support is available
3102
+ // ============================================
3103
+
3104
+ use3d: (function() {
3105
+ var div = document.createElement("div");
3106
+
3107
+ return (
3108
+ window.getComputedStyle &&
3109
+ window.getComputedStyle(div) &&
3110
+ window.getComputedStyle(div).getPropertyValue("transform") &&
3111
+ !(document.documentMode && document.documentMode < 11)
3112
+ );
3113
+ })(),
3114
+
3115
+ // Helper function to get current visual state of an element
3116
+ // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]
3117
+ // =====================================================================
3118
+
3119
+ getTranslate: function($el) {
3120
+ var domRect;
3121
+
3122
+ if (!$el || !$el.length) {
3123
+ return false;
3124
+ }
3125
+
3126
+ domRect = $el[0].getBoundingClientRect();
3127
+
3128
+ return {
3129
+ top: domRect.top || 0,
3130
+ left: domRect.left || 0,
3131
+ width: domRect.width,
3132
+ height: domRect.height,
3133
+ opacity: parseFloat($el.css("opacity"))
3134
+ };
3135
+ },
3136
+
3137
+ // Shortcut for setting "translate3d" properties for element
3138
+ // Can set be used to set opacity, too
3139
+ // ========================================================
3140
+
3141
+ setTranslate: function($el, props) {
3142
+ var str = "",
3143
+ css = {};
3144
+
3145
+ if (!$el || !props) {
3146
+ return;
3147
+ }
3148
+
3149
+ if (props.left !== undefined || props.top !== undefined) {
3150
+ str =
3151
+ (props.left === undefined ? $el.position().left : props.left) +
3152
+ "px, " +
3153
+ (props.top === undefined ? $el.position().top : props.top) +
3154
+ "px";
3155
+
3156
+ if (this.use3d) {
3157
+ str = "translate3d(" + str + ", 0px)";
3158
+ } else {
3159
+ str = "translate(" + str + ")";
3160
+ }
3161
+ }
3162
+
3163
+ if (props.scaleX !== undefined && props.scaleY !== undefined) {
3164
+ str += " scale(" + props.scaleX + ", " + props.scaleY + ")";
3165
+ } else if (props.scaleX !== undefined) {
3166
+ str += " scaleX(" + props.scaleX + ")";
3167
+ }
3168
+
3169
+ if (str.length) {
3170
+ css.transform = str;
3171
+ }
3172
+
3173
+ if (props.opacity !== undefined) {
3174
+ css.opacity = props.opacity;
3175
+ }
3176
+
3177
+ if (props.width !== undefined) {
3178
+ css.width = props.width;
3179
+ }
3180
+
3181
+ if (props.height !== undefined) {
3182
+ css.height = props.height;
3183
+ }
3184
+
3185
+ return $el.css(css);
3186
+ },
3187
+
3188
+ // Simple CSS transition handler
3189
+ // =============================
3190
+
3191
+ animate: function($el, to, duration, callback, leaveAnimationName) {
3192
+ var self = this,
3193
+ from;
3194
+
3195
+ if ($.isFunction(duration)) {
3196
+ callback = duration;
3197
+ duration = null;
3198
+ }
3199
+
3200
+ self.stop($el);
3201
+
3202
+ from = self.getTranslate($el);
3203
+
3204
+ $el.on(transitionEnd, function(e) {
3205
+ // Skip events from child elements and z-index change
3206
+ if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == "z-index")) {
3207
+ return;
3208
+ }
3209
+
3210
+ self.stop($el);
3211
+
3212
+ if ($.isNumeric(duration)) {
3213
+ $el.css("transition-duration", "");
3214
+ }
3215
+
3216
+ if ($.isPlainObject(to)) {
3217
+ if (to.scaleX !== undefined && to.scaleY !== undefined) {
3218
+ self.setTranslate($el, {
3219
+ top: to.top,
3220
+ left: to.left,
3221
+ width: from.width * to.scaleX,
3222
+ height: from.height * to.scaleY,
3223
+ scaleX: 1,
3224
+ scaleY: 1
3225
+ });
3226
+ }
3227
+ } else if (leaveAnimationName !== true) {
3228
+ $el.removeClass(to);
3229
+ }
3230
+
3231
+ if ($.isFunction(callback)) {
3232
+ callback(e);
3233
+ }
3234
+ });
3235
+
3236
+ if ($.isNumeric(duration)) {
3237
+ $el.css("transition-duration", duration + "ms");
3238
+ }
3239
+
3240
+ // Start animation by changing CSS properties or class name
3241
+ if ($.isPlainObject(to)) {
3242
+ if (to.scaleX !== undefined && to.scaleY !== undefined) {
3243
+ delete to.width;
3244
+ delete to.height;
3245
+
3246
+ if ($el.parent().hasClass("fancybox-slide--image")) {
3247
+ $el.parent().addClass("fancybox-is-scaling");
3248
+ }
3249
+ }
3250
+
3251
+ $.fancybox.setTranslate($el, to);
3252
+ } else {
3253
+ $el.addClass(to);
3254
+ }
3255
+
3256
+ // Make sure that `transitionend` callback gets fired
3257
+ $el.data(
3258
+ "timer",
3259
+ setTimeout(function() {
3260
+ $el.trigger(transitionEnd);
3261
+ }, duration + 33)
3262
+ );
3263
+ },
3264
+
3265
+ stop: function($el, callCallback) {
3266
+ if ($el && $el.length) {
3267
+ clearTimeout($el.data("timer"));
3268
+
3269
+ if (callCallback) {
3270
+ $el.trigger(transitionEnd);
3271
+ }
3272
+
3273
+ $el.off(transitionEnd).css("transition-duration", "");
3274
+
3275
+ $el.parent().removeClass("fancybox-is-scaling");
3276
+ }
3277
+ }
3278
+ };
3279
+
3280
+ // Default click handler for "fancyboxed" links
3281
+ // ============================================
3282
+
3283
+ function _run(e, opts) {
3284
+ var items = [],
3285
+ index = 0,
3286
+ $target,
3287
+ value,
3288
+ instance;
3289
+
3290
+ // Avoid opening multiple times
3291
+ if (e && e.isDefaultPrevented()) {
3292
+ return;
3293
+ }
3294
+
3295
+ e.preventDefault();
3296
+
3297
+ opts = opts || {};
3298
+
3299
+ if (e && e.data) {
3300
+ opts = mergeOpts(e.data.options, opts);
3301
+ }
3302
+
3303
+ $target = opts.$target || $(e.currentTarget).trigger("blur");
3304
+ instance = $.fancybox.getInstance();
3305
+
3306
+ if (instance && instance.$trigger && instance.$trigger.is($target)) {
3307
+ return;
3308
+ }
3309
+
3310
+ if (opts.selector) {
3311
+ items = $(opts.selector);
3312
+ } else {
3313
+ // Get all related items and find index for clicked one
3314
+ value = $target.attr("data-fancybox") || "";
3315
+
3316
+ if (value) {
3317
+ items = e.data ? e.data.items : [];
3318
+ items = items.length ? items.filter('[data-fancybox="' + value + '"]') : $('[data-fancybox="' + value + '"]');
3319
+ } else {
3320
+ items = [$target];
3321
+ }
3322
+ }
3323
+
3324
+ index = $(items).index($target);
3325
+
3326
+ // Sometimes current item can not be found
3327
+ if (index < 0) {
3328
+ index = 0;
3329
+ }
3330
+
3331
+ instance = $.fancybox.open(items, opts, index);
3332
+
3333
+ // Save last active element
3334
+ instance.$trigger = $target;
3335
+ }
3336
+
3337
+ // Create a jQuery plugin
3338
+ // ======================
3339
+
3340
+ $.fn.fancybox = function(options) {
3341
+ var selector;
3342
+
3343
+ options = options || {};
3344
+ selector = options.selector || false;
3345
+
3346
+ if (selector) {
3347
+ // Use body element instead of document so it executes first
3348
+ $("body")
3349
+ .off("click.fb-start", selector)
3350
+ .on("click.fb-start", selector, {options: options}, _run);
3351
+ } else {
3352
+ this.off("click.fb-start").on(
3353
+ "click.fb-start",
3354
+ {
3355
+ items: this,
3356
+ options: options
3357
+ },
3358
+ _run
3359
+ );
3360
+ }
3361
+
3362
+ return this;
3363
+ };
3364
+
3365
+ // Self initializing plugin for all elements having `data-fancybox` attribute
3366
+ // ==========================================================================
3367
+
3368
+ $D.on("click.fb-start", "[data-fancybox]", _run);
3369
+
3370
+ // Enable "trigger elements"
3371
+ // =========================
3372
+
3373
+ $D.on("click.fb-start", "[data-fancybox-trigger]", function(e) {
3374
+ $('[data-fancybox="' + $(this).attr("data-fancybox-trigger") + '"]')
3375
+ .eq($(this).attr("data-fancybox-index") || 0)
3376
+ .trigger("click.fb-start", {
3377
+ $trigger: $(this)
3378
+ });
3379
+ });
3380
+
3381
+ // Track focus event for better accessibility styling
3382
+ // ==================================================
3383
+ (function() {
3384
+ var buttonStr = ".fancybox-button",
3385
+ focusStr = "fancybox-focus",
3386
+ $pressed = null;
3387
+
3388
+ $D.on("mousedown mouseup focus blur", buttonStr, function(e) {
3389
+ switch (e.type) {
3390
+ case "mousedown":
3391
+ $pressed = $(this);
3392
+ break;
3393
+ case "mouseup":
3394
+ $pressed = null;
3395
+ break;
3396
+ case "focusin":
3397
+ $(buttonStr).removeClass(focusStr);
3398
+
3399
+ if (!$(this).is($pressed) && !$(this).is("[disabled]")) {
3400
+ $(this).addClass(focusStr);
3401
+ }
3402
+ break;
3403
+ case "focusout":
3404
+ $(buttonStr).removeClass(focusStr);
3405
+ break;
3406
+ }
3407
+ });
3408
+ })();
3409
+ })(window, document, jQuery);
3410
+
3411
+ // ==========================================================================
3412
+ //
3413
+ // Media
3414
+ // Adds additional media type support
3415
+ //
3416
+ // ==========================================================================
3417
+ (function($) {
3418
+ "use strict";
3419
+
3420
+ // Object containing properties for each media type
3421
+ var defaults = {
3422
+ youtube: {
3423
+ matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
3424
+ params: {
3425
+ autoplay: 1,
3426
+ autohide: 1,
3427
+ fs: 1,
3428
+ rel: 0,
3429
+ hd: 1,
3430
+ wmode: "transparent",
3431
+ enablejsapi: 1,
3432
+ html5: 1
3433
+ },
3434
+ paramPlace: 8,
3435
+ type: "iframe",
3436
+ url: "//www.youtube-nocookie.com/embed/$4",
3437
+ thumb: "//img.youtube.com/vi/$4/hqdefault.jpg"
3438
+ },
3439
+
3440
+ vimeo: {
3441
+ matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
3442
+ params: {
3443
+ autoplay: 1,
3444
+ hd: 1,
3445
+ show_title: 1,
3446
+ show_byline: 1,
3447
+ show_portrait: 0,
3448
+ fullscreen: 1
3449
+ },
3450
+ paramPlace: 3,
3451
+ type: "iframe",
3452
+ url: "//player.vimeo.com/video/$2"
3453
+ },
3454
+
3455
+ instagram: {
3456
+ matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
3457
+ type: "image",
3458
+ url: "//$1/p/$2/media/?size=l"
3459
+ },
3460
+
3461
+ // Examples:
3462
+ // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
3463
+ // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z
3464
+ // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en
3465
+ // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572
3466
+ gmap_place: {
3467
+ matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
3468
+ type: "iframe",
3469
+ url: function(rez) {
3470
+ return (
3471
+ "//maps.google." +
3472
+ rez[2] +
3473
+ "/?ll=" +
3474
+ (rez[9] ? rez[9] + "&z=" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\//, "&") : "") : rez[12] + "").replace(/\?/, "&") +
3475
+ "&output=" +
3476
+ (rez[12] && rez[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
3477
+ );
3478
+ }
3479
+ },
3480
+
3481
+ // Examples:
3482
+ // https://www.google.com/maps/search/Empire+State+Building/
3483
+ // https://www.google.com/maps/search/?api=1&query=centurylink+field
3484
+ // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393
3485
+ gmap_search: {
3486
+ matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
3487
+ type: "iframe",
3488
+ url: function(rez) {
3489
+ return "//maps.google." + rez[2] + "/maps?q=" + rez[5].replace("query=", "q=").replace("api=1", "") + "&output=embed";
3490
+ }
3491
+ }
3492
+ };
3493
+
3494
+ // Formats matching url to final form
3495
+ var format = function(url, rez, params) {
3496
+ if (!url) {
3497
+ return;
3498
+ }
3499
+
3500
+ params = params || "";
3501
+
3502
+ if ($.type(params) === "object") {
3503
+ params = $.param(params, true);
3504
+ }
3505
+
3506
+ $.each(rez, function(key, value) {
3507
+ url = url.replace("$" + key, value || "");
3508
+ });
3509
+
3510
+ if (params.length) {
3511
+ url += (url.indexOf("?") > 0 ? "&" : "?") + params;
3512
+ }
3513
+
3514
+ return url;
3515
+ };
3516
+
3517
+ $(document).on("objectNeedsType.fb", function(e, instance, item) {
3518
+ var url = item.src || "",
3519
+ type = false,
3520
+ media,
3521
+ thumb,
3522
+ rez,
3523
+ params,
3524
+ urlParams,
3525
+ paramObj,
3526
+ provider;
3527
+
3528
+ media = $.extend(true, {}, defaults, item.opts.media);
3529
+
3530
+ // Look for any matching media type
3531
+ $.each(media, function(providerName, providerOpts) {
3532
+ rez = url.match(providerOpts.matcher);
3533
+
3534
+ if (!rez) {
3535
+ return;
3536
+ }
3537
+
3538
+ type = providerOpts.type;
3539
+ provider = providerName;
3540
+ paramObj = {};
3541
+
3542
+ if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {
3543
+ urlParams = rez[providerOpts.paramPlace];
3544
+
3545
+ if (urlParams[0] == "?") {
3546
+ urlParams = urlParams.substring(1);
3547
+ }
3548
+
3549
+ urlParams = urlParams.split("&");
3550
+
3551
+ for (var m = 0; m < urlParams.length; ++m) {
3552
+ var p = urlParams[m].split("=", 2);
3553
+
3554
+ if (p.length == 2) {
3555
+ paramObj[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
3556
+ }
3557
+ }
3558
+ }
3559
+
3560
+ params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);
3561
+
3562
+ url =
3563
+ $.type(providerOpts.url) === "function" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);
3564
+
3565
+ thumb =
3566
+ $.type(providerOpts.thumb) === "function" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);
3567
+
3568
+ if (providerName === "youtube") {
3569
+ url = url.replace(/&t=((\d+)m)?(\d+)s/, function(match, p1, m, s) {
3570
+ return "&start=" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));
3571
+ });
3572
+ } else if (providerName === "vimeo") {
3573
+ url = url.replace("&%23", "#");
3574
+ }
3575
+
3576
+ return false;
3577
+ });
3578
+
3579
+ // If it is found, then change content type and update the url
3580
+
3581
+ if (type) {
3582
+ if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {
3583
+ item.opts.thumb = thumb;
3584
+ }
3585
+
3586
+ if (type === "iframe") {
3587
+ item.opts = $.extend(true, item.opts, {
3588
+ iframe: {
3589
+ preload: false,
3590
+ attr: {
3591
+ scrolling: "no"
3592
+ }
3593
+ }
3594
+ });
3595
+ }
3596
+
3597
+ $.extend(item, {
3598
+ type: type,
3599
+ src: url,
3600
+ origSrc: item.src,
3601
+ contentSource: provider,
3602
+ contentType: type === "image" ? "image" : provider == "gmap_place" || provider == "gmap_search" ? "map" : "video"
3603
+ });
3604
+ } else if (url) {
3605
+ item.type = item.opts.defaultType;
3606
+ }
3607
+ });
3608
+
3609
+ // Load YouTube/Video API on request to detect when video finished playing
3610
+ var VideoAPILoader = {
3611
+ youtube: {
3612
+ src: "https://www.youtube.com/iframe_api",
3613
+ class: "YT",
3614
+ loading: false,
3615
+ loaded: false
3616
+ },
3617
+
3618
+ vimeo: {
3619
+ src: "https://player.vimeo.com/api/player.js",
3620
+ class: "Vimeo",
3621
+ loading: false,
3622
+ loaded: false
3623
+ },
3624
+
3625
+ load: function(vendor) {
3626
+ var _this = this,
3627
+ script;
3628
+
3629
+ if (this[vendor].loaded) {
3630
+ setTimeout(function() {
3631
+ _this.done(vendor);
3632
+ });
3633
+ return;
3634
+ }
3635
+
3636
+ if (this[vendor].loading) {
3637
+ return;
3638
+ }
3639
+
3640
+ this[vendor].loading = true;
3641
+
3642
+ script = document.createElement("script");
3643
+ script.type = "text/javascript";
3644
+ script.src = this[vendor].src;
3645
+
3646
+ if (vendor === "youtube") {
3647
+ window.onYouTubeIframeAPIReady = function() {
3648
+ _this[vendor].loaded = true;
3649
+ _this.done(vendor);
3650
+ };
3651
+ } else {
3652
+ script.onload = function() {
3653
+ _this[vendor].loaded = true;
3654
+ _this.done(vendor);
3655
+ };
3656
+ }
3657
+
3658
+ document.body.appendChild(script);
3659
+ },
3660
+ done: function(vendor) {
3661
+ var instance, $el, player;
3662
+
3663
+ if (vendor === "youtube") {
3664
+ delete window.onYouTubeIframeAPIReady;
3665
+ }
3666
+
3667
+ instance = $.fancybox.getInstance();
3668
+
3669
+ if (instance) {
3670
+ $el = instance.current.$content.find("iframe");
3671
+
3672
+ if (vendor === "youtube" && YT !== undefined && YT) {
3673
+ player = new YT.Player($el.attr("id"), {
3674
+ events: {
3675
+ onStateChange: function(e) {
3676
+ if (e.data == 0) {
3677
+ instance.next();
3678
+ }
3679
+ }
3680
+ }
3681
+ });
3682
+ } else if (vendor === "vimeo" && Vimeo !== undefined && Vimeo) {
3683
+ player = new Vimeo.Player($el);
3684
+
3685
+ player.on("ended", function() {
3686
+ instance.next();
3687
+ });
3688
+ }
3689
+ }
3690
+ }
3691
+ };
3692
+
3693
+ $(document).on({
3694
+ "afterShow.fb": function(e, instance, current) {
3695
+ if (instance.group.length > 1 && (current.contentSource === "youtube" || current.contentSource === "vimeo")) {
3696
+ VideoAPILoader.load(current.contentSource);
3697
+ }
3698
+ }
3699
+ });
3700
+ })(jQuery);
3701
+
3702
+ // ==========================================================================
3703
+ //
3704
+ // Guestures
3705
+ // Adds touch guestures, handles click and tap events
3706
+ //
3707
+ // ==========================================================================
3708
+ (function(window, document, $) {
3709
+ "use strict";
3710
+
3711
+ var requestAFrame = (function() {
3712
+ return (
3713
+ window.requestAnimationFrame ||
3714
+ window.webkitRequestAnimationFrame ||
3715
+ window.mozRequestAnimationFrame ||
3716
+ window.oRequestAnimationFrame ||
3717
+ // if all else fails, use setTimeout
3718
+ function(callback) {
3719
+ return window.setTimeout(callback, 1000 / 60);
3720
+ }
3721
+ );
3722
+ })();
3723
+
3724
+ var cancelAFrame = (function() {
3725
+ return (
3726
+ window.cancelAnimationFrame ||
3727
+ window.webkitCancelAnimationFrame ||
3728
+ window.mozCancelAnimationFrame ||
3729
+ window.oCancelAnimationFrame ||
3730
+ function(id) {
3731
+ window.clearTimeout(id);
3732
+ }
3733
+ );
3734
+ })();
3735
+
3736
+ var getPointerXY = function(e) {
3737
+ var result = [];
3738
+
3739
+ e = e.originalEvent || e || window.e;
3740
+ e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];
3741
+
3742
+ for (var key in e) {
3743
+ if (e[key].pageX) {
3744
+ result.push({
3745
+ x: e[key].pageX,
3746
+ y: e[key].pageY
3747
+ });
3748
+ } else if (e[key].clientX) {
3749
+ result.push({
3750
+ x: e[key].clientX,
3751
+ y: e[key].clientY
3752
+ });
3753
+ }
3754
+ }
3755
+
3756
+ return result;
3757
+ };
3758
+
3759
+ var distance = function(point2, point1, what) {
3760
+ if (!point1 || !point2) {
3761
+ return 0;
3762
+ }
3763
+
3764
+ if (what === "x") {
3765
+ return point2.x - point1.x;
3766
+ } else if (what === "y") {
3767
+ return point2.y - point1.y;
3768
+ }
3769
+
3770
+ return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));
3771
+ };
3772
+
3773
+ var isClickable = function($el) {
3774
+ if (
3775
+ $el.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') ||
3776
+ $.isFunction($el.get(0).onclick) ||
3777
+ $el.data("selectable")
3778
+ ) {
3779
+ return true;
3780
+ }
3781
+
3782
+ // Check for attributes like data-fancybox-next or data-fancybox-close
3783
+ for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {
3784
+ if (atts[i].nodeName.substr(0, 14) === "data-fancybox-") {
3785
+ return true;
3786
+ }
3787
+ }
3788
+
3789
+ return false;
3790
+ };
3791
+
3792
+ var hasScrollbars = function(el) {
3793
+ var overflowY = window.getComputedStyle(el)["overflow-y"],
3794
+ overflowX = window.getComputedStyle(el)["overflow-x"],
3795
+ vertical = (overflowY === "scroll" || overflowY === "auto") && el.scrollHeight > el.clientHeight,
3796
+ horizontal = (overflowX === "scroll" || overflowX === "auto") && el.scrollWidth > el.clientWidth;
3797
+
3798
+ return vertical || horizontal;
3799
+ };
3800
+
3801
+ var isScrollable = function($el) {
3802
+ var rez = false;
3803
+
3804
+ while (true) {
3805
+ rez = hasScrollbars($el.get(0));
3806
+
3807
+ if (rez) {
3808
+ break;
3809
+ }
3810
+
3811
+ $el = $el.parent();
3812
+
3813
+ if (!$el.length || $el.hasClass("fancybox-stage") || $el.is("body")) {
3814
+ break;
3815
+ }
3816
+ }
3817
+
3818
+ return rez;
3819
+ };
3820
+
3821
+ var Guestures = function(instance) {
3822
+ var self = this;
3823
+
3824
+ self.instance = instance;
3825
+
3826
+ self.$bg = instance.$refs.bg;
3827
+ self.$stage = instance.$refs.stage;
3828
+ self.$container = instance.$refs.container;
3829
+
3830
+ self.destroy();
3831
+
3832
+ self.$container.on("touchstart.fb.touch mousedown.fb.touch", $.proxy(self, "ontouchstart"));
3833
+ };
3834
+
3835
+ Guestures.prototype.destroy = function() {
3836
+ var self = this;
3837
+
3838
+ self.$container.off(".fb.touch");
3839
+
3840
+ $(document).off(".fb.touch");
3841
+
3842
+ if (self.requestId) {
3843
+ cancelAFrame(self.requestId);
3844
+ self.requestId = null;
3845
+ }
3846
+
3847
+ if (self.tapped) {
3848
+ clearTimeout(self.tapped);
3849
+ self.tapped = null;
3850
+ }
3851
+ };
3852
+
3853
+ Guestures.prototype.ontouchstart = function(e) {
3854
+ var self = this,
3855
+ $target = $(e.target),
3856
+ instance = self.instance,
3857
+ current = instance.current,
3858
+ $slide = current.$slide,
3859
+ $content = current.$content,
3860
+ isTouchDevice = e.type == "touchstart";
3861
+
3862
+ // Do not respond to both (touch and mouse) events
3863
+ if (isTouchDevice) {
3864
+ self.$container.off("mousedown.fb.touch");
3865
+ }
3866
+
3867
+ // Ignore right click
3868
+ if (e.originalEvent && e.originalEvent.button == 2) {
3869
+ return;
3870
+ }
3871
+
3872
+ // Ignore taping on links, buttons, input elements
3873
+ if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {
3874
+ return;
3875
+ }
3876
+ // Ignore clicks on the scrollbar
3877
+ if (!$target.is("img") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {
3878
+ return;
3879
+ }
3880
+
3881
+ // Ignore clicks while zooming or closing
3882
+ if (!current || instance.isAnimating || current.$slide.hasClass("fancybox-animated")) {
3883
+ e.stopPropagation();
3884
+ e.preventDefault();
3885
+
3886
+ return;
3887
+ }
3888
+
3889
+ self.realPoints = self.startPoints = getPointerXY(e);
3890
+
3891
+ if (!self.startPoints.length) {
3892
+ return;
3893
+ }
3894
+
3895
+ // Allow other scripts to catch touch event if "touch" is set to false
3896
+ if (current.touch) {
3897
+ e.stopPropagation();
3898
+ }
3899
+
3900
+ self.startEvent = e;
3901
+
3902
+ self.canTap = true;
3903
+ self.$target = $target;
3904
+ self.$content = $content;
3905
+ self.opts = current.opts.touch;
3906
+
3907
+ self.isPanning = false;
3908
+ self.isSwiping = false;
3909
+ self.isZooming = false;
3910
+ self.isScrolling = false;
3911
+ self.canPan = instance.canPan();
3912
+
3913
+ self.startTime = new Date().getTime();
3914
+ self.distanceX = self.distanceY = self.distance = 0;
3915
+
3916
+ self.canvasWidth = Math.round($slide[0].clientWidth);
3917
+ self.canvasHeight = Math.round($slide[0].clientHeight);
3918
+
3919
+ self.contentLastPos = null;
3920
+ self.contentStartPos = $.fancybox.getTranslate(self.$content) || {top: 0, left: 0};
3921
+ self.sliderStartPos = $.fancybox.getTranslate($slide);
3922
+
3923
+ // Since position will be absolute, but we need to make it relative to the stage
3924
+ self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);
3925
+
3926
+ self.sliderStartPos.top -= self.stagePos.top;
3927
+ self.sliderStartPos.left -= self.stagePos.left;
3928
+
3929
+ self.contentStartPos.top -= self.stagePos.top;
3930
+ self.contentStartPos.left -= self.stagePos.left;
3931
+
3932
+ $(document)
3933
+ .off(".fb.touch")
3934
+ .on(isTouchDevice ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", $.proxy(self, "ontouchend"))
3935
+ .on(isTouchDevice ? "touchmove.fb.touch" : "mousemove.fb.touch", $.proxy(self, "ontouchmove"));
3936
+
3937
+ if ($.fancybox.isMobile) {
3938
+ document.addEventListener("scroll", self.onscroll, true);
3939
+ }
3940
+
3941
+ // Skip if clicked outside the sliding area
3942
+ if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {
3943
+ if ($target.is(".fancybox-image")) {
3944
+ e.preventDefault();
3945
+ }
3946
+
3947
+ if (!($.fancybox.isMobile && $target.hasClass("fancybox-caption"))) {
3948
+ return;
3949
+ }
3950
+ }
3951
+
3952
+ self.isScrollable = isScrollable($target) || isScrollable($target.parent());
3953
+
3954
+ // Check if element is scrollable and try to prevent default behavior (scrolling)
3955
+ if (!($.fancybox.isMobile && self.isScrollable)) {
3956
+ e.preventDefault();
3957
+ }
3958
+
3959
+ // One finger or mouse click - swipe or pan an image
3960
+ if (self.startPoints.length === 1 || current.hasError) {
3961
+ if (self.canPan) {
3962
+ $.fancybox.stop(self.$content);
3963
+
3964
+ self.isPanning = true;
3965
+ } else {
3966
+ self.isSwiping = true;
3967
+ }
3968
+
3969
+ self.$container.addClass("fancybox-is-grabbing");
3970
+ }
3971
+
3972
+ // Two fingers - zoom image
3973
+ if (self.startPoints.length === 2 && current.type === "image" && (current.isLoaded || current.$ghost)) {
3974
+ self.canTap = false;
3975
+ self.isSwiping = false;
3976
+ self.isPanning = false;
3977
+
3978
+ self.isZooming = true;
3979
+
3980
+ $.fancybox.stop(self.$content);
3981
+
3982
+ self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();
3983
+ self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();
3984
+
3985
+ self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;
3986
+ self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;
3987
+
3988
+ self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);
3989
+ }
3990
+ };
3991
+
3992
+ Guestures.prototype.onscroll = function(e) {
3993
+ var self = this;
3994
+
3995
+ self.isScrolling = true;
3996
+
3997
+ document.removeEventListener("scroll", self.onscroll, true);
3998
+ };
3999
+
4000
+ Guestures.prototype.ontouchmove = function(e) {
4001
+ var self = this;
4002
+
4003
+ // Make sure user has not released over iframe or disabled element
4004
+ if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {
4005
+ self.ontouchend(e);
4006
+ return;
4007
+ }
4008
+
4009
+ if (self.isScrolling) {
4010
+ self.canTap = false;
4011
+ return;
4012
+ }
4013
+
4014
+ self.newPoints = getPointerXY(e);
4015
+
4016
+ if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {
4017
+ return;
4018
+ }
4019
+
4020
+ if (!(self.isSwiping && self.isSwiping === true)) {
4021
+ e.preventDefault();
4022
+ }
4023
+
4024
+ self.distanceX = distance(self.newPoints[0], self.startPoints[0], "x");
4025
+ self.distanceY = distance(self.newPoints[0], self.startPoints[0], "y");
4026
+
4027
+ self.distance = distance(self.newPoints[0], self.startPoints[0]);
4028
+
4029
+ // Skip false ontouchmove events (Chrome)
4030
+ if (self.distance > 0) {
4031
+ if (self.isSwiping) {
4032
+ self.onSwipe(e);
4033
+ } else if (self.isPanning) {
4034
+ self.onPan();
4035
+ } else if (self.isZooming) {
4036
+ self.onZoom();
4037
+ }
4038
+ }
4039
+ };
4040
+
4041
+ Guestures.prototype.onSwipe = function(e) {
4042
+ var self = this,
4043
+ instance = self.instance,
4044
+ swiping = self.isSwiping,
4045
+ left = self.sliderStartPos.left || 0,
4046
+ angle;
4047
+
4048
+ // If direction is not yet determined
4049
+ if (swiping === true) {
4050
+ // We need at least 10px distance to correctly calculate an angle
4051
+ if (Math.abs(self.distance) > 10) {
4052
+ self.canTap = false;
4053
+
4054
+ if (instance.group.length < 2 && self.opts.vertical) {
4055
+ self.isSwiping = "y";
4056
+ } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === "auto" && $(window).width() > 800)) {
4057
+ self.isSwiping = "x";
4058
+ } else {
4059
+ angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);
4060
+
4061
+ self.isSwiping = angle > 45 && angle < 135 ? "y" : "x";
4062
+ }
4063
+
4064
+ if (self.isSwiping === "y" && $.fancybox.isMobile && self.isScrollable) {
4065
+ self.isScrolling = true;
4066
+
4067
+ return;
4068
+ }
4069
+
4070
+ instance.isDragging = self.isSwiping;
4071
+
4072
+ // Reset points to avoid jumping, because we dropped first swipes to calculate the angle
4073
+ self.startPoints = self.newPoints;
4074
+
4075
+ $.each(instance.slides, function(index, slide) {
4076
+ var slidePos, stagePos;
4077
+
4078
+ $.fancybox.stop(slide.$slide);
4079
+
4080
+ slidePos = $.fancybox.getTranslate(slide.$slide);
4081
+ stagePos = $.fancybox.getTranslate(instance.$refs.stage);
4082
+
4083
+ slide.$slide
4084
+ .css({
4085
+ transform: "",
4086
+ opacity: "",
4087
+ "transition-duration": ""
4088
+ })
4089
+ .removeClass("fancybox-animated")
4090
+ .removeClass(function(index, className) {
4091
+ return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
4092
+ });
4093
+
4094
+ if (slide.pos === instance.current.pos) {
4095
+ self.sliderStartPos.top = slidePos.top - stagePos.top;
4096
+ self.sliderStartPos.left = slidePos.left - stagePos.left;
4097
+ }
4098
+
4099
+ $.fancybox.setTranslate(slide.$slide, {
4100
+ top: slidePos.top - stagePos.top,
4101
+ left: slidePos.left - stagePos.left
4102
+ });
4103
+ });
4104
+
4105
+ // Stop slideshow
4106
+ if (instance.SlideShow && instance.SlideShow.isActive) {
4107
+ instance.SlideShow.stop();
4108
+ }
4109
+ }
4110
+
4111
+ return;
4112
+ }
4113
+
4114
+ // Sticky edges
4115
+ if (swiping == "x") {
4116
+ if (
4117
+ self.distanceX > 0 &&
4118
+ (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))
4119
+ ) {
4120
+ left = left + Math.pow(self.distanceX, 0.8);
4121
+ } else if (
4122
+ self.distanceX < 0 &&
4123
+ (self.instance.group.length < 2 ||
4124
+ (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))
4125
+ ) {
4126
+ left = left - Math.pow(-self.distanceX, 0.8);
4127
+ } else {
4128
+ left = left + self.distanceX;
4129
+ }
4130
+ }
4131
+
4132
+ self.sliderLastPos = {
4133
+ top: swiping == "x" ? 0 : self.sliderStartPos.top + self.distanceY,
4134
+ left: left
4135
+ };
4136
+
4137
+ if (self.requestId) {
4138
+ cancelAFrame(self.requestId);
4139
+
4140
+ self.requestId = null;
4141
+ }
4142
+
4143
+ self.requestId = requestAFrame(function() {
4144
+ if (self.sliderLastPos) {
4145
+ $.each(self.instance.slides, function(index, slide) {
4146
+ var pos = slide.pos - self.instance.currPos;
4147
+
4148
+ $.fancybox.setTranslate(slide.$slide, {
4149
+ top: self.sliderLastPos.top,
4150
+ left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter
4151
+ });
4152
+ });
4153
+
4154
+ self.$container.addClass("fancybox-is-sliding");
4155
+ }
4156
+ });
4157
+ };
4158
+
4159
+ Guestures.prototype.onPan = function() {
4160
+ var self = this;
4161
+
4162
+ // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)
4163
+ if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {
4164
+ self.startPoints = self.newPoints;
4165
+ return;
4166
+ }
4167
+
4168
+ self.canTap = false;
4169
+
4170
+ self.contentLastPos = self.limitMovement();
4171
+
4172
+ if (self.requestId) {
4173
+ cancelAFrame(self.requestId);
4174
+ }
4175
+
4176
+ self.requestId = requestAFrame(function() {
4177
+ $.fancybox.setTranslate(self.$content, self.contentLastPos);
4178
+ });
4179
+ };
4180
+
4181
+ // Make panning sticky to the edges
4182
+ Guestures.prototype.limitMovement = function() {
4183
+ var self = this;
4184
+
4185
+ var canvasWidth = self.canvasWidth;
4186
+ var canvasHeight = self.canvasHeight;
4187
+
4188
+ var distanceX = self.distanceX;
4189
+ var distanceY = self.distanceY;
4190
+
4191
+ var contentStartPos = self.contentStartPos;
4192
+
4193
+ var currentOffsetX = contentStartPos.left;
4194
+ var currentOffsetY = contentStartPos.top;
4195
+
4196
+ var currentWidth = contentStartPos.width;
4197
+ var currentHeight = contentStartPos.height;
4198
+
4199
+ var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;
4200
+
4201
+ if (currentWidth > canvasWidth) {
4202
+ newOffsetX = currentOffsetX + distanceX;
4203
+ } else {
4204
+ newOffsetX = currentOffsetX;
4205
+ }
4206
+
4207
+ newOffsetY = currentOffsetY + distanceY;
4208
+
4209
+ // Slow down proportionally to traveled distance
4210
+ minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);
4211
+ minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);
4212
+
4213
+ maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);
4214
+ maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);
4215
+
4216
+ // ->
4217
+ if (distanceX > 0 && newOffsetX > minTranslateX) {
4218
+ newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;
4219
+ }
4220
+
4221
+ // <-
4222
+ if (distanceX < 0 && newOffsetX < maxTranslateX) {
4223
+ newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;
4224
+ }
4225
+
4226
+ // \/
4227
+ if (distanceY > 0 && newOffsetY > minTranslateY) {
4228
+ newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;
4229
+ }
4230
+
4231
+ // /\
4232
+ if (distanceY < 0 && newOffsetY < maxTranslateY) {
4233
+ newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;
4234
+ }
4235
+
4236
+ return {
4237
+ top: newOffsetY,
4238
+ left: newOffsetX
4239
+ };
4240
+ };
4241
+
4242
+ Guestures.prototype.limitPosition = function(newOffsetX, newOffsetY, newWidth, newHeight) {
4243
+ var self = this;
4244
+
4245
+ var canvasWidth = self.canvasWidth;
4246
+ var canvasHeight = self.canvasHeight;
4247
+
4248
+ if (newWidth > canvasWidth) {
4249
+ newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;
4250
+ newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;
4251
+ } else {
4252
+ // Center horizontally
4253
+ newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);
4254
+ }
4255
+
4256
+ if (newHeight > canvasHeight) {
4257
+ newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;
4258
+ newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;
4259
+ } else {
4260
+ // Center vertically
4261
+ newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);
4262
+ }
4263
+
4264
+ return {
4265
+ top: newOffsetY,
4266
+ left: newOffsetX
4267
+ };
4268
+ };
4269
+
4270
+ Guestures.prototype.onZoom = function() {
4271
+ var self = this;
4272
+
4273
+ // Calculate current distance between points to get pinch ratio and new width and height
4274
+ var contentStartPos = self.contentStartPos;
4275
+
4276
+ var currentWidth = contentStartPos.width;
4277
+ var currentHeight = contentStartPos.height;
4278
+
4279
+ var currentOffsetX = contentStartPos.left;
4280
+ var currentOffsetY = contentStartPos.top;
4281
+
4282
+ var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);
4283
+
4284
+ var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;
4285
+
4286
+ var newWidth = Math.floor(currentWidth * pinchRatio);
4287
+ var newHeight = Math.floor(currentHeight * pinchRatio);
4288
+
4289
+ // This is the translation due to pinch-zooming
4290
+ var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;
4291
+ var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;
4292
+
4293
+ // Point between the two touches
4294
+ var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();
4295
+ var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();
4296
+
4297
+ // And this is the translation due to translation of the centerpoint
4298
+ // between the two fingers
4299
+ var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;
4300
+ var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;
4301
+
4302
+ // The new offset is the old/current one plus the total translation
4303
+ var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);
4304
+ var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);
4305
+
4306
+ var newPos = {
4307
+ top: newOffsetY,
4308
+ left: newOffsetX,
4309
+ scaleX: pinchRatio,
4310
+ scaleY: pinchRatio
4311
+ };
4312
+
4313
+ self.canTap = false;
4314
+
4315
+ self.newWidth = newWidth;
4316
+ self.newHeight = newHeight;
4317
+
4318
+ self.contentLastPos = newPos;
4319
+
4320
+ if (self.requestId) {
4321
+ cancelAFrame(self.requestId);
4322
+ }
4323
+
4324
+ self.requestId = requestAFrame(function() {
4325
+ $.fancybox.setTranslate(self.$content, self.contentLastPos);
4326
+ });
4327
+ };
4328
+
4329
+ Guestures.prototype.ontouchend = function(e) {
4330
+ var self = this;
4331
+
4332
+ var swiping = self.isSwiping;
4333
+ var panning = self.isPanning;
4334
+ var zooming = self.isZooming;
4335
+ var scrolling = self.isScrolling;
4336
+
4337
+ self.endPoints = getPointerXY(e);
4338
+ self.dMs = Math.max(new Date().getTime() - self.startTime, 1);
4339
+
4340
+ self.$container.removeClass("fancybox-is-grabbing");
4341
+
4342
+ $(document).off(".fb.touch");
4343
+
4344
+ document.removeEventListener("scroll", self.onscroll, true);
4345
+
4346
+ if (self.requestId) {
4347
+ cancelAFrame(self.requestId);
4348
+
4349
+ self.requestId = null;
4350
+ }
4351
+
4352
+ self.isSwiping = false;
4353
+ self.isPanning = false;
4354
+ self.isZooming = false;
4355
+ self.isScrolling = false;
4356
+
4357
+ self.instance.isDragging = false;
4358
+
4359
+ if (self.canTap) {
4360
+ return self.onTap(e);
4361
+ }
4362
+
4363
+ self.speed = 100;
4364
+
4365
+ // Speed in px/ms
4366
+ self.velocityX = (self.distanceX / self.dMs) * 0.5;
4367
+ self.velocityY = (self.distanceY / self.dMs) * 0.5;
4368
+
4369
+ if (panning) {
4370
+ self.endPanning();
4371
+ } else if (zooming) {
4372
+ self.endZooming();
4373
+ } else {
4374
+ self.endSwiping(swiping, scrolling);
4375
+ }
4376
+
4377
+ return;
4378
+ };
4379
+
4380
+ Guestures.prototype.endSwiping = function(swiping, scrolling) {
4381
+ var self = this,
4382
+ ret = false,
4383
+ len = self.instance.group.length,
4384
+ distanceX = Math.abs(self.distanceX),
4385
+ canAdvance = swiping == "x" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),
4386
+ speedX = 300;
4387
+
4388
+ self.sliderLastPos = null;
4389
+
4390
+ // Close if swiped vertically / navigate if horizontally
4391
+ if (swiping == "y" && !scrolling && Math.abs(self.distanceY) > 50) {
4392
+ // Continue vertical movement
4393
+ $.fancybox.animate(
4394
+ self.instance.current.$slide,
4395
+ {
4396
+ top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,
4397
+ opacity: 0
4398
+ },
4399
+ 200
4400
+ );
4401
+ ret = self.instance.close(true, 250);
4402
+ } else if (canAdvance && self.distanceX > 0) {
4403
+ ret = self.instance.previous(speedX);
4404
+ } else if (canAdvance && self.distanceX < 0) {
4405
+ ret = self.instance.next(speedX);
4406
+ }
4407
+
4408
+ if (ret === false && (swiping == "x" || swiping == "y")) {
4409
+ self.instance.centerSlide(200);
4410
+ }
4411
+
4412
+ self.$container.removeClass("fancybox-is-sliding");
4413
+ };
4414
+
4415
+ // Limit panning from edges
4416
+ // ========================
4417
+ Guestures.prototype.endPanning = function() {
4418
+ var self = this,
4419
+ newOffsetX,
4420
+ newOffsetY,
4421
+ newPos;
4422
+
4423
+ if (!self.contentLastPos) {
4424
+ return;
4425
+ }
4426
+
4427
+ if (self.opts.momentum === false || self.dMs > 350) {
4428
+ newOffsetX = self.contentLastPos.left;
4429
+ newOffsetY = self.contentLastPos.top;
4430
+ } else {
4431
+ // Continue movement
4432
+ newOffsetX = self.contentLastPos.left + self.velocityX * 500;
4433
+ newOffsetY = self.contentLastPos.top + self.velocityY * 500;
4434
+ }
4435
+
4436
+ newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);
4437
+
4438
+ newPos.width = self.contentStartPos.width;
4439
+ newPos.height = self.contentStartPos.height;
4440
+
4441
+ $.fancybox.animate(self.$content, newPos, 330);
4442
+ };
4443
+
4444
+ Guestures.prototype.endZooming = function() {
4445
+ var self = this;
4446
+
4447
+ var current = self.instance.current;
4448
+
4449
+ var newOffsetX, newOffsetY, newPos, reset;
4450
+
4451
+ var newWidth = self.newWidth;
4452
+ var newHeight = self.newHeight;
4453
+
4454
+ if (!self.contentLastPos) {
4455
+ return;
4456
+ }
4457
+
4458
+ newOffsetX = self.contentLastPos.left;
4459
+ newOffsetY = self.contentLastPos.top;
4460
+
4461
+ reset = {
4462
+ top: newOffsetY,
4463
+ left: newOffsetX,
4464
+ width: newWidth,
4465
+ height: newHeight,
4466
+ scaleX: 1,
4467
+ scaleY: 1
4468
+ };
4469
+
4470
+ // Reset scalex/scaleY values; this helps for perfomance and does not break animation
4471
+ $.fancybox.setTranslate(self.$content, reset);
4472
+
4473
+ if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {
4474
+ self.instance.scaleToFit(150);
4475
+ } else if (newWidth > current.width || newHeight > current.height) {
4476
+ self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);
4477
+ } else {
4478
+ newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);
4479
+
4480
+ $.fancybox.animate(self.$content, newPos, 150);
4481
+ }
4482
+ };
4483
+
4484
+ Guestures.prototype.onTap = function(e) {
4485
+ var self = this;
4486
+ var $target = $(e.target);
4487
+
4488
+ var instance = self.instance;
4489
+ var current = instance.current;
4490
+
4491
+ var endPoints = (e && getPointerXY(e)) || self.startPoints;
4492
+
4493
+ var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;
4494
+ var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;
4495
+
4496
+ var where;
4497
+
4498
+ var process = function(prefix) {
4499
+ var action = current.opts[prefix];
4500
+
4501
+ if ($.isFunction(action)) {
4502
+ action = action.apply(instance, [current, e]);
4503
+ }
4504
+
4505
+ if (!action) {
4506
+ return;
4507
+ }
4508
+
4509
+ switch (action) {
4510
+ case "close":
4511
+ instance.close(self.startEvent);
4512
+
4513
+ break;
4514
+
4515
+ case "toggleControls":
4516
+ instance.toggleControls();
4517
+
4518
+ break;
4519
+
4520
+ case "next":
4521
+ instance.next();
4522
+
4523
+ break;
4524
+
4525
+ case "nextOrClose":
4526
+ if (instance.group.length > 1) {
4527
+ instance.next();
4528
+ } else {
4529
+ instance.close(self.startEvent);
4530
+ }
4531
+
4532
+ break;
4533
+
4534
+ case "zoom":
4535
+ if (current.type == "image" && (current.isLoaded || current.$ghost)) {
4536
+ if (instance.canPan()) {
4537
+ instance.scaleToFit();
4538
+ } else if (instance.isScaledDown()) {
4539
+ instance.scaleToActual(tapX, tapY);
4540
+ } else if (instance.group.length < 2) {
4541
+ instance.close(self.startEvent);
4542
+ }
4543
+ }
4544
+
4545
+ break;
4546
+ }
4547
+ };
4548
+
4549
+ // Ignore right click
4550
+ if (e.originalEvent && e.originalEvent.button == 2) {
4551
+ return;
4552
+ }
4553
+
4554
+ // Skip if clicked on the scrollbar
4555
+ if (!$target.is("img") && tapX > $target[0].clientWidth + $target.offset().left) {
4556
+ return;
4557
+ }
4558
+
4559
+ // Check where is clicked
4560
+ if ($target.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) {
4561
+ where = "Outside";
4562
+ } else if ($target.is(".fancybox-slide")) {
4563
+ where = "Slide";
4564
+ } else if (
4565
+ instance.current.$content &&
4566
+ instance.current.$content
4567
+ .find($target)
4568
+ .addBack()
4569
+ .filter($target).length
4570
+ ) {
4571
+ where = "Content";
4572
+ } else {
4573
+ return;
4574
+ }
4575
+
4576
+ // Check if this is a double tap
4577
+ if (self.tapped) {
4578
+ // Stop previously created single tap
4579
+ clearTimeout(self.tapped);
4580
+ self.tapped = null;
4581
+
4582
+ // Skip if distance between taps is too big
4583
+ if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {
4584
+ return this;
4585
+ }
4586
+
4587
+ // OK, now we assume that this is a double-tap
4588
+ process("dblclick" + where);
4589
+ } else {
4590
+ // Single tap will be processed if user has not clicked second time within 300ms
4591
+ // or there is no need to wait for double-tap
4592
+ self.tapX = tapX;
4593
+ self.tapY = tapY;
4594
+
4595
+ if (current.opts["dblclick" + where] && current.opts["dblclick" + where] !== current.opts["click" + where]) {
4596
+ self.tapped = setTimeout(function() {
4597
+ self.tapped = null;
4598
+
4599
+ if (!instance.isAnimating) {
4600
+ process("click" + where);
4601
+ }
4602
+ }, 500);
4603
+ } else {
4604
+ process("click" + where);
4605
+ }
4606
+ }
4607
+
4608
+ return this;
4609
+ };
4610
+
4611
+ $(document)
4612
+ .on("onActivate.fb", function(e, instance) {
4613
+ if (instance && !instance.Guestures) {
4614
+ instance.Guestures = new Guestures(instance);
4615
+ }
4616
+ })
4617
+ .on("beforeClose.fb", function(e, instance) {
4618
+ if (instance && instance.Guestures) {
4619
+ instance.Guestures.destroy();
4620
+ }
4621
+ });
4622
+ })(window, document, jQuery);
4623
+
4624
+ // ==========================================================================
4625
+ //
4626
+ // SlideShow
4627
+ // Enables slideshow functionality
4628
+ //
4629
+ // Example of usage:
4630
+ // $.fancybox.getInstance().SlideShow.start()
4631
+ //
4632
+ // ==========================================================================
4633
+ (function(document, $) {
4634
+ "use strict";
4635
+
4636
+ $.extend(true, $.fancybox.defaults, {
4637
+ btnTpl: {
4638
+ slideShow:
4639
+ '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}">' +
4640
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg>' +
4641
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg>' +
4642
+ "</button>"
4643
+ },
4644
+ slideShow: {
4645
+ autoStart: false,
4646
+ speed: 3000,
4647
+ progress: true
4648
+ }
4649
+ });
4650
+
4651
+ var SlideShow = function(instance) {
4652
+ this.instance = instance;
4653
+ this.init();
4654
+ };
4655
+
4656
+ $.extend(SlideShow.prototype, {
4657
+ timer: null,
4658
+ isActive: false,
4659
+ $button: null,
4660
+
4661
+ init: function() {
4662
+ var self = this,
4663
+ instance = self.instance,
4664
+ opts = instance.group[instance.currIndex].opts.slideShow;
4665
+
4666
+ self.$button = instance.$refs.toolbar.find("[data-fancybox-play]").on("click", function() {
4667
+ self.toggle();
4668
+ });
4669
+
4670
+ if (instance.group.length < 2 || !opts) {
4671
+ self.$button.hide();
4672
+ } else if (opts.progress) {
4673
+ self.$progress = $('<div class="fancybox-progress"></div>').appendTo(instance.$refs.inner);
4674
+ }
4675
+ },
4676
+
4677
+ set: function(force) {
4678
+ var self = this,
4679
+ instance = self.instance,
4680
+ current = instance.current;
4681
+
4682
+ // Check if reached last element
4683
+ if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {
4684
+ if (self.isActive && current.contentType !== "video") {
4685
+ if (self.$progress) {
4686
+ $.fancybox.animate(self.$progress.show(), {scaleX: 1}, current.opts.slideShow.speed);
4687
+ }
4688
+
4689
+ self.timer = setTimeout(function() {
4690
+ instance.jumpTo((instance.currIndex + 1) % instance.group.length);
4691
+ }, current.opts.slideShow.speed);
4692
+ }
4693
+ } else {
4694
+ self.stop();
4695
+ instance.idleSecondsCounter = 0;
4696
+ instance.showControls();
4697
+ }
4698
+ },
4699
+
4700
+ clear: function() {
4701
+ var self = this;
4702
+
4703
+ clearTimeout(self.timer);
4704
+
4705
+ self.timer = null;
4706
+
4707
+ if (self.$progress) {
4708
+ self.$progress.removeAttr("style").hide();
4709
+ }
4710
+ },
4711
+
4712
+ start: function() {
4713
+ var self = this,
4714
+ current = self.instance.current;
4715
+
4716
+ if (current) {
4717
+ self.$button
4718
+ .attr("title", current.opts.i18n[current.opts.lang].PLAY_STOP)
4719
+ .removeClass("fancybox-button--play")
4720
+ .addClass("fancybox-button--pause");
4721
+
4722
+ self.isActive = true;
4723
+
4724
+ if (current.isComplete) {
4725
+ self.set(true);
4726
+ }
4727
+
4728
+ self.instance.trigger("onSlideShowChange", true);
4729
+ }
4730
+ },
4731
+
4732
+ stop: function() {
4733
+ var self = this,
4734
+ current = self.instance.current;
4735
+
4736
+ self.clear();
4737
+
4738
+ self.$button
4739
+ .attr("title", current.opts.i18n[current.opts.lang].PLAY_START)
4740
+ .removeClass("fancybox-button--pause")
4741
+ .addClass("fancybox-button--play");
4742
+
4743
+ self.isActive = false;
4744
+
4745
+ self.instance.trigger("onSlideShowChange", false);
4746
+
4747
+ if (self.$progress) {
4748
+ self.$progress.removeAttr("style").hide();
4749
+ }
4750
+ },
4751
+
4752
+ toggle: function() {
4753
+ var self = this;
4754
+
4755
+ if (self.isActive) {
4756
+ self.stop();
4757
+ } else {
4758
+ self.start();
4759
+ }
4760
+ }
4761
+ });
4762
+
4763
+ $(document).on({
4764
+ "onInit.fb": function(e, instance) {
4765
+ if (instance && !instance.SlideShow) {
4766
+ instance.SlideShow = new SlideShow(instance);
4767
+ }
4768
+ },
4769
+
4770
+ "beforeShow.fb": function(e, instance, current, firstRun) {
4771
+ var SlideShow = instance && instance.SlideShow;
4772
+
4773
+ if (firstRun) {
4774
+ if (SlideShow && current.opts.slideShow.autoStart) {
4775
+ SlideShow.start();
4776
+ }
4777
+ } else if (SlideShow && SlideShow.isActive) {
4778
+ SlideShow.clear();
4779
+ }
4780
+ },
4781
+
4782
+ "afterShow.fb": function(e, instance, current) {
4783
+ var SlideShow = instance && instance.SlideShow;
4784
+
4785
+ if (SlideShow && SlideShow.isActive) {
4786
+ SlideShow.set();
4787
+ }
4788
+ },
4789
+
4790
+ "afterKeydown.fb": function(e, instance, current, keypress, keycode) {
4791
+ var SlideShow = instance && instance.SlideShow;
4792
+
4793
+ // "P" or Spacebar
4794
+ if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is("button,a,input")) {
4795
+ keypress.preventDefault();
4796
+
4797
+ SlideShow.toggle();
4798
+ }
4799
+ },
4800
+
4801
+ "beforeClose.fb onDeactivate.fb": function(e, instance) {
4802
+ var SlideShow = instance && instance.SlideShow;
4803
+
4804
+ if (SlideShow) {
4805
+ SlideShow.stop();
4806
+ }
4807
+ }
4808
+ });
4809
+
4810
+ // Page Visibility API to pause slideshow when window is not active
4811
+ $(document).on("visibilitychange", function() {
4812
+ var instance = $.fancybox.getInstance(),
4813
+ SlideShow = instance && instance.SlideShow;
4814
+
4815
+ if (SlideShow && SlideShow.isActive) {
4816
+ if (document.hidden) {
4817
+ SlideShow.clear();
4818
+ } else {
4819
+ SlideShow.set();
4820
+ }
4821
+ }
4822
+ });
4823
+ })(document, jQuery);
4824
+
4825
+ // ==========================================================================
4826
+ //
4827
+ // FullScreen
4828
+ // Adds fullscreen functionality
4829
+ //
4830
+ // ==========================================================================
4831
+ (function(document, $) {
4832
+ "use strict";
4833
+
4834
+ // Collection of methods supported by user browser
4835
+ var fn = (function() {
4836
+ var fnMap = [
4837
+ ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
4838
+ // new WebKit
4839
+ [
4840
+ "webkitRequestFullscreen",
4841
+ "webkitExitFullscreen",
4842
+ "webkitFullscreenElement",
4843
+ "webkitFullscreenEnabled",
4844
+ "webkitfullscreenchange",
4845
+ "webkitfullscreenerror"
4846
+ ],
4847
+ // old WebKit (Safari 5.1)
4848
+ [
4849
+ "webkitRequestFullScreen",
4850
+ "webkitCancelFullScreen",
4851
+ "webkitCurrentFullScreenElement",
4852
+ "webkitCancelFullScreen",
4853
+ "webkitfullscreenchange",
4854
+ "webkitfullscreenerror"
4855
+ ],
4856
+ [
4857
+ "mozRequestFullScreen",
4858
+ "mozCancelFullScreen",
4859
+ "mozFullScreenElement",
4860
+ "mozFullScreenEnabled",
4861
+ "mozfullscreenchange",
4862
+ "mozfullscreenerror"
4863
+ ],
4864
+ ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
4865
+ ];
4866
+
4867
+ var ret = {};
4868
+
4869
+ for (var i = 0; i < fnMap.length; i++) {
4870
+ var val = fnMap[i];
4871
+
4872
+ if (val && val[1] in document) {
4873
+ for (var j = 0; j < val.length; j++) {
4874
+ ret[fnMap[0][j]] = val[j];
4875
+ }
4876
+
4877
+ return ret;
4878
+ }
4879
+ }
4880
+
4881
+ return false;
4882
+ })();
4883
+
4884
+ if (fn) {
4885
+ var FullScreen = {
4886
+ request: function(elem) {
4887
+ elem = elem || document.documentElement;
4888
+
4889
+ elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);
4890
+ },
4891
+ exit: function() {
4892
+ document[fn.exitFullscreen]();
4893
+ },
4894
+ toggle: function(elem) {
4895
+ elem = elem || document.documentElement;
4896
+
4897
+ if (this.isFullscreen()) {
4898
+ this.exit();
4899
+ } else {
4900
+ this.request(elem);
4901
+ }
4902
+ },
4903
+ isFullscreen: function() {
4904
+ return Boolean(document[fn.fullscreenElement]);
4905
+ },
4906
+ enabled: function() {
4907
+ return Boolean(document[fn.fullscreenEnabled]);
4908
+ }
4909
+ };
4910
+
4911
+ $.extend(true, $.fancybox.defaults, {
4912
+ btnTpl: {
4913
+ fullScreen:
4914
+ '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}">' +
4915
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg>' +
4916
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg>' +
4917
+ "</button>"
4918
+ },
4919
+ fullScreen: {
4920
+ autoStart: false
4921
+ }
4922
+ });
4923
+
4924
+ $(document).on(fn.fullscreenchange, function() {
4925
+ var isFullscreen = FullScreen.isFullscreen(),
4926
+ instance = $.fancybox.getInstance();
4927
+
4928
+ if (instance) {
4929
+ // If image is zooming, then force to stop and reposition properly
4930
+ if (instance.current && instance.current.type === "image" && instance.isAnimating) {
4931
+ instance.current.$content.css("transition", "none");
4932
+
4933
+ instance.isAnimating = false;
4934
+
4935
+ instance.update(true, true, 0);
4936
+ }
4937
+
4938
+ instance.trigger("onFullscreenChange", isFullscreen);
4939
+
4940
+ instance.$refs.container.toggleClass("fancybox-is-fullscreen", isFullscreen);
4941
+
4942
+ instance.$refs.toolbar
4943
+ .find("[data-fancybox-fullscreen]")
4944
+ .toggleClass("fancybox-button--fsenter", !isFullscreen)
4945
+ .toggleClass("fancybox-button--fsexit", isFullscreen);
4946
+ }
4947
+ });
4948
+ }
4949
+
4950
+ $(document).on({
4951
+ "onInit.fb": function(e, instance) {
4952
+ var $container;
4953
+
4954
+ if (!fn) {
4955
+ instance.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();
4956
+
4957
+ return;
4958
+ }
4959
+
4960
+ if (instance && instance.group[instance.currIndex].opts.fullScreen) {
4961
+ $container = instance.$refs.container;
4962
+
4963
+ $container.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function(e) {
4964
+ e.stopPropagation();
4965
+ e.preventDefault();
4966
+
4967
+ FullScreen.toggle();
4968
+ });
4969
+
4970
+ if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {
4971
+ FullScreen.request();
4972
+ }
4973
+
4974
+ // Expose API
4975
+ instance.FullScreen = FullScreen;
4976
+ } else if (instance) {
4977
+ instance.$refs.toolbar.find("[data-fancybox-fullscreen]").hide();
4978
+ }
4979
+ },
4980
+
4981
+ "afterKeydown.fb": function(e, instance, current, keypress, keycode) {
4982
+ // "F"
4983
+ if (instance && instance.FullScreen && keycode === 70) {
4984
+ keypress.preventDefault();
4985
+
4986
+ instance.FullScreen.toggle();
4987
+ }
4988
+ },
4989
+
4990
+ "beforeClose.fb": function(e, instance) {
4991
+ if (instance && instance.FullScreen && instance.$refs.container.hasClass("fancybox-is-fullscreen")) {
4992
+ FullScreen.exit();
4993
+ }
4994
+ }
4995
+ });
4996
+ })(document, jQuery);
4997
+
4998
+ // ==========================================================================
4999
+ //
5000
+ // Thumbs
5001
+ // Displays thumbnails in a grid
5002
+ //
5003
+ // ==========================================================================
5004
+ (function(document, $) {
5005
+ "use strict";
5006
+
5007
+ var CLASS = "fancybox-thumbs",
5008
+ CLASS_ACTIVE = CLASS + "-active";
5009
+
5010
+ // Make sure there are default values
5011
+ $.fancybox.defaults = $.extend(
5012
+ true,
5013
+ {
5014
+ btnTpl: {
5015
+ thumbs:
5016
+ '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}">' +
5017
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg>' +
5018
+ "</button>"
5019
+ },
5020
+ thumbs: {
5021
+ autoStart: false, // Display thumbnails on opening
5022
+ hideOnClose: true, // Hide thumbnail grid when closing animation starts
5023
+ parentEl: ".fancybox-container", // Container is injected into this element
5024
+ axis: "y" // Vertical (y) or horizontal (x) scrolling
5025
+ }
5026
+ },
5027
+ $.fancybox.defaults
5028
+ );
5029
+
5030
+ var FancyThumbs = function(instance) {
5031
+ this.init(instance);
5032
+ };
5033
+
5034
+ $.extend(FancyThumbs.prototype, {
5035
+ $button: null,
5036
+ $grid: null,
5037
+ $list: null,
5038
+ isVisible: false,
5039
+ isActive: false,
5040
+
5041
+ init: function(instance) {
5042
+ var self = this,
5043
+ group = instance.group,
5044
+ enabled = 0;
5045
+
5046
+ self.instance = instance;
5047
+ self.opts = group[instance.currIndex].opts.thumbs;
5048
+
5049
+ instance.Thumbs = self;
5050
+
5051
+ self.$button = instance.$refs.toolbar.find("[data-fancybox-thumbs]");
5052
+
5053
+ // Enable thumbs if at least two group items have thumbnails
5054
+ for (var i = 0, len = group.length; i < len; i++) {
5055
+ if (group[i].thumb) {
5056
+ enabled++;
5057
+ }
5058
+
5059
+ if (enabled > 1) {
5060
+ break;
5061
+ }
5062
+ }
5063
+
5064
+ if (enabled > 1 && !!self.opts) {
5065
+ self.$button.removeAttr("style").on("click", function() {
5066
+ self.toggle();
5067
+ });
5068
+
5069
+ self.isActive = true;
5070
+ } else {
5071
+ self.$button.hide();
5072
+ }
5073
+ },
5074
+
5075
+ create: function() {
5076
+ var self = this,
5077
+ instance = self.instance,
5078
+ parentEl = self.opts.parentEl,
5079
+ list = [],
5080
+ src;
5081
+
5082
+ if (!self.$grid) {
5083
+ // Create main element
5084
+ self.$grid = $('<div class="' + CLASS + " " + CLASS + "-" + self.opts.axis + '"></div>').appendTo(
5085
+ instance.$refs.container
5086
+ .find(parentEl)
5087
+ .addBack()
5088
+ .filter(parentEl)
5089
+ );
5090
+
5091
+ // Add "click" event that performs gallery navigation
5092
+ self.$grid.on("click", "a", function() {
5093
+ instance.jumpTo($(this).attr("data-index"));
5094
+ });
5095
+ }
5096
+
5097
+ // Build the list
5098
+ if (!self.$list) {
5099
+ self.$list = $('<div class="' + CLASS + '__list">').appendTo(self.$grid);
5100
+ }
5101
+
5102
+ $.each(instance.group, function(i, item) {
5103
+ src = item.thumb;
5104
+
5105
+ if (!src && item.type === "image") {
5106
+ src = item.src;
5107
+ }
5108
+
5109
+ list.push(
5110
+ '<a href="javascript:;" tabindex="0" data-index="' +
5111
+ i +
5112
+ '"' +
5113
+ (src && src.length ? ' style="background-image:url(' + src + ')"' : 'class="fancybox-thumbs-missing"') +
5114
+ "></a>"
5115
+ );
5116
+ });
5117
+
5118
+ self.$list[0].innerHTML = list.join("");
5119
+
5120
+ if (self.opts.axis === "x") {
5121
+ // Set fixed width for list element to enable horizontal scrolling
5122
+ self.$list.width(
5123
+ parseInt(self.$grid.css("padding-right"), 10) +
5124
+ instance.group.length *
5125
+ self.$list
5126
+ .children()
5127
+ .eq(0)
5128
+ .outerWidth(true)
5129
+ );
5130
+ }
5131
+ },
5132
+
5133
+ focus: function(duration) {
5134
+ var self = this,
5135
+ $list = self.$list,
5136
+ $grid = self.$grid,
5137
+ thumb,
5138
+ thumbPos;
5139
+
5140
+ if (!self.instance.current) {
5141
+ return;
5142
+ }
5143
+
5144
+ thumb = $list
5145
+ .children()
5146
+ .removeClass(CLASS_ACTIVE)
5147
+ .filter('[data-index="' + self.instance.current.index + '"]')
5148
+ .addClass(CLASS_ACTIVE);
5149
+
5150
+ thumbPos = thumb.position();
5151
+
5152
+ // Check if need to scroll to make current thumb visible
5153
+ if (self.opts.axis === "y" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {
5154
+ $list.stop().animate(
5155
+ {
5156
+ scrollTop: $list.scrollTop() + thumbPos.top
5157
+ },
5158
+ duration
5159
+ );
5160
+ } else if (
5161
+ self.opts.axis === "x" &&
5162
+ (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))
5163
+ ) {
5164
+ $list
5165
+ .parent()
5166
+ .stop()
5167
+ .animate(
5168
+ {
5169
+ scrollLeft: thumbPos.left
5170
+ },
5171
+ duration
5172
+ );
5173
+ }
5174
+ },
5175
+
5176
+ update: function() {
5177
+ var that = this;
5178
+ that.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible);
5179
+
5180
+ if (that.isVisible) {
5181
+ if (!that.$grid) {
5182
+ that.create();
5183
+ }
5184
+
5185
+ that.instance.trigger("onThumbsShow");
5186
+
5187
+ that.focus(0);
5188
+ } else if (that.$grid) {
5189
+ that.instance.trigger("onThumbsHide");
5190
+ }
5191
+
5192
+ // Update content position
5193
+ that.instance.update();
5194
+ },
5195
+
5196
+ hide: function() {
5197
+ this.isVisible = false;
5198
+ this.update();
5199
+ },
5200
+
5201
+ show: function() {
5202
+ this.isVisible = true;
5203
+ this.update();
5204
+ },
5205
+
5206
+ toggle: function() {
5207
+ this.isVisible = !this.isVisible;
5208
+ this.update();
5209
+ }
5210
+ });
5211
+
5212
+ $(document).on({
5213
+ "onInit.fb": function(e, instance) {
5214
+ var Thumbs;
5215
+
5216
+ if (instance && !instance.Thumbs) {
5217
+ Thumbs = new FancyThumbs(instance);
5218
+
5219
+ if (Thumbs.isActive && Thumbs.opts.autoStart === true) {
5220
+ Thumbs.show();
5221
+ }
5222
+ }
5223
+ },
5224
+
5225
+ "beforeShow.fb": function(e, instance, item, firstRun) {
5226
+ var Thumbs = instance && instance.Thumbs;
5227
+
5228
+ if (Thumbs && Thumbs.isVisible) {
5229
+ Thumbs.focus(firstRun ? 0 : 250);
5230
+ }
5231
+ },
5232
+
5233
+ "afterKeydown.fb": function(e, instance, current, keypress, keycode) {
5234
+ var Thumbs = instance && instance.Thumbs;
5235
+
5236
+ // "G"
5237
+ if (Thumbs && Thumbs.isActive && keycode === 71) {
5238
+ keypress.preventDefault();
5239
+
5240
+ Thumbs.toggle();
5241
+ }
5242
+ },
5243
+
5244
+ "beforeClose.fb": function(e, instance) {
5245
+ var Thumbs = instance && instance.Thumbs;
5246
+
5247
+ if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {
5248
+ Thumbs.$grid.hide();
5249
+ }
5250
+ }
5251
+ });
5252
+ })(document, jQuery);
5253
+
5254
+ //// ==========================================================================
5255
+ //
5256
+ // Share
5257
+ // Displays simple form for sharing current url
5258
+ //
5259
+ // ==========================================================================
5260
+ (function(document, $) {
5261
+ "use strict";
5262
+
5263
+ $.extend(true, $.fancybox.defaults, {
5264
+ btnTpl: {
5265
+ share:
5266
+ '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}">' +
5267
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg>' +
5268
+ "</button>"
5269
+ },
5270
+ share: {
5271
+ url: function(instance, item) {
5272
+ return (
5273
+ (!instance.currentHash && !(item.type === "inline" || item.type === "html") ? item.origSrc || item.src : false) || window.location
5274
+ );
5275
+ },
5276
+ tpl:
5277
+ '<div class="fancybox-share">' +
5278
+ "<h1>{{SHARE}}</h1>" +
5279
+ "<p>" +
5280
+ '<a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}">' +
5281
+ '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg>' +
5282
+ "<span>Facebook</span>" +
5283
+ "</a>" +
5284
+ '<a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}">' +
5285
+ '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg>' +
5286
+ "<span>Twitter</span>" +
5287
+ "</a>" +
5288
+ '<a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}">' +
5289
+ '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg>' +
5290
+ "<span>Pinterest</span>" +
5291
+ "</a>" +
5292
+ "</p>" +
5293
+ '<p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p>' +
5294
+ "</div>"
5295
+ }
5296
+ });
5297
+
5298
+ function escapeHtml(string) {
5299
+ var entityMap = {
5300
+ "&": "&amp;",
5301
+ "<": "&lt;",
5302
+ ">": "&gt;",
5303
+ '"': "&quot;",
5304
+ "'": "&#39;",
5305
+ "/": "&#x2F;",
5306
+ "`": "&#x60;",
5307
+ "=": "&#x3D;"
5308
+ };
5309
+
5310
+ return String(string).replace(/[&<>"'`=\/]/g, function(s) {
5311
+ return entityMap[s];
5312
+ });
5313
+ }
5314
+
5315
+ $(document).on("click", "[data-fancybox-share]", function() {
5316
+ var instance = $.fancybox.getInstance(),
5317
+ current = instance.current || null,
5318
+ url,
5319
+ tpl;
5320
+
5321
+ if (!current) {
5322
+ return;
5323
+ }
5324
+
5325
+ if ($.type(current.opts.share.url) === "function") {
5326
+ url = current.opts.share.url.apply(current, [instance, current]);
5327
+ }
5328
+
5329
+ tpl = current.opts.share.tpl
5330
+ .replace(/\{\{media\}\}/g, current.type === "image" ? encodeURIComponent(current.src) : "")
5331
+ .replace(/\{\{url\}\}/g, encodeURIComponent(url))
5332
+ .replace(/\{\{url_raw\}\}/g, escapeHtml(url))
5333
+ .replace(/\{\{descr\}\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : "");
5334
+
5335
+ $.fancybox.open({
5336
+ src: instance.translate(instance, tpl),
5337
+ type: "html",
5338
+ opts: {
5339
+ touch: false,
5340
+ animationEffect: false,
5341
+ afterLoad: function(shareInstance, shareCurrent) {
5342
+ // Close self if parent instance is closing
5343
+ instance.$refs.container.one("beforeClose.fb", function() {
5344
+ shareInstance.close(null, 0);
5345
+ });
5346
+
5347
+ // Opening links in a popup window
5348
+ shareCurrent.$content.find(".fancybox-share__button").click(function() {
5349
+ window.open(this.href, "Share", "width=550, height=450");
5350
+ return false;
5351
+ });
5352
+ },
5353
+ mobile: {
5354
+ autoFocus: false
5355
+ }
5356
+ }
5357
+ });
5358
+ });
5359
+ })(document, jQuery);
5360
+
5361
+ // ==========================================================================
5362
+ //
5363
+ // Hash
5364
+ // Enables linking to each modal
5365
+ //
5366
+ // ==========================================================================
5367
+ (function(window, document, $) {
5368
+ "use strict";
5369
+
5370
+ // Simple $.escapeSelector polyfill (for jQuery prior v3)
5371
+ if (!$.escapeSelector) {
5372
+ $.escapeSelector = function(sel) {
5373
+ var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
5374
+ var fcssescape = function(ch, asCodePoint) {
5375
+ if (asCodePoint) {
5376
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
5377
+ if (ch === "\0") {
5378
+ return "\uFFFD";
5379
+ }
5380
+
5381
+ // Control characters and (dependent upon position) numbers get escaped as code points
5382
+ return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " ";
5383
+ }
5384
+
5385
+ // Other potentially-special ASCII characters get backslash-escaped
5386
+ return "\\" + ch;
5387
+ };
5388
+
5389
+ return (sel + "").replace(rcssescape, fcssescape);
5390
+ };
5391
+ }
5392
+
5393
+ // Get info about gallery name and current index from url
5394
+ function parseUrl() {
5395
+ var hash = window.location.hash.substr(1),
5396
+ rez = hash.split("-"),
5397
+ index = rez.length > 1 && /^\+?\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,
5398
+ gallery = rez.join("-");
5399
+
5400
+ return {
5401
+ hash: hash,
5402
+ /* Index is starting from 1 */
5403
+ index: index < 1 ? 1 : index,
5404
+ gallery: gallery
5405
+ };
5406
+ }
5407
+
5408
+ // Trigger click evnt on links to open new fancyBox instance
5409
+ function triggerFromUrl(url) {
5410
+ if (url.gallery !== "") {
5411
+ // If we can find element matching 'data-fancybox' atribute,
5412
+ // then triggering click event should start fancyBox
5413
+ $("[data-fancybox='" + $.escapeSelector(url.gallery) + "']")
5414
+ .eq(url.index - 1)
5415
+ .focus()
5416
+ .trigger("click.fb-start");
5417
+ }
5418
+ }
5419
+
5420
+ // Get gallery name from current instance
5421
+ function getGalleryID(instance) {
5422
+ var opts, ret;
5423
+
5424
+ if (!instance) {
5425
+ return false;
5426
+ }
5427
+
5428
+ opts = instance.current ? instance.current.opts : instance.opts;
5429
+ ret = opts.hash || (opts.$orig ? opts.$orig.data("fancybox") || opts.$orig.data("fancybox-trigger") : "");
5430
+
5431
+ return ret === "" ? false : ret;
5432
+ }
5433
+
5434
+ // Start when DOM becomes ready
5435
+ $(function() {
5436
+ // Check if user has disabled this module
5437
+ if ($.fancybox.defaults.hash === false) {
5438
+ return;
5439
+ }
5440
+
5441
+ // Update hash when opening/closing fancyBox
5442
+ $(document).on({
5443
+ "onInit.fb": function(e, instance) {
5444
+ var url, gallery;
5445
+
5446
+ if (instance.group[instance.currIndex].opts.hash === false) {
5447
+ return;
5448
+ }
5449
+
5450
+ url = parseUrl();
5451
+ gallery = getGalleryID(instance);
5452
+
5453
+ // Make sure gallery start index matches index from hash
5454
+ if (gallery && url.gallery && gallery == url.gallery) {
5455
+ instance.currIndex = url.index - 1;
5456
+ }
5457
+ },
5458
+
5459
+ "beforeShow.fb": function(e, instance, current, firstRun) {
5460
+ var gallery;
5461
+
5462
+ if (!current || current.opts.hash === false) {
5463
+ return;
5464
+ }
5465
+
5466
+ // Check if need to update window hash
5467
+ gallery = getGalleryID(instance);
5468
+
5469
+ if (!gallery) {
5470
+ return;
5471
+ }
5472
+
5473
+ // Variable containing last hash value set by fancyBox
5474
+ // It will be used to determine if fancyBox needs to close after hash change is detected
5475
+ instance.currentHash = gallery + (instance.group.length > 1 ? "-" + (current.index + 1) : "");
5476
+
5477
+ // If current hash is the same (this instance most likely is opened by hashchange), then do nothing
5478
+ if (window.location.hash === "#" + instance.currentHash) {
5479
+ return;
5480
+ }
5481
+
5482
+ if (firstRun && !instance.origHash) {
5483
+ instance.origHash = window.location.hash;
5484
+ }
5485
+
5486
+ if (instance.hashTimer) {
5487
+ clearTimeout(instance.hashTimer);
5488
+ }
5489
+
5490
+ // Update hash
5491
+ instance.hashTimer = setTimeout(function() {
5492
+ if ("replaceState" in window.history) {
5493
+ window.history[firstRun ? "pushState" : "replaceState"](
5494
+ {},
5495
+ document.title,
5496
+ window.location.pathname + window.location.search + "#" + instance.currentHash
5497
+ );
5498
+
5499
+ if (firstRun) {
5500
+ instance.hasCreatedHistory = true;
5501
+ }
5502
+ } else {
5503
+ window.location.hash = instance.currentHash;
5504
+ }
5505
+
5506
+ instance.hashTimer = null;
5507
+ }, 300);
5508
+ },
5509
+
5510
+ "beforeClose.fb": function(e, instance, current) {
5511
+ if (current.opts.hash === false) {
5512
+ return;
5513
+ }
5514
+
5515
+ clearTimeout(instance.hashTimer);
5516
+
5517
+ // Goto previous history entry
5518
+ if (instance.currentHash && instance.hasCreatedHistory) {
5519
+ window.history.back();
5520
+ } else if (instance.currentHash) {
5521
+ if ("replaceState" in window.history) {
5522
+ window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || ""));
5523
+ } else {
5524
+ window.location.hash = instance.origHash;
5525
+ }
5526
+ }
5527
+
5528
+ instance.currentHash = null;
5529
+ }
5530
+ });
5531
+
5532
+ // Check if need to start/close after url has changed
5533
+ $(window).on("hashchange.fb", function() {
5534
+ var url = parseUrl(),
5535
+ fb = null;
5536
+
5537
+ // Find last fancyBox instance that has "hash"
5538
+ $.each(
5539
+ $(".fancybox-container")
5540
+ .get()
5541
+ .reverse(),
5542
+ function(index, value) {
5543
+ var tmp = $(value).data("FancyBox");
5544
+
5545
+ if (tmp && tmp.currentHash) {
5546
+ fb = tmp;
5547
+ return false;
5548
+ }
5549
+ }
5550
+ );
5551
+
5552
+ if (fb) {
5553
+ // Now, compare hash values
5554
+ if (fb.currentHash !== url.gallery + "-" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {
5555
+ fb.currentHash = null;
5556
+
5557
+ fb.close();
5558
+ }
5559
+ } else if (url.gallery !== "") {
5560
+ triggerFromUrl(url);
5561
+ }
5562
+ });
5563
+
5564
+ // Check current hash and trigger click event on matching element to start fancyBox, if needed
5565
+ setTimeout(function() {
5566
+ if (!$.fancybox.getInstance()) {
5567
+ triggerFromUrl(parseUrl());
5568
+ }
5569
+ }, 50);
5570
+ });
5571
+ })(window, document, jQuery);
5572
+
5573
+ // ==========================================================================
5574
+ //
5575
+ // Wheel
5576
+ // Basic mouse weheel support for gallery navigation
5577
+ //
5578
+ // ==========================================================================
5579
+ (function(document, $) {
5580
+ "use strict";
5581
+
5582
+ var prevTime = new Date().getTime();
5583
+
5584
+ $(document).on({
5585
+ "onInit.fb": function(e, instance, current) {
5586
+ instance.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(e) {
5587
+ var current = instance.current,
5588
+ currTime = new Date().getTime();
5589
+
5590
+ if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === "auto" && current.type !== "image")) {
5591
+ return;
5592
+ }
5593
+
5594
+ e.preventDefault();
5595
+ e.stopPropagation();
5596
+
5597
+ if (current.$slide.hasClass("fancybox-animated")) {
5598
+ return;
5599
+ }
5600
+
5601
+ e = e.originalEvent || e;
5602
+
5603
+ if (currTime - prevTime < 250) {
5604
+ return;
5605
+ }
5606
+
5607
+ prevTime = currTime;
5608
+
5609
+ instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? "next" : "previous"]();
5610
+ });
5611
+ }
5612
+ });
5613
+ })(document, jQuery);
assets/js/rollback.js CHANGED
@@ -1,11 +1,11 @@
1
- jQuery(document).ready(function(){
2
- //rollback function
3
- jQuery('.fbfw-rollback-button').on('click', function (event) {
4
- var checkD = confirm('Are you sure you want to reinstall previous version?');
5
- if( checkD == true ){
6
- return true;
7
- } else {
8
- return false;
9
- }
10
- });
11
  });
1
+ jQuery(document).ready(function(){
2
+ //rollback function
3
+ jQuery('.fbfw-rollback-button').on('click', function (event) {
4
+ var checkD = confirm('Are you sure you want to reinstall previous version?');
5
+ if( checkD == true ){
6
+ return true;
7
+ } else {
8
+ return false;
9
+ }
10
+ });
11
  });
fancybox.php CHANGED
@@ -1,536 +1,536 @@
1
- <?php
2
-
3
- /*
4
- Plugin Name: FancyBox for WordPress
5
- Plugin URI: https://wordpress.org/plugins/fancybox-for-wordpress/
6
- Description: Integrates <a href="http://fancyapps.com/fancybox/3/">FancyBox 3</a> into WordPress.
7
- Version: 3.1.4
8
- Author: Colorlib
9
- Author URI: https://colorlib.com/wp/
10
-
11
- * FancyBox is Copyright (c) 2008 - 2010 Janis Skarnelis
12
- * Dual licensed under the MIT and GPL licenses:
13
- * http://www.opensource.org/licenses/mit-license.php
14
- * http://www.gnu.org/licenses/gpl.html
15
-
16
- */
17
-
18
- /**
19
- * Plugin Init
20
- */
21
- // Constants
22
- define( 'FBFW_VERSION', '3.1.4' );
23
- define( 'FBFW_PATH', plugin_dir_path( __FILE__ ) );
24
- define( 'FBFW_URL', plugin_dir_url( __FILE__ ) );
25
- define( 'FBFW_PLUGIN_BASE', plugin_basename( __FILE__ ) );
26
- define( 'FBFW_PREVIOUS_PLUGIN_VERSION', '3.0.14' );
27
- define( 'FBFW_FILE_', __FILE__ );
28
- define( 'PLUGIN_NAME', 'fancybox-for-wordpress' );
29
-
30
-
31
- // Get Main Settings
32
- $mfbfw = get_option( 'mfbfw' );
33
- $mfbfw_version = get_option( 'mfbfw_active_version' );
34
-
35
- // If previous version detected
36
- if ( is_admin() && isset( $mfbfw_version ) && $mfbfw_version < FBFW_VERSION ) {
37
-
38
- // get default settings and add any new ones to the database
39
- $current_settings = get_option( 'mfbfw' );
40
- $default_settings = mfbfw_defaults();
41
- $new_settings = (array) $current_settings + (array) $default_settings;
42
- update_option( 'mfbfw', $new_settings );
43
-
44
- // update version number
45
- update_option( 'mfbfw_active_version', FBFW_VERSION );
46
- } else {
47
-
48
- // update is not needed, add settings if first time activation
49
- $default_settings = mfbfw_defaults();
50
- add_option( 'mfbfw', $default_settings );
51
- add_option( 'mfbfw_active_version', FBFW_VERSION );
52
- }
53
-
54
- /**
55
- * Store default settings in an array
56
- */
57
- function mfbfw_defaults() {
58
-
59
- $default_settings = array(
60
- // Appearance
61
- 'border' => '',
62
- 'borderColor' => '#BBBBBB',
63
- 'paddingColor' => '#FFFFFF',
64
- 'padding' => '10',
65
- 'overlayShow' => 'on',
66
- 'overlayColor' => '#666666',
67
- 'overlayOpacity' => '0.3',
68
- 'titleShow' => 'on',
69
- 'titlePosition' => 'inside',
70
- 'titleColor' => '#333333',
71
- 'showNavArrows' => 'on',
72
- 'titleSize' => '14',
73
- 'showCloseButton' => '',
74
- 'showToolbar' => 'on',
75
- // Animations
76
- 'zoomOpacity' => 'on',
77
- 'zoomSpeedIn' => '500',
78
- 'zoomSpeedChange' => '300',
79
- 'transitionIn' => 'fade',
80
- 'transitionEffect' => 'fade',
81
- // Behaviour
82
- 'hideOnOverlayClick' => 'function(current, event) {
83
- return current.type === "image" ? "close" : false;
84
- },',
85
- 'hideOnContentClick' => '',
86
- 'enableEscapeButton' => 'on',
87
- 'cyclic' => '',
88
- 'mouseWheel' => '',
89
- 'disableWoocommercePages' => '',
90
- 'disableWoocommerceProducts' => '',
91
- // Gallery Type
92
- 'galleryType' => 'all',
93
- 'customExpression' => 'jQuery(thumbnails).attr("data-fancybox","gallery").getTitle();',
94
- // Misc
95
- 'autoDimensions' => 'on',
96
- 'frameWidth' => '560',
97
- 'frameHeight' => '340',
98
- 'loadAtFooter' => '',
99
- 'callbackEnable' => '',
100
- 'callbackOnStart' => 'function() { alert("Start!"); }',
101
- 'callbackOnCancel' => 'function() { alert("Cancel!"); }',
102
- 'callbackOnComplete' => 'function() { alert("Complete!"); }',
103
- 'callbackOnCleanup' => 'function() { alert("CleanUp!"); }',
104
- 'callbackOnClose' => 'function() { alert("Close!"); }',
105
- 'copyTitleFunction' => 'var arr = jQuery("a[data-fancybox]");
106
- jQuery.each(arr, function() {
107
- var title = jQuery(this).children("img").attr("title");
108
- var caption = jQuery(this).next("figcaption").html();
109
- if(caption.length){jQuery(this).attr("title",title+" " + caption)}else{ jQuery(this).attr("title",title);};
110
- }); ',
111
- 'nojQuery' => '',
112
- 'extraCallsEnable' => '',
113
- 'extraCallsData' => '',
114
- 'uninstall' => '',
115
- );
116
-
117
- return $default_settings;
118
- }
119
-
120
- /**
121
- * If requested, when plugin is deactivated, remove settings
122
- */
123
- function mfbfw_deactivate() {
124
-
125
- global $mfbfw;
126
-
127
- if ( isset( $mfbfw['uninstall'] ) && $mfbfw['uninstall'] ) {
128
- delete_option( 'mfbfw' );
129
- delete_option( 'mfbfw_active_version' );
130
- }
131
- }
132
-
133
- register_deactivation_hook( __FILE__, 'mfbfw_deactivate' );
134
-
135
- /**
136
- * Load FancyBox JS with jQuery and
137
- */
138
- function mfbfw_enqueue_scripts() {
139
-
140
- global $mfbfw, $wp_styles;
141
-
142
- // Check if script should be loaded in footer
143
- if ( isset( $mfbfw['loadAtFooter'] ) && $mfbfw['loadAtFooter'] ) {
144
- $footer = true;
145
- } else {
146
- $footer = false;
147
- }
148
-
149
- // Check if plugin should not call jQuery script (for troubleshooting only)
150
- if ( isset( $mfbfw['nojQuery'] ) && $mfbfw['nojQuery'] ) {
151
- $jquery = false;
152
- } else {
153
- $jquery = array( 'jquery' );
154
- }
155
-
156
- // Register Scripts
157
- wp_register_script( 'fancybox', FBFW_URL . 'assets/js/jquery.fancybox.js', $jquery, '1.3.4', $footer ); // Main Fancybox script
158
- // Enqueue Scripts
159
- wp_enqueue_script( 'fancybox' ); // Load fancybox
160
-
161
- if ( isset( $mfbfw['easing'] ) && $mfbfw['easing'] ) {
162
- wp_enqueue_script( 'jqueryeasing' ); // Load easing javascript file if required
163
- }
164
-
165
- if ( isset( $mfbfw['wheel'] ) && $mfbfw['wheel'] ) {
166
- wp_enqueue_script( 'jquerymousewheel' ); // Load mouse wheel javascript file if required
167
- }
168
-
169
- // Register Styles
170
- wp_register_style( 'fancybox', FBFW_URL . 'assets/css/fancybox.css', false, '1.3.4' ); // Main Fancybox style
171
- wp_register_style( 'fancybox-ie', FBFW_URL . 'assets/css/fancybox.ie.css', array( 'fancybox' ), '1.3.4' ); // Main Fancybox style fixes for IE6-8
172
- // Enqueue Styles
173
- wp_enqueue_style( 'fancybox' );
174
- wp_enqueue_style( 'fancybox-ie' );
175
-
176
- // Make IE specific styles load only on IE6-8
177
- $wp_styles->add_data( 'fancybox-ie', 'conditional', 'lt IE 9' );
178
- }
179
-
180
- add_action( 'wp_enqueue_scripts', 'mfbfw_enqueue_scripts' );
181
-
182
- /**
183
- * Print inline styles and load FancyBox with the selected settings
184
- */
185
- function mfbfw_init() {
186
-
187
- global $mfbfw, $mfbfw_version;
188
-
189
- //caption function to display image title
190
- $caption = 'function( instance, item ) {' .
191
- 'var testing = jQuery(this).context.title;' .
192
- 'var caption = jQuery(this).data(\'caption\') || \'\';' .
193
- 'if ( item.type === \'image\' && testing.length ) {' .
194
- 'caption = (caption.length ? caption + \'<br />\' : \'\') + \'<p class="caption-title">\'+testing+\'</p>\' ;' .
195
- '}' .
196
- 'return caption;' .
197
- '}';
198
-
199
- // fix undefined index copyTitleFunction. $mfbfw array misses this index.
200
-
201
- $mfbfw['copyTitleFunction'] = 'var arr = jQuery("a[data-fancybox]");
202
- jQuery.each(arr, function() {
203
- var title = jQuery(this).children("img").attr("title");
204
- var caption = jQuery(this).next("figcaption").html();
205
- if(caption && title){jQuery(this).attr("title",title+" " + caption)}else if(title){ jQuery(this).attr("title",title);}else if(caption){jQuery(this).attr("title",caption);}
206
- }); ';
207
-
208
-
209
- if ( $mfbfw['titlePosition'] == 'inside' ) {
210
- $afterLoad = 'function( instance, current ) {';
211
- $afterLoad .= 'current.$content.append(\'<div class=\"fancybox-custom-caption\" style=\" position: absolute;left:0;right:0;color:#000;padding-top:10px;bottom:-50px;margin:0 auto;text-align:center; \">\' + current.opts.caption + \'</div>\');';
212
- $afterLoad .= '}';
213
- $hideCaption = 'div.fancybox-caption{display:none !important;}';
214
- } else if ( $mfbfw['titlePosition'] == 'over' ) {
215
- $afterLoad = 'function( instance, current ) {';
216
- $afterLoad .= 'current.$content.append(\'<div class=\"fancybox-custom-caption\" style=\" position: absolute;left:0;right:0;color:#000;padding-top:10px;bottom:0;margin:0 auto;text-align:center; \">\' + current.opts.caption + \'</div>\');';
217
- $afterLoad .= '}';
218
- $hideCaption = 'div.fancybox-caption{display:none !important;}';
219
- } else {
220
- $afterLoad .= '""';
221
- $hideCaption = '';
222
- }
223
-
224
-
225
- if ( isset( $mfbfw['autoDimensions'] ) && $mfbfw['autoDimensions'] == true ) {
226
- $frameSize = '';
227
- } else {
228
- $frameSize = ' "width": ' . $mfbfw['frameWidth'] . ',
229
- "height": ' . $mfbfw['frameHeight'] . ',';
230
- }
231
-
232
-
233
- $mfbfw['customExpression'] = str_replace( '"rel"', '"data-fancybox"', $mfbfw['customExpression'] );
234
-
235
- //title position settings
236
- if ( isset( $mfbfw['titlePosition'] ) ) {
237
- if ( $mfbfw['titlePosition'] == 'inside' ) {
238
- $captionPosition = 'div.fancybox-caption p.caption-title {background:#fff; width:auto;padding:10px 30px;}';
239
- } elseif ( $mfbfw['titlePosition'] == 'float' ) {
240
- $captionPosition = 'div.fancybox-caption p.caption-title {background:#fff;color:#000;padding:10px 30px;width:auto;}';
241
- } else {
242
- $captionPosition = 'div.fancybox-caption {position:relative;max-width:50%;margin:0 auto;min-width:480px;padding:15px;}div.fancybox-caption p.caption-title{position:relative;left:0;right:0;margin:0 auto;top:0px;color:#fff;}';
243
- }
244
- }
245
-
246
- if ( ( isset( $mfbfw['disableWoocommerceProducts'] ) && $mfbfw['disableWoocommerceProducts'] == true && fancy_check_if_woocommerce() == 'product' ) || ( isset( $mfbfw['disableWoocommercePages'] ) && $mfbfw['disableWoocommercePages'] == true && fancy_check_if_woocommerce() == 'shop_page' ) ) {
247
-
248
- } else {
249
-
250
-
251
- echo '
252
- <!-- Fancybox for WordPress v' . $mfbfw_version . ' -->
253
- <style type="text/css">
254
- '.$hideCaption.'
255
- ' . ( isset( $mfbfw['overlayShow'] ) ? '' : 'div.fancybox-bg{background:transparent !important;}' ) . '
256
- ' . 'img.fancybox-image{border-width:' . $mfbfw['padding'] . 'px;border-color:' . $mfbfw['paddingColor'] . ';border-style:solid;height:auto;}' . '
257
- ' . ( isset( $mfbfw['overlayColor'] ) && $mfbfw['overlayColor'] ? 'div.fancybox-bg{background-color:' . hexTorgba( $mfbfw['overlayColor'], $mfbfw['overlayOpacity'] ) . ';opacity:1 !important;}' : '' ) . ( isset( $mfbfw['paddingColor'] ) && $mfbfw['paddingColor'] ? 'div.fancybox-content{border-color:' . $mfbfw['paddingColor'] . '}' : '' ) . '
258
- ' . ( isset( $mfbfw['paddingColor'] ) && $mfbfw['paddingColor'] && $mfbfw['titlePosition'] == 'inside' ? 'div#fancybox-title{background-color:' . $mfbfw['paddingColor'] . '}' : '' ) . '
259
- div.fancybox-content{background-color:' . $mfbfw['paddingColor'] . ( isset( $mfbfw['border'] ) && $mfbfw['border'] ? ';border:1px solid ' . $mfbfw['borderColor'] : '' ) . '}
260
- ' . ( isset( $mfbfw['titleColor'] ) && $mfbfw['titleColor'] && $mfbfw['titlePosition'] == 'inside' ? 'div#fancybox-title-inside{color:' . $mfbfw['titleColor'] . '}' : '' ) . '
261
- ' . ( isset( $mfbfw['borderRadius'] ) ? 'div.fancybox-content{border-radius:' . $mfbfw['borderRadius'] . 'px}' : '' ) . '
262
- ' . ( isset( $mfbfw['borderRadiusInner'] ) ? 'img#fancybox-img{border-radius:' . $mfbfw['borderRadiusInner'] . 'px}' : '' ) . '
263
- ' . ( isset( $mfbfw['shadowSize'] ) && $mfbfw['shadowOffset'] && $mfbfw['shadowOpacity'] ? 'div.fancybox-content{box-shadow:0 ' . $mfbfw['shadowOffset'] . 'px ' . $mfbfw['shadowSize'] . 'px rgba(0,0,0,' . $mfbfw['shadowOpacity'] . ')}' : '' ) . '
264
- ' . ( isset( $mfbfw['titleShow'] ) ? 'div.fancybox-caption p.caption-title{display:inline-block}' : 'div.fancybox-caption p.caption-title{display:none}div.fancybox-caption{display:none;}' ) . '
265
- ' . ( isset( $mfbfw['titleSize'] ) ? 'div.fancybox-caption p.caption-title{font-size:' . $mfbfw['titleSize'] . 'px}' : 'div.fancybox-caption p.caption-title{font-size:14px}' ) . '
266
- ' . ( isset( $mfbfw['titleColor'] ) && $mfbfw['titlePosition'] == 'inside' ? 'div.fancybox-caption p.caption-title{color:' . $mfbfw['titleColor'] . '}' : 'div.fancybox-caption p.caption-title{color:#fff}' ) . '
267
- ' . ( isset( $mfbfw['titlePosition'] ) ? 'div.fancybox-caption {color:' . $mfbfw['titleColor'] . '}' : 'div.fancybox-caption p.caption-title{color:#333333}' ) . $captionPosition . '
268
- </style>';
269
- ?>
270
- <script type="text/javascript">
271
- jQuery(function(){
272
-
273
- jQuery.fn.getTitle = function() { // Copy the title of every IMG tag and add it to its parent A so that fancybox can show titles
274
- <?php echo $mfbfw['copyTitleFunction'] ?>
275
- }
276
-
277
- // Supported file extensions
278
- var thumbnails = jQuery("a:has(img)").not(".nolightbox").filter( function() { return /\.(jpe?g|png|gif|bmp|pdf)(\?[^/]*)*$/i.test(jQuery(this).attr('href')) });
279
- <?php if ( $mfbfw['galleryType'] == 'post' ) { ?>
280
-
281
- // Gallery type BY POST and on post or page (so only one post or page is visible)
282
- <?php if ( is_singular() ) { ?>
283
- // Gallery by post
284
- thumbnails.addClass("fancybox").attr("data-fancybox","gallery").getTitle();
285
-
286
- <?php } else { ?>
287
- // Gallery by post
288
- var posts = jQuery(".post");
289
- posts.each(function() {
290
- jQuery(this).find(thumbnails).addClass("fancybox").attr("data-fancybox","gallery"+posts.index(this)).attr("rel","fancybox"+posts.index(this)).getTitle()
291
- });
292
-
293
- <?php } ?>
294
-
295
- // Gallery type ALL
296
- <?php } elseif ( $mfbfw['galleryType'] == 'all' ) { ?>
297
- // Gallery All
298
- thumbnails.addClass("fancybox").attr("data-fancybox","gallery").getTitle();
299
-
300
- // Gallery type NONE
301
- <?php } elseif ( $mfbfw['galleryType'] == 'none' ) { ?>
302
- // No Galleries
303
- thumbnails.each(function(){
304
- var rel = jQuery(this).attr("rel");
305
- var imgTitle = jQuery(this).children("img").attr("title");
306
- jQuery(this).addClass("fancybox").attr("data-fancybox",rel);
307
- jQuery(this).attr("title",imgTitle);
308
- });
309
-
310
- // Else, gallery type is custom, so just print the custom expression
311
- <?php } else { ?>
312
- /* Custom Expression */
313
- <?php echo $mfbfw['customExpression']; ?>
314
- <?php } ?>
315
-
316
- // Call fancybox and apply it on any link with a rel atribute that starts with "fancybox", with the options set on the admin panel
317
- jQuery("a.fancybox").fancybox({
318
- loop: <?php echo ( isset( $mfbfw['cyclic'] ) && $mfbfw['cyclic'] ? 'true' : 'false' ) ?>,
319
- smallBtn: <?php echo ( isset( $mfbfw['showCloseButton'] ) && $mfbfw['showCloseButton'] ? 'true' : 'false' ) ?>,
320
- zoomOpacity: <?php echo ( isset( $mfbfw['zoomOpacity'] ) && $mfbfw['zoomOpacity'] ? '"auto"' : 'false' ) ?>,
321
- animationEffect: "<?php echo $mfbfw['transitionIn'] ?>",
322
- animationDuration: <?php echo $mfbfw['zoomSpeedIn'] ?>,
323
- transitionEffect: "<?php echo $mfbfw['transitionEffect'] ?>",
324
- transitionDuration : "<?php echo $mfbfw['zoomSpeedChange'] ?>",
325
- overlayShow: <?php echo ( isset( $mfbfw['overlayShow'] ) && $mfbfw['overlayShow'] ? 'true' : 'false' ) ?>,
326
- overlayOpacity: "<?php echo $mfbfw['overlayOpacity'] ?>",
327
- titleShow: <?php echo ( isset( $mfbfw['titleShow'] ) && $mfbfw['titleShow'] ? 'true' : 'false' ) ?>,
328
- titlePosition: "<?php echo $mfbfw['titlePosition'] ?>",
329
- keyboard: <?php echo ( isset( $mfbfw['enableEscapeButton'] ) && $mfbfw['enableEscapeButton'] ? 'true' : 'false' ) ?>,
330
- showCloseButton: <?php echo ( isset( $mfbfw['showCloseButton'] ) && $mfbfw['showCloseButton'] ? 'true' : 'false' ) ?>,
331
- arrows: <?php echo ( isset( $mfbfw['showNavArrows'] ) && $mfbfw['showNavArrows'] ? 'true' : 'false' ) ?>,
332
- clickContent: <?php echo ( isset( $mfbfw['hideOnContentClick'] ) && $mfbfw['hideOnContentClick'] ? '"close"' : 'false' ) ?>,
333
- clickSlide: <?php echo ( isset( $mfbfw['hideOnOverlayClick'] ) && $mfbfw['hideOnOverlayClick'] ? 'function(current, event) {return current.type === "image" ? "close" : false;}' : 'false' ) ?>,
334
- wheel: <?php echo ( isset( $mfbfw['mouseWheel'] ) && $mfbfw['mouseWheel'] ? 'true' : 'false' ) ?>,
335
- toolbar: <?php echo ( isset( $mfbfw['showToolbar'] ) && $mfbfw['showToolbar'] ? 'true' : 'false' ) ?>,
336
- preventCaptionOverlap: true,
337
- onInit: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnStart'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnStart'] ? $mfbfw['callbackOnStart'] . ',' : 'function() { },' ) ?>
338
- onDeactivate: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnCancel'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnCancel'] ? $mfbfw['callbackOnCancel'] . ',' : 'function() { },' ) ?>
339
- beforeClose: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnCleanup'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnCleanup'] ? $mfbfw['callbackOnCleanup'] . ',' : 'function() { },' ) ?>
340
- afterShow: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnComplete'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnComplete'] ? $mfbfw['callbackOnComplete'] . ',' : 'function() { },' ) ?>
341
- afterClose: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnClose'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnClose'] ? $mfbfw['callbackOnClose'] . ',' : 'function() { },' ) ?>
342
- caption : <?php echo $caption ?>,
343
- afterLoad : <?php echo $afterLoad ?>,
344
- <?php echo $frameSize ?>
345
- });
346
- <?php if ( isset( $mfbfw['extraCallsEnable'] ) && $mfbfw['extraCallsEnable'] ) {
347
- echo "/* Extra Calls */";
348
- echo $mfbfw['extraCallsData'];
349
- } ?>
350
-
351
- })
352
- </script>
353
- <!-- END Fancybox for WordPress -->
354
- <?php
355
- }
356
- }
357
-
358
- // Check if inline script should be loaded in footer
359
- if ( isset( $mfbfw['loadAtFooter'] ) && $mfbfw['loadAtFooter'] ) {
360
- add_action( 'wp_footer', 'mfbfw_init' );
361
- } else {
362
- add_action( 'wp_head', 'mfbfw_init' );
363
- }
364
-
365
- /**
366
- * Load text domain
367
- */
368
- function mfbfw_textdomain() {
369
-
370
- if ( function_exists( 'load_plugin_textdomain' ) ) {
371
- load_plugin_textdomain( 'mfbfw', FBFW_URL . 'languages', 'fancybox-for-wordpress/languages' );
372
- }
373
- }
374
-
375
- add_action( 'init', 'mfbfw_textdomain' );
376
-
377
-
378
- /**
379
- * Insert Rollback link for plugin in plugins page
380
- */
381
-
382
- function extra_settings_links( $links ) {
383
-
384
- if ( apply_filters( 'fbfw_show_rollback_link', true ) ) {
385
- $links['rollback'] = sprintf( '<a href="%s" class="fbfw-rollback-button">%s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=fbfw_rollback' ), 'fbfw_rollback' ), __( 'Rollback version', 'mfbfw' ) );
386
- }
387
-
388
- return $links;
389
- }
390
-
391
- add_action( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'extra_settings_links' );
392
-
393
-
394
- /**
395
- * Register options
396
- */
397
- function mfbfw_admin_options() {
398
-
399
- $settings = get_option( 'mfbfw' );
400
-
401
- if ( isset( $_GET['page'] ) && $_GET['page'] == 'fancybox-for-wordpress' ) {
402
-
403
- if ( isset( $_REQUEST['action'] ) && 'reset' == $_REQUEST['action'] && check_admin_referer( 'mfbfw-options-reset' ) ) {
404
-
405
- $defaults_array = mfbfw_defaults(); // Store defaults in an array
406
- update_option( 'mfbfw', $defaults_array ); // Write defaults to database
407
- wp_safe_redirect( add_query_arg( 'reset', 'true' ) );
408
- die;
409
- }
410
- }
411
-
412
- register_setting( 'mfbfw-options', 'mfbfw' );
413
- }
414
-
415
- add_action( 'admin_init', 'mfbfw_admin_options' );
416
-
417
- /**
418
- * Admin options page
419
- */
420
- function mfbfw_admin_menu() {
421
-
422
- require FBFW_PATH . 'admin.php';
423
-
424
- $mfbfwadmin = add_submenu_page( 'options-general.php', 'Fancybox for WordPress Options', 'Fancybox for WP', 'manage_options', 'fancybox-for-wordpress', 'mfbfw_options_page' );
425
-
426
- add_action( 'admin_print_styles-' . $mfbfwadmin, 'mfbfw_admin_styles' );
427
- add_action( 'admin_print_scripts-' . $mfbfwadmin, 'mfbfw_admin_scripts' );
428
- }
429
-
430
- add_action( 'admin_menu', 'mfbfw_admin_menu' );
431
-
432
- /**
433
- * Load Admin CSS & JS (called in mfbfw_admin_menu())
434
- */
435
- function mfbfw_admin_styles() {
436
- wp_enqueue_style( 'fancybox-admin', FBFW_URL . 'assets/css/fancybox-admin.css', false, FBFW_VERSION ); // Load custom CSS for Admin Page
437
- wp_enqueue_style( 'wp-color-picker' );
438
- wp_enqueue_style( 'jquery-ui', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css' ); // Load jQuery UI Tabs CSS for Admin Page
439
- }
440
-
441
- function mfbfw_admin_scripts() {
442
- wp_enqueue_script( 'jquery-ui-tabs', array( 'jquery-ui-core' ), true ); // Load jQuery UI Tabs JS for Admin Page
443
- wp_enqueue_script( 'fancybox-admin', FBFW_URL . 'assets/js/admin.js', array( 'jquery', 'wp-color-picker', 'updates' ), FBFW_VERSION, true ); // Load specific JS for Admin Page
444
-
445
- /* Load codemirror editor */
446
- $settings = wp_enqueue_code_editor( array( 'type' => 'text/javascript' ) );
447
- }
448
-
449
- /**
450
- * Settings Button on Plugins Panel
451
- */
452
-
453
-
454
- require FBFW_PATH . '/lib/class-fbfw-plugin-rollback.php';
455
- require FBFW_PATH . '/lib/class-fbfw-rollback.php';
456
-
457
- function mfbfw_plugin_action_links(
458
- $links,
459
- $file
460
- ) {
461
-
462
- static $this_plugin;
463
- if ( ! $this_plugin ) {
464
- $this_plugin = plugin_basename( __FILE__ );
465
- }
466
-
467
- if ( $file == $this_plugin ) {
468
- $settings_link = '<a href="options-general.php?page=fancybox-for-wordpress">' . __( 'Settings', 'mfbfw' ) . '</a>';
469
- array_unshift( $links, $settings_link );
470
- }
471
-
472
- return $links;
473
- }
474
-
475
- add_filter( 'plugin_action_links', 'mfbfw_plugin_action_links', 10, 2 );
476
-
477
- /*
478
- * Transform from Hex to rgb or rgba
479
- */
480
-
481
- function hexTorgba( $hexColor, $opacity ) {
482
- list( $r, $g, $b ) = sscanf( $hexColor, "#%02x%02x%02x" );
483
- if ( $opacity ) {
484
- $rgb = 'rgba(' . $r . ',' . $g . ',' . $b . ',' . $opacity . ')';
485
- } else {
486
- $rgb = 'rgba(' . $r . ',' . $g . ',' . $b . ')';
487
- }
488
-
489
- return $rgb;
490
- }
491
-
492
- /*
493
- *
494
- * Check if WooCommerce Product post
495
- *
496
- */
497
- function fancy_check_if_woocommerce() {
498
- if ( class_exists( 'WooCommerce' ) ) {
499
- if ( is_shop() ) {
500
- return 'shop_page';
501
- } else if ( get_post_type( get_the_id() ) == 'product' ) {
502
- return 'product';
503
- } else {
504
- return 'true';
505
- }
506
- } else {
507
- return 'true';
508
- }
509
- }
510
-
511
- // Ajax request for activate link
512
- add_action( 'wp_ajax_mfbfw_activate_link', 'mfbfw_get_activate_link' );
513
- function mfbfw_get_activate_link() {
514
-
515
- $plugin_path = 'modula-best-grid-gallery/Modula.php';
516
- $link = add_query_arg(
517
- array(
518
- 'action' => 'activate',
519
- 'plugin' => rawurlencode( $plugin_path ),
520
- 'plugin_status' => 'all',
521
- 'paged' => '1',
522
- '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin_path ),
523
- ),
524
- admin_url( 'plugins.php' )
525
- );
526
-
527
- wp_die(
528
- wp_json_encode(
529
- array(
530
- 'status' => 'succes',
531
- 'link' => $link,
532
- )
533
- )
534
- );
535
-
536
  }
1
+ <?php
2
+
3
+ /*
4
+ Plugin Name: FancyBox for WordPress
5
+ Plugin URI: https://wordpress.org/plugins/fancybox-for-wordpress/
6
+ Description: Integrates <a href="http://fancyapps.com/fancybox/3/">FancyBox 3</a> into WordPress.
7
+ Version: 3.1.5
8
+ Author: Colorlib
9
+ Author URI: https://colorlib.com/wp/
10
+
11
+ * FancyBox is Copyright (c) 2008 - 2010 Janis Skarnelis
12
+ * Dual licensed under the MIT and GPL licenses:
13
+ * http://www.opensource.org/licenses/mit-license.php
14
+ * http://www.gnu.org/licenses/gpl.html
15
+
16
+ */
17
+
18
+ /**
19
+ * Plugin Init
20
+ */
21
+ // Constants
22
+ define( 'FBFW_VERSION', '3.1.5' );
23
+ define( 'FBFW_PATH', plugin_dir_path( __FILE__ ) );
24
+ define( 'FBFW_URL', plugin_dir_url( __FILE__ ) );
25
+ define( 'FBFW_PLUGIN_BASE', plugin_basename( __FILE__ ) );
26
+ define( 'FBFW_PREVIOUS_PLUGIN_VERSION', '3.0.14' );
27
+ define( 'FBFW_FILE_', __FILE__ );
28
+ define( 'PLUGIN_NAME', 'fancybox-for-wordpress' );
29
+
30
+
31
+ // Get Main Settings
32
+ $mfbfw = get_option( 'mfbfw' );
33
+ $mfbfw_version = get_option( 'mfbfw_active_version' );
34
+
35
+ // If previous version detected
36
+ if ( is_admin() && isset( $mfbfw_version ) && $mfbfw_version < FBFW_VERSION ) {
37
+
38
+ // get default settings and add any new ones to the database
39
+ $current_settings = get_option( 'mfbfw' );
40
+ $default_settings = mfbfw_defaults();
41
+ $new_settings = (array) $current_settings + (array) $default_settings;
42
+ update_option( 'mfbfw', $new_settings );
43
+
44
+ // update version number
45
+ update_option( 'mfbfw_active_version', FBFW_VERSION );
46
+ } else {
47
+
48
+ // update is not needed, add settings if first time activation
49
+ $default_settings = mfbfw_defaults();
50
+ add_option( 'mfbfw', $default_settings );
51
+ add_option( 'mfbfw_active_version', FBFW_VERSION );
52
+ }
53
+
54
+ /**
55
+ * Store default settings in an array
56
+ */
57
+ function mfbfw_defaults() {
58
+
59
+ $default_settings = array(
60
+ // Appearance
61
+ 'border' => '',
62
+ 'borderColor' => '#BBBBBB',
63
+ 'paddingColor' => '#FFFFFF',
64
+ 'padding' => '10',
65
+ 'overlayShow' => 'on',
66
+ 'overlayColor' => '#666666',
67
+ 'overlayOpacity' => '0.3',
68
+ 'titleShow' => 'on',
69
+ 'titlePosition' => 'inside',
70
+ 'titleColor' => '#333333',
71
+ 'showNavArrows' => 'on',
72
+ 'titleSize' => '14',
73
+ 'showCloseButton' => '',
74
+ 'showToolbar' => 'on',
75
+ // Animations
76
+ 'zoomOpacity' => 'on',
77
+ 'zoomSpeedIn' => '500',
78
+ 'zoomSpeedChange' => '300',
79
+ 'transitionIn' => 'fade',
80
+ 'transitionEffect' => 'fade',
81
+ // Behaviour
82
+ 'hideOnOverlayClick' => 'function(current, event) {
83
+ return current.type === "image" ? "close" : false;
84
+ },',
85
+ 'hideOnContentClick' => '',
86
+ 'enableEscapeButton' => 'on',
87
+ 'cyclic' => '',
88
+ 'mouseWheel' => '',
89
+ 'disableWoocommercePages' => '',
90
+ 'disableWoocommerceProducts' => '',
91
+ // Gallery Type
92
+ 'galleryType' => 'all',
93
+ 'customExpression' => 'jQuery(thumbnails).attr("data-fancybox","gallery").getTitle();',
94
+ // Misc
95
+ 'autoDimensions' => 'on',
96
+ 'frameWidth' => '560',
97
+ 'frameHeight' => '340',
98
+ 'loadAtFooter' => '',
99
+ 'callbackEnable' => '',
100
+ 'callbackOnStart' => 'function() { alert("Start!"); }',
101
+ 'callbackOnCancel' => 'function() { alert("Cancel!"); }',
102
+ 'callbackOnComplete' => 'function() { alert("Complete!"); }',
103
+ 'callbackOnCleanup' => 'function() { alert("CleanUp!"); }',
104
+ 'callbackOnClose' => 'function() { alert("Close!"); }',
105
+ 'copyTitleFunction' => 'var arr = jQuery("a[data-fancybox]");
106
+ jQuery.each(arr, function() {
107
+ var title = jQuery(this).children("img").attr("title");
108
+ var caption = jQuery(this).next("figcaption").html();
109
+ if(caption.length){jQuery(this).attr("title",title+" " + caption)}else{ jQuery(this).attr("title",title);};
110
+ }); ',
111
+ 'nojQuery' => '',
112
+ 'extraCallsEnable' => '',
113
+ 'extraCallsData' => '',
114
+ 'uninstall' => '',
115
+ );
116
+
117
+ return $default_settings;
118
+ }
119
+
120
+ /**
121
+ * If requested, when plugin is deactivated, remove settings
122
+ */
123
+ function mfbfw_deactivate() {
124
+
125
+ global $mfbfw;
126
+
127
+ if ( isset( $mfbfw['uninstall'] ) && $mfbfw['uninstall'] ) {
128
+ delete_option( 'mfbfw' );
129
+ delete_option( 'mfbfw_active_version' );
130
+ }
131
+ }
132
+
133
+ register_deactivation_hook( __FILE__, 'mfbfw_deactivate' );
134
+
135
+ /**
136
+ * Load FancyBox JS with jQuery and
137
+ */
138
+ function mfbfw_enqueue_scripts() {
139
+
140
+ global $mfbfw, $wp_styles;
141
+
142
+ // Check if script should be loaded in footer
143
+ if ( isset( $mfbfw['loadAtFooter'] ) && $mfbfw['loadAtFooter'] ) {
144
+ $footer = true;
145
+ } else {
146
+ $footer = false;
147
+ }
148
+
149
+ // Check if plugin should not call jQuery script (for troubleshooting only)
150
+ if ( isset( $mfbfw['nojQuery'] ) && $mfbfw['nojQuery'] ) {
151
+ $jquery = false;
152
+ } else {
153
+ $jquery = array( 'jquery' );
154
+ }
155
+
156
+ // Register Scripts
157
+ wp_register_script( 'fancybox', FBFW_URL . 'assets/js/jquery.fancybox.js', $jquery, '1.3.4', $footer ); // Main Fancybox script
158
+ // Enqueue Scripts
159
+ wp_enqueue_script( 'fancybox' ); // Load fancybox
160
+
161
+ if ( isset( $mfbfw['easing'] ) && $mfbfw['easing'] ) {
162
+ wp_enqueue_script( 'jqueryeasing' ); // Load easing javascript file if required
163
+ }
164
+
165
+ if ( isset( $mfbfw['wheel'] ) && $mfbfw['wheel'] ) {
166
+ wp_enqueue_script( 'jquerymousewheel' ); // Load mouse wheel javascript file if required
167
+ }
168
+
169
+ // Register Styles
170
+ wp_register_style( 'fancybox', FBFW_URL . 'assets/css/fancybox.css', false, '1.3.4' ); // Main Fancybox style
171
+ wp_register_style( 'fancybox-ie', FBFW_URL . 'assets/css/fancybox.ie.css', array( 'fancybox' ), '1.3.4' ); // Main Fancybox style fixes for IE6-8
172
+ // Enqueue Styles
173
+ wp_enqueue_style( 'fancybox' );
174
+ wp_enqueue_style( 'fancybox-ie' );
175
+
176
+ // Make IE specific styles load only on IE6-8
177
+ $wp_styles->add_data( 'fancybox-ie', 'conditional', 'lt IE 9' );
178
+ }
179
+
180
+ add_action( 'wp_enqueue_scripts', 'mfbfw_enqueue_scripts' );
181
+
182
+ /**
183
+ * Print inline styles and load FancyBox with the selected settings
184
+ */
185
+ function mfbfw_init() {
186
+
187
+ global $mfbfw, $mfbfw_version;
188
+
189
+ //caption function to display image title
190
+ $caption = 'function( instance, item ) {' .
191
+ 'var testing = jQuery(this).context.title;' .
192
+ 'var caption = jQuery(this).data(\'caption\') || \'\';' .
193
+ 'if ( item.type === \'image\' && testing.length ) {' .
194
+ 'caption = (caption.length ? caption + \'<br />\' : \'\') + \'<p class="caption-title">\'+testing+\'</p>\' ;' .
195
+ '}' .
196
+ 'return caption;' .
197
+ '}';
198
+
199
+ // fix undefined index copyTitleFunction. $mfbfw array misses this index.
200
+
201
+ $mfbfw['copyTitleFunction'] = 'var arr = jQuery("a[data-fancybox]");
202
+ jQuery.each(arr, function() {
203
+ var title = jQuery(this).children("img").attr("title");
204
+ var caption = jQuery(this).next("figcaption").html();
205
+ if(caption && title){jQuery(this).attr("title",title+" " + caption)}else if(title){ jQuery(this).attr("title",title);}else if(caption){jQuery(this).attr("title",caption);}
206
+ }); ';
207
+
208
+
209
+ if ( $mfbfw['titlePosition'] == 'inside' ) {
210
+ $afterLoad = 'function( instance, current ) {';
211
+ $afterLoad .= 'current.$content.append(\'<div class=\"fancybox-custom-caption\" style=\" position: absolute;left:0;right:0;color:#000;padding-top:10px;bottom:-50px;margin:0 auto;text-align:center; \">\' + current.opts.caption + \'</div>\');';
212
+ $afterLoad .= '}';
213
+ $hideCaption = 'div.fancybox-caption{display:none !important;}';
214
+ } else if ( $mfbfw['titlePosition'] == 'over' ) {
215
+ $afterLoad = 'function( instance, current ) {';
216
+ $afterLoad .= 'current.$content.append(\'<div class=\"fancybox-custom-caption\" style=\" position: absolute;left:0;right:0;color:#000;padding-top:10px;bottom:0;margin:0 auto;text-align:center; \">\' + current.opts.caption + \'</div>\');';
217
+ $afterLoad .= '}';
218
+ $hideCaption = 'div.fancybox-caption{display:none !important;}';
219
+ } else {
220
+ $afterLoad .= '""';
221
+ $hideCaption = '';
222
+ }
223
+
224
+
225
+ if ( isset( $mfbfw['autoDimensions'] ) && $mfbfw['autoDimensions'] == true ) {
226
+ $frameSize = '';
227
+ } else {
228
+ $frameSize = ' "width": ' . $mfbfw['frameWidth'] . ',
229
+ "height": ' . $mfbfw['frameHeight'] . ',';
230
+ }
231
+
232
+
233
+ $mfbfw['customExpression'] = str_replace( '"rel"', '"data-fancybox"', $mfbfw['customExpression'] );
234
+
235
+ //title position settings
236
+ if ( isset( $mfbfw['titlePosition'] ) ) {
237
+ if ( $mfbfw['titlePosition'] == 'inside' ) {
238
+ $captionPosition = 'div.fancybox-caption p.caption-title {background:#fff; width:auto;padding:10px 30px;}';
239
+ } elseif ( $mfbfw['titlePosition'] == 'float' ) {
240
+ $captionPosition = 'div.fancybox-caption p.caption-title {background:#fff;color:#000;padding:10px 30px;width:auto;}';
241
+ } else {
242
+ $captionPosition = 'div.fancybox-caption {position:relative;max-width:50%;margin:0 auto;min-width:480px;padding:15px;}div.fancybox-caption p.caption-title{position:relative;left:0;right:0;margin:0 auto;top:0px;color:#fff;}';
243
+ }
244
+ }
245
+
246
+ if ( ( isset( $mfbfw['disableWoocommerceProducts'] ) && $mfbfw['disableWoocommerceProducts'] == true && fancy_check_if_woocommerce() == 'product' ) || ( isset( $mfbfw['disableWoocommercePages'] ) && $mfbfw['disableWoocommercePages'] == true && fancy_check_if_woocommerce() == 'shop_page' ) ) {
247
+
248
+ } else {
249
+
250
+
251
+ echo '
252
+ <!-- Fancybox for WordPress v' . $mfbfw_version . ' -->
253
+ <style type="text/css">
254
+ '.$hideCaption.'
255
+ ' . ( isset( $mfbfw['overlayShow'] ) ? '' : 'div.fancybox-bg{background:transparent !important;}' ) . '
256
+ ' . 'img.fancybox-image{border-width:' . $mfbfw['padding'] . 'px;border-color:' . $mfbfw['paddingColor'] . ';border-style:solid;height:auto;}' . '
257
+ ' . ( isset( $mfbfw['overlayColor'] ) && $mfbfw['overlayColor'] ? 'div.fancybox-bg{background-color:' . hexTorgba( $mfbfw['overlayColor'], $mfbfw['overlayOpacity'] ) . ';opacity:1 !important;}' : '' ) . ( isset( $mfbfw['paddingColor'] ) && $mfbfw['paddingColor'] ? 'div.fancybox-content{border-color:' . $mfbfw['paddingColor'] . '}' : '' ) . '
258
+ ' . ( isset( $mfbfw['paddingColor'] ) && $mfbfw['paddingColor'] && $mfbfw['titlePosition'] == 'inside' ? 'div#fancybox-title{background-color:' . $mfbfw['paddingColor'] . '}' : '' ) . '
259
+ div.fancybox-content{background-color:' . $mfbfw['paddingColor'] . ( isset( $mfbfw['border'] ) && $mfbfw['border'] ? ';border:1px solid ' . $mfbfw['borderColor'] : '' ) . '}
260
+ ' . ( isset( $mfbfw['titleColor'] ) && $mfbfw['titleColor'] && $mfbfw['titlePosition'] == 'inside' ? 'div#fancybox-title-inside{color:' . $mfbfw['titleColor'] . '}' : '' ) . '
261
+ ' . ( isset( $mfbfw['borderRadius'] ) ? 'div.fancybox-content{border-radius:' . $mfbfw['borderRadius'] . 'px}' : '' ) . '
262
+ ' . ( isset( $mfbfw['borderRadiusInner'] ) ? 'img#fancybox-img{border-radius:' . $mfbfw['borderRadiusInner'] . 'px}' : '' ) . '
263
+ ' . ( isset( $mfbfw['shadowSize'] ) && $mfbfw['shadowOffset'] && $mfbfw['shadowOpacity'] ? 'div.fancybox-content{box-shadow:0 ' . $mfbfw['shadowOffset'] . 'px ' . $mfbfw['shadowSize'] . 'px rgba(0,0,0,' . $mfbfw['shadowOpacity'] . ')}' : '' ) . '
264
+ ' . ( isset( $mfbfw['titleShow'] ) ? 'div.fancybox-caption p.caption-title{display:inline-block}' : 'div.fancybox-caption p.caption-title{display:none}div.fancybox-caption{display:none;}' ) . '
265
+ ' . ( isset( $mfbfw['titleSize'] ) ? 'div.fancybox-caption p.caption-title{font-size:' . $mfbfw['titleSize'] . 'px}' : 'div.fancybox-caption p.caption-title{font-size:14px}' ) . '
266
+ ' . ( isset( $mfbfw['titleColor'] ) && $mfbfw['titlePosition'] == 'inside' ? 'div.fancybox-caption p.caption-title{color:' . $mfbfw['titleColor'] . '}' : 'div.fancybox-caption p.caption-title{color:#fff}' ) . '
267
+ ' . ( isset( $mfbfw['titlePosition'] ) ? 'div.fancybox-caption {color:' . $mfbfw['titleColor'] . '}' : 'div.fancybox-caption p.caption-title{color:#333333}' ) . $captionPosition . '
268
+ </style>';
269
+ ?>
270
+ <script type="text/javascript">
271
+ jQuery(function(){
272
+
273
+ jQuery.fn.getTitle = function() { // Copy the title of every IMG tag and add it to its parent A so that fancybox can show titles
274
+ <?php echo $mfbfw['copyTitleFunction'] ?>
275
+ }
276
+
277
+ // Supported file extensions
278
+ var thumbnails = jQuery("a:has(img)").not(".nolightbox").filter( function() { return /\.(jpe?g|png|gif|mp4|webp|bmp|pdf)(\?[^/]*)*$/i.test(jQuery(this).attr('href')) });
279
+ <?php if ( $mfbfw['galleryType'] == 'post' ) { ?>
280
+
281
+ // Gallery type BY POST and on post or page (so only one post or page is visible)
282
+ <?php if ( is_singular() ) { ?>
283
+ // Gallery by post
284
+ thumbnails.addClass("fancybox").attr("data-fancybox","gallery").getTitle();
285
+
286
+ <?php } else { ?>
287
+ // Gallery by post
288
+ var posts = jQuery(".post");
289
+ posts.each(function() {
290
+ jQuery(this).find(thumbnails).addClass("fancybox").attr("data-fancybox","gallery"+posts.index(this)).attr("rel","fancybox"+posts.index(this)).getTitle()
291
+ });
292
+
293
+ <?php } ?>
294
+
295
+ // Gallery type ALL
296
+ <?php } elseif ( $mfbfw['galleryType'] == 'all' ) { ?>
297
+ // Gallery All
298
+ thumbnails.addClass("fancybox").attr("data-fancybox","gallery").getTitle();
299
+
300
+ // Gallery type NONE
301
+ <?php } elseif ( $mfbfw['galleryType'] == 'none' ) { ?>
302
+ // No Galleries
303
+ thumbnails.each(function(){
304
+ var rel = jQuery(this).attr("rel");
305
+ var imgTitle = jQuery(this).children("img").attr("title");
306
+ jQuery(this).addClass("fancybox").attr("data-fancybox",rel);
307
+ jQuery(this).attr("title",imgTitle);
308
+ });
309
+
310
+ // Else, gallery type is custom, so just print the custom expression
311
+ <?php } else { ?>
312
+ /* Custom Expression */
313
+ <?php echo $mfbfw['customExpression']; ?>
314
+ <?php } ?>
315
+
316
+ // Call fancybox and apply it on any link with a rel atribute that starts with "fancybox", with the options set on the admin panel
317
+ jQuery("a.fancybox").fancybox({
318
+ loop: <?php echo ( isset( $mfbfw['cyclic'] ) && $mfbfw['cyclic'] ? 'true' : 'false' ) ?>,
319
+ smallBtn: <?php echo ( isset( $mfbfw['showCloseButton'] ) && $mfbfw['showCloseButton'] ? 'true' : 'false' ) ?>,
320
+ zoomOpacity: <?php echo ( isset( $mfbfw['zoomOpacity'] ) && $mfbfw['zoomOpacity'] ? '"auto"' : 'false' ) ?>,
321
+ animationEffect: "<?php echo $mfbfw['transitionIn'] ?>",
322
+ animationDuration: <?php echo $mfbfw['zoomSpeedIn'] ?>,
323
+ transitionEffect: "<?php echo $mfbfw['transitionEffect'] ?>",
324
+ transitionDuration : "<?php echo $mfbfw['zoomSpeedChange'] ?>",
325
+ overlayShow: <?php echo ( isset( $mfbfw['overlayShow'] ) && $mfbfw['overlayShow'] ? 'true' : 'false' ) ?>,
326
+ overlayOpacity: "<?php echo $mfbfw['overlayOpacity'] ?>",
327
+ titleShow: <?php echo ( isset( $mfbfw['titleShow'] ) && $mfbfw['titleShow'] ? 'true' : 'false' ) ?>,
328
+ titlePosition: "<?php echo $mfbfw['titlePosition'] ?>",
329
+ keyboard: <?php echo ( isset( $mfbfw['enableEscapeButton'] ) && $mfbfw['enableEscapeButton'] ? 'true' : 'false' ) ?>,
330
+ showCloseButton: <?php echo ( isset( $mfbfw['showCloseButton'] ) && $mfbfw['showCloseButton'] ? 'true' : 'false' ) ?>,
331
+ arrows: <?php echo ( isset( $mfbfw['showNavArrows'] ) && $mfbfw['showNavArrows'] ? 'true' : 'false' ) ?>,
332
+ clickContent: <?php echo ( isset( $mfbfw['hideOnContentClick'] ) && $mfbfw['hideOnContentClick'] ? '"close"' : 'false' ) ?>,
333
+ clickSlide: <?php echo ( isset( $mfbfw['hideOnOverlayClick'] ) && $mfbfw['hideOnOverlayClick'] ? 'function(current, event) {return current.type === "image" ? "close" : false;}' : 'false' ) ?>,
334
+ wheel: <?php echo ( isset( $mfbfw['mouseWheel'] ) && $mfbfw['mouseWheel'] ? 'true' : 'false' ) ?>,
335
+ toolbar: <?php echo ( isset( $mfbfw['showToolbar'] ) && $mfbfw['showToolbar'] ? 'true' : 'false' ) ?>,
336
+ preventCaptionOverlap: true,
337
+ onInit: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnStart'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnStart'] ? $mfbfw['callbackOnStart'] . ',' : 'function() { },' ) ?>
338
+ onDeactivate: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnCancel'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnCancel'] ? $mfbfw['callbackOnCancel'] . ',' : 'function() { },' ) ?>
339
+ beforeClose: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnCleanup'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnCleanup'] ? $mfbfw['callbackOnCleanup'] . ',' : 'function() { },' ) ?>
340
+ afterShow: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnComplete'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnComplete'] ? $mfbfw['callbackOnComplete'] . ',' : 'function() { },' ) ?>
341
+ afterClose: <?php echo ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnClose'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnClose'] ? $mfbfw['callbackOnClose'] . ',' : 'function() { },' ) ?>
342
+ caption : <?php echo $caption ?>,
343
+ afterLoad : <?php echo $afterLoad ?>,
344
+ <?php echo $frameSize ?>
345
+ });
346
+ <?php if ( isset( $mfbfw['extraCallsEnable'] ) && $mfbfw['extraCallsEnable'] ) {
347
+ echo "/* Extra Calls */";
348
+ echo $mfbfw['extraCallsData'];
349
+ } ?>
350
+
351
+ })
352
+ </script>
353
+ <!-- END Fancybox for WordPress -->
354
+ <?php
355
+ }
356
+ }
357
+
358
+ // Check if inline script should be loaded in footer
359
+ if ( isset( $mfbfw['loadAtFooter'] ) && $mfbfw['loadAtFooter'] ) {
360
+ add_action( 'wp_footer', 'mfbfw_init' );
361
+ } else {
362
+ add_action( 'wp_head', 'mfbfw_init' );
363
+ }
364
+
365
+ /**
366
+ * Load text domain
367
+ */
368
+ function mfbfw_textdomain() {
369
+
370
+ if ( function_exists( 'load_plugin_textdomain' ) ) {
371
+ load_plugin_textdomain( 'mfbfw', FBFW_URL . 'languages', 'fancybox-for-wordpress/languages' );
372
+ }
373
+ }
374
+
375
+ add_action( 'init', 'mfbfw_textdomain' );
376
+
377
+
378
+ /**
379
+ * Insert Rollback link for plugin in plugins page
380
+ */
381
+
382
+ function extra_settings_links( $links ) {
383
+
384
+ if ( apply_filters( 'fbfw_show_rollback_link', true ) ) {
385
+ $links['rollback'] = sprintf( '<a href="%s" class="fbfw-rollback-button">%s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=fbfw_rollback' ), 'fbfw_rollback' ), __( 'Rollback version', 'mfbfw' ) );
386
+ }
387
+
388
+ return $links;
389
+ }
390
+
391
+ add_action( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'extra_settings_links' );
392
+
393
+
394
+ /**
395
+ * Register options
396
+ */
397
+ function mfbfw_admin_options() {
398
+
399
+ $settings = get_option( 'mfbfw' );
400
+
401
+ if ( isset( $_GET['page'] ) && $_GET['page'] == 'fancybox-for-wordpress' ) {
402
+
403
+ if ( isset( $_REQUEST['action'] ) && 'reset' == $_REQUEST['action'] && check_admin_referer( 'mfbfw-options-reset' ) ) {
404
+
405
+ $defaults_array = mfbfw_defaults(); // Store defaults in an array
406
+ update_option( 'mfbfw', $defaults_array ); // Write defaults to database
407
+ wp_safe_redirect( add_query_arg( 'reset', 'true' ) );
408
+ die;
409
+ }
410
+ }
411
+
412
+ register_setting( 'mfbfw-options', 'mfbfw' );
413
+ }
414
+
415
+ add_action( 'admin_init', 'mfbfw_admin_options' );
416
+
417
+ /**
418
+ * Admin options page
419
+ */
420
+ function mfbfw_admin_menu() {
421
+
422
+ require FBFW_PATH . 'admin.php';
423
+
424
+ $mfbfwadmin = add_submenu_page( 'options-general.php', 'Fancybox for WordPress Options', 'Fancybox for WP', 'manage_options', 'fancybox-for-wordpress', 'mfbfw_options_page' );
425
+
426
+ add_action( 'admin_print_styles-' . $mfbfwadmin, 'mfbfw_admin_styles' );
427
+ add_action( 'admin_print_scripts-' . $mfbfwadmin, 'mfbfw_admin_scripts' );
428
+ }
429
+
430
+ add_action( 'admin_menu', 'mfbfw_admin_menu' );
431
+
432
+ /**
433
+ * Load Admin CSS & JS (called in mfbfw_admin_menu())
434
+ */
435
+ function mfbfw_admin_styles() {
436
+ wp_enqueue_style( 'fancybox-admin', FBFW_URL . 'assets/css/fancybox-admin.css', false, FBFW_VERSION ); // Load custom CSS for Admin Page
437
+ wp_enqueue_style( 'wp-color-picker' );
438
+ wp_enqueue_style( 'jquery-ui', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css' ); // Load jQuery UI Tabs CSS for Admin Page
439
+ }
440
+
441
+ function mfbfw_admin_scripts() {
442
+ wp_enqueue_script( 'jquery-ui-tabs', array( 'jquery-ui-core' ), true ); // Load jQuery UI Tabs JS for Admin Page
443
+ wp_enqueue_script( 'fancybox-admin', FBFW_URL . 'assets/js/admin.js', array( 'jquery', 'wp-color-picker', 'updates' ), FBFW_VERSION, true ); // Load specific JS for Admin Page
444
+
445
+ /* Load codemirror editor */
446
+ $settings = wp_enqueue_code_editor( array( 'type' => 'text/javascript' ) );
447
+ }
448
+
449
+ /**
450
+ * Settings Button on Plugins Panel
451
+ */
452
+
453
+
454
+ require FBFW_PATH . '/lib/class-fbfw-plugin-rollback.php';
455
+ require FBFW_PATH . '/lib/class-fbfw-rollback.php';
456
+
457
+ function mfbfw_plugin_action_links(
458
+ $links,
459
+ $file
460
+ ) {
461
+
462
+ static $this_plugin;
463
+ if ( ! $this_plugin ) {
464
+ $this_plugin = plugin_basename( __FILE__ );
465
+ }
466
+
467
+ if ( $file == $this_plugin ) {
468
+ $settings_link = '<a href="options-general.php?page=fancybox-for-wordpress">' . __( 'Settings', 'mfbfw' ) . '</a>';
469
+ array_unshift( $links, $settings_link );
470
+ }
471
+
472
+ return $links;
473
+ }
474
+
475
+ add_filter( 'plugin_action_links', 'mfbfw_plugin_action_links', 10, 2 );
476
+
477
+ /*
478
+ * Transform from Hex to rgb or rgba
479
+ */
480
+
481
+ function hexTorgba( $hexColor, $opacity ) {
482
+ list( $r, $g, $b ) = sscanf( $hexColor, "#%02x%02x%02x" );
483
+ if ( $opacity ) {
484
+ $rgb = 'rgba(' . $r . ',' . $g . ',' . $b . ',' . $opacity . ')';
485
+ } else {
486
+ $rgb = 'rgba(' . $r . ',' . $g . ',' . $b . ')';
487
+ }
488
+
489
+ return $rgb;
490
+ }
491
+
492
+ /*
493
+ *
494
+ * Check if WooCommerce Product post
495
+ *
496
+ */
497
+ function fancy_check_if_woocommerce() {
498
+ if ( class_exists( 'WooCommerce' ) ) {
499
+ if ( is_shop() ) {
500
+ return 'shop_page';
501
+ } else if ( get_post_type( get_the_id() ) == 'product' ) {
502
+ return 'product';
503
+ } else {
504
+ return 'true';
505
+ }
506
+ } else {
507
+ return 'true';
508
+ }
509
+ }
510
+
511
+ // Ajax request for activate link
512
+ add_action( 'wp_ajax_mfbfw_activate_link', 'mfbfw_get_activate_link' );
513
+ function mfbfw_get_activate_link() {
514
+
515
+ $plugin_path = 'modula-best-grid-gallery/Modula.php';
516
+ $link = add_query_arg(
517
+ array(
518
+ 'action' => 'activate',
519
+ 'plugin' => rawurlencode( $plugin_path ),
520
+ 'plugin_status' => 'all',
521
+ 'paged' => '1',
522
+ '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin_path ),
523
+ ),
524
+ admin_url( 'plugins.php' )
525
+ );
526
+
527
+ wp_die(
528
+ wp_json_encode(
529
+ array(
530
+ 'status' => 'succes',
531
+ 'link' => $link,
532
+ )
533
+ )
534
+ );
535
+
536
  }
languages/mfbfw-es_ES.po CHANGED
@@ -1,1050 +1,1050 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: FancyBox for WordPress Español\n"
4
- "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/fancybox-for-"
5
- "wordpress\n"
6
- "POT-Creation-Date: 2015-02-07 02:02:19+00:00\n"
7
- "PO-Revision-Date: \n"
8
- "Last-Translator: Jose Pardilla <jose@moskis.net>\n"
9
- "Language-Team: Moskis <jose@moskis.net>\n"
10
- "Language: es_ES\n"
11
- "MIME-Version: 1.0\n"
12
- "Content-Type: text/plain; charset=UTF-8\n"
13
- "Content-Transfer-Encoding: 8bit\n"
14
- "X-Generator: Poedit 1.7.4\n"
15
-
16
- #: admin.php:11
17
- msgid "Fancybox for WordPress (version %s)"
18
- msgstr "Fancybox for WordPress (versión %s)"
19
-
20
- #: admin.php:22
21
- msgid "Info"
22
- msgstr "Informaci&oacute;n"
23
-
24
- #: admin.php:23
25
- msgid "Appearance"
26
- msgstr "Apariencia"
27
-
28
- #: admin.php:24
29
- msgid "Animations"
30
- msgstr "Animaciones"
31
-
32
- #: admin.php:25
33
- msgid "Behaviour"
34
- msgstr "Comportamiento"
35
-
36
- #: admin.php:26
37
- msgid "Galleries"
38
- msgstr "Galerías"
39
-
40
- #: admin.php:27
41
- msgid "Miscellaneous"
42
- msgstr "Miscelánea"
43
-
44
- #: admin.php:28
45
- msgid "Extra Calls"
46
- msgstr "Llamadas Extra"
47
-
48
- #: admin.php:29
49
- msgid "Troubleshooting"
50
- msgstr "Ayuda"
51
-
52
- #: admin.php:30 lib/admin-tab-support.php:1
53
- msgid "Support"
54
- msgstr "Soporte"
55
-
56
- #: admin.php:31 lib/admin-tab-uninstall.php:1
57
- msgid "Uninstall"
58
- msgstr "Desinstalar"
59
-
60
- #: admin.php:77
61
- msgid "Save Changes"
62
- msgstr "Guardar Cambios"
63
-
64
- #: admin.php:85
65
- msgid "Revert to defaults"
66
- msgstr "Restaurar valores por defecto"
67
-
68
- #: admin.php:93
69
- msgid "If you use FancyBox and like it, buy the author a beer!"
70
- msgstr "Si usas FancyBox y te gusta, c&oacute;mprale una cerveza al autor!"
71
-
72
- #: admin.php:110
73
- msgid "The author of this WordPress Plugin also likes beer :P"
74
- msgstr ""
75
- "Al autor de este plugin para WordPress tambi&eacute;n le gusta la cerveza :P"
76
-
77
- #: admin.php:120
78
- msgid "Follow me on Twitter for more WordPress Plugins and Themes"
79
- msgstr "S&iacute;gueme en Twitter para m&aacute;s Plugins y Temas de WordPress"
80
-
81
- #: fancybox.php:404
82
- msgid "Settings"
83
- msgstr "Opciones"
84
-
85
- #: lib/admin-tab-animations.php:1
86
- msgid "Animation Settings <span style=\"color:green\">(basic)</span>"
87
- msgstr "Opciones de Animación <span style=\"color:green\">(básico)</span>"
88
-
89
- #: lib/admin-tab-animations.php:3
90
- msgid ""
91
- "These settings control the animations when opening and closing Fancybox, and "
92
- "the optional easing effects."
93
- msgstr ""
94
- "Estas opciones controlan las animaciones al abrir y cerrar Fancybox, y los "
95
- "efectos opcionales de animación."
96
-
97
- #: lib/admin-tab-animations.php:9
98
- msgid "Zoom Options"
99
- msgstr "Opciones de Zoom"
100
-
101
- #: lib/admin-tab-animations.php:15
102
- msgid "Change content transparency during zoom animations (default: on)"
103
- msgstr "Animar opacidad durante el efecto de zoom (por defecto: activado)"
104
-
105
- #: lib/admin-tab-animations.php:27
106
- msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
107
- msgstr "Velocidad en milisegundos del efecto de Zoom In (por defecto: 500)"
108
-
109
- #: lib/admin-tab-animations.php:39
110
- msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
111
- msgstr "Velocidad en milisegundos del efecto de Zoom Out (por defecto: 500)"
112
-
113
- #: lib/admin-tab-animations.php:51
114
- msgid ""
115
- "Speed in miliseconds of the animation when navigating thorugh gallery items "
116
- "(default: 300)"
117
- msgstr ""
118
- "Velocidad en milisegundos de la animación al navegar entre los elementos de "
119
- "una galería (por defecto: 300)"
120
-
121
- #: lib/admin-tab-animations.php:59
122
- msgid "Transition Type"
123
- msgstr "Tio de Transición"
124
-
125
- #: lib/admin-tab-animations.php:73
126
- msgid "Transition type when opening FancyBox. (default: fade)"
127
- msgstr "Tipo de transición al abrir FancyBox. (por defecto: fade)"
128
-
129
- #: lib/admin-tab-animations.php:86
130
- msgid "Transition type when closing FancyBox. (default: fade)"
131
- msgstr "Tipo de transición al cerrar FancyBox. (por defecto: fade)"
132
-
133
- #: lib/admin-tab-animations.php:94
134
- msgid "Easing"
135
- msgstr "Efecto de Animación"
136
-
137
- #: lib/admin-tab-animations.php:100
138
- msgid "Activate easing (default: off)"
139
- msgstr "Activar efecto de animación (por defecto: desactivado)"
140
-
141
- #: lib/admin-tab-animations.php:103
142
- msgid "(Will load one additional javascript file, 8KB)"
143
- msgstr "(Ejecutará un archivo JavaScript adicional, 8KB)"
144
-
145
- #: lib/admin-tab-animations.php:117
146
- msgid "Easing method when opening FancyBox. (default: easeOutBack)"
147
- msgstr "Efecto de animación al abrir FancyBox. (por defecto: easeOutBack)"
148
-
149
- #: lib/admin-tab-animations.php:120
150
- msgid "(Requires opening transition type to be set to elastic)"
151
- msgstr "(Requiere el tipo de transición de inicio elástico)"
152
-
153
- #: lib/admin-tab-animations.php:132
154
- msgid "Easing method when closing FancyBox. (default: easeInBack)"
155
- msgstr "Efecto de animación al cerrar FancyBox. (por defecto: easeInBack)"
156
-
157
- #: lib/admin-tab-animations.php:135
158
- msgid "(Requires closing transition type to be set to elastic)"
159
- msgstr "(Requiere el tipo de transición de cerrado elástico)"
160
-
161
- #: lib/admin-tab-animations.php:147
162
- msgid ""
163
- "Easing method when navigating through gallery items. (default: "
164
- "easeInOutQuart)"
165
- msgstr ""
166
- "Efecto de animación al navegar por galerías. (por defecto: easoInOutQuart)"
167
-
168
- #: lib/admin-tab-animations.php:150
169
- msgid ""
170
- "(There are 30 different easing methods, the first ones are the most boring. "
171
- "You can test them <a href=\"http://commadot.com/jquery/easing.php\" target="
172
- "\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/"
173
- "animationtypes.html\" target=\"_blank\">here</a>)"
174
- msgstr ""
175
- "(Hay 30 efectos diferentes, los primeros son los más aburridos. Puedes "
176
- "probarlos <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank"
177
- "\">aquí</a> o <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html"
178
- "\" target=\"_blank\">aquí</a>)"
179
-
180
- #: lib/admin-tab-appearance.php:1
181
- msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
182
- msgstr "Opciones de Apariencia <span style=\"color:green\">(básico)</span>"
183
-
184
- #: lib/admin-tab-appearance.php:3
185
- msgid ""
186
- "These setting control how Fancybox looks, they let you tweak color, borders "
187
- "and position of elements, like the image title and closing buttons."
188
- msgstr ""
189
- "Estas opciones controlan el aspecto general de FancyBox, te permiten ajustar "
190
- "los colores, bordes y posición de elementos como el título de la imagen y el "
191
- "botón de cerrar."
192
-
193
- #: lib/admin-tab-appearance.php:9
194
- msgid "Border"
195
- msgstr "Borde"
196
-
197
- #: lib/admin-tab-appearance.php:15
198
- msgid "Show Border (default: off)"
199
- msgstr "Mostrar Borde (por defecto: desactivado)"
200
-
201
- #: lib/admin-tab-appearance.php:22
202
- msgid "HTML color of the border (default: #BBBBBB)"
203
- msgstr "Color HTML del borde (por defecto: #BBBBBB)"
204
-
205
- #: lib/admin-tab-appearance.php:32
206
- msgid "Close Button"
207
- msgstr "Botón de Cerrar"
208
-
209
- #: lib/admin-tab-appearance.php:38
210
- msgid "Show Close button (default: on)"
211
- msgstr "Mostrar el Botón de Cerrar (por defecto: activado)"
212
-
213
- #: lib/admin-tab-appearance.php:43
214
- msgid "Close button position:"
215
- msgstr "Posición del Botón de Cerrar:"
216
-
217
- #: lib/admin-tab-appearance.php:46
218
- msgid "Left"
219
- msgstr "Izquierda"
220
-
221
- #: lib/admin-tab-appearance.php:51
222
- msgid "Right (default)"
223
- msgstr "Derecha (por defecto)"
224
-
225
- #: lib/admin-tab-appearance.php:56
226
- msgid "Bottom"
227
- msgstr "Abajo"
228
-
229
- #: lib/admin-tab-appearance.php:61
230
- msgid "Top (default)"
231
- msgstr "Arriba (por defecto)"
232
-
233
- #: lib/admin-tab-appearance.php:71
234
- msgid "Padding"
235
- msgstr "Margen"
236
-
237
- #: lib/admin-tab-appearance.php:77
238
- msgid "HTML color of the padding (default: #FFFFFF)"
239
- msgstr "Color HTML del margen (por defecto: #FFFFFF)"
240
-
241
- #: lib/admin-tab-appearance.php:80
242
- msgid ""
243
- "(This should be left on #FFFFFF (white) if you want to display anything "
244
- "other than images, like inline or framed content)"
245
- msgstr ""
246
- "(Esta opción debería dejarse en #FFFFFF (blanco) si vas a mostrar algo que "
247
- "no sean imágenes, como contenido anidado)"
248
-
249
- #: lib/admin-tab-appearance.php:84
250
- msgid "Padding size in pixels (default: 10)"
251
- msgstr "Tamaño del margen en píxeles (por defecto: 10)"
252
-
253
- #: lib/admin-tab-appearance.php:92
254
- msgid "Overlay Options"
255
- msgstr "Opciones de Overlay"
256
-
257
- #: lib/admin-tab-appearance.php:98
258
- msgid "Add overlay (default: on)"
259
- msgstr "Añadir overlay (por defecto: activado)"
260
-
261
- #: lib/admin-tab-appearance.php:105
262
- msgid "HTML color of the overlay (default: #666666)"
263
- msgstr "Color HTML del overlay (por defecto: #666666)"
264
-
265
- #: lib/admin-tab-appearance.php:118
266
- msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
267
- msgstr "Opacidad del overlay. 0 es transparente, 1 es opaco (por defecto: 0.3)"
268
-
269
- #: lib/admin-tab-appearance.php:128
270
- msgid "Title"
271
- msgstr "Título"
272
-
273
- #: lib/admin-tab-appearance.php:134
274
- msgid "Show the title (default: on)"
275
- msgstr "Mostrar el título (por defecto: activado)"
276
-
277
- #: lib/admin-tab-appearance.php:141
278
- msgid "Inside (default)"
279
- msgstr "Dentro (por defecto)"
280
-
281
- #: lib/admin-tab-appearance.php:146
282
- msgid "Outside"
283
- msgstr "Fuera"
284
-
285
- #: lib/admin-tab-appearance.php:151
286
- msgid "Over"
287
- msgstr "Encima"
288
-
289
- #: lib/admin-tab-appearance.php:158
290
- msgid "Title text color (default: #333333)"
291
- msgstr "Color del título (por defecto #333333)"
292
-
293
- #: lib/admin-tab-appearance.php:161
294
- msgid "(Should contrast with the padding color set above)"
295
- msgstr "(Debería contrastar con el color del margen establecido más arriba)"
296
-
297
- #: lib/admin-tab-appearance.php:172
298
- msgid "Navigation Arrows"
299
- msgstr "Flechas de Navegación"
300
-
301
- #: lib/admin-tab-appearance.php:178
302
- msgid "Show the navigation arrows (default: on)"
303
- msgstr "Mostrar flechas de navegación (por defecto: activado)"
304
-
305
- #: lib/admin-tab-behaviour.php:1
306
- msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
307
- msgstr "Opciones de Comportamiento <span style=\"color:orange\">(medio)</span>"
308
-
309
- #: lib/admin-tab-behaviour.php:3
310
- msgid ""
311
- "The following settings should be left alone unless you know what you are "
312
- "doing."
313
- msgstr ""
314
- "Las siguientes opciones sólo deberían ser editadas si sabes lo que estás "
315
- "haciendo."
316
-
317
- #: lib/admin-tab-behaviour.php:9
318
- msgid "Auto Resize to Fit"
319
- msgstr "Ajustar Tamaño"
320
-
321
- #: lib/admin-tab-behaviour.php:15
322
- msgid "Scale images to fit in viewport (default: on)"
323
- msgstr ""
324
- "Ajusta el tamaño de las imagenes a la ventana del navegador (por defecto: "
325
- "activado)"
326
-
327
- #: lib/admin-tab-behaviour.php:23
328
- msgid "Center on Scroll"
329
- msgstr "Centrar al hacer Scroll"
330
-
331
- #: lib/admin-tab-behaviour.php:29
332
- msgid ""
333
- "Keep image in the center of the browser window when scrolling (default: on)"
334
- msgstr ""
335
- "Mantiene la imagen en el centro de la ventana del naegador al hacer scroll "
336
- "(por defecto: activado)"
337
-
338
- #: lib/admin-tab-behaviour.php:37
339
- msgid "Close on Content Click"
340
- msgstr "Cerrar al hacer click en contenido"
341
-
342
- #: lib/admin-tab-behaviour.php:43
343
- msgid "Close FancyBox by clicking on the image (default: off)"
344
- msgstr "Cerrar FancyBox al hacer click en la imagen (por defecto: desactivado)"
345
-
346
- #: lib/admin-tab-behaviour.php:46
347
- msgid ""
348
- "(You may want to leave this off if you display iframed or inline content "
349
- "that containts clickable elements - for example: play buttons for movies, "
350
- "links to other pages)"
351
- msgstr ""
352
- "(Puedes que quieras dejar esta opción desactivada si vas a usar contendido "
353
- "anidado que incluya enlaces - for ejemplo: botones de play, enlaces a otras "
354
- "páginas)"
355
-
356
- #: lib/admin-tab-behaviour.php:53
357
- msgid "Close on Overlay Click"
358
- msgstr "Cerrar al hacer click en el fondo"
359
-
360
- #: lib/admin-tab-behaviour.php:59
361
- msgid "Close FancyBox by clicking on the overlay sorrounding it (default: on)"
362
- msgstr "Cerrar FancyBox al hacer click en el fondo (por defecto: activado)"
363
-
364
- #: lib/admin-tab-behaviour.php:67
365
- msgid "Close with &quot;Esc&quot;"
366
- msgstr "Cerrar con &quot;Esc&quot;"
367
-
368
- #: lib/admin-tab-behaviour.php:73
369
- msgid "Close FancyBox when &quot;Escape&quot; key is pressed (default: on)"
370
- msgstr ""
371
- "Cerrar Fancybox cuando se pulse la tecla &quot;Escape&quot; (por defecto: "
372
- "activado)"
373
-
374
- #: lib/admin-tab-behaviour.php:81
375
- msgid "Loop Galleries"
376
- msgstr "Galerías Cíclicas"
377
-
378
- #: lib/admin-tab-behaviour.php:87
379
- msgid ""
380
- "This will make galleries loop, allowing you to keep pressing next/back "
381
- "(default: off)"
382
- msgstr ""
383
- "Esta oción generará galerías cíclicas, permitíendote pulsar los botones de "
384
- "navegación indefinidamene (por defecto: desactivado)"
385
-
386
- #: lib/admin-tab-behaviour.php:95
387
- msgid "Mouse Wheel Navigation"
388
- msgstr "Navegación por rueda del ratón"
389
-
390
- #: lib/admin-tab-behaviour.php:101
391
- msgid "Lets visitors navigate galleries with the mouse wheel (default: off)"
392
- msgstr ""
393
- "Permita a los visitantes navegar por las galerías con la rueda del ratón "
394
- "(por defecto: desactivado)"
395
-
396
- #: lib/admin-tab-behaviour.php:104
397
- msgid "(Will load one additional javascript file, 3KB)"
398
- msgstr "(Ejecutará un archivo JavaScript adicional, 3KB)"
399
-
400
- #: lib/admin-tab-calls.php:1
401
- msgid "Extra FancyBox Calls <span style=\"color:red\">(advanced)</span>"
402
- msgstr "Llamadas Extra de FancyBox <span style=\"color:red\">(avanzado)</span>"
403
-
404
- #: lib/admin-tab-calls.php:3
405
- msgid ""
406
- "Here you can add as many additional calls to fancybox as you want, with "
407
- "different settings. For example, if you want to use fancybox with iframes or "
408
- "ajax on any specific link, you can configure those calls here without "
409
- "affecting the settings for images."
410
- msgstr ""
411
- "Aquí puedes añadir todas las llamadas adicionales a FancyBox que quieras, "
412
- "con distintas opciones. Por ejemplo, si quieres usar FancyBox con iframes o "
413
- "con Ajax en cualquier enlace concreto, aquí puedes configurarlo sin afectar "
414
- "al resto de opciones."
415
-
416
- #: lib/admin-tab-calls.php:5
417
- msgid ""
418
- "For information on the options available you can use here see <a href="
419
- "\"http://fancybox.net/api\">FancyBox's API & Options page</a>."
420
- msgstr ""
421
- "Para más información acerca de las opciones que puedes usar en este campo, "
422
- "lee esta página sobre la <a href=\"http://fancybox.net/api\">API y Opciones "
423
- "de FancyBox</a>."
424
-
425
- #: lib/admin-tab-calls.php:11
426
- msgid "Additional FancyBox Calls"
427
- msgstr "Llamadas Extra de FancyBox"
428
-
429
- #: lib/admin-tab-calls.php:17
430
- msgid "Additional FancyBox Calls (default: off)"
431
- msgstr "Llamadas Extra de FancyBox (por defecto: desactivado)"
432
-
433
- #: lib/admin-tab-calls.php:26 lib/admin-tab-other.php:89
434
- msgid "Example:"
435
- msgstr "Ejemplo:"
436
-
437
- #: lib/admin-tab-galleries.php:1
438
- msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
439
- msgstr "Opciones de Galería <span style=\"color:red\">(avanzado)</span>"
440
-
441
- #: lib/admin-tab-galleries.php:3
442
- msgid ""
443
- "Here you can choose if you want the plugin to group all images into a "
444
- "gallery, or make a gallery for each post. You can also define you own jQuery "
445
- "expression if you like."
446
- msgstr ""
447
- "Aquí puedes elegir si quieres que el plugin agrupe las imágenes en una "
448
- "galería, o hacer una galería para cada entrada. También puedes definir tu "
449
- "propia expresión en jQuery."
450
-
451
- #: lib/admin-tab-galleries.php:9
452
- msgid "Gallery Type"
453
- msgstr "Tipo de Galería"
454
-
455
- #: lib/admin-tab-galleries.php:15
456
- msgid "Make a gallery for all images on the page (default)"
457
- msgstr ""
458
- "Incluir todas las imágenes de la página en una única galería (opción por "
459
- "defecto)"
460
-
461
- #: lib/admin-tab-galleries.php:20
462
- msgid ""
463
- "Do not group images in gallery automatically (use this if you want to make "
464
- "galleries manually with the <code>REL</code> attribute)"
465
- msgstr ""
466
- "No agrupar im&aacute;genes en galer&iacute;as autom&aacute;ticamente (usa "
467
- "esta opci&oacute;n si quieres agrupar las imagenes manualmente con el "
468
- "atributo <code>REL</code>)"
469
-
470
- #: lib/admin-tab-galleries.php:25
471
- msgid ""
472
- "Make a gallery for each post (will only work if your theme uses <code>class="
473
- "\"post\"</code> on each post, which is common in WordPress"
474
- msgstr ""
475
- "Hacer una galer&iacute;a para cada post (solo funcionar&aacute; si el tema "
476
- "usa <code>class=\"post\"</code> en cada post, que es lo m&aacute;s "
477
- "com&uacute;n en WordPress"
478
-
479
- #: lib/admin-tab-galleries.php:30
480
- msgid "Use a custom expression to apply FancyBox"
481
- msgstr "Aplicar FancyBox con una expresión personalizada"
482
-
483
- #: lib/admin-tab-galleries.php:39
484
- msgid "Custom expression guidelines:"
485
- msgstr "Indicaciones para expresiones personalizadas:"
486
-
487
- #: lib/admin-tab-galleries.php:41
488
- msgid ""
489
- "&middot; The custom expression has to apply <code>class=\"fancybox\"</code> "
490
- "to the links where you want to use FancyBox. Do not call the "
491
- "<code>fancybox()</code> function here, the plugin does this for you."
492
- msgstr ""
493
- "&middot; La expresión personalizada tiene que aplicar el atributo "
494
- "<code>class=\"fancybox\"</code> a los enlaces en los que quieras usar "
495
- "FancyBox. No llames a la funci&oacute;n <code>fancybox()</code> aqu&iacute;, "
496
- "de eso ya se encarga el plugin."
497
-
498
- #: lib/admin-tab-galleries.php:43
499
- msgid ""
500
- "&middot; The jQuery <code>addClass()</code> function is a good way to add "
501
- "the class to the desired links conserving any existing class."
502
- msgstr ""
503
- "&middot; La funci&oacute;n <code>addClass()</code> de jQuery es una buena "
504
- "forma de a&ntilde;adir el class a los links deseados."
505
-
506
- #: lib/admin-tab-galleries.php:45
507
- msgid ""
508
- "&middot; You can use <code>getTitle()</code> in your expression to copy the "
509
- "title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so "
510
- "that FancyBox can show captions."
511
- msgstr ""
512
- "&middot; Puedes usar <code>getTitle()</code> en tu expresi&oacute;n para "
513
- "copiar el atributo title desde el tag <code>IMG</code> al tag <code>A</"
514
- "code>, para que FancyBox pueda mostrar el t&iacute;tulo de la imagen."
515
-
516
- #: lib/admin-tab-galleries.php:47
517
- msgid ""
518
- "&middot; You can use <code>jQuery(thumbnails)</code> like in the example "
519
- "expression to apply FancyBox to thumbnails that link to these extensions: "
520
- "BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase)."
521
- msgstr ""
522
- "&middot; Puedes usar <code>jQuery(thumbnails)</code> como en el ejemplo para "
523
- "aplicar FancyBox a las miniaturas de im%aacute;genes que enlazen a estas "
524
- "extensiones: BMP, GIF, JPG, JPEG, PNG tanto en min&uacute;scula como en "
525
- "may&uacute;scula)."
526
-
527
- #: lib/admin-tab-galleries.php:49
528
- msgid ""
529
- "&middot; If you want to do it manually you can use something like "
530
- "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> or whatever works for you."
531
- msgstr ""
532
- "&middot; Si prefieres hacerlo manualmente puedes usar algo como "
533
- "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> o lo que m&aacute;s se "
534
- "ajuste a tu blog."
535
-
536
- #: lib/admin-tab-galleries.php:51
537
- msgid ""
538
- "See the <a href=\"http://docs.jquery.com/\" target=\"_blank\">jQuery "
539
- "Documentation</a> for more help."
540
- msgstr ""
541
- "Visita la <a href=\"http://docs.jquery.com/\" target=\"_blank"
542
- "\">Documentaci&oacute;n de jQuery</a> para encontrar m&aacute;s ayuda."
543
-
544
- #: lib/admin-tab-galleries.php:53
545
- msgid "Examples:"
546
- msgstr "Ejemplos:"
547
-
548
- #: lib/admin-tab-info.php:1
549
- msgid "Information"
550
- msgstr "Información"
551
-
552
- #: lib/admin-tab-info.php:3
553
- msgid ""
554
- "<a target=\"_blank\" href=\"http://fancybox.net\">FancyBox</a> developed by "
555
- "<a target=\"_blank\" href=\"http://fancybox.net\">Janis Skarnelis</a>, "
556
- "ported to WordPress by <a target=\"_blank\" href=\"http://twitter.com/moskis"
557
- "\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href="
558
- "\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
559
- msgstr ""
560
- "<a href=\"http://fancybox.net\">FancyBox</a> desarrollado por <a href="
561
- "\"http://fancybox.net\">Janis Skarnelis</a>, adaptado a WordPress por <a "
562
- "href=\"http://http://twitter.com/moskis\">Jos&eacute; Pardilla</a>. "
563
- "Licenciado bajo <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/"
564
- "MIT_License\">Licencia MIT</a>."
565
-
566
- #: lib/admin-tab-info.php:5
567
- msgid ""
568
- "As you can see, this plugin has many options you can edit, but have no fear, "
569
- "you can leave everything as it is if you don't want to get your hands dirty, "
570
- "since the default options should be a good start... :)"
571
- msgstr ""
572
- "Como puedes ver, este plugin te permite editar muchas opciones, pero no te "
573
- "preocupes, puedes dejarlo todo como está, ya que las opciones predefinidas "
574
- "no están mal para empezar... :)"
575
-
576
- #: lib/admin-tab-info.php:7
577
- msgid ""
578
- "If you are an advanced user you can <a target=\"_blank\" href=\"https://"
579
- "github.com/moskis/fancybox-for-wordpress\">follow the plugin in Github</a>, "
580
- "fork it or help submitting fixes!"
581
- msgstr ""
582
- "Si eres un usuario avanzado, puedes <a target=\"_blank\" href=\"https://"
583
- "github.com/moskis/fancybox-for-wordpress\">seguir el plugin en Github</a>, y "
584
- "colaborar aportando correcciones!"
585
-
586
- #: lib/admin-tab-info.php:9
587
- msgid ""
588
- "<strong>Note:</strong> Having a cache plugin may prevent changes from taking "
589
- "effect immidiately, if this happens clear cache after saving changes here or "
590
- "deactivate cache until you finish editing these options."
591
- msgstr ""
592
- "<strong>Nota:</strong> Usar un plugin de caché puede hacer que los cambios "
593
- "no surjan efecto inmediatamente, si esto ocurre vacía el cache después de "
594
- "guardar los cambios o desactívalo hasta que termines de ajustar estas "
595
- "opciones."
596
-
597
- #: lib/admin-tab-other.php:1
598
- msgid "Other Settings <span style=\"color:red\">(advanced)</span>"
599
- msgstr "Otras Opciones <span style=\"color:red\">(avanzado)</span>"
600
-
601
- #: lib/admin-tab-other.php:3
602
- msgid "These are additional settings for advanced users."
603
- msgstr "Las siguientes opciones son para usuarios avanzados."
604
-
605
- #: lib/admin-tab-other.php:9
606
- msgid "Dimensions"
607
- msgstr "Dimensiones"
608
-
609
- #: lib/admin-tab-other.php:15
610
- msgid "Auto detect dimensions (default: on)"
611
- msgstr "Auto detectar dimensiones (por defecto: activado)"
612
-
613
- #: lib/admin-tab-other.php:18
614
- msgid ""
615
- "Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! "
616
- "Flash dimensions won't be autodetected so specify them below if necessary. "
617
- "If you want to insert several pieces of flash content with different "
618
- "dimensions you will have to use the <strong>Additional FancyBox Calls</"
619
- "strong> option."
620
- msgstr ""
621
- "Sólo funciona con <strong>Ajax</strong> y <strong>Contenido en línea</"
622
- "strong>! Las dimenciones de elementos Flash no se autodetectan así que "
623
- "especifícalas aquí debajo si lo necesitas. Si necesitas insertar varios "
624
- "elementos Flash de tamaños distintos tendrás que usar el apartado de "
625
- "<strong>Llamadas Extra</strong>."
626
-
627
- #: lib/admin-tab-other.php:22
628
- msgid ""
629
- "Width for iframe and swf content. Also set for inline content if "
630
- "<em>autoDimensions</em> is disabled (default: 560)"
631
- msgstr ""
632
- "Ancho para iframes y contenido Flash. También afecta a contenido en línea si "
633
- "<em>Auto detectar dimensiones</em> está desactivado (por defecto: 560)"
634
-
635
- #: lib/admin-tab-other.php:27
636
- msgid ""
637
- "Height for iframe and swf content. Also set for inline content if "
638
- "<em>autoDimensions</em> is disabled (default: 340)"
639
- msgstr ""
640
- "Alto para iframes y contenido Flash. También afecta a contenido en línea si "
641
- "<em>Auto detectar dimensiones</em> está desactivado (por defecto: 340)"
642
-
643
- #: lib/admin-tab-other.php:35
644
- msgid "Load JavaScript in Footer"
645
- msgstr "Cargar JavaScript en el Pié de página"
646
-
647
- #: lib/admin-tab-other.php:41
648
- msgid ""
649
- "Loads JavaScript at the end of the blog's HTML (experimental) (default: off)"
650
- msgstr ""
651
- "Carga el JavaScript al final del código HTML del blog (experimental) (por "
652
- "defecto: desactivado)"
653
-
654
- #: lib/admin-tab-other.php:44
655
- msgid ""
656
- "This option won't be recognized if you use <strong>Parallel Load</strong> "
657
- "plugin. In that case, you can do this from Parallel Load's options."
658
- msgstr ""
659
- "Esta opción será ignorada si el plugin <strong>Parallel Load</strong> está "
660
- "instalado. Si es así, usa las opciones del plugin Parallel Load."
661
-
662
- #: lib/admin-tab-other.php:51
663
- msgid "Callbacks"
664
- msgstr "Retrollamadas"
665
-
666
- #: lib/admin-tab-other.php:57
667
- msgid "Enable callbacks (default: off)"
668
- msgstr "Activar retrollamadas (por defecto: desactivado)"
669
-
670
- #: lib/admin-tab-other.php:60
671
- msgid "Enabling this will show additional settings."
672
- msgstr "Activar esta opcíón mostrará opociones adicionales."
673
-
674
- #: lib/admin-tab-other.php:65
675
- msgid ""
676
- "Callback on <strong>Start</strong> event: Will be called right before "
677
- "attempting to load the content"
678
- msgstr ""
679
- "Retrollamada en evento <strong>Inicio</strong>: Se ejecutará justo antes de "
680
- "intentar cargar el contenido"
681
-
682
- #: lib/admin-tab-other.php:70
683
- msgid ""
684
- "Callback on <strong>Cancel</strong> event: Will be called after loading is "
685
- "canceled"
686
- msgstr ""
687
- "Retrollamada en evento <strong>Cancelar</strong>: Se ejecutará tras cancelar "
688
- "la carga del contenido"
689
-
690
- #: lib/admin-tab-other.php:75
691
- msgid ""
692
- "Callback on <strong>Complete</strong> event: Will be called once the content "
693
- "is displayed"
694
- msgstr ""
695
- "Retrollamada en evento <strong>Completado</strong>: Se ejecutará una vez se "
696
- "termine de mostrar el contenido"
697
-
698
- #: lib/admin-tab-other.php:80
699
- msgid ""
700
- "Callback on <strong>CleanUp</strong> event: Will be called just before "
701
- "closing"
702
- msgstr ""
703
- "Retrollamada en evento <strong>Limpieza</strong>: Se ejecutará justo antes "
704
- "de empezar a ocultar el contenido"
705
-
706
- #: lib/admin-tab-other.php:85
707
- msgid ""
708
- "Callback on <strong>Closed</strong> event: Will be called once FancyBox is "
709
- "closed"
710
- msgstr ""
711
- "Retrollamada en evento <strong>Cerrado</strong>: Se ejecutará tras cerrar "
712
- "FancyBox"
713
-
714
- #: lib/admin-tab-other.php:91
715
- msgid "Leave empty any speciic callbacks you don't need to use."
716
- msgstr "Deja en blanco cualquier Retrollamada que no quieras usar."
717
-
718
- #: lib/admin-tab-support.php:3
719
- msgid "Help with Fancybox"
720
- msgstr "Ayuda sobre ancyBox"
721
-
722
- #: lib/admin-tab-support.php:5
723
- msgid ""
724
- "If you have problems or questions about FancyBox itself (and not this "
725
- "WordPress plugin), please start with these links: <a target=\"_blank\" href="
726
- "\"http://fancybox.net/howto\">How-To</a> & <a target=\"_blank\" href="
727
- "\"http://fancybox.net/faq\">FAQ</a>.<br />If that does not help, go to <a "
728
- "href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</"
729
- "a>, use the <strong>Search</strong> option, and if necesary, post your "
730
- "question."
731
- msgstr ""
732
- "Si tienes problemas o dudas acerca de FancyBox (y no este plugin en sí), por "
733
- "favor visita estos enlaces (en inglés): <a href=\"http://fancybox.net/howto"
734
- "\">How-To</a> & <a href=\"http://fancybox.net/faq\">FAQ</a>.<br />Si eso no "
735
- "ayuda, ves al <a href=\"http://groups.google.com/group/fancybox\">Grupo de "
736
- "Google de FancyBox</a>, usa la opción de <strong>Búsqueda</strong>, y si no "
737
- "encuentras lo que buscas, pregunta allí."
738
-
739
- #: lib/admin-tab-support.php:8
740
- msgid "Help with Fancybox for WordPress plugin"
741
- msgstr "Ayuda para el plugin Fancybox for WordPress"
742
-
743
- #: lib/admin-tab-support.php:10
744
- msgid ""
745
- "Try to localize the problem (switch your theme and deactivate plugins until "
746
- "you find the source of the problem). You can also try the Troubleshooting "
747
- "settings of this plugin if necesary."
748
- msgstr ""
749
- "Intenta localizar la fuente del problema (cambia de tema y/o desactiva "
750
- "plugins hasta que encuentres lo que causa el problema). También puedes usar "
751
- "las optiones de Resolución de Errores que hay al final de esta página."
752
-
753
- #: lib/admin-tab-support.php:11
754
- msgid ""
755
- "Try reverting the plugin's settings to their defaults with the button below."
756
- msgstr ""
757
- "Prueba a resetear las opciones a sus valores originales con el botón al pie "
758
- "de esta página."
759
-
760
- #: lib/admin-tab-support.php:12
761
- msgid ""
762
- "If you still can not get the plugin to work, <a target=\"_blank\" href="
763
- "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
764
- "\">write a post in the WordPress Support forums</a> explaining the problem "
765
- "or take a look and the <a target=\"_blank\" href=\"http://wordpress.org/"
766
- "support/plugin/fancybox-for-wordpress\">already posted messages</a>."
767
- msgstr ""
768
- "Si aún no puedes hacer funcionar el plugin, <a target=\"_blank\" href="
769
- "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
770
- "\">escribe en el foro de Soporte de WordPress</a> o echa un vistazo a <a "
771
- "target=\"_blank\" href=\"\"http://wordpress.org/support/plugin/fancybox-for-"
772
- "wordpress\">los mensajes ya escritos en dicho foro</a>."
773
-
774
- #: lib/admin-tab-support.php:15
775
- msgid "IMPORTANT:"
776
- msgstr "IMPORTANTE:"
777
-
778
- #: lib/admin-tab-support.php:15
779
- msgid ""
780
- "When posting your problem please provide a link to your blog and the page "
781
- "where the error is found, and all relevant information you can, especially "
782
- "your theme, plugins, etc."
783
- msgstr ""
784
- "Cuando expliques tu problema, por favor deja un enlace a tu blog y una "
785
- "página donde FancyBox falla, así como cualquier información reelevante, como "
786
- "el tema de WordPress y plugins que usas."
787
-
788
- #: lib/admin-tab-troubleshooting.php:1
789
- msgid "Troubleshooting Settings"
790
- msgstr "Resolución de Problemas"
791
-
792
- #: lib/admin-tab-troubleshooting.php:3
793
- msgid ""
794
- "Settings in this section should only be changed if you are having problems "
795
- "with the plugin!"
796
- msgstr ""
797
- "Las opciones de esta sección solo deben ser editadas si tienes problemas con "
798
- "el plugin!"
799
-
800
- #: lib/admin-tab-troubleshooting.php:5
801
- msgid ""
802
- "If the plugin doesn't seem to work, first you should check for other plugins "
803
- "that may be conflicting with this one, especially other Lightbox, Slimbox, "
804
- "etc. Make sure all your plugins and WordPress itself are up to date (this "
805
- "plugin has only been tested in WordPress 2.7 and above)."
806
- msgstr ""
807
- "Si el plugin no funciona, lo primero que deberías hacer es comprobar que no "
808
- "haya un conflicto con otros plugins, especialmente otro tipo de Lightbox, "
809
- "Slimbox, etc. Asegúrate de que todos tus plugins y tu WordPress están "
810
- "actualizados (este plugin solo se ha testado con WordPress 2.7 y superiores)."
811
-
812
- #: lib/admin-tab-troubleshooting.php:7
813
- msgid ""
814
- "Change them one at a time and test to see if they help. Remember that having "
815
- "a cache plugin may prevent changes from taking effect immidiately, so clear "
816
- "cache after saving changes here or deactivate cache until you finish editing "
817
- "these options."
818
- msgstr ""
819
- "Cámbialas de una en una y comprueba si solucionan tu problema. Recuqerda que "
820
- "usar un plugin de caché puede hacer que los cambios no surjan efecto "
821
- "inmediatamente, vacía el cache después de guardar los cambios or desactivalo "
822
- "hasta que termines de ajustar estas opciones."
823
-
824
- #: lib/admin-tab-troubleshooting.php:13
825
- msgid "Do not call jQuery"
826
- msgstr "No cargar jQuery"
827
-
828
- #: lib/admin-tab-troubleshooting.php:19
829
- msgid ""
830
- "Skip jQuery call. Use this only if jQuery is being loaded twice (default: "
831
- "off)"
832
- msgstr ""
833
- "Omitir llamada a jQuery. Usa esta opción sólo si jQuery se está cargando dos "
834
- "veces por error. (por defecto: desactivado)"
835
-
836
- #: lib/admin-tab-uninstall.php:3
837
- msgid ""
838
- "Like many other plugins, FancyBox for WordPress stores its settings on your "
839
- "WordPress' options database table. Actually, these settings are not using "
840
- "more than a couple of kilobytes of space, but if you want to completely "
841
- "uninstall this plugin, check the option below, then save changes, and "
842
- "<strong>when you deactivate the plugin</strong>, all its settings will be "
843
- "removed from the database."
844
- msgstr ""
845
- "Al igual que otros plugins, FancyBox for WordPress guarda sus opciones en la "
846
- "tabla de opciones de la base de datos de WordPress. En realidad, estas "
847
- "opcines no ocupam más que unos kilobytes de espacio, pero si quieres "
848
- "eliminar el plugin por completo, activa la siguiente opción, guarda los "
849
- "cambios, y <strong>cuando desactives el plugin</strong>, todas las opciones "
850
- "se eliminarán de la base de datos."
851
-
852
- #: lib/admin-tab-uninstall.php:9
853
- msgid "Remove settings"
854
- msgstr "Eliminar Opciones"
855
-
856
- #: lib/admin-tab-uninstall.php:15
857
- msgid ""
858
- "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. "
859
- "(default: off)"
860
- msgstr ""
861
- "Eliminar opciones cuando se desactive el plugin desde la página \"Gestionar "
862
- "Plugins\". (por defecto: desactivado)"
863
-
864
- #. Plugin Name of the plugin/theme
865
- msgid "FancyBox for WordPress"
866
- msgstr "FancyBox for WordPress"
867
-
868
- #. Plugin URI of the plugin/theme
869
- msgid "https://wordpress.org/plugins/fancybox-for-wordpress/"
870
- msgstr "https://wordpress.org/plugins/fancybox-for-wordpress/"
871
-
872
- #. Description of the plugin/theme
873
- msgid ""
874
- "Integrates <a href=\"http://fancybox.net/\">FancyBox</a> by <a href=\"http://"
875
- "klade.lv/\">Janis Skarnelis</a> into WordPress."
876
- msgstr ""
877
- "Integra <a href=\"http://fancybox.net/\">FancyBox</a> por <a href=\"http://"
878
- "klade.lv/\">Janis Skarnelis</a> en WordPress."
879
-
880
- #. Author of the plugin/theme
881
- msgid "Jos&eacute; Pardilla"
882
- msgstr "Jos&eacute; Pardilla"
883
-
884
- #. Author URI of the plugin/theme
885
- msgid "http://twitter.com/moskis"
886
- msgstr "http://twitter.com/moskis"
887
-
888
- #~ msgid ""
889
- #~ "<strong>Note:</strong> If update to version 3.0.0 breaks fancybox on your "
890
- #~ "blog you will probably have to reset your settings (with the white button "
891
- #~ "below). I have tested this issue on several WordPress installations and "
892
- #~ "it always worked, so it might depend on the server. Sorry for the "
893
- #~ "inconvinience."
894
- #~ msgstr ""
895
- #~ "<strong>Nota:</strong> Si la actualización a la versión 3.0.0 estropea "
896
- #~ "FancyBox en tu blog, posiblemente tengas que reestablecer las opciones "
897
- #~ "del plugin (desde el botón blanco de abajo)."
898
-
899
- #~ msgid ""
900
- #~ "If you are having trouble with this plugin take a look at this <a target="
901
- #~ "\"_blank\" href=\"http://plugins.josepardilla.com/fancybox-for-wordpress/"
902
- #~ "faq\">FAQ</a> where i will try to cover the most common problems and "
903
- #~ "their solutions."
904
- #~ msgstr ""
905
- #~ "Si tienes problemas para hacer funcionar este plugin echa un vistazo a "
906
- #~ "esta página de <a target=\"_blank\" href=\"http://plugins.josepardilla."
907
- #~ "com/fancybox-for-wordpress/faq\">Preguntas Frecuentes</a> donde intentaré "
908
- #~ "explicar los problemas más habituales y cómo resolverlos."
909
-
910
- #~ msgid "Callback on Start event (default: empty)"
911
- #~ msgstr "Retrollamada en el evento de Inicio (por defecto: vacío)"
912
-
913
- #~ msgid "Callback on Show event (default: empty)"
914
- #~ msgstr "Retrollamada en el evento de Mostrado (por defecto: vacío)"
915
-
916
- #~ msgid "Callback on Close event (default: empty)"
917
- #~ msgstr "Retrollamada en el evento de Cerrado (por defecto: vacío)"
918
-
919
- #~ msgid "Leave the fields empty to disable."
920
- #~ msgstr "Deja estos campos vacíos para desactivar cualqueir retrollamada."
921
-
922
- #~ msgid "Frame Size"
923
- #~ msgstr "Tamaño del recuadro"
924
-
925
- #~ msgid ""
926
- #~ "Width in pixels of FancyBox when showing iframe content (default: 560)"
927
- #~ msgstr ""
928
- #~ "Ancho en píxeles de FancyBox cuado se muestre contenido anidado (por "
929
- #~ "defecto: 560)"
930
-
931
- #~ msgid ""
932
- #~ "Height in pixels of FancyBox when showing iframe content (default: 340)"
933
- #~ msgstr ""
934
- #~ "Alto en píxeles de FancyBox cuado se muestre contenido anidado (por "
935
- #~ "defecto: 340)"
936
-
937
- #~ msgid "jQuery \"noConflict\" Mode"
938
- #~ msgstr "Modo jQuery \"noConflict\""
939
-
940
- #~ msgid "Use jQuery noConflict mode (default: on)"
941
- #~ msgstr "Usar parámetro noConflict de jQuery (por defecto: activado)"
942
-
943
- #~ msgid ""
944
- #~ "(Turning this off may cause problems if there are plugins activated that "
945
- #~ "use other js framework like mootools, prototype, scriptaculous, etc.)"
946
- #~ msgstr ""
947
- #~ "(Desactivar esta opción puede causar problemas si hay plugins activadoes "
948
- #~ "que usen otros frameworks javascript como Mootols, Prototype, "
949
- #~ "Scriptaculous, etc.)"
950
-
951
- #~ msgid "Presentation"
952
- #~ msgstr "Presentación"
953
-
954
- #~ msgid ""
955
- #~ "These are the main settings, which let you tweak color, borders and "
956
- #~ "animation."
957
- #~ msgstr ""
958
- #~ "Estas son las opciones principales, que te permiten ajustar los colores, "
959
- #~ "bordes y animación."
960
-
961
- #~ msgid ""
962
- #~ "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding "
963
- #~ "Size</strong> to \"0\" for the classic FancyBox look)"
964
- #~ msgstr ""
965
- #~ "(Pon el <strong>Color del Borde</strong> en \"#000000\" y el "
966
- #~ "<strong>Tamaño del Margen</strong> en \"0\" para el aspecto clásico de "
967
- #~ "FancyBox)"
968
-
969
- #~ msgid "Show/Hide Advanced Settings"
970
- #~ msgstr "Mostrar/Ocultar Opciones Avanzadas"
971
-
972
- #~ msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
973
- #~ msgstr "Mostrar/Ocultar Resolución de Problemas y Desinstalaci&oacute;n"
974
-
975
- #~ msgid ""
976
- #~ "Do not call the <code>fancybox()</code> function here, the plugin does "
977
- #~ "this for you."
978
- #~ msgstr ""
979
- #~ "No llames a la función <code>fancybox()</code> desde aquí, eso ya lo hace "
980
- #~ "el plugin por tí."
981
-
982
- #~ msgid "Make a gallery for each post"
983
- #~ msgstr "Hacer una galería para cada entrada"
984
-
985
- #~ msgid ""
986
- #~ "The attribute has to start with fancybox, but can end with however you "
987
- #~ "like: \"fancybox1\", \"fancybox2\", \"fancybox-custom\" will work."
988
- #~ msgstr ""
989
- #~ "El atributo debe empezar por fancybox pero puede terminar como quieras: "
990
- #~ "\"fancybox1\", \"fancybox2\", \"fancybox-custom\" servirían."
991
-
992
- #~ msgid "Horizontal position of the close button (default: right)"
993
- #~ msgstr ""
994
- #~ "Posición horizontal del botón para cerrar FancyBox (por defecto: derecha)"
995
-
996
- #~ msgid "About"
997
- #~ msgstr "Informaci&oacute;n"
998
-
999
- #~ msgid ""
1000
- #~ "This plugin integrates FancyBox with WordPress without having to edit any "
1001
- #~ "file or code. Once activated the plugin will apply FancyBox automatically "
1002
- #~ "to all image links, including WordPress galleries. Future versions will "
1003
- #~ "include some more options like easier inline content integration and more "
1004
- #~ "advanced customization. Enjoy!"
1005
- #~ msgstr ""
1006
- #~ "Este plugin integra FancyBox con WordPress sin necesidad de editar ningún "
1007
- #~ "archivo o HTML. Una vez activado, el plugin aplicará FancyBox "
1008
- #~ "automáticamente a todos los enlaces a imágenes, incluyendo galerias de "
1009
- #~ "WordPress. Que lo disfrutes!"
1010
-
1011
- #~ msgid ""
1012
- #~ "If you have problems or questions about FancyBox itself you should <a "
1013
- #~ "href=\"http://groups.google.com/group/fancybox\">ask in the FancyBox "
1014
- #~ "Google Group</a>. If you want to make suggestions or ask just about this "
1015
- #~ "WordPress plugin you can <a href=\"http://blog.moskis.net/downloads/"
1016
- #~ "plugins/fancybox-for-wordpress/\">leave a comment here</a>, <a href="
1017
- #~ "\"http://blog.moskis.net/contactar/\">send me an email</a>, or <a href="
1018
- #~ "\"http://twitter.com/moskis\">contact me on twitter</a>."
1019
- #~ msgstr ""
1020
- #~ "Si tienes problemas o preguntas sobre FancyBox deberías <a href=\"http://"
1021
- #~ "groups.google.com/group/fancybox\">preguntar en este grupo de Google</a> "
1022
- #~ "(enlace en inglés). Si tienes preguntas o sugerencias sobre este plugin "
1023
- #~ "para WordPress, puedes <a href=\"http://blog.moskis.net/downloads/plugins/"
1024
- #~ "fancybox-for-wordpress/\">dejar un comentario aquí</a>, <a href=\"http://"
1025
- #~ "blog.moskis.net/contactar/\">enviarme un email</a>, o <a href=\"http://"
1026
- #~ "twitter.com/moskis\">contactar conmigo vía Twitter</a>."
1027
-
1028
- #~ msgid "Auto Apply"
1029
- #~ msgstr "Auto Aplicar"
1030
-
1031
- #~ msgid ""
1032
- #~ "Apply FancyBox automatically to all links pointing to .jpg, .jpeg, .png "
1033
- #~ "or .gif images (default: on)"
1034
- #~ msgstr ""
1035
- #~ "Aplicar FancyBox automáticamente a todos los enlaces que apunten a "
1036
- #~ "archivos .jpg, .jpeg, .png o .gif (por defecto: activado)"
1037
-
1038
- #~ msgid ""
1039
- #~ "(The link itself must the an image as well, text links will not be "
1040
- #~ "affected by this option!)"
1041
- #~ msgstr ""
1042
- #~ "(El link tiene que estar en una imagen, esta opción no affecta a enlaces "
1043
- #~ "de texto!)"
1044
-
1045
- #~ msgid ""
1046
- #~ "(This does NOT conflict with the previous and next image links on "
1047
- #~ "FancyBox galleries.)"
1048
- #~ msgstr ""
1049
- #~ "(Esto no afecta a los enlaces de Imagen Siguiente e Imagen Anterior en "
1050
- #~ "galerias de varias imágenes)"
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FancyBox for WordPress Español\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/fancybox-for-"
5
+ "wordpress\n"
6
+ "POT-Creation-Date: 2015-02-07 02:02:19+00:00\n"
7
+ "PO-Revision-Date: \n"
8
+ "Last-Translator: Jose Pardilla <jose@moskis.net>\n"
9
+ "Language-Team: Moskis <jose@moskis.net>\n"
10
+ "Language: es_ES\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Generator: Poedit 1.7.4\n"
15
+
16
+ #: admin.php:11
17
+ msgid "Fancybox for WordPress (version %s)"
18
+ msgstr "Fancybox for WordPress (versión %s)"
19
+
20
+ #: admin.php:22
21
+ msgid "Info"
22
+ msgstr "Informaci&oacute;n"
23
+
24
+ #: admin.php:23
25
+ msgid "Appearance"
26
+ msgstr "Apariencia"
27
+
28
+ #: admin.php:24
29
+ msgid "Animations"
30
+ msgstr "Animaciones"
31
+
32
+ #: admin.php:25
33
+ msgid "Behaviour"
34
+ msgstr "Comportamiento"
35
+
36
+ #: admin.php:26
37
+ msgid "Galleries"
38
+ msgstr "Galerías"
39
+
40
+ #: admin.php:27
41
+ msgid "Miscellaneous"
42
+ msgstr "Miscelánea"
43
+
44
+ #: admin.php:28
45
+ msgid "Extra Calls"
46
+ msgstr "Llamadas Extra"
47
+
48
+ #: admin.php:29
49
+ msgid "Troubleshooting"
50
+ msgstr "Ayuda"
51
+
52
+ #: admin.php:30 lib/admin-tab-support.php:1
53
+ msgid "Support"
54
+ msgstr "Soporte"
55
+
56
+ #: admin.php:31 lib/admin-tab-uninstall.php:1
57
+ msgid "Uninstall"
58
+ msgstr "Desinstalar"
59
+
60
+ #: admin.php:77
61
+ msgid "Save Changes"
62
+ msgstr "Guardar Cambios"
63
+
64
+ #: admin.php:85
65
+ msgid "Revert to defaults"
66
+ msgstr "Restaurar valores por defecto"
67
+
68
+ #: admin.php:93
69
+ msgid "If you use FancyBox and like it, buy the author a beer!"
70
+ msgstr "Si usas FancyBox y te gusta, c&oacute;mprale una cerveza al autor!"
71
+
72
+ #: admin.php:110
73
+ msgid "The author of this WordPress Plugin also likes beer :P"
74
+ msgstr ""
75
+ "Al autor de este plugin para WordPress tambi&eacute;n le gusta la cerveza :P"
76
+
77
+ #: admin.php:120
78
+ msgid "Follow me on Twitter for more WordPress Plugins and Themes"
79
+ msgstr "S&iacute;gueme en Twitter para m&aacute;s Plugins y Temas de WordPress"
80
+
81
+ #: fancybox.php:404
82
+ msgid "Settings"
83
+ msgstr "Opciones"
84
+
85
+ #: lib/admin-tab-animations.php:1
86
+ msgid "Animation Settings <span style=\"color:green\">(basic)</span>"
87
+ msgstr "Opciones de Animación <span style=\"color:green\">(básico)</span>"
88
+
89
+ #: lib/admin-tab-animations.php:3
90
+ msgid ""
91
+ "These settings control the animations when opening and closing Fancybox, and "
92
+ "the optional easing effects."
93
+ msgstr ""
94
+ "Estas opciones controlan las animaciones al abrir y cerrar Fancybox, y los "
95
+ "efectos opcionales de animación."
96
+
97
+ #: lib/admin-tab-animations.php:9
98
+ msgid "Zoom Options"
99
+ msgstr "Opciones de Zoom"
100
+
101
+ #: lib/admin-tab-animations.php:15
102
+ msgid "Change content transparency during zoom animations (default: on)"
103
+ msgstr "Animar opacidad durante el efecto de zoom (por defecto: activado)"
104
+
105
+ #: lib/admin-tab-animations.php:27
106
+ msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
107
+ msgstr "Velocidad en milisegundos del efecto de Zoom In (por defecto: 500)"
108
+
109
+ #: lib/admin-tab-animations.php:39
110
+ msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
111
+ msgstr "Velocidad en milisegundos del efecto de Zoom Out (por defecto: 500)"
112
+
113
+ #: lib/admin-tab-animations.php:51
114
+ msgid ""
115
+ "Speed in miliseconds of the animation when navigating thorugh gallery items "
116
+ "(default: 300)"
117
+ msgstr ""
118
+ "Velocidad en milisegundos de la animación al navegar entre los elementos de "
119
+ "una galería (por defecto: 300)"
120
+
121
+ #: lib/admin-tab-animations.php:59
122
+ msgid "Transition Type"
123
+ msgstr "Tio de Transición"
124
+
125
+ #: lib/admin-tab-animations.php:73
126
+ msgid "Transition type when opening FancyBox. (default: fade)"
127
+ msgstr "Tipo de transición al abrir FancyBox. (por defecto: fade)"
128
+
129
+ #: lib/admin-tab-animations.php:86
130
+ msgid "Transition type when closing FancyBox. (default: fade)"
131
+ msgstr "Tipo de transición al cerrar FancyBox. (por defecto: fade)"
132
+
133
+ #: lib/admin-tab-animations.php:94
134
+ msgid "Easing"
135
+ msgstr "Efecto de Animación"
136
+
137
+ #: lib/admin-tab-animations.php:100
138
+ msgid "Activate easing (default: off)"
139
+ msgstr "Activar efecto de animación (por defecto: desactivado)"
140
+
141
+ #: lib/admin-tab-animations.php:103
142
+ msgid "(Will load one additional javascript file, 8KB)"
143
+ msgstr "(Ejecutará un archivo JavaScript adicional, 8KB)"
144
+
145
+ #: lib/admin-tab-animations.php:117
146
+ msgid "Easing method when opening FancyBox. (default: easeOutBack)"
147
+ msgstr "Efecto de animación al abrir FancyBox. (por defecto: easeOutBack)"
148
+
149
+ #: lib/admin-tab-animations.php:120
150
+ msgid "(Requires opening transition type to be set to elastic)"
151
+ msgstr "(Requiere el tipo de transición de inicio elástico)"
152
+
153
+ #: lib/admin-tab-animations.php:132
154
+ msgid "Easing method when closing FancyBox. (default: easeInBack)"
155
+ msgstr "Efecto de animación al cerrar FancyBox. (por defecto: easeInBack)"
156
+
157
+ #: lib/admin-tab-animations.php:135
158
+ msgid "(Requires closing transition type to be set to elastic)"
159
+ msgstr "(Requiere el tipo de transición de cerrado elástico)"
160
+
161
+ #: lib/admin-tab-animations.php:147
162
+ msgid ""
163
+ "Easing method when navigating through gallery items. (default: "
164
+ "easeInOutQuart)"
165
+ msgstr ""
166
+ "Efecto de animación al navegar por galerías. (por defecto: easoInOutQuart)"
167
+
168
+ #: lib/admin-tab-animations.php:150
169
+ msgid ""
170
+ "(There are 30 different easing methods, the first ones are the most boring. "
171
+ "You can test them <a href=\"http://commadot.com/jquery/easing.php\" target="
172
+ "\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/"
173
+ "animationtypes.html\" target=\"_blank\">here</a>)"
174
+ msgstr ""
175
+ "(Hay 30 efectos diferentes, los primeros son los más aburridos. Puedes "
176
+ "probarlos <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank"
177
+ "\">aquí</a> o <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html"
178
+ "\" target=\"_blank\">aquí</a>)"
179
+
180
+ #: lib/admin-tab-appearance.php:1
181
+ msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
182
+ msgstr "Opciones de Apariencia <span style=\"color:green\">(básico)</span>"
183
+
184
+ #: lib/admin-tab-appearance.php:3
185
+ msgid ""
186
+ "These setting control how Fancybox looks, they let you tweak color, borders "
187
+ "and position of elements, like the image title and closing buttons."
188
+ msgstr ""
189
+ "Estas opciones controlan el aspecto general de FancyBox, te permiten ajustar "
190
+ "los colores, bordes y posición de elementos como el título de la imagen y el "
191
+ "botón de cerrar."
192
+
193
+ #: lib/admin-tab-appearance.php:9
194
+ msgid "Border"
195
+ msgstr "Borde"
196
+
197
+ #: lib/admin-tab-appearance.php:15
198
+ msgid "Show Border (default: off)"
199
+ msgstr "Mostrar Borde (por defecto: desactivado)"
200
+
201
+ #: lib/admin-tab-appearance.php:22
202
+ msgid "HTML color of the border (default: #BBBBBB)"
203
+ msgstr "Color HTML del borde (por defecto: #BBBBBB)"
204
+
205
+ #: lib/admin-tab-appearance.php:32
206
+ msgid "Close Button"
207
+ msgstr "Botón de Cerrar"
208
+
209
+ #: lib/admin-tab-appearance.php:38
210
+ msgid "Show Close button (default: on)"
211
+ msgstr "Mostrar el Botón de Cerrar (por defecto: activado)"
212
+
213
+ #: lib/admin-tab-appearance.php:43
214
+ msgid "Close button position:"
215
+ msgstr "Posición del Botón de Cerrar:"
216
+
217
+ #: lib/admin-tab-appearance.php:46
218
+ msgid "Left"
219
+ msgstr "Izquierda"
220
+
221
+ #: lib/admin-tab-appearance.php:51
222
+ msgid "Right (default)"
223
+ msgstr "Derecha (por defecto)"
224
+
225
+ #: lib/admin-tab-appearance.php:56
226
+ msgid "Bottom"
227
+ msgstr "Abajo"
228
+
229
+ #: lib/admin-tab-appearance.php:61
230
+ msgid "Top (default)"
231
+ msgstr "Arriba (por defecto)"
232
+
233
+ #: lib/admin-tab-appearance.php:71
234
+ msgid "Padding"
235
+ msgstr "Margen"
236
+
237
+ #: lib/admin-tab-appearance.php:77
238
+ msgid "HTML color of the padding (default: #FFFFFF)"
239
+ msgstr "Color HTML del margen (por defecto: #FFFFFF)"
240
+
241
+ #: lib/admin-tab-appearance.php:80
242
+ msgid ""
243
+ "(This should be left on #FFFFFF (white) if you want to display anything "
244
+ "other than images, like inline or framed content)"
245
+ msgstr ""
246
+ "(Esta opción debería dejarse en #FFFFFF (blanco) si vas a mostrar algo que "
247
+ "no sean imágenes, como contenido anidado)"
248
+
249
+ #: lib/admin-tab-appearance.php:84
250
+ msgid "Padding size in pixels (default: 10)"
251
+ msgstr "Tamaño del margen en píxeles (por defecto: 10)"
252
+
253
+ #: lib/admin-tab-appearance.php:92
254
+ msgid "Overlay Options"
255
+ msgstr "Opciones de Overlay"
256
+
257
+ #: lib/admin-tab-appearance.php:98
258
+ msgid "Add overlay (default: on)"
259
+ msgstr "Añadir overlay (por defecto: activado)"
260
+
261
+ #: lib/admin-tab-appearance.php:105
262
+ msgid "HTML color of the overlay (default: #666666)"
263
+ msgstr "Color HTML del overlay (por defecto: #666666)"
264
+
265
+ #: lib/admin-tab-appearance.php:118
266
+ msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
267
+ msgstr "Opacidad del overlay. 0 es transparente, 1 es opaco (por defecto: 0.3)"
268
+
269
+ #: lib/admin-tab-appearance.php:128
270
+ msgid "Title"
271
+ msgstr "Título"
272
+
273
+ #: lib/admin-tab-appearance.php:134
274
+ msgid "Show the title (default: on)"
275
+ msgstr "Mostrar el título (por defecto: activado)"
276
+
277
+ #: lib/admin-tab-appearance.php:141
278
+ msgid "Inside (default)"
279
+ msgstr "Dentro (por defecto)"
280
+
281
+ #: lib/admin-tab-appearance.php:146
282
+ msgid "Outside"
283
+ msgstr "Fuera"
284
+
285
+ #: lib/admin-tab-appearance.php:151
286
+ msgid "Over"
287
+ msgstr "Encima"
288
+
289
+ #: lib/admin-tab-appearance.php:158
290
+ msgid "Title text color (default: #333333)"
291
+ msgstr "Color del título (por defecto #333333)"
292
+
293
+ #: lib/admin-tab-appearance.php:161
294
+ msgid "(Should contrast with the padding color set above)"
295
+ msgstr "(Debería contrastar con el color del margen establecido más arriba)"
296
+
297
+ #: lib/admin-tab-appearance.php:172
298
+ msgid "Navigation Arrows"
299
+ msgstr "Flechas de Navegación"
300
+
301
+ #: lib/admin-tab-appearance.php:178
302
+ msgid "Show the navigation arrows (default: on)"
303
+ msgstr "Mostrar flechas de navegación (por defecto: activado)"
304
+
305
+ #: lib/admin-tab-behaviour.php:1
306
+ msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
307
+ msgstr "Opciones de Comportamiento <span style=\"color:orange\">(medio)</span>"
308
+
309
+ #: lib/admin-tab-behaviour.php:3
310
+ msgid ""
311
+ "The following settings should be left alone unless you know what you are "
312
+ "doing."
313
+ msgstr ""
314
+ "Las siguientes opciones sólo deberían ser editadas si sabes lo que estás "
315
+ "haciendo."
316
+
317
+ #: lib/admin-tab-behaviour.php:9
318
+ msgid "Auto Resize to Fit"
319
+ msgstr "Ajustar Tamaño"
320
+
321
+ #: lib/admin-tab-behaviour.php:15
322
+ msgid "Scale images to fit in viewport (default: on)"
323
+ msgstr ""
324
+ "Ajusta el tamaño de las imagenes a la ventana del navegador (por defecto: "
325
+ "activado)"
326
+
327
+ #: lib/admin-tab-behaviour.php:23
328
+ msgid "Center on Scroll"
329
+ msgstr "Centrar al hacer Scroll"
330
+
331
+ #: lib/admin-tab-behaviour.php:29
332
+ msgid ""
333
+ "Keep image in the center of the browser window when scrolling (default: on)"
334
+ msgstr ""
335
+ "Mantiene la imagen en el centro de la ventana del naegador al hacer scroll "
336
+ "(por defecto: activado)"
337
+
338
+ #: lib/admin-tab-behaviour.php:37
339
+ msgid "Close on Content Click"
340
+ msgstr "Cerrar al hacer click en contenido"
341
+
342
+ #: lib/admin-tab-behaviour.php:43
343
+ msgid "Close FancyBox by clicking on the image (default: off)"
344
+ msgstr "Cerrar FancyBox al hacer click en la imagen (por defecto: desactivado)"
345
+
346
+ #: lib/admin-tab-behaviour.php:46
347
+ msgid ""
348
+ "(You may want to leave this off if you display iframed or inline content "
349
+ "that containts clickable elements - for example: play buttons for movies, "
350
+ "links to other pages)"
351
+ msgstr ""
352
+ "(Puedes que quieras dejar esta opción desactivada si vas a usar contendido "
353
+ "anidado que incluya enlaces - for ejemplo: botones de play, enlaces a otras "
354
+ "páginas)"
355
+
356
+ #: lib/admin-tab-behaviour.php:53
357
+ msgid "Close on Overlay Click"
358
+ msgstr "Cerrar al hacer click en el fondo"
359
+
360
+ #: lib/admin-tab-behaviour.php:59
361
+ msgid "Close FancyBox by clicking on the overlay sorrounding it (default: on)"
362
+ msgstr "Cerrar FancyBox al hacer click en el fondo (por defecto: activado)"
363
+
364
+ #: lib/admin-tab-behaviour.php:67
365
+ msgid "Close with &quot;Esc&quot;"
366
+ msgstr "Cerrar con &quot;Esc&quot;"
367
+
368
+ #: lib/admin-tab-behaviour.php:73
369
+ msgid "Close FancyBox when &quot;Escape&quot; key is pressed (default: on)"
370
+ msgstr ""
371
+ "Cerrar Fancybox cuando se pulse la tecla &quot;Escape&quot; (por defecto: "
372
+ "activado)"
373
+
374
+ #: lib/admin-tab-behaviour.php:81
375
+ msgid "Loop Galleries"
376
+ msgstr "Galerías Cíclicas"
377
+
378
+ #: lib/admin-tab-behaviour.php:87
379
+ msgid ""
380
+ "This will make galleries loop, allowing you to keep pressing next/back "
381
+ "(default: off)"
382
+ msgstr ""
383
+ "Esta oción generará galerías cíclicas, permitíendote pulsar los botones de "
384
+ "navegación indefinidamene (por defecto: desactivado)"
385
+
386
+ #: lib/admin-tab-behaviour.php:95
387
+ msgid "Mouse Wheel Navigation"
388
+ msgstr "Navegación por rueda del ratón"
389
+
390
+ #: lib/admin-tab-behaviour.php:101
391
+ msgid "Lets visitors navigate galleries with the mouse wheel (default: off)"
392
+ msgstr ""
393
+ "Permita a los visitantes navegar por las galerías con la rueda del ratón "
394
+ "(por defecto: desactivado)"
395
+
396
+ #: lib/admin-tab-behaviour.php:104
397
+ msgid "(Will load one additional javascript file, 3KB)"
398
+ msgstr "(Ejecutará un archivo JavaScript adicional, 3KB)"
399
+
400
+ #: lib/admin-tab-calls.php:1
401
+ msgid "Extra FancyBox Calls <span style=\"color:red\">(advanced)</span>"
402
+ msgstr "Llamadas Extra de FancyBox <span style=\"color:red\">(avanzado)</span>"
403
+
404
+ #: lib/admin-tab-calls.php:3
405
+ msgid ""
406
+ "Here you can add as many additional calls to fancybox as you want, with "
407
+ "different settings. For example, if you want to use fancybox with iframes or "
408
+ "ajax on any specific link, you can configure those calls here without "
409
+ "affecting the settings for images."
410
+ msgstr ""
411
+ "Aquí puedes añadir todas las llamadas adicionales a FancyBox que quieras, "
412
+ "con distintas opciones. Por ejemplo, si quieres usar FancyBox con iframes o "
413
+ "con Ajax en cualquier enlace concreto, aquí puedes configurarlo sin afectar "
414
+ "al resto de opciones."
415
+
416
+ #: lib/admin-tab-calls.php:5
417
+ msgid ""
418
+ "For information on the options available you can use here see <a href="
419
+ "\"http://fancybox.net/api\">FancyBox's API & Options page</a>."
420
+ msgstr ""
421
+ "Para más información acerca de las opciones que puedes usar en este campo, "
422
+ "lee esta página sobre la <a href=\"http://fancybox.net/api\">API y Opciones "
423
+ "de FancyBox</a>."
424
+
425
+ #: lib/admin-tab-calls.php:11
426
+ msgid "Additional FancyBox Calls"
427
+ msgstr "Llamadas Extra de FancyBox"
428
+
429
+ #: lib/admin-tab-calls.php:17
430
+ msgid "Additional FancyBox Calls (default: off)"
431
+ msgstr "Llamadas Extra de FancyBox (por defecto: desactivado)"
432
+
433
+ #: lib/admin-tab-calls.php:26 lib/admin-tab-other.php:89
434
+ msgid "Example:"
435
+ msgstr "Ejemplo:"
436
+
437
+ #: lib/admin-tab-galleries.php:1
438
+ msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
439
+ msgstr "Opciones de Galería <span style=\"color:red\">(avanzado)</span>"
440
+
441
+ #: lib/admin-tab-galleries.php:3
442
+ msgid ""
443
+ "Here you can choose if you want the plugin to group all images into a "
444
+ "gallery, or make a gallery for each post. You can also define you own jQuery "
445
+ "expression if you like."
446
+ msgstr ""
447
+ "Aquí puedes elegir si quieres que el plugin agrupe las imágenes en una "
448
+ "galería, o hacer una galería para cada entrada. También puedes definir tu "
449
+ "propia expresión en jQuery."
450
+
451
+ #: lib/admin-tab-galleries.php:9
452
+ msgid "Gallery Type"
453
+ msgstr "Tipo de Galería"
454
+
455
+ #: lib/admin-tab-galleries.php:15
456
+ msgid "Make a gallery for all images on the page (default)"
457
+ msgstr ""
458
+ "Incluir todas las imágenes de la página en una única galería (opción por "
459
+ "defecto)"
460
+
461
+ #: lib/admin-tab-galleries.php:20
462
+ msgid ""
463
+ "Do not group images in gallery automatically (use this if you want to make "
464
+ "galleries manually with the <code>REL</code> attribute)"
465
+ msgstr ""
466
+ "No agrupar im&aacute;genes en galer&iacute;as autom&aacute;ticamente (usa "
467
+ "esta opci&oacute;n si quieres agrupar las imagenes manualmente con el "
468
+ "atributo <code>REL</code>)"
469
+
470
+ #: lib/admin-tab-galleries.php:25
471
+ msgid ""
472
+ "Make a gallery for each post (will only work if your theme uses <code>class="
473
+ "\"post\"</code> on each post, which is common in WordPress"
474
+ msgstr ""
475
+ "Hacer una galer&iacute;a para cada post (solo funcionar&aacute; si el tema "
476
+ "usa <code>class=\"post\"</code> en cada post, que es lo m&aacute;s "
477
+ "com&uacute;n en WordPress"
478
+
479
+ #: lib/admin-tab-galleries.php:30
480
+ msgid "Use a custom expression to apply FancyBox"
481
+ msgstr "Aplicar FancyBox con una expresión personalizada"
482
+
483
+ #: lib/admin-tab-galleries.php:39
484
+ msgid "Custom expression guidelines:"
485
+ msgstr "Indicaciones para expresiones personalizadas:"
486
+
487
+ #: lib/admin-tab-galleries.php:41
488
+ msgid ""
489
+ "&middot; The custom expression has to apply <code>class=\"fancybox\"</code> "
490
+ "to the links where you want to use FancyBox. Do not call the "
491
+ "<code>fancybox()</code> function here, the plugin does this for you."
492
+ msgstr ""
493
+ "&middot; La expresión personalizada tiene que aplicar el atributo "
494
+ "<code>class=\"fancybox\"</code> a los enlaces en los que quieras usar "
495
+ "FancyBox. No llames a la funci&oacute;n <code>fancybox()</code> aqu&iacute;, "
496
+ "de eso ya se encarga el plugin."
497
+
498
+ #: lib/admin-tab-galleries.php:43
499
+ msgid ""
500
+ "&middot; The jQuery <code>addClass()</code> function is a good way to add "
501
+ "the class to the desired links conserving any existing class."
502
+ msgstr ""
503
+ "&middot; La funci&oacute;n <code>addClass()</code> de jQuery es una buena "
504
+ "forma de a&ntilde;adir el class a los links deseados."
505
+
506
+ #: lib/admin-tab-galleries.php:45
507
+ msgid ""
508
+ "&middot; You can use <code>getTitle()</code> in your expression to copy the "
509
+ "title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so "
510
+ "that FancyBox can show captions."
511
+ msgstr ""
512
+ "&middot; Puedes usar <code>getTitle()</code> en tu expresi&oacute;n para "
513
+ "copiar el atributo title desde el tag <code>IMG</code> al tag <code>A</"
514
+ "code>, para que FancyBox pueda mostrar el t&iacute;tulo de la imagen."
515
+
516
+ #: lib/admin-tab-galleries.php:47
517
+ msgid ""
518
+ "&middot; You can use <code>jQuery(thumbnails)</code> like in the example "
519
+ "expression to apply FancyBox to thumbnails that link to these extensions: "
520
+ "BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase)."
521
+ msgstr ""
522
+ "&middot; Puedes usar <code>jQuery(thumbnails)</code> como en el ejemplo para "
523
+ "aplicar FancyBox a las miniaturas de im%aacute;genes que enlazen a estas "
524
+ "extensiones: BMP, GIF, JPG, JPEG, PNG tanto en min&uacute;scula como en "
525
+ "may&uacute;scula)."
526
+
527
+ #: lib/admin-tab-galleries.php:49
528
+ msgid ""
529
+ "&middot; If you want to do it manually you can use something like "
530
+ "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> or whatever works for you."
531
+ msgstr ""
532
+ "&middot; Si prefieres hacerlo manualmente puedes usar algo como "
533
+ "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> o lo que m&aacute;s se "
534
+ "ajuste a tu blog."
535
+
536
+ #: lib/admin-tab-galleries.php:51
537
+ msgid ""
538
+ "See the <a href=\"http://docs.jquery.com/\" target=\"_blank\">jQuery "
539
+ "Documentation</a> for more help."
540
+ msgstr ""
541
+ "Visita la <a href=\"http://docs.jquery.com/\" target=\"_blank"
542
+ "\">Documentaci&oacute;n de jQuery</a> para encontrar m&aacute;s ayuda."
543
+
544
+ #: lib/admin-tab-galleries.php:53
545
+ msgid "Examples:"
546
+ msgstr "Ejemplos:"
547
+
548
+ #: lib/admin-tab-info.php:1
549
+ msgid "Information"
550
+ msgstr "Información"
551
+
552
+ #: lib/admin-tab-info.php:3
553
+ msgid ""
554
+ "<a target=\"_blank\" href=\"http://fancybox.net\">FancyBox</a> developed by "
555
+ "<a target=\"_blank\" href=\"http://fancybox.net\">Janis Skarnelis</a>, "
556
+ "ported to WordPress by <a target=\"_blank\" href=\"http://twitter.com/moskis"
557
+ "\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href="
558
+ "\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
559
+ msgstr ""
560
+ "<a href=\"http://fancybox.net\">FancyBox</a> desarrollado por <a href="
561
+ "\"http://fancybox.net\">Janis Skarnelis</a>, adaptado a WordPress por <a "
562
+ "href=\"http://http://twitter.com/moskis\">Jos&eacute; Pardilla</a>. "
563
+ "Licenciado bajo <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/"
564
+ "MIT_License\">Licencia MIT</a>."
565
+
566
+ #: lib/admin-tab-info.php:5
567
+ msgid ""
568
+ "As you can see, this plugin has many options you can edit, but have no fear, "
569
+ "you can leave everything as it is if you don't want to get your hands dirty, "
570
+ "since the default options should be a good start... :)"
571
+ msgstr ""
572
+ "Como puedes ver, este plugin te permite editar muchas opciones, pero no te "
573
+ "preocupes, puedes dejarlo todo como está, ya que las opciones predefinidas "
574
+ "no están mal para empezar... :)"
575
+
576
+ #: lib/admin-tab-info.php:7
577
+ msgid ""
578
+ "If you are an advanced user you can <a target=\"_blank\" href=\"https://"
579
+ "github.com/moskis/fancybox-for-wordpress\">follow the plugin in Github</a>, "
580
+ "fork it or help submitting fixes!"
581
+ msgstr ""
582
+ "Si eres un usuario avanzado, puedes <a target=\"_blank\" href=\"https://"
583
+ "github.com/moskis/fancybox-for-wordpress\">seguir el plugin en Github</a>, y "
584
+ "colaborar aportando correcciones!"
585
+
586
+ #: lib/admin-tab-info.php:9
587
+ msgid ""
588
+ "<strong>Note:</strong> Having a cache plugin may prevent changes from taking "
589
+ "effect immidiately, if this happens clear cache after saving changes here or "
590
+ "deactivate cache until you finish editing these options."
591
+ msgstr ""
592
+ "<strong>Nota:</strong> Usar un plugin de caché puede hacer que los cambios "
593
+ "no surjan efecto inmediatamente, si esto ocurre vacía el cache después de "
594
+ "guardar los cambios o desactívalo hasta que termines de ajustar estas "
595
+ "opciones."
596
+
597
+ #: lib/admin-tab-other.php:1
598
+ msgid "Other Settings <span style=\"color:red\">(advanced)</span>"
599
+ msgstr "Otras Opciones <span style=\"color:red\">(avanzado)</span>"
600
+
601
+ #: lib/admin-tab-other.php:3
602
+ msgid "These are additional settings for advanced users."
603
+ msgstr "Las siguientes opciones son para usuarios avanzados."
604
+
605
+ #: lib/admin-tab-other.php:9
606
+ msgid "Dimensions"
607
+ msgstr "Dimensiones"
608
+
609
+ #: lib/admin-tab-other.php:15
610
+ msgid "Auto detect dimensions (default: on)"
611
+ msgstr "Auto detectar dimensiones (por defecto: activado)"
612
+
613
+ #: lib/admin-tab-other.php:18
614
+ msgid ""
615
+ "Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! "
616
+ "Flash dimensions won't be autodetected so specify them below if necessary. "
617
+ "If you want to insert several pieces of flash content with different "
618
+ "dimensions you will have to use the <strong>Additional FancyBox Calls</"
619
+ "strong> option."
620
+ msgstr ""
621
+ "Sólo funciona con <strong>Ajax</strong> y <strong>Contenido en línea</"
622
+ "strong>! Las dimenciones de elementos Flash no se autodetectan así que "
623
+ "especifícalas aquí debajo si lo necesitas. Si necesitas insertar varios "
624
+ "elementos Flash de tamaños distintos tendrás que usar el apartado de "
625
+ "<strong>Llamadas Extra</strong>."
626
+
627
+ #: lib/admin-tab-other.php:22
628
+ msgid ""
629
+ "Width for iframe and swf content. Also set for inline content if "
630
+ "<em>autoDimensions</em> is disabled (default: 560)"
631
+ msgstr ""
632
+ "Ancho para iframes y contenido Flash. También afecta a contenido en línea si "
633
+ "<em>Auto detectar dimensiones</em> está desactivado (por defecto: 560)"
634
+
635
+ #: lib/admin-tab-other.php:27
636
+ msgid ""
637
+ "Height for iframe and swf content. Also set for inline content if "
638
+ "<em>autoDimensions</em> is disabled (default: 340)"
639
+ msgstr ""
640
+ "Alto para iframes y contenido Flash. También afecta a contenido en línea si "
641
+ "<em>Auto detectar dimensiones</em> está desactivado (por defecto: 340)"
642
+
643
+ #: lib/admin-tab-other.php:35
644
+ msgid "Load JavaScript in Footer"
645
+ msgstr "Cargar JavaScript en el Pié de página"
646
+
647
+ #: lib/admin-tab-other.php:41
648
+ msgid ""
649
+ "Loads JavaScript at the end of the blog's HTML (experimental) (default: off)"
650
+ msgstr ""
651
+ "Carga el JavaScript al final del código HTML del blog (experimental) (por "
652
+ "defecto: desactivado)"
653
+
654
+ #: lib/admin-tab-other.php:44
655
+ msgid ""
656
+ "This option won't be recognized if you use <strong>Parallel Load</strong> "
657
+ "plugin. In that case, you can do this from Parallel Load's options."
658
+ msgstr ""
659
+ "Esta opción será ignorada si el plugin <strong>Parallel Load</strong> está "
660
+ "instalado. Si es así, usa las opciones del plugin Parallel Load."
661
+
662
+ #: lib/admin-tab-other.php:51
663
+ msgid "Callbacks"
664
+ msgstr "Retrollamadas"
665
+
666
+ #: lib/admin-tab-other.php:57
667
+ msgid "Enable callbacks (default: off)"
668
+ msgstr "Activar retrollamadas (por defecto: desactivado)"
669
+
670
+ #: lib/admin-tab-other.php:60
671
+ msgid "Enabling this will show additional settings."
672
+ msgstr "Activar esta opcíón mostrará opociones adicionales."
673
+
674
+ #: lib/admin-tab-other.php:65
675
+ msgid ""
676
+ "Callback on <strong>Start</strong> event: Will be called right before "
677
+ "attempting to load the content"
678
+ msgstr ""
679
+ "Retrollamada en evento <strong>Inicio</strong>: Se ejecutará justo antes de "
680
+ "intentar cargar el contenido"
681
+
682
+ #: lib/admin-tab-other.php:70
683
+ msgid ""
684
+ "Callback on <strong>Cancel</strong> event: Will be called after loading is "
685
+ "canceled"
686
+ msgstr ""
687
+ "Retrollamada en evento <strong>Cancelar</strong>: Se ejecutará tras cancelar "
688
+ "la carga del contenido"
689
+
690
+ #: lib/admin-tab-other.php:75
691
+ msgid ""
692
+ "Callback on <strong>Complete</strong> event: Will be called once the content "
693
+ "is displayed"
694
+ msgstr ""
695
+ "Retrollamada en evento <strong>Completado</strong>: Se ejecutará una vez se "
696
+ "termine de mostrar el contenido"
697
+
698
+ #: lib/admin-tab-other.php:80
699
+ msgid ""
700
+ "Callback on <strong>CleanUp</strong> event: Will be called just before "
701
+ "closing"
702
+ msgstr ""
703
+ "Retrollamada en evento <strong>Limpieza</strong>: Se ejecutará justo antes "
704
+ "de empezar a ocultar el contenido"
705
+
706
+ #: lib/admin-tab-other.php:85
707
+ msgid ""
708
+ "Callback on <strong>Closed</strong> event: Will be called once FancyBox is "
709
+ "closed"
710
+ msgstr ""
711
+ "Retrollamada en evento <strong>Cerrado</strong>: Se ejecutará tras cerrar "
712
+ "FancyBox"
713
+
714
+ #: lib/admin-tab-other.php:91
715
+ msgid "Leave empty any speciic callbacks you don't need to use."
716
+ msgstr "Deja en blanco cualquier Retrollamada que no quieras usar."
717
+
718
+ #: lib/admin-tab-support.php:3
719
+ msgid "Help with Fancybox"
720
+ msgstr "Ayuda sobre ancyBox"
721
+
722
+ #: lib/admin-tab-support.php:5
723
+ msgid ""
724
+ "If you have problems or questions about FancyBox itself (and not this "
725
+ "WordPress plugin), please start with these links: <a target=\"_blank\" href="
726
+ "\"http://fancybox.net/howto\">How-To</a> & <a target=\"_blank\" href="
727
+ "\"http://fancybox.net/faq\">FAQ</a>.<br />If that does not help, go to <a "
728
+ "href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</"
729
+ "a>, use the <strong>Search</strong> option, and if necesary, post your "
730
+ "question."
731
+ msgstr ""
732
+ "Si tienes problemas o dudas acerca de FancyBox (y no este plugin en sí), por "
733
+ "favor visita estos enlaces (en inglés): <a href=\"http://fancybox.net/howto"
734
+ "\">How-To</a> & <a href=\"http://fancybox.net/faq\">FAQ</a>.<br />Si eso no "
735
+ "ayuda, ves al <a href=\"http://groups.google.com/group/fancybox\">Grupo de "
736
+ "Google de FancyBox</a>, usa la opción de <strong>Búsqueda</strong>, y si no "
737
+ "encuentras lo que buscas, pregunta allí."
738
+
739
+ #: lib/admin-tab-support.php:8
740
+ msgid "Help with Fancybox for WordPress plugin"
741
+ msgstr "Ayuda para el plugin Fancybox for WordPress"
742
+
743
+ #: lib/admin-tab-support.php:10
744
+ msgid ""
745
+ "Try to localize the problem (switch your theme and deactivate plugins until "
746
+ "you find the source of the problem). You can also try the Troubleshooting "
747
+ "settings of this plugin if necesary."
748
+ msgstr ""
749
+ "Intenta localizar la fuente del problema (cambia de tema y/o desactiva "
750
+ "plugins hasta que encuentres lo que causa el problema). También puedes usar "
751
+ "las optiones de Resolución de Errores que hay al final de esta página."
752
+
753
+ #: lib/admin-tab-support.php:11
754
+ msgid ""
755
+ "Try reverting the plugin's settings to their defaults with the button below."
756
+ msgstr ""
757
+ "Prueba a resetear las opciones a sus valores originales con el botón al pie "
758
+ "de esta página."
759
+
760
+ #: lib/admin-tab-support.php:12
761
+ msgid ""
762
+ "If you still can not get the plugin to work, <a target=\"_blank\" href="
763
+ "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
764
+ "\">write a post in the WordPress Support forums</a> explaining the problem "
765
+ "or take a look and the <a target=\"_blank\" href=\"http://wordpress.org/"
766
+ "support/plugin/fancybox-for-wordpress\">already posted messages</a>."
767
+ msgstr ""
768
+ "Si aún no puedes hacer funcionar el plugin, <a target=\"_blank\" href="
769
+ "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
770
+ "\">escribe en el foro de Soporte de WordPress</a> o echa un vistazo a <a "
771
+ "target=\"_blank\" href=\"\"http://wordpress.org/support/plugin/fancybox-for-"
772
+ "wordpress\">los mensajes ya escritos en dicho foro</a>."
773
+
774
+ #: lib/admin-tab-support.php:15
775
+ msgid "IMPORTANT:"
776
+ msgstr "IMPORTANTE:"
777
+
778
+ #: lib/admin-tab-support.php:15
779
+ msgid ""
780
+ "When posting your problem please provide a link to your blog and the page "
781
+ "where the error is found, and all relevant information you can, especially "
782
+ "your theme, plugins, etc."
783
+ msgstr ""
784
+ "Cuando expliques tu problema, por favor deja un enlace a tu blog y una "
785
+ "página donde FancyBox falla, así como cualquier información reelevante, como "
786
+ "el tema de WordPress y plugins que usas."
787
+
788
+ #: lib/admin-tab-troubleshooting.php:1
789
+ msgid "Troubleshooting Settings"
790
+ msgstr "Resolución de Problemas"
791
+
792
+ #: lib/admin-tab-troubleshooting.php:3
793
+ msgid ""
794
+ "Settings in this section should only be changed if you are having problems "
795
+ "with the plugin!"
796
+ msgstr ""
797
+ "Las opciones de esta sección solo deben ser editadas si tienes problemas con "
798
+ "el plugin!"
799
+
800
+ #: lib/admin-tab-troubleshooting.php:5
801
+ msgid ""
802
+ "If the plugin doesn't seem to work, first you should check for other plugins "
803
+ "that may be conflicting with this one, especially other Lightbox, Slimbox, "
804
+ "etc. Make sure all your plugins and WordPress itself are up to date (this "
805
+ "plugin has only been tested in WordPress 2.7 and above)."
806
+ msgstr ""
807
+ "Si el plugin no funciona, lo primero que deberías hacer es comprobar que no "
808
+ "haya un conflicto con otros plugins, especialmente otro tipo de Lightbox, "
809
+ "Slimbox, etc. Asegúrate de que todos tus plugins y tu WordPress están "
810
+ "actualizados (este plugin solo se ha testado con WordPress 2.7 y superiores)."
811
+
812
+ #: lib/admin-tab-troubleshooting.php:7
813
+ msgid ""
814
+ "Change them one at a time and test to see if they help. Remember that having "
815
+ "a cache plugin may prevent changes from taking effect immidiately, so clear "
816
+ "cache after saving changes here or deactivate cache until you finish editing "
817
+ "these options."
818
+ msgstr ""
819
+ "Cámbialas de una en una y comprueba si solucionan tu problema. Recuqerda que "
820
+ "usar un plugin de caché puede hacer que los cambios no surjan efecto "
821
+ "inmediatamente, vacía el cache después de guardar los cambios or desactivalo "
822
+ "hasta que termines de ajustar estas opciones."
823
+
824
+ #: lib/admin-tab-troubleshooting.php:13
825
+ msgid "Do not call jQuery"
826
+ msgstr "No cargar jQuery"
827
+
828
+ #: lib/admin-tab-troubleshooting.php:19
829
+ msgid ""
830
+ "Skip jQuery call. Use this only if jQuery is being loaded twice (default: "
831
+ "off)"
832
+ msgstr ""
833
+ "Omitir llamada a jQuery. Usa esta opción sólo si jQuery se está cargando dos "
834
+ "veces por error. (por defecto: desactivado)"
835
+
836
+ #: lib/admin-tab-uninstall.php:3
837
+ msgid ""
838
+ "Like many other plugins, FancyBox for WordPress stores its settings on your "
839
+ "WordPress' options database table. Actually, these settings are not using "
840
+ "more than a couple of kilobytes of space, but if you want to completely "
841
+ "uninstall this plugin, check the option below, then save changes, and "
842
+ "<strong>when you deactivate the plugin</strong>, all its settings will be "
843
+ "removed from the database."
844
+ msgstr ""
845
+ "Al igual que otros plugins, FancyBox for WordPress guarda sus opciones en la "
846
+ "tabla de opciones de la base de datos de WordPress. En realidad, estas "
847
+ "opcines no ocupam más que unos kilobytes de espacio, pero si quieres "
848
+ "eliminar el plugin por completo, activa la siguiente opción, guarda los "
849
+ "cambios, y <strong>cuando desactives el plugin</strong>, todas las opciones "
850
+ "se eliminarán de la base de datos."
851
+
852
+ #: lib/admin-tab-uninstall.php:9
853
+ msgid "Remove settings"
854
+ msgstr "Eliminar Opciones"
855
+
856
+ #: lib/admin-tab-uninstall.php:15
857
+ msgid ""
858
+ "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. "
859
+ "(default: off)"
860
+ msgstr ""
861
+ "Eliminar opciones cuando se desactive el plugin desde la página \"Gestionar "
862
+ "Plugins\". (por defecto: desactivado)"
863
+
864
+ #. Plugin Name of the plugin/theme
865
+ msgid "FancyBox for WordPress"
866
+ msgstr "FancyBox for WordPress"
867
+
868
+ #. Plugin URI of the plugin/theme
869
+ msgid "https://wordpress.org/plugins/fancybox-for-wordpress/"
870
+ msgstr "https://wordpress.org/plugins/fancybox-for-wordpress/"
871
+
872
+ #. Description of the plugin/theme
873
+ msgid ""
874
+ "Integrates <a href=\"http://fancybox.net/\">FancyBox</a> by <a href=\"http://"
875
+ "klade.lv/\">Janis Skarnelis</a> into WordPress."
876
+ msgstr ""
877
+ "Integra <a href=\"http://fancybox.net/\">FancyBox</a> por <a href=\"http://"
878
+ "klade.lv/\">Janis Skarnelis</a> en WordPress."
879
+
880
+ #. Author of the plugin/theme
881
+ msgid "Jos&eacute; Pardilla"
882
+ msgstr "Jos&eacute; Pardilla"
883
+
884
+ #. Author URI of the plugin/theme
885
+ msgid "http://twitter.com/moskis"
886
+ msgstr "http://twitter.com/moskis"
887
+
888
+ #~ msgid ""
889
+ #~ "<strong>Note:</strong> If update to version 3.0.0 breaks fancybox on your "
890
+ #~ "blog you will probably have to reset your settings (with the white button "
891
+ #~ "below). I have tested this issue on several WordPress installations and "
892
+ #~ "it always worked, so it might depend on the server. Sorry for the "
893
+ #~ "inconvinience."
894
+ #~ msgstr ""
895
+ #~ "<strong>Nota:</strong> Si la actualización a la versión 3.0.0 estropea "
896
+ #~ "FancyBox en tu blog, posiblemente tengas que reestablecer las opciones "
897
+ #~ "del plugin (desde el botón blanco de abajo)."
898
+
899
+ #~ msgid ""
900
+ #~ "If you are having trouble with this plugin take a look at this <a target="
901
+ #~ "\"_blank\" href=\"http://plugins.josepardilla.com/fancybox-for-wordpress/"
902
+ #~ "faq\">FAQ</a> where i will try to cover the most common problems and "
903
+ #~ "their solutions."
904
+ #~ msgstr ""
905
+ #~ "Si tienes problemas para hacer funcionar este plugin echa un vistazo a "
906
+ #~ "esta página de <a target=\"_blank\" href=\"http://plugins.josepardilla."
907
+ #~ "com/fancybox-for-wordpress/faq\">Preguntas Frecuentes</a> donde intentaré "
908
+ #~ "explicar los problemas más habituales y cómo resolverlos."
909
+
910
+ #~ msgid "Callback on Start event (default: empty)"
911
+ #~ msgstr "Retrollamada en el evento de Inicio (por defecto: vacío)"
912
+
913
+ #~ msgid "Callback on Show event (default: empty)"
914
+ #~ msgstr "Retrollamada en el evento de Mostrado (por defecto: vacío)"
915
+
916
+ #~ msgid "Callback on Close event (default: empty)"
917
+ #~ msgstr "Retrollamada en el evento de Cerrado (por defecto: vacío)"
918
+
919
+ #~ msgid "Leave the fields empty to disable."
920
+ #~ msgstr "Deja estos campos vacíos para desactivar cualqueir retrollamada."
921
+
922
+ #~ msgid "Frame Size"
923
+ #~ msgstr "Tamaño del recuadro"
924
+
925
+ #~ msgid ""
926
+ #~ "Width in pixels of FancyBox when showing iframe content (default: 560)"
927
+ #~ msgstr ""
928
+ #~ "Ancho en píxeles de FancyBox cuado se muestre contenido anidado (por "
929
+ #~ "defecto: 560)"
930
+
931
+ #~ msgid ""
932
+ #~ "Height in pixels of FancyBox when showing iframe content (default: 340)"
933
+ #~ msgstr ""
934
+ #~ "Alto en píxeles de FancyBox cuado se muestre contenido anidado (por "
935
+ #~ "defecto: 340)"
936
+
937
+ #~ msgid "jQuery \"noConflict\" Mode"
938
+ #~ msgstr "Modo jQuery \"noConflict\""
939
+
940
+ #~ msgid "Use jQuery noConflict mode (default: on)"
941
+ #~ msgstr "Usar parámetro noConflict de jQuery (por defecto: activado)"
942
+
943
+ #~ msgid ""
944
+ #~ "(Turning this off may cause problems if there are plugins activated that "
945
+ #~ "use other js framework like mootools, prototype, scriptaculous, etc.)"
946
+ #~ msgstr ""
947
+ #~ "(Desactivar esta opción puede causar problemas si hay plugins activadoes "
948
+ #~ "que usen otros frameworks javascript como Mootols, Prototype, "
949
+ #~ "Scriptaculous, etc.)"
950
+
951
+ #~ msgid "Presentation"
952
+ #~ msgstr "Presentación"
953
+
954
+ #~ msgid ""
955
+ #~ "These are the main settings, which let you tweak color, borders and "
956
+ #~ "animation."
957
+ #~ msgstr ""
958
+ #~ "Estas son las opciones principales, que te permiten ajustar los colores, "
959
+ #~ "bordes y animación."
960
+
961
+ #~ msgid ""
962
+ #~ "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding "
963
+ #~ "Size</strong> to \"0\" for the classic FancyBox look)"
964
+ #~ msgstr ""
965
+ #~ "(Pon el <strong>Color del Borde</strong> en \"#000000\" y el "
966
+ #~ "<strong>Tamaño del Margen</strong> en \"0\" para el aspecto clásico de "
967
+ #~ "FancyBox)"
968
+
969
+ #~ msgid "Show/Hide Advanced Settings"
970
+ #~ msgstr "Mostrar/Ocultar Opciones Avanzadas"
971
+
972
+ #~ msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
973
+ #~ msgstr "Mostrar/Ocultar Resolución de Problemas y Desinstalaci&oacute;n"
974
+
975
+ #~ msgid ""
976
+ #~ "Do not call the <code>fancybox()</code> function here, the plugin does "
977
+ #~ "this for you."
978
+ #~ msgstr ""
979
+ #~ "No llames a la función <code>fancybox()</code> desde aquí, eso ya lo hace "
980
+ #~ "el plugin por tí."
981
+
982
+ #~ msgid "Make a gallery for each post"
983
+ #~ msgstr "Hacer una galería para cada entrada"
984
+
985
+ #~ msgid ""
986
+ #~ "The attribute has to start with fancybox, but can end with however you "
987
+ #~ "like: \"fancybox1\", \"fancybox2\", \"fancybox-custom\" will work."
988
+ #~ msgstr ""
989
+ #~ "El atributo debe empezar por fancybox pero puede terminar como quieras: "
990
+ #~ "\"fancybox1\", \"fancybox2\", \"fancybox-custom\" servirían."
991
+
992
+ #~ msgid "Horizontal position of the close button (default: right)"
993
+ #~ msgstr ""
994
+ #~ "Posición horizontal del botón para cerrar FancyBox (por defecto: derecha)"
995
+
996
+ #~ msgid "About"
997
+ #~ msgstr "Informaci&oacute;n"
998
+
999
+ #~ msgid ""
1000
+ #~ "This plugin integrates FancyBox with WordPress without having to edit any "
1001
+ #~ "file or code. Once activated the plugin will apply FancyBox automatically "
1002
+ #~ "to all image links, including WordPress galleries. Future versions will "
1003
+ #~ "include some more options like easier inline content integration and more "
1004
+ #~ "advanced customization. Enjoy!"
1005
+ #~ msgstr ""
1006
+ #~ "Este plugin integra FancyBox con WordPress sin necesidad de editar ningún "
1007
+ #~ "archivo o HTML. Una vez activado, el plugin aplicará FancyBox "
1008
+ #~ "automáticamente a todos los enlaces a imágenes, incluyendo galerias de "
1009
+ #~ "WordPress. Que lo disfrutes!"
1010
+
1011
+ #~ msgid ""
1012
+ #~ "If you have problems or questions about FancyBox itself you should <a "
1013
+ #~ "href=\"http://groups.google.com/group/fancybox\">ask in the FancyBox "
1014
+ #~ "Google Group</a>. If you want to make suggestions or ask just about this "
1015
+ #~ "WordPress plugin you can <a href=\"http://blog.moskis.net/downloads/"
1016
+ #~ "plugins/fancybox-for-wordpress/\">leave a comment here</a>, <a href="
1017
+ #~ "\"http://blog.moskis.net/contactar/\">send me an email</a>, or <a href="
1018
+ #~ "\"http://twitter.com/moskis\">contact me on twitter</a>."
1019
+ #~ msgstr ""
1020
+ #~ "Si tienes problemas o preguntas sobre FancyBox deberías <a href=\"http://"
1021
+ #~ "groups.google.com/group/fancybox\">preguntar en este grupo de Google</a> "
1022
+ #~ "(enlace en inglés). Si tienes preguntas o sugerencias sobre este plugin "
1023
+ #~ "para WordPress, puedes <a href=\"http://blog.moskis.net/downloads/plugins/"
1024
+ #~ "fancybox-for-wordpress/\">dejar un comentario aquí</a>, <a href=\"http://"
1025
+ #~ "blog.moskis.net/contactar/\">enviarme un email</a>, o <a href=\"http://"
1026
+ #~ "twitter.com/moskis\">contactar conmigo vía Twitter</a>."
1027
+
1028
+ #~ msgid "Auto Apply"
1029
+ #~ msgstr "Auto Aplicar"
1030
+
1031
+ #~ msgid ""
1032
+ #~ "Apply FancyBox automatically to all links pointing to .jpg, .jpeg, .png "
1033
+ #~ "or .gif images (default: on)"
1034
+ #~ msgstr ""
1035
+ #~ "Aplicar FancyBox automáticamente a todos los enlaces que apunten a "
1036
+ #~ "archivos .jpg, .jpeg, .png o .gif (por defecto: activado)"
1037
+
1038
+ #~ msgid ""
1039
+ #~ "(The link itself must the an image as well, text links will not be "
1040
+ #~ "affected by this option!)"
1041
+ #~ msgstr ""
1042
+ #~ "(El link tiene que estar en una imagen, esta opción no affecta a enlaces "
1043
+ #~ "de texto!)"
1044
+
1045
+ #~ msgid ""
1046
+ #~ "(This does NOT conflict with the previous and next image links on "
1047
+ #~ "FancyBox galleries.)"
1048
+ #~ msgstr ""
1049
+ #~ "(Esto no afecta a los enlaces de Imagen Siguiente e Imagen Anterior en "
1050
+ #~ "galerias de varias imágenes)"
languages/mfbfw-ja.po CHANGED
@@ -1,325 +1,325 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: FancyBox for WordPress Japanese\n"
4
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/fancybox-for-wordpress\n"
5
- "POT-Creation-Date: 2009-03-25 16:40+0000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Oba-T\n"
8
- "Language-Team: \n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
-
13
- #: admin.php:21
14
- #, php-format
15
- msgid "Fancybox for WordPress Options (version %s)"
16
- msgstr "Fancybox for WordPress Options (version %s)"
17
-
18
- #: admin.php:25
19
- msgid "If you use FancyBox and like it, buy the author a beer!"
20
- msgstr "FancyBoxを気に入ったならば、作者にビールをおごってください。"
21
-
22
- #: admin.php:46
23
- msgid "The author of this WordPress Plugin also likes beer :P"
24
- msgstr "このプラグインの作者は、ビールが大好きです。 :P"
25
-
26
- #: admin.php:59
27
- msgid "Follow me on Twitter for more WordPress Plugins and Themes"
28
- msgstr "より多くのプラグインとテーマのためにTwitterで応援してください。"
29
-
30
- #: admin.php:66
31
- msgid "Info & Support"
32
- msgstr "説明とサポート"
33
-
34
- #: admin.php:68
35
- msgid "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> developed by <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a>, ported to WordPress by <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
36
- msgstr "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> developed by <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a>, ported to WordPress by <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
37
-
38
- #: admin.php:70
39
- msgid "As you can see, this plugin has many options you can edit, but have no fear, you can leave everything as it is if you want, since the default options should be a good start... :)"
40
- msgstr "このプラグインには編集可能な多くのオプションがあります。初起動時に初期値で良い設定となってます。そのままでも構わなければ変更することはありません... :)"
41
-
42
- #: admin.php:74
43
- msgid "If you have problems or questions about FancyBox, please start with these links: <a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>.<br />If that does not help, go to <a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>, use the <strong>Search</strong> option, and if necesary, post your question."
44
- msgstr "トラブル、または、FancyBoxへの質問は、リンク先の<a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>へ…<br />そこで、該当項目が無ければ、必要に応じて検索オプションを使用し、<a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>で検索してください。また、該当項目が無い場合は質問をしてください。"
45
-
46
- #: admin.php:76
47
- msgid "If you are having trouble with this plugin try to localize the problem (switch your theme and/or deactivate plugins until you find the source of the problem). You can also try the Troubleshooting settings at the bottom of this page if necesary. If you still can not get the plugin to work, <a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">leave a comment here</a> explaining the problem."
48
- msgstr "このプラグインが動作しない時は、問題の切り分けをしてください(使用中のテーマを変える。または、その他のプラグインを一つずつ有効化する)。必要に応じて、このページの最下部のトラブルシューティングでセッティングを試してください。それでもまだプラグインを起動できない時は、<a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">leave a comment here</a> へ問題の詳細をコメントしてください。"
49
-
50
- #: admin.php:81
51
- msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
52
- msgstr "外観設定 <span style=\"color:green\">(基本設定)</span>"
53
-
54
- #: admin.php:83
55
- msgid "These are the main settings, which let you tweak color, borders and animation."
56
- msgstr "主要設定です。(この設定で、色、境界線、基本的なアニメーション動作の調整ができます。)"
57
-
58
- #: admin.php:85
59
- msgid "<strong>Note:</strong> Having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
60
- msgstr "<strong>Note:</strong> キャッシュが保持されているため、オプション設定後、すぐに効果が表れないかもしれません。その場合、オプション設定終了後に、キャッシュのクリアをしてください。"
61
-
62
- #: admin.php:95
63
- msgid "Border Color"
64
- msgstr "境界線色"
65
-
66
- #: admin.php:101
67
- msgid "HTML color of the border (default: #BBBBBB)"
68
- msgstr "境界線の表示色 (初期値: #BBBBBB)"
69
-
70
- #: admin.php:109
71
- msgid "Close Button Position"
72
- msgstr "閉じるボタンの位置"
73
-
74
- #: admin.php:115
75
- msgid "Left"
76
- msgstr "左"
77
-
78
- #: admin.php:120
79
- msgid "Right (default)"
80
- msgstr "右 (初期値)"
81
-
82
- #: admin.php:125
83
- msgid "Bottom"
84
- msgstr "下"
85
-
86
- #: admin.php:130
87
- msgid "Top (default)"
88
- msgstr "上 (初期値)"
89
-
90
- #: admin.php:138
91
- msgid "Padding"
92
- msgstr "パディング設定"
93
-
94
- #: admin.php:144
95
- msgid "HTML color of the padding (default: #FFFFFF)"
96
- msgstr "パッディングの表示色 (初期値: #FFFFFF)"
97
-
98
- #: admin.php:149
99
- msgid "Padding size in pixels (default: 10)"
100
- msgstr "パッディングサイズ:px (初期値: 10)"
101
-
102
- #: admin.php:152
103
- msgid "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding Size</strong> to \"0\" for the classic FancyBox look)"
104
- msgstr "(<strong>境界線の色</strong> が \"#000000\" と <strong>内側余白</strong> が \"0\" が、classic FancyBox の設定)"
105
-
106
- #: admin.php:159
107
- msgid "Overlay Options"
108
- msgstr "オーバレイ設定"
109
-
110
- #: admin.php:165
111
- msgid "Add overlay (default: on)"
112
- msgstr "オーバーレイ適用 (初期値: on)"
113
-
114
- #: admin.php:170
115
- msgid "HTML color of the overlay (default: #666666)"
116
- msgstr "オーバーレイの表示色 (初期値: #666666)"
117
-
118
- #: admin.php:183
119
- msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
120
- msgstr "オーバーレイ透過度. 0 = 透明, 1 = 黒 0.1刻み(初期値: 0.3)"
121
-
122
- #: admin.php:191
123
- msgid "Zoom Options"
124
- msgstr "ズーム設定"
125
-
126
- #: admin.php:197
127
- msgid "Change content transparency during zoom animations (default: on)"
128
- msgstr "切替時、アニメーション動作を使用 (初期値: on)"
129
-
130
- #: admin.php:209
131
- msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
132
- msgstr "ズームイン アニメーション速度 : 1000=1秒 (初期値: 500)"
133
-
134
- #: admin.php:221
135
- msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
136
- msgstr "ズームアウト アニメーション速度 : 1000=1秒 (初期値: 500)"
137
-
138
- #: admin.php:229
139
- msgid "Easing"
140
- msgstr "加減速設定"
141
-
142
- #: admin.php:235
143
- msgid "Activate easing (default: off)"
144
- msgstr "加減速設定 (初期値: off)"
145
-
146
- #: admin.php:248
147
- msgid "Easing method when opening FancyBox. (default: easeOutBack)"
148
- msgstr "FancyBoxの開始時の加減速動作 (初期値: easeOutBack)"
149
-
150
- #: admin.php:261
151
- msgid "Easing method when closing FancyBox. (default: easeInBack)"
152
- msgstr "FancyBoxの終了時の加減速動作 (初期値: easeInBack)"
153
-
154
- #: admin.php:274
155
- msgid "Easing method when navigating through gallery items. (default: easeInOutQuart)"
156
- msgstr "ギャラリーアイテム閲覧時の加減速動作 (初期値: easeInOutBack)"
157
-
158
- #: admin.php:277
159
- msgid "(There are 30 different easing methods, the first ones are the most boring. You can test them <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html\" target=\"_blank\">here</a>)"
160
- msgstr "(30種類の\"加減速\"設定があります。最初の項目は最も退屈な設定です。 この<a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">リンク</a>にてテストできます。ボックスをクリックしてください。)"
161
-
162
- #: admin.php:286
163
- msgid "Show/Hide Advanced Settings"
164
- msgstr "表示/非表示 高度設定"
165
-
166
- #: admin.php:287
167
- msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
168
- msgstr "表示/非表示 トラブルシューティング &amp; 削除設定"
169
-
170
- #: admin.php:292
171
- msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
172
- msgstr "動作設定 <span style=\"color:orange\">(中間値)</span>"
173
-
174
- #: admin.php:294
175
- msgid "The following settings should be left on default unless you know what you are doing."
176
- msgstr "理解していない場合、以下の設定は初期値のままにしてください。"
177
-
178
- #: admin.php:300
179
- msgid "Auto Resize to Fit"
180
- msgstr "自動リサイズ設定"
181
-
182
- #: admin.php:306
183
- msgid "Scale images to fit in viewport (default: on)"
184
- msgstr "イメージの大きさをビューポートに合わせる (初期値: on)"
185
-
186
- #: admin.php:314
187
- msgid "Center on Scroll"
188
- msgstr "表示固定設定"
189
-
190
- #: admin.php:320
191
- msgid "Keep image in the center of the browser window when scrolling (default: on)"
192
- msgstr "ブラウザののスクロールをしても、プレビュー画像を中央に固定する。 (初期値: on)"
193
-
194
- #: admin.php:328
195
- msgid "Close on Click"
196
- msgstr "クリック終了設定"
197
-
198
- #: admin.php:334
199
- msgid "Close FancyBox by clicking on the image (default: off)"
200
- msgstr "FancyBoxをプレビュー画像クリックで閉じる。 (初期値: off)"
201
-
202
- #: admin.php:337
203
- msgid "(You may want to leave this off if you display iframed or inline content and it containts clickable elements - for example: play buttons for movies, links to other pages)"
204
- msgstr "(インラインフレーム、インラインコンテンツをクリックで表示する場合、これらのコンテンツ要素をこのままにしておきたいことがあります-例えば:動画再生ボタンやページリンク)"
205
-
206
- #: admin.php:347
207
- msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
208
- msgstr "ギャラリー設定 <span style=\"color:red\">(高度設定)</span>"
209
-
210
- #: admin.php:349
211
- msgid "Here you can choose if you want the plugin to group all images into a gallery, or make a gallery for each post. You can also define you own jQuery expression if you like."
212
- msgstr "この設定で、すべての画像をギャラリーに分類するか、各ポストのためにギャラリーを作るかを選択できます。 また、jQueryの動作表現を定義できます。"
213
-
214
- #: admin.php:355
215
- msgid "Frame Size"
216
- msgstr "フレームサイズ"
217
-
218
- #: admin.php:361
219
- msgid "Width in pixels of FancyBox when showing iframe content (default: 640)"
220
- msgstr "FancyBoxのインラインフレームコンテンツの表示幅 :px (初期値: 640)"
221
-
222
- #: admin.php:366
223
- msgid "Height in pixels of FancyBox when showing iframe content (default: 500)"
224
- msgstr "FancyBoxのインラインフレームコンテンツの表示高 :px (初期値: 500)"
225
-
226
- #: admin.php:374
227
- msgid "Gallery Type"
228
- msgstr "ギャラリータイプ"
229
-
230
- #: admin.php:380
231
- msgid "Make a gallery for all images on the page (default)"
232
- msgstr "ページ上の全画像のためにギャラリーを作る (初期値)"
233
-
234
- #: admin.php:385
235
- msgid "Do not group images in gallery automatically (use this if you want to make galleries manually with the <code>REL</code> attribute)"
236
- msgstr "ギャラリーで自動的に画像を分類しない (<code>REL</code>属性で手動でギャラリーを作る場合は使用してください。)"
237
-
238
- #: admin.php:390
239
- msgid "Make a gallery for each post (will only work if your theme uses <code>class=\"post\"</code> on each post, which is common in WordPress"
240
- msgstr "各ポストのためにギャラリーを作る (WordPress標準テーマにおいて<code>class=\"post\"</code>を各ポストで使う場合に動作します。)"
241
-
242
- #: admin.php:395
243
- msgid "Use a custom expression to apply FancyBox"
244
- msgstr "FancyBoxへのカスタム表示の適用"
245
-
246
- #: admin.php:404
247
- msgid "Custom expression guidelines:"
248
- msgstr "カスタム表示ガイドライン:"
249
-
250
- #: admin.php:406
251
- msgid "The custom expression has to apply <code>class=\"fancybox\"</code> to the links where you want to use FancyBox."
252
- msgstr "カスタム表示をするには、FancyBoxを使用するリンクへ <code>class=\"fancybox\"</code> を付けます。"
253
-
254
- #: admin.php:408
255
- msgid "The jQuery <code>addClass()</code> function is a good way to add the class to the desired links conserving any existing class."
256
- msgstr "jQueryの <code>addClass()</code> 機能を使用すると、どの既存のリンククラスへもaddクラスを加える早道です。"
257
-
258
- #: admin.php:410
259
- msgid "You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so that FancyBox can show captions."
260
- msgstr "<code>getTitle()</code> を使用して <code>IMG</code> タグや、 <code>A</code> タグへ表示要素を追加し、FancyBoxを表示できます。"
261
-
262
- #: admin.php:412
263
- msgid "Do not call the <code>fancybox()</code> function here, the plugin does this for you."
264
- msgstr "Fancyboxプラグインの<code>fancybox()</code> 機能を使用しない。"
265
-
266
- #: admin.php:428
267
- msgid "Troubleshooting Settings"
268
- msgstr "トラブルシューティング設定"
269
-
270
- #: admin.php:430
271
- msgid "Settings in this section should only be changed if you are having problems with the plugin!"
272
- msgstr "プラグインに関する問題がある場合、この設定を変えるだけです!"
273
-
274
- #: admin.php:432
275
- msgid "If the plugin doesn't seem to work, first you should check for other plugins that may be conflicting with this one, especially other Lightbox, Slimbox, etc. Make sure all your plugins and WordPress itself are up to date (this plugin has only been tested in WordPress 2.7 and above)."
276
- msgstr "プラグインが機能しない場合は、はじめに他の類似プラグイン(特に他のLightbox、Slimbox)や、その他のプラグインと干渉している可能性があります。また、WordPress自体が最新版であることをチェックしてください。(このプラグインは、WordPress 2.7以上のバージョンでテスト済みです。)"
277
-
278
- #: admin.php:434
279
- msgid "Change them one at a time and test to see if they help. Remember that having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
280
- msgstr "これらを一つずつを変更して、影響しているかどうかをテストしてください。これらのオプションを編集し終わってもキャッシュが保持されているため、オプション設定後、すぐに効果が表れないかもしれません。その場合、オプション設定終了後に、キャッシュのクリアをしてください。"
281
-
282
- #: admin.php:440
283
- msgid "Do not call jQuery"
284
- msgstr "jQueryを使用しない"
285
-
286
- #: admin.php:446
287
- msgid "Skip jQuery call. Use this only if jQuery is being loaded twice (default: off)"
288
- msgstr "jQueryの起動スキップ。jQueryが2度起動される場合だけ使用 (初期値: off)"
289
-
290
- #: admin.php:454
291
- msgid "jQuery \"noConflict\" Mode"
292
- msgstr "jQuery \"noConflict\" モード"
293
-
294
- #: admin.php:460
295
- msgid "Use jQuery noConflict mode (default: on)"
296
- msgstr "jQuery ノーコンフリクトモード設定 (初期値: on)"
297
-
298
- #: admin.php:463
299
- msgid "(Turning this off may cause problems if there are plugins activated that use other js framework like mootools, prototype, scriptaculous, etc.)"
300
- msgstr "(この設定の有効化により、Js フレームワークを使用した、mootools、prototype、scriptaculous、その他のプラグインへの干渉を回避できる可能性があります。)"
301
-
302
- #: admin.php:472
303
- msgid "Uninstall"
304
- msgstr "削除"
305
-
306
- #: admin.php:474
307
- msgid "Like many other plugins, FancyBox for WordPress stores its settings on your WordPress' options database table. Actually, these settings are not using more than a couple of kilobytes of space, but if you want to completely uninstall this plugin, check the option below, then save changes, and <strong>when you deactivate the plugin</strong>, all its settings will be removed from the database."
308
- msgstr "他のプラグインのように、\"FancyBox for WordPress\"は、データベースのオプションテーブルに設定を格納します。これらの設定は2KB以上のスペースを使っていません。しかし、<strong>このプラグインを無効化</strong>し、削除する場合、完全に元に戻したいならば、下記のオプションをチェックすると、すべての設定はデータベースから削除されます。"
309
-
310
- #: admin.php:480
311
- msgid "Remove settings"
312
- msgstr "設定の無効化"
313
-
314
- #: admin.php:486
315
- msgid "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. (default: off)"
316
- msgstr "プラグイン設定を \"プラグイン管理\"ページから無効化してください。 (初期値: off)"
317
-
318
- #: admin.php:503
319
- msgid "Save Changes"
320
- msgstr "設定保存"
321
-
322
- #: fancybox.php:437
323
- msgid "Settings"
324
- msgstr "設定"
325
-
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FancyBox for WordPress Japanese\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/fancybox-for-wordpress\n"
5
+ "POT-Creation-Date: 2009-03-25 16:40+0000\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Oba-T\n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+
13
+ #: admin.php:21
14
+ #, php-format
15
+ msgid "Fancybox for WordPress Options (version %s)"
16
+ msgstr "Fancybox for WordPress Options (version %s)"
17
+
18
+ #: admin.php:25
19
+ msgid "If you use FancyBox and like it, buy the author a beer!"
20
+ msgstr "FancyBoxを気に入ったならば、作者にビールをおごってください。"
21
+
22
+ #: admin.php:46
23
+ msgid "The author of this WordPress Plugin also likes beer :P"
24
+ msgstr "このプラグインの作者は、ビールが大好きです。 :P"
25
+
26
+ #: admin.php:59
27
+ msgid "Follow me on Twitter for more WordPress Plugins and Themes"
28
+ msgstr "より多くのプラグインとテーマのためにTwitterで応援してください。"
29
+
30
+ #: admin.php:66
31
+ msgid "Info & Support"
32
+ msgstr "説明とサポート"
33
+
34
+ #: admin.php:68
35
+ msgid "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> developed by <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a>, ported to WordPress by <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
36
+ msgstr "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> developed by <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a>, ported to WordPress by <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
37
+
38
+ #: admin.php:70
39
+ msgid "As you can see, this plugin has many options you can edit, but have no fear, you can leave everything as it is if you want, since the default options should be a good start... :)"
40
+ msgstr "このプラグインには編集可能な多くのオプションがあります。初起動時に初期値で良い設定となってます。そのままでも構わなければ変更することはありません... :)"
41
+
42
+ #: admin.php:74
43
+ msgid "If you have problems or questions about FancyBox, please start with these links: <a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>.<br />If that does not help, go to <a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>, use the <strong>Search</strong> option, and if necesary, post your question."
44
+ msgstr "トラブル、または、FancyBoxへの質問は、リンク先の<a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>へ…<br />そこで、該当項目が無ければ、必要に応じて検索オプションを使用し、<a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>で検索してください。また、該当項目が無い場合は質問をしてください。"
45
+
46
+ #: admin.php:76
47
+ msgid "If you are having trouble with this plugin try to localize the problem (switch your theme and/or deactivate plugins until you find the source of the problem). You can also try the Troubleshooting settings at the bottom of this page if necesary. If you still can not get the plugin to work, <a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">leave a comment here</a> explaining the problem."
48
+ msgstr "このプラグインが動作しない時は、問題の切り分けをしてください(使用中のテーマを変える。または、その他のプラグインを一つずつ有効化する)。必要に応じて、このページの最下部のトラブルシューティングでセッティングを試してください。それでもまだプラグインを起動できない時は、<a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">leave a comment here</a> へ問題の詳細をコメントしてください。"
49
+
50
+ #: admin.php:81
51
+ msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
52
+ msgstr "外観設定 <span style=\"color:green\">(基本設定)</span>"
53
+
54
+ #: admin.php:83
55
+ msgid "These are the main settings, which let you tweak color, borders and animation."
56
+ msgstr "主要設定です。(この設定で、色、境界線、基本的なアニメーション動作の調整ができます。)"
57
+
58
+ #: admin.php:85
59
+ msgid "<strong>Note:</strong> Having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
60
+ msgstr "<strong>Note:</strong> キャッシュが保持されているため、オプション設定後、すぐに効果が表れないかもしれません。その場合、オプション設定終了後に、キャッシュのクリアをしてください。"
61
+
62
+ #: admin.php:95
63
+ msgid "Border Color"
64
+ msgstr "境界線色"
65
+
66
+ #: admin.php:101
67
+ msgid "HTML color of the border (default: #BBBBBB)"
68
+ msgstr "境界線の表示色 (初期値: #BBBBBB)"
69
+
70
+ #: admin.php:109
71
+ msgid "Close Button Position"
72
+ msgstr "閉じるボタンの位置"
73
+
74
+ #: admin.php:115
75
+ msgid "Left"
76
+ msgstr "左"
77
+
78
+ #: admin.php:120
79
+ msgid "Right (default)"
80
+ msgstr "右 (初期値)"
81
+
82
+ #: admin.php:125
83
+ msgid "Bottom"
84
+ msgstr "下"
85
+
86
+ #: admin.php:130
87
+ msgid "Top (default)"
88
+ msgstr "上 (初期値)"
89
+
90
+ #: admin.php:138
91
+ msgid "Padding"
92
+ msgstr "パディング設定"
93
+
94
+ #: admin.php:144
95
+ msgid "HTML color of the padding (default: #FFFFFF)"
96
+ msgstr "パッディングの表示色 (初期値: #FFFFFF)"
97
+
98
+ #: admin.php:149
99
+ msgid "Padding size in pixels (default: 10)"
100
+ msgstr "パッディングサイズ:px (初期値: 10)"
101
+
102
+ #: admin.php:152
103
+ msgid "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding Size</strong> to \"0\" for the classic FancyBox look)"
104
+ msgstr "(<strong>境界線の色</strong> が \"#000000\" と <strong>内側余白</strong> が \"0\" が、classic FancyBox の設定)"
105
+
106
+ #: admin.php:159
107
+ msgid "Overlay Options"
108
+ msgstr "オーバレイ設定"
109
+
110
+ #: admin.php:165
111
+ msgid "Add overlay (default: on)"
112
+ msgstr "オーバーレイ適用 (初期値: on)"
113
+
114
+ #: admin.php:170
115
+ msgid "HTML color of the overlay (default: #666666)"
116
+ msgstr "オーバーレイの表示色 (初期値: #666666)"
117
+
118
+ #: admin.php:183
119
+ msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
120
+ msgstr "オーバーレイ透過度. 0 = 透明, 1 = 黒 0.1刻み(初期値: 0.3)"
121
+
122
+ #: admin.php:191
123
+ msgid "Zoom Options"
124
+ msgstr "ズーム設定"
125
+
126
+ #: admin.php:197
127
+ msgid "Change content transparency during zoom animations (default: on)"
128
+ msgstr "切替時、アニメーション動作を使用 (初期値: on)"
129
+
130
+ #: admin.php:209
131
+ msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
132
+ msgstr "ズームイン アニメーション速度 : 1000=1秒 (初期値: 500)"
133
+
134
+ #: admin.php:221
135
+ msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
136
+ msgstr "ズームアウト アニメーション速度 : 1000=1秒 (初期値: 500)"
137
+
138
+ #: admin.php:229
139
+ msgid "Easing"
140
+ msgstr "加減速設定"
141
+
142
+ #: admin.php:235
143
+ msgid "Activate easing (default: off)"
144
+ msgstr "加減速設定 (初期値: off)"
145
+
146
+ #: admin.php:248
147
+ msgid "Easing method when opening FancyBox. (default: easeOutBack)"
148
+ msgstr "FancyBoxの開始時の加減速動作 (初期値: easeOutBack)"
149
+
150
+ #: admin.php:261
151
+ msgid "Easing method when closing FancyBox. (default: easeInBack)"
152
+ msgstr "FancyBoxの終了時の加減速動作 (初期値: easeInBack)"
153
+
154
+ #: admin.php:274
155
+ msgid "Easing method when navigating through gallery items. (default: easeInOutQuart)"
156
+ msgstr "ギャラリーアイテム閲覧時の加減速動作 (初期値: easeInOutBack)"
157
+
158
+ #: admin.php:277
159
+ msgid "(There are 30 different easing methods, the first ones are the most boring. You can test them <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html\" target=\"_blank\">here</a>)"
160
+ msgstr "(30種類の\"加減速\"設定があります。最初の項目は最も退屈な設定です。 この<a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">リンク</a>にてテストできます。ボックスをクリックしてください。)"
161
+
162
+ #: admin.php:286
163
+ msgid "Show/Hide Advanced Settings"
164
+ msgstr "表示/非表示 高度設定"
165
+
166
+ #: admin.php:287
167
+ msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
168
+ msgstr "表示/非表示 トラブルシューティング &amp; 削除設定"
169
+
170
+ #: admin.php:292
171
+ msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
172
+ msgstr "動作設定 <span style=\"color:orange\">(中間値)</span>"
173
+
174
+ #: admin.php:294
175
+ msgid "The following settings should be left on default unless you know what you are doing."
176
+ msgstr "理解していない場合、以下の設定は初期値のままにしてください。"
177
+
178
+ #: admin.php:300
179
+ msgid "Auto Resize to Fit"
180
+ msgstr "自動リサイズ設定"
181
+
182
+ #: admin.php:306
183
+ msgid "Scale images to fit in viewport (default: on)"
184
+ msgstr "イメージの大きさをビューポートに合わせる (初期値: on)"
185
+
186
+ #: admin.php:314
187
+ msgid "Center on Scroll"
188
+ msgstr "表示固定設定"
189
+
190
+ #: admin.php:320
191
+ msgid "Keep image in the center of the browser window when scrolling (default: on)"
192
+ msgstr "ブラウザののスクロールをしても、プレビュー画像を中央に固定する。 (初期値: on)"
193
+
194
+ #: admin.php:328
195
+ msgid "Close on Click"
196
+ msgstr "クリック終了設定"
197
+
198
+ #: admin.php:334
199
+ msgid "Close FancyBox by clicking on the image (default: off)"
200
+ msgstr "FancyBoxをプレビュー画像クリックで閉じる。 (初期値: off)"
201
+
202
+ #: admin.php:337
203
+ msgid "(You may want to leave this off if you display iframed or inline content and it containts clickable elements - for example: play buttons for movies, links to other pages)"
204
+ msgstr "(インラインフレーム、インラインコンテンツをクリックで表示する場合、これらのコンテンツ要素をこのままにしておきたいことがあります-例えば:動画再生ボタンやページリンク)"
205
+
206
+ #: admin.php:347
207
+ msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
208
+ msgstr "ギャラリー設定 <span style=\"color:red\">(高度設定)</span>"
209
+
210
+ #: admin.php:349
211
+ msgid "Here you can choose if you want the plugin to group all images into a gallery, or make a gallery for each post. You can also define you own jQuery expression if you like."
212
+ msgstr "この設定で、すべての画像をギャラリーに分類するか、各ポストのためにギャラリーを作るかを選択できます。 また、jQueryの動作表現を定義できます。"
213
+
214
+ #: admin.php:355
215
+ msgid "Frame Size"
216
+ msgstr "フレームサイズ"
217
+
218
+ #: admin.php:361
219
+ msgid "Width in pixels of FancyBox when showing iframe content (default: 640)"
220
+ msgstr "FancyBoxのインラインフレームコンテンツの表示幅 :px (初期値: 640)"
221
+
222
+ #: admin.php:366
223
+ msgid "Height in pixels of FancyBox when showing iframe content (default: 500)"
224
+ msgstr "FancyBoxのインラインフレームコンテンツの表示高 :px (初期値: 500)"
225
+
226
+ #: admin.php:374
227
+ msgid "Gallery Type"
228
+ msgstr "ギャラリータイプ"
229
+
230
+ #: admin.php:380
231
+ msgid "Make a gallery for all images on the page (default)"
232
+ msgstr "ページ上の全画像のためにギャラリーを作る (初期値)"
233
+
234
+ #: admin.php:385
235
+ msgid "Do not group images in gallery automatically (use this if you want to make galleries manually with the <code>REL</code> attribute)"
236
+ msgstr "ギャラリーで自動的に画像を分類しない (<code>REL</code>属性で手動でギャラリーを作る場合は使用してください。)"
237
+
238
+ #: admin.php:390
239
+ msgid "Make a gallery for each post (will only work if your theme uses <code>class=\"post\"</code> on each post, which is common in WordPress"
240
+ msgstr "各ポストのためにギャラリーを作る (WordPress標準テーマにおいて<code>class=\"post\"</code>を各ポストで使う場合に動作します。)"
241
+
242
+ #: admin.php:395
243
+ msgid "Use a custom expression to apply FancyBox"
244
+ msgstr "FancyBoxへのカスタム表示の適用"
245
+
246
+ #: admin.php:404
247
+ msgid "Custom expression guidelines:"
248
+ msgstr "カスタム表示ガイドライン:"
249
+
250
+ #: admin.php:406
251
+ msgid "The custom expression has to apply <code>class=\"fancybox\"</code> to the links where you want to use FancyBox."
252
+ msgstr "カスタム表示をするには、FancyBoxを使用するリンクへ <code>class=\"fancybox\"</code> を付けます。"
253
+
254
+ #: admin.php:408
255
+ msgid "The jQuery <code>addClass()</code> function is a good way to add the class to the desired links conserving any existing class."
256
+ msgstr "jQueryの <code>addClass()</code> 機能を使用すると、どの既存のリンククラスへもaddクラスを加える早道です。"
257
+
258
+ #: admin.php:410
259
+ msgid "You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so that FancyBox can show captions."
260
+ msgstr "<code>getTitle()</code> を使用して <code>IMG</code> タグや、 <code>A</code> タグへ表示要素を追加し、FancyBoxを表示できます。"
261
+
262
+ #: admin.php:412
263
+ msgid "Do not call the <code>fancybox()</code> function here, the plugin does this for you."
264
+ msgstr "Fancyboxプラグインの<code>fancybox()</code> 機能を使用しない。"
265
+
266
+ #: admin.php:428
267
+ msgid "Troubleshooting Settings"
268
+ msgstr "トラブルシューティング設定"
269
+
270
+ #: admin.php:430
271
+ msgid "Settings in this section should only be changed if you are having problems with the plugin!"
272
+ msgstr "プラグインに関する問題がある場合、この設定を変えるだけです!"
273
+
274
+ #: admin.php:432
275
+ msgid "If the plugin doesn't seem to work, first you should check for other plugins that may be conflicting with this one, especially other Lightbox, Slimbox, etc. Make sure all your plugins and WordPress itself are up to date (this plugin has only been tested in WordPress 2.7 and above)."
276
+ msgstr "プラグインが機能しない場合は、はじめに他の類似プラグイン(特に他のLightbox、Slimbox)や、その他のプラグインと干渉している可能性があります。また、WordPress自体が最新版であることをチェックしてください。(このプラグインは、WordPress 2.7以上のバージョンでテスト済みです。)"
277
+
278
+ #: admin.php:434
279
+ msgid "Change them one at a time and test to see if they help. Remember that having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
280
+ msgstr "これらを一つずつを変更して、影響しているかどうかをテストしてください。これらのオプションを編集し終わってもキャッシュが保持されているため、オプション設定後、すぐに効果が表れないかもしれません。その場合、オプション設定終了後に、キャッシュのクリアをしてください。"
281
+
282
+ #: admin.php:440
283
+ msgid "Do not call jQuery"
284
+ msgstr "jQueryを使用しない"
285
+
286
+ #: admin.php:446
287
+ msgid "Skip jQuery call. Use this only if jQuery is being loaded twice (default: off)"
288
+ msgstr "jQueryの起動スキップ。jQueryが2度起動される場合だけ使用 (初期値: off)"
289
+
290
+ #: admin.php:454
291
+ msgid "jQuery \"noConflict\" Mode"
292
+ msgstr "jQuery \"noConflict\" モード"
293
+
294
+ #: admin.php:460
295
+ msgid "Use jQuery noConflict mode (default: on)"
296
+ msgstr "jQuery ノーコンフリクトモード設定 (初期値: on)"
297
+
298
+ #: admin.php:463
299
+ msgid "(Turning this off may cause problems if there are plugins activated that use other js framework like mootools, prototype, scriptaculous, etc.)"
300
+ msgstr "(この設定の有効化により、Js フレームワークを使用した、mootools、prototype、scriptaculous、その他のプラグインへの干渉を回避できる可能性があります。)"
301
+
302
+ #: admin.php:472
303
+ msgid "Uninstall"
304
+ msgstr "削除"
305
+
306
+ #: admin.php:474
307
+ msgid "Like many other plugins, FancyBox for WordPress stores its settings on your WordPress' options database table. Actually, these settings are not using more than a couple of kilobytes of space, but if you want to completely uninstall this plugin, check the option below, then save changes, and <strong>when you deactivate the plugin</strong>, all its settings will be removed from the database."
308
+ msgstr "他のプラグインのように、\"FancyBox for WordPress\"は、データベースのオプションテーブルに設定を格納します。これらの設定は2KB以上のスペースを使っていません。しかし、<strong>このプラグインを無効化</strong>し、削除する場合、完全に元に戻したいならば、下記のオプションをチェックすると、すべての設定はデータベースから削除されます。"
309
+
310
+ #: admin.php:480
311
+ msgid "Remove settings"
312
+ msgstr "設定の無効化"
313
+
314
+ #: admin.php:486
315
+ msgid "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. (default: off)"
316
+ msgstr "プラグイン設定を \"プラグイン管理\"ページから無効化してください。 (初期値: off)"
317
+
318
+ #: admin.php:503
319
+ msgid "Save Changes"
320
+ msgstr "設定保存"
321
+
322
+ #: fancybox.php:437
323
+ msgid "Settings"
324
+ msgstr "設定"
325
+
languages/mfbfw-pl_PL.po CHANGED
@@ -1,1066 +1,1066 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: FancyBox for WordPress Polski\n"
4
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/fancybox-for-wordpress\n"
5
- "POT-Creation-Date: 2012-12-04 18:51+0100\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Jose Pardilla <info@josepardilla.com>\n"
8
- "Language-Team: Pracownie Inżynierskie Socha <admin@socha-pi.pl>\n"
9
- "Language: pl_PL\n"
10
- "MIME-Version: 1.0\n"
11
- "Content-Type: text/plain; charset=UTF-8\n"
12
- "Content-Transfer-Encoding: 8bit\n"
13
- "X-Generator: Poedit 1.5.4\n"
14
- "X-Poedit-SourceCharset: UTF-8\n"
15
- "X-Poedit-KeywordsList: _e;__;esc_attr_e\n"
16
- "X-Poedit-Basepath: ./\n"
17
- "X-Poedit-SearchPath-0: ..\n"
18
- "X-Poedit-SearchPath-1: ../lib\n"
19
-
20
- #: ../admin.php:13
21
- #, php-format
22
- msgid "Fancybox for WordPress (version %s)"
23
- msgstr "Fancybox dla WordPress (wersja %s)"
24
-
25
- #: ../admin.php:25
26
- msgid "Info"
27
- msgstr "Informacje"
28
-
29
- #: ../admin.php:26
30
- msgid "Appearance"
31
- msgstr "Wygląd"
32
-
33
- #: ../admin.php:27
34
- msgid "Animations"
35
- msgstr "Animacje"
36
-
37
- #: ../admin.php:28
38
- msgid "Behaviour"
39
- msgstr "Zachowanie"
40
-
41
- #: ../admin.php:29
42
- msgid "Galleries"
43
- msgstr "Galerie"
44
-
45
- #: ../admin.php:30
46
- msgid "Miscellaneous"
47
- msgstr "Inne"
48
-
49
- #: ../admin.php:31
50
- msgid "Extra Calls"
51
- msgstr "Odwołania"
52
-
53
- #: ../admin.php:32
54
- msgid "Troubleshooting"
55
- msgstr "Problemy"
56
-
57
- #: ../admin.php:33 ../lib/admin-tab-support.php:1
58
- msgid "Support"
59
- msgstr "Wsparcie"
60
-
61
- #: ../admin.php:34 ../lib/admin-tab-uninstall.php:1
62
- msgid "Uninstall"
63
- msgstr "Odinstalowanie"
64
-
65
- #: ../admin.php:81
66
- msgid "Save Changes"
67
- msgstr "Zapisz zmiany"
68
-
69
- #: ../admin.php:88
70
- msgid "Revert to defaults"
71
- msgstr "Przywróć do ustawień domyślnych"
72
-
73
- #: ../admin.php:96
74
- msgid "If you use FancyBox and like it, buy the author a beer!"
75
- msgstr "Jeśli używasz FancyBox i podoba ci się, postaw autorowi piwo!"
76
-
77
- #: ../admin.php:113
78
- msgid "The author of this WordPress Plugin also likes beer :P"
79
- msgstr "Autor tej wtyczki do Wordpressa także lubi piwo :P"
80
-
81
- #: ../admin.php:123
82
- msgid "Follow me on Twitter for more WordPress Plugins and Themes"
83
- msgstr "Śledź mnie na Twitterze dla innych wtyczek i motywów Wordpress"
84
-
85
- #: ../fancybox.php:439
86
- msgid "Settings"
87
- msgstr "Ustawienia"
88
-
89
- #: ../lib/admin-tab-animations.php:1
90
- msgid "Animation Settings <span style=\"color:green\">(basic)</span>"
91
- msgstr "Ustawienia animacji<span style=\"color:green\">(podstawowe)</span>"
92
-
93
- #: ../lib/admin-tab-animations.php:3
94
- msgid ""
95
- "These settings control the animations when opening and closing Fancybox, and "
96
- "the optional easing effects."
97
- msgstr ""
98
- "Te ustawienia kontrolują animacje podczas otwierania i zamykania Fancybox, "
99
- "oraz opcjonalnie efekty przejścia."
100
-
101
- #: ../lib/admin-tab-animations.php:9
102
- msgid "Zoom Options"
103
- msgstr "Opcje powiększenia"
104
-
105
- #: ../lib/admin-tab-animations.php:15
106
- msgid "Change content transparency during zoom animations (default: on)"
107
- msgstr ""
108
- "Zmień przezroczystość zawartości podczas animacji powiększania (domyślnie: "
109
- "włączone)"
110
-
111
- #: ../lib/admin-tab-animations.php:27
112
- msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
113
- msgstr "Czas trwania w milisekundach animacji powiększania (domyślnie: 500)"
114
-
115
- #: ../lib/admin-tab-animations.php:39
116
- msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
117
- msgstr "Czas trwania w milisekundach animacji pomniejszania (domyślnie: 500)"
118
-
119
- #: ../lib/admin-tab-animations.php:51
120
- msgid ""
121
- "Speed in miliseconds of the animation when navigating thorugh gallery items "
122
- "(default: 500)"
123
- msgstr ""
124
- "Czas trwania w milisekundach animacji przejścia między elementami galerii "
125
- "(domyślnie: 500)"
126
-
127
- #: ../lib/admin-tab-animations.php:59
128
- msgid "Transition Type"
129
- msgstr "Typ przejścia"
130
-
131
- #: ../lib/admin-tab-animations.php:73
132
- msgid "Transition type when opening FancyBox. (default: fade)"
133
- msgstr "Przejście podczas otwierania Fancybox (domyślnie: fade)"
134
-
135
- #: ../lib/admin-tab-animations.php:86
136
- msgid "Transition type when closing FancyBox. (default: fade)"
137
- msgstr "Przejście podczas zamykania Fancybox (domyślnie: fade)"
138
-
139
- #: ../lib/admin-tab-animations.php:94
140
- msgid "Easing"
141
- msgstr "Dodatkowe animacje przejścia"
142
-
143
- #: ../lib/admin-tab-animations.php:100
144
- msgid "Activate easing (default: off)"
145
- msgstr "Włącz dodatkowe animacje przejścia (domyślnie: wyłączone)"
146
-
147
- #: ../lib/admin-tab-animations.php:103
148
- msgid "(Will load one additional javascript file, 8KB)"
149
- msgstr "(Załaduje dodatkowy plik JavaScript, 8KB)"
150
-
151
- #: ../lib/admin-tab-animations.php:117
152
- msgid "Easing method when opening FancyBox. (default: easeOutBack)"
153
- msgstr "Przejście podczas otwierania Fancybox (domyślnie: easeOutBack)"
154
-
155
- #: ../lib/admin-tab-animations.php:120
156
- msgid "(Requires opening transition type to be set to elastic)"
157
- msgstr "(Wymaga ustawionego przejścia otwierania na elastic)"
158
-
159
- #: ../lib/admin-tab-animations.php:132
160
- msgid "Easing method when closing FancyBox. (default: easeInBack)"
161
- msgstr "Przejście podczas zamykania Fancybox (domyślnie: easeInBack)"
162
-
163
- #: ../lib/admin-tab-animations.php:135
164
- msgid "(Requires closing transition type to be set to elastic)"
165
- msgstr "(Wymaga ustawionego przejścia zamykania na elastic)"
166
-
167
- #: ../lib/admin-tab-animations.php:147
168
- msgid ""
169
- "Easing method when navigating through gallery items. (default: "
170
- "easeInOutQuart)"
171
- msgstr ""
172
- "Animacja przejścia między elementami galerii (domyślnie: easeInOutQuart)"
173
-
174
- #: ../lib/admin-tab-animations.php:150
175
- msgid ""
176
- "(There are 30 different easing methods, the first ones are the most boring. "
177
- "You can test them <a href=\"http://commadot.com/jquery/easing.php\" target="
178
- "\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/"
179
- "animationtypes.html\" target=\"_blank\">here</a>)"
180
- msgstr ""
181
- "(Jest 30 różnych animacji przejścia, pierwsza są najbaridzej nudne. Możesz "
182
- "je przetestować <a href=\"http://commadot.com/jquery/easing.php\" target="
183
- "\"_blank\">tutaj</a> albo <a href=\"http://hosted.zeh.com.br/mctween/"
184
- "animationtypes.html\" target=\"_blank\">tutaj</a>)"
185
-
186
- #: ../lib/admin-tab-appearance.php:1
187
- msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
188
- msgstr "Ustawienia wyglądu <span style=\"color:green\">(podstawowe)</span>"
189
-
190
- #: ../lib/admin-tab-appearance.php:3
191
- msgid ""
192
- "These setting control how Fancybox looks, they let you tweak color, borders "
193
- "and position of elements, like the image title and closing buttons."
194
- msgstr ""
195
- "Te ustawienia kontrolują jak wygląda Fancybox, pozwalają zmieniać kolor, "
196
- "obramowanie i położenie elementów, jak tytuł obrazu i przyciski zamykania."
197
-
198
- #: ../lib/admin-tab-appearance.php:9
199
- msgid "Border"
200
- msgstr "Obramowanie"
201
-
202
- #: ../lib/admin-tab-appearance.php:15
203
- msgid "Show Border (default: off)"
204
- msgstr "Pokaż obramowanie (domyślnie: wyłączone)"
205
-
206
- #: ../lib/admin-tab-appearance.php:22
207
- msgid "HTML color of the border (default: #BBBBBB)"
208
- msgstr "Kolor HTML obramowania (domyślnie: #bbbbbb)"
209
-
210
- #: ../lib/admin-tab-appearance.php:33
211
- msgid "Close Button"
212
- msgstr "Przycisk zamykania"
213
-
214
- #: ../lib/admin-tab-appearance.php:39
215
- msgid "Show Close button (default: on)"
216
- msgstr "Pokaż przycisk zamykania (domyślnie: włączone)"
217
-
218
- #: ../lib/admin-tab-appearance.php:44
219
- msgid "Close button position:"
220
- msgstr "Położenie przycisku zamykania:"
221
-
222
- #: ../lib/admin-tab-appearance.php:47
223
- msgid "Left"
224
- msgstr "Po lewej"
225
-
226
- #: ../lib/admin-tab-appearance.php:52
227
- msgid "Right (default)"
228
- msgstr "Po prawej (domyślnie)"
229
-
230
- #: ../lib/admin-tab-appearance.php:57
231
- msgid "Bottom"
232
- msgstr "Na dole"
233
-
234
- #: ../lib/admin-tab-appearance.php:62
235
- msgid "Top (default)"
236
- msgstr "U góry (domyślnie)"
237
-
238
- #: ../lib/admin-tab-appearance.php:72
239
- msgid "FancyBox Shape"
240
- msgstr ""
241
-
242
- #: ../lib/admin-tab-appearance.php:78
243
- msgid "Padding HTML color (default: #FFFFFF)"
244
- msgstr "Kolor HTML marginesu wewnętrznego (domyślnie: #ffffff)"
245
-
246
- #: ../lib/admin-tab-appearance.php:82
247
- msgid ""
248
- "(This should be left on #FFFFFF (white) if you want to display anything "
249
- "other than images, like inline or framed content)"
250
- msgstr ""
251
- "(Powinno pozostać ustawione na #ffffff (biały) jeśli chcesz wyświetlać coś "
252
- "poza obrazami, jak zawartość inline albo z ramki)"
253
-
254
- #: ../lib/admin-tab-appearance.php:86
255
- msgid "Padding size in pixels (default: 15)"
256
- msgstr "Rozmiar marginesu wewnętrznego (domyślnie: 10)"
257
-
258
- #: ../lib/admin-tab-appearance.php:91
259
- msgid "Rounded Corners radius (default: 5)"
260
- msgstr "Promień zaokrąglonych naróżników (domyślnie: 5)"
261
-
262
- #: ../lib/admin-tab-appearance.php:96
263
- msgid "Rounded Corners inner radius (default: 0)"
264
- msgstr ""
265
-
266
- #: ../lib/admin-tab-appearance.php:104
267
- msgid "Overlay Options"
268
- msgstr "Ustawienia nakładki"
269
-
270
- #: ../lib/admin-tab-appearance.php:110
271
- msgid "Add overlay (default: on)"
272
- msgstr "Dodaj nakładkę (domyślnie: włączone)"
273
-
274
- #: ../lib/admin-tab-appearance.php:117
275
- msgid "Overlay HTML color (default: #000000)"
276
- msgstr "Kolor HTML nakładki (domyślnie: #000000)"
277
-
278
- #: ../lib/admin-tab-appearance.php:131
279
- msgid "Overlay opacity. 0 is transparent, 1 is opaque (default: 0.7)"
280
- msgstr ""
281
- "Przezroczystość nakładki. 0 to całkowicie przezroczyste, 1 to całkowicie "
282
- "nieprzezroczyste (domyślnie: 0.7)"
283
-
284
- #: ../lib/admin-tab-appearance.php:141
285
- msgid "Shadow"
286
- msgstr "Cień"
287
-
288
- #: ../lib/admin-tab-appearance.php:147
289
- msgid "Shadow size (default: 25)"
290
- msgstr "Rozmiar cienia (domyślnie: 25)"
291
-
292
- #: ../lib/admin-tab-appearance.php:152
293
- msgid "Shadow distance (default: 10)"
294
- msgstr "Odległość cienia (domyślnie: 10)"
295
-
296
- #: ../lib/admin-tab-appearance.php:165
297
- msgid "Shadow opacity. 0 is transparent, 1 is opaque (default: 0.5)"
298
- msgstr ""
299
- "Przezroczystość cienia. 0 to całkowicie przezroczyste, 1 to całkowicie "
300
- "nieprzezroczyste (domyślnie: 0.5)"
301
-
302
- #: ../lib/admin-tab-appearance.php:173
303
- msgid "Title"
304
- msgstr "Tytuł"
305
-
306
- #: ../lib/admin-tab-appearance.php:179
307
- msgid "Show the title (default: on)"
308
- msgstr "Pokaż tytuł (domyślnie: włączone)"
309
-
310
- #: ../lib/admin-tab-appearance.php:186
311
- msgid "Inside (default)"
312
- msgstr "Wewnątrz (domyślnie)"
313
-
314
- #: ../lib/admin-tab-appearance.php:191
315
- msgid "Outside"
316
- msgstr "Na zewnątrz"
317
-
318
- #: ../lib/admin-tab-appearance.php:196
319
- msgid "Over"
320
- msgstr "Nad zawartością"
321
-
322
- #: ../lib/admin-tab-appearance.php:203
323
- msgid "Title text color (default: #333333)"
324
- msgstr "Kolor tekstu tytułu (domyślnie: #333333)"
325
-
326
- #: ../lib/admin-tab-appearance.php:207
327
- msgid "(Should contrast with the padding color set above)"
328
- msgstr ""
329
- "(Powinien być kontrastowy w stosunku do koloru marginesu wewnętrznego "
330
- "ustawionego powyżej)"
331
-
332
- #: ../lib/admin-tab-appearance.php:218
333
- msgid "Navigation Arrows"
334
- msgstr "Strzałki nawigacyjne"
335
-
336
- #: ../lib/admin-tab-appearance.php:224
337
- msgid "Show the navigation arrows (default: on)"
338
- msgstr "Pokaż strzałki nawigacyjne (domyślnie: włączone)"
339
-
340
- #: ../lib/admin-tab-behaviour.php:1
341
- msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
342
- msgstr "Ustawienia zachowania <span style=\"color:orange\">(średnie)</span>"
343
-
344
- #: ../lib/admin-tab-behaviour.php:3
345
- msgid ""
346
- "The following settings should be left alone unless you know what you are "
347
- "doing."
348
- msgstr ""
349
- "Poniższe ustawienia powinny pozostać niezmienione, chyba że wiesz co robisz."
350
-
351
- #: ../lib/admin-tab-behaviour.php:9
352
- msgid "Auto Resize to Fit"
353
- msgstr "Automatycznie zmień rozmiar"
354
-
355
- #: ../lib/admin-tab-behaviour.php:15
356
- msgid "Scale images to fit in viewport (default: on)"
357
- msgstr ""
358
- "Skaluje obrazy by zmieścić je w oknie przeglądarki (domyślnie: włączone)"
359
-
360
- #: ../lib/admin-tab-behaviour.php:23
361
- msgid "Center on Scroll"
362
- msgstr "Wycentruj przy przewijaniu"
363
-
364
- #: ../lib/admin-tab-behaviour.php:29
365
- msgid ""
366
- "Keep image in the center of the browser window when scrolling (default: on)"
367
- msgstr ""
368
- "Trzymaj obraz wyśrodkowany w oknie przeglądarki podczas przewijania "
369
- "(domyślnie: włączone)"
370
-
371
- #: ../lib/admin-tab-behaviour.php:37
372
- msgid "Close on Content Click"
373
- msgstr "Zamknij po kliknięciu na zawartość"
374
-
375
- #: ../lib/admin-tab-behaviour.php:43
376
- msgid "Close FancyBox by clicking on the image (default: off)"
377
- msgstr "Zamknij Fancybox klikając na obraz (domyślnie: wyłączone)"
378
-
379
- #: ../lib/admin-tab-behaviour.php:46
380
- msgid ""
381
- "(You may want to leave this off if you display iframed or inline content "
382
- "that containts clickable elements - for example: play buttons for movies, "
383
- "links to other pages)"
384
- msgstr ""
385
- "(Zostaw to wyłączone jeśli chcesz wyświetlać zawartość z ramek albo inline z "
386
- "odnośnikami - na przykład: przyciski odtwarzania wideo, albo odnośniki do "
387
- "stron)"
388
-
389
- #: ../lib/admin-tab-behaviour.php:53
390
- msgid "Close on Overlay Click"
391
- msgstr "Zamknij po kliknięciu na nakładkę"
392
-
393
- #: ../lib/admin-tab-behaviour.php:59
394
- msgid "Close FancyBox by clicking on the overlay sorrounding it (default: on)"
395
- msgstr ""
396
- "Zamknij Fancybox po kliknięciu na nakładkę otaczającą go (domyślnie: "
397
- "włączone)"
398
-
399
- #: ../lib/admin-tab-behaviour.php:67
400
- msgid "Close with &quot;Esc&quot;"
401
- msgstr "Zamknij przy naciśnięciu &quot;Esc&quot;"
402
-
403
- #: ../lib/admin-tab-behaviour.php:73
404
- msgid "Close FancyBox when &quot;Escape&quot; key is pressed (default: on)"
405
- msgstr ""
406
- "Zamknij Fancybox jeśli zostanie wciśnięty klawisz &quot;Escape&quot; "
407
- "(domyślnie: włączone)"
408
-
409
- #: ../lib/admin-tab-behaviour.php:81
410
- msgid "Cyclic Galleries"
411
- msgstr "Zapętl galerie"
412
-
413
- #: ../lib/admin-tab-behaviour.php:87
414
- msgid ""
415
- "This will make galleries cyclic, allowing you to keep pressing next/back "
416
- "(default: on)"
417
- msgstr ""
418
- "To sprawi, że galerie będą zapętlone i będziesz mógł przechodzić od końca do "
419
- "początku odnośnikami następny/poprzedni (domyślnie: wyłączone)"
420
-
421
- #: ../lib/admin-tab-behaviour.php:95
422
- msgid "Mouse Wheel Navigation"
423
- msgstr "Nawigacja kółkiem myszy"
424
-
425
- #: ../lib/admin-tab-behaviour.php:101
426
- msgid "Lets visitors navigate galleries with the mouse wheel (default: off)"
427
- msgstr ""
428
- "Pozwól nawigować po galerii za pomocą kółka myszki (domyślnie: wyłączone)"
429
-
430
- #: ../lib/admin-tab-behaviour.php:104
431
- msgid "(Will load one additional javascript file, 3KB)"
432
- msgstr "(Załaduje dodatkowy plik JavaScript, 3KB)"
433
-
434
- #: ../lib/admin-tab-calls.php:1
435
- msgid "Extra FancyBox Calls <span style=\"color:red\">(advanced)</span>"
436
- msgstr ""
437
- "Dodatkowe odwołania Fancybox <span style=\"color:red\">(zaawansowane)</span>"
438
-
439
- #: ../lib/admin-tab-calls.php:3
440
- msgid ""
441
- "Here you can add as many additional calls to fancybox as you want, with "
442
- "different settings. For example, if you want to use fancybox with iframes or "
443
- "ajax on any specific link, you can configure those calls here without "
444
- "affecting the settings for images."
445
- msgstr ""
446
- "Tutaj możesz dodać tyle dodakowych odwołać ile chcesz, z różnymi "
447
- "ustawieniami. Na przykład, jeśli chcesz użyć Fancybox z ramkami albo "
448
- "zawartością z AJAX na dowolnym odnośniku, możesz skonfigurować te odwołania "
449
- "tutaj bez wpływu na ustawienia dla obrazów."
450
-
451
- #: ../lib/admin-tab-calls.php:5
452
- msgid ""
453
- "For information on the options available you can use here see <a href="
454
- "\"http://fancybox.net/api\">FancyBox's API & Options page</a>."
455
- msgstr ""
456
- "By uzyskać więcej informacji o dostępnych opcjach zobacz stronę <a href="
457
- "\"http://fancybox.net/api\">Opcje i API Fancybox</a>."
458
-
459
- #: ../lib/admin-tab-calls.php:11
460
- msgid "Additional FancyBox Calls"
461
- msgstr "Dodatkowe odwołania"
462
-
463
- #: ../lib/admin-tab-calls.php:17
464
- msgid "Additional FancyBox Calls (default: off)"
465
- msgstr "Dodatkowe odwołania (domyślnie: wyłączone)"
466
-
467
- #: ../lib/admin-tab-calls.php:26 ../lib/admin-tab-other.php:89
468
- msgid "Example:"
469
- msgstr "Przykład:"
470
-
471
- #: ../lib/admin-tab-galleries.php:1
472
- msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
473
- msgstr "Ustawienia galerii <span style=\"color:red\">(zaawansowane)</span>"
474
-
475
- #: ../lib/admin-tab-galleries.php:3
476
- msgid ""
477
- "Here you can choose if you want the plugin to group all images into a "
478
- "gallery, or make a gallery for each post. You can also define you own jQuery "
479
- "expression if you like."
480
- msgstr ""
481
- "Tutaj możesz wybrać czy chcesz by wtyczka grupowałą wszystkie obrazy w "
482
- "galerię, czy tylko obrazy danego posta. Możesz też zdefiniować własne "
483
- "wyrażenie jQuery."
484
-
485
- #: ../lib/admin-tab-galleries.php:9
486
- msgid "Gallery Type"
487
- msgstr "Typ galerii"
488
-
489
- #: ../lib/admin-tab-galleries.php:15
490
- msgid "Make a gallery for all images on the page (default)"
491
- msgstr "Utwórz galerię dla wszystkich obrazów na stronie (domyślnie)"
492
-
493
- #: ../lib/admin-tab-galleries.php:20
494
- msgid ""
495
- "Do not group images in gallery automatically (use this if you want to make "
496
- "galleries manually with the <code>REL</code> attribute)"
497
- msgstr ""
498
- "Nie grupuj obrazów w galerię automatycznie (użyj tego jeśli chcesz grupować "
499
- "galerię ręcznie za pomocą atrybutu <code>REL</code>)"
500
-
501
- #: ../lib/admin-tab-galleries.php:25
502
- msgid ""
503
- "Make a gallery for each post (will only work if your theme uses <code>class="
504
- "\"post\"</code> on each post, which is common in WordPress"
505
- msgstr ""
506
- "Utwórz galerię dla każdego posta (zadziała jeśli motyw którego używasz "
507
- "korzysta z <code>class=\"post\"</code> na każdym poście, co jest zwyczajowe "
508
- "w Wordpress)"
509
-
510
- #: ../lib/admin-tab-galleries.php:30
511
- msgid "Use a custom expression to apply FancyBox"
512
- msgstr "Użyj własnego wyrażenia by włączyć Fancybox"
513
-
514
- #: ../lib/admin-tab-galleries.php:39
515
- msgid "Custom expression guidelines:"
516
- msgstr "Wytyczne do własnego wyrażenia:"
517
-
518
- #: ../lib/admin-tab-galleries.php:41
519
- msgid ""
520
- "&middot; The custom expression has to apply <code>class=\"fancybox\"</code> "
521
- "to the links where you want to use FancyBox. Do not call the <code>fancybox()"
522
- "</code> function here, the plugin does this for you."
523
- msgstr ""
524
- "&middot; Własne wyrażene musi stosować <code>class=\"fancybox\"</code> do "
525
- "odnośników z którymi chcesz użyć Fancybox. Nie odwołuj się do funkcji "
526
- "<code>fancybox()</code> tutaj, wtyczka robi to za ciebie."
527
-
528
- #: ../lib/admin-tab-galleries.php:43
529
- msgid ""
530
- "&middot; The jQuery <code>addClass()</code> function is a good way to add "
531
- "the class to the desired links conserving any existing class."
532
- msgstr ""
533
- "&middot; Funkcja <code>addClass()</code> jQuery jest dobrym rozwiązaniem by "
534
- "dodać klasę do odnośników, zachowując już istniejące klasy."
535
-
536
- #: ../lib/admin-tab-galleries.php:45
537
- msgid ""
538
- "&middot; You can use <code>getTitle()</code> in your expression to copy the "
539
- "title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so "
540
- "that FancyBox can show captions."
541
- msgstr ""
542
- "&middot; Możesz użyć <code>getTitle()</code> w swoim wyrażeniu by skopiować "
543
- "atrybut tytułu ze znacznika <code>IMG</code> do znacznika <code>A</code>, by "
544
- "Fancybox mógł pokazywać podpisy."
545
-
546
- #: ../lib/admin-tab-galleries.php:47
547
- msgid ""
548
- "&middot; You can use <code>jQuery(thumbnails)</code> like in the example "
549
- "expression to apply FancyBox to thumbnails that link to these extensions: "
550
- "BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase)."
551
- msgstr ""
552
- "&middot; Możesz użyć <code>jQuery(thumbnails)</code> jak w przykładowym "
553
- "wyrażeniu by włączyć Fancybox dla miniatur z tymi rozszerzeniami: BMP, GIF, "
554
- "JPG, JPEG, PNG (zarówno małymi jak i wielkimi literami)."
555
-
556
- #: ../lib/admin-tab-galleries.php:49
557
- msgid ""
558
- "&middot; If you want to do it manually you can use something like "
559
- "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> or whatever works for you."
560
- msgstr ""
561
- "&middot; Jeśli chcesz zrobić to ręcznie możesz użyć na przykład <code>jQuery"
562
- "(\"a:has(img)[href$='.jpg']\")</code> czy cokolwiek co jest ci potrzebne."
563
-
564
- #: ../lib/admin-tab-galleries.php:51
565
- msgid ""
566
- "See the <a href=\"http://docs.jquery.com/\" target=\"_blank\">jQuery "
567
- "Documentation</a> for more help."
568
- msgstr ""
569
- "Sprawdź <a href=\"http://docs.jquery.com/\" target=\"_blank\">dokumentację "
570
- "jQuery</a> by uzyskać więcej informacji."
571
-
572
- #: ../lib/admin-tab-galleries.php:53
573
- msgid "Examples:"
574
- msgstr "Przykłady:"
575
-
576
- #: ../lib/admin-tab-info.php:1
577
- msgid "Information"
578
- msgstr "Informacje"
579
-
580
- #: ../lib/admin-tab-info.php:3
581
- msgid ""
582
- "<a target=\"_blank\" href=\"http://fancybox.net\">FancyBox</a> developed by "
583
- "<a target=\"_blank\" href=\"http://fancybox.net\">Janis Skarnelis</a>, "
584
- "ported to WordPress by <a target=\"_blank\" href=\"http://josepardilla.com/"
585
- "\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href="
586
- "\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
587
- msgstr ""
588
- "<a href=\"http://fancybox.net\">FancyBox</a> rozwijany przez <a href="
589
- "\"http://fancybox.net\">Janis Skarnelis</a>, zaadopotowany do Wordpress "
590
- "przez <a href=\"http://http://josepardilla.com/\">Jos&eacute; Pardilla</a>. "
591
- "Licencjowany na zasadach <a target=\"_blank\" href=\"http://en.wikipedia.org/"
592
- "wiki/MIT_License\">licencji MIT</a>."
593
-
594
- #: ../lib/admin-tab-info.php:5
595
- msgid ""
596
- "As you can see, this plugin has many options you can edit, but have no fear, "
597
- "you can leave everything as it is if you don't want to get your hands dirty, "
598
- "since the default options should be a good start... :)"
599
- msgstr ""
600
- "Jak widzisz, ta wtyczka ma wiele opcji które możesz zmienić, ale nie bój "
601
- "się, możesz też zostawić wszystko tak jak jest jeśli nie chcesz pobrudzić "
602
- "sobie rąk, ponieważ domyślne opcje powinny wystarczyć na początek .. :)"
603
-
604
- #: ../lib/admin-tab-info.php:7
605
- msgid ""
606
- "If you are an advanced user you can <a target=\"_blank\" href=\"https://"
607
- "github.com/moskis/fancybox-for-wordpress\">follow the plugin in Github</a>, "
608
- "fork it or help submitting fixes!"
609
- msgstr ""
610
- "Jeśli jesteś zaawansowanym użytkownikiem możesz <a target=\"_blank\" href="
611
- "\"https://github.com/moskis/fancybox-for-wordpress\">śledzić tą wtyczkę na "
612
- "Github</a>, rozpocząć swoją gałąź albo przesłać poprawki!"
613
-
614
- #: ../lib/admin-tab-info.php:9
615
- msgid ""
616
- "<strong>Note:</strong> Having a cache plugin may prevent changes from taking "
617
- "effect immidiately, if this happens clear cache after saving changes here or "
618
- "deactivate cache until you finish editing these options."
619
- msgstr ""
620
- "<strong>Notatka:</strong> Uzywanie wtyczki do pamięci podręcznej może "
621
- "sprawić, że zmiany nie będą odnosiły skutku natychmiast, jeśli tak się "
622
- "stanie wyczyść pamięć podręczną po zapisaniu ustawień albo wyłącz pamięć "
623
- "podręczną na czas zmieniania ustawień."
624
-
625
- #: ../lib/admin-tab-other.php:1
626
- msgid "Other Settings <span style=\"color:red\">(advanced)</span>"
627
- msgstr "Inne ustawienia <span style=\"color:red\">(zaawansowane)</span>"
628
-
629
- #: ../lib/admin-tab-other.php:3
630
- msgid "These are additional settings for advanced users."
631
- msgstr "To są dodatkowe ustawienia dla zaawansowanych użytkowników."
632
-
633
- #: ../lib/admin-tab-other.php:9
634
- msgid "Dimensions"
635
- msgstr "Wymiary"
636
-
637
- #: ../lib/admin-tab-other.php:15
638
- msgid "Auto detect dimensions (default: on)"
639
- msgstr "Automatycznie wykryj wymiary (domyślnie: włączone)"
640
-
641
- #: ../lib/admin-tab-other.php:18
642
- msgid ""
643
- "Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! "
644
- "Flash dimensions won't be autodetected so specify them below if necessary. "
645
- "If you want to insert several pieces of flash content with different "
646
- "dimensions you will have to use the <strong>Additional FancyBox Calls</"
647
- "strong> option."
648
- msgstr ""
649
- "Działa tylko z <strong>AJAX</strong> i zawartością <strong>inline</strong>! "
650
- "Wymiary Flasha nie zostaną wykryte automatycznie więc ustaw je poniżej jeśli "
651
- "trzeba. Jeśli wstawisz kilka zawartości Flash z różnymi wymiarami będziesz "
652
- "musiał użyć opcji <strong>dodatkowych odwołań</strong>."
653
-
654
- #: ../lib/admin-tab-other.php:22
655
- msgid ""
656
- "Width for iframe and swf content. Also set for inline content if "
657
- "<em>autoDimensions</em> is disabled (default: 560)"
658
- msgstr ""
659
- "Szerokość dla ramki i zawartości Flash. Ustaw także dla zawartości inline "
660
- "jeśli <em>autoDimensions</em> jest wyłączone (domyślnie: 560)"
661
-
662
- #: ../lib/admin-tab-other.php:27
663
- msgid ""
664
- "Height for iframe and swf content. Also set for inline content if "
665
- "<em>autoDimensions</em> is disabled (default: 340)"
666
- msgstr ""
667
- "Wysokość dla ramki i zawartości Flash. Ustaw także dla zawartości inline "
668
- "jeśli <em>autoDimensions</em> jest wyłączone (domyślnie: 340)"
669
-
670
- #: ../lib/admin-tab-other.php:35
671
- msgid "Load JavaScript in Footer"
672
- msgstr "Załaduj JavaScript w stopce"
673
-
674
- #: ../lib/admin-tab-other.php:41
675
- msgid "Loads JavaScript at the end of the blog's HTML (default: off)"
676
- msgstr ""
677
- "Załaduj JavaScript na końcu zawartości HTML (eksperymentalne, domyślnie: "
678
- "wyłączone)"
679
-
680
- #: ../lib/admin-tab-other.php:44
681
- msgid ""
682
- "This option won't be recognized if you use <strong>Parallel Load</strong> "
683
- "plugin. In that case, you can do this from Parallel Load's options."
684
- msgstr ""
685
- "Ta opcja nie zostanie rozpoznana jeśli użyjesz wtyczki <strong>Parallel "
686
- "Load</strong>. W takim wypadku możesz to zrobić z poziomu opcji wtyczki "
687
- "Parallel Load."
688
-
689
- #: ../lib/admin-tab-other.php:51
690
- msgid "Callbacks"
691
- msgstr "Odwołania"
692
-
693
- #: ../lib/admin-tab-other.php:57
694
- msgid "Enable callbacks (default: off)"
695
- msgstr "Włącz odwołania (domyślnie: włączone)"
696
-
697
- #: ../lib/admin-tab-other.php:60
698
- msgid "Enabling this will show additional settings."
699
- msgstr "Włączenie tej opcji pokaże dodatkowe ustawienia."
700
-
701
- #: ../lib/admin-tab-other.php:65
702
- msgid ""
703
- "Callback on <strong>Start</strong> event: Will be called right before "
704
- "attempting to load the content"
705
- msgstr ""
706
- "Odwołanie podczas zdarzenia <strong>Start</strong>: zostanie wywołane zaraz "
707
- "przed załadowaniem zawartości"
708
-
709
- #: ../lib/admin-tab-other.php:70
710
- msgid ""
711
- "Callback on <strong>Cancel</strong> event: Will be called after loading is "
712
- "canceled"
713
- msgstr ""
714
- "Odwołanie podczas zdarzenia <strong>Cancel</strong>: zostanie wywołane "
715
- "jeśli ładowanie zostanie anulowane"
716
-
717
- #: ../lib/admin-tab-other.php:75
718
- msgid ""
719
- "Callback on <strong>Complete</strong> event: Will be called once the content "
720
- "is displayed"
721
- msgstr ""
722
- "Odwołanie podczas zdarzenia <strong>Complete</strong>: zostanie wywołane "
723
- "jak tylko zawartość zostanie wyświetlona"
724
-
725
- #: ../lib/admin-tab-other.php:80
726
- msgid ""
727
- "Callback on <strong>CleanUp</strong> event: Will be called just before "
728
- "closing"
729
- msgstr ""
730
- "Odwołanie podczas zdarzenia <strong>CleanUp</strong>: zostanie wywołane "
731
- "zaraz przed zamknięciem"
732
-
733
- #: ../lib/admin-tab-other.php:85
734
- msgid ""
735
- "Callback on <strong>Closed</strong> event: Will be called once FancyBox is "
736
- "closed"
737
- msgstr ""
738
- "Odwołanie podczas zdarzenia <strong>Cerrado</strong>: zostanie wywołane po "
739
- "zamknięciu"
740
-
741
- #: ../lib/admin-tab-other.php:91
742
- msgid "Leave empty any speciic callbacks you don't need to use."
743
- msgstr "Zostaw puste jeśli nie korzystasz z poszczególnych odwołań"
744
-
745
- #: ../lib/admin-tab-support.php:3
746
- msgid "Help with Fancybox"
747
- msgstr "Pomoc z Fancybox"
748
-
749
- #: ../lib/admin-tab-support.php:5
750
- msgid ""
751
- "If you have problems or questions about FancyBox itself (and not this "
752
- "WordPress plugin), please start with these links: <a target=\"_blank\" href="
753
- "\"http://fancybox.net/howto\">How-To</a> & <a target=\"_blank\" href="
754
- "\"http://fancybox.net/faq\">FAQ</a>.<br />If that does not help, go to <a "
755
- "href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</"
756
- "a>, use the <strong>Search</strong> option, and if necesary, post your "
757
- "question."
758
- msgstr ""
759
- "Jeśli masz problemy albo pytania o Fancybox (nie o wtyczce do Wordpress), "
760
- "zacznij proszę od tych odnośników <a href=\"http://fancybox.net/howto\">How-"
761
- "To</a> i <a href=\"http://fancybox.net/faq\">FAQ</a>.<br />Jeśli to nie "
762
- "pomoże przejrzyj<a href=\"http://groups.google.com/group/fancybox\">Grupę "
763
- "Google FancyBox</a>, użyj opcji <strong>wyszukiwania</strong>, jeśli trzeba "
764
- "lub zamieść pytanie."
765
-
766
- #: ../lib/admin-tab-support.php:8
767
- msgid "Help with Fancybox for WordPress plugin"
768
- msgstr "Pomoc z wtyczką Fancybox dla Wordpress"
769
-
770
- #: ../lib/admin-tab-support.php:10
771
- msgid ""
772
- "If you are having trouble with this plugin take a look at this <a target="
773
- "\"_blank\" href=\"http://plugins.josepardilla.com/fancybox-for-wordpress/faq"
774
- "\">FAQ</a> where i will try to cover the most common problems and their "
775
- "solutions."
776
- msgstr ""
777
- "Jeśli masz problemy z tą wtyczką zajrzyj tutaj <a target=\"_blank\" href="
778
- "\"http://plugins.josepardilla.com/fancybox-for-wordpress/faq\">FAQ</a> gdzie "
779
- "staram się opisać najczęstsze problemy i ich rozwiązania."
780
-
781
- #: ../lib/admin-tab-support.php:11
782
- msgid ""
783
- "Try to localize the problem (switch your theme and deactivate plugins until "
784
- "you find the source of the problem). You can also try the Troubleshooting "
785
- "settings of this plugin if necesary."
786
- msgstr ""
787
- "Staraj się zlokalizować problem (zmień motyw, wyłącz wtyczki). Możesz też "
788
- "sprawdzić ustawienia Rozwiązywania problemów jeśli trzeba."
789
-
790
- #: ../lib/admin-tab-support.php:12
791
- msgid ""
792
- "Try reverting the plugin's settings to their defaults with the button below."
793
- msgstr ""
794
- "Spróbuj przywrócić ustawienia wtyczki do domyślnych przyciskiem poniżej."
795
-
796
- #: ../lib/admin-tab-support.php:13
797
- msgid ""
798
- "If you still can not get the plugin to work, <a target=\"_blank\" href="
799
- "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
800
- "\">write a post in the WordPress Support forums</a> explaining the problem "
801
- "or take a look and the <a target=\"_blank\" href=\"http://wordpress.org/"
802
- "support/plugin/fancybox-for-wordpress\">already posted messages</a>."
803
- msgstr ""
804
- "Jeśli nadal nie możesz zmusić wtyczki do współpracy, <a target=\"_blank\" "
805
- "href=\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
806
- "\">napisz posta na forum Wsparcia Wordpress</a> opisując problem, lub "
807
- "przejrzyj <a target=\"_blank\" href=\"\"http://wordpress.org/support/plugin/"
808
- "fancybox-for-wordpress\">już zamieszczone wiadomości</a>."
809
-
810
- #: ../lib/admin-tab-support.php:16
811
- msgid "IMPORTANT:"
812
- msgstr "WAŻNE:"
813
-
814
- #: ../lib/admin-tab-support.php:16
815
- msgid ""
816
- "When posting your problem please provide a link to your blog and the page "
817
- "where the error is found, and all relevant information you can, especially "
818
- "your theme, plugins, etc."
819
- msgstr ""
820
- "Zamieszczając swój problem proszę dołączyć odnośnik do swojegu blogu i "
821
- "strony na której występuje błąd, oraz wszystkie powiązane informacje, jak "
822
- "motyw, wtyczki, itp."
823
-
824
- #: ../lib/admin-tab-troubleshooting.php:1
825
- msgid "Troubleshooting Settings"
826
- msgstr "Ustawienia rozwiązywania problemów"
827
-
828
- #: ../lib/admin-tab-troubleshooting.php:3
829
- msgid ""
830
- "Settings in this section should only be changed if you are having problems "
831
- "with the plugin!"
832
- msgstr ""
833
- "Ustawienia w tej sekcji powinny być zmienianie tylko jeśli masz problemy z "
834
- "wtyczką!"
835
-
836
- #: ../lib/admin-tab-troubleshooting.php:5
837
- msgid ""
838
- "If the plugin doesn't seem to work, first you should check for other plugins "
839
- "that may be conflicting with this one, especially other Lightbox, Slimbox, "
840
- "etc. Make sure all your plugins and WordPress itself are up to date."
841
- msgstr ""
842
- "Jeśli wtyczka nie działa, po pierwsze sprawdź czy inny wtyczki nie "
843
- "konfliktują z tą, zwłaszcza Lightbox, Slimbox, itp. Upewnij się, że "
844
- "wszystkie wtyczki oraz sam Wordpress są w aktulanej wersji (ta wtyczka była "
845
- "testowana tylko z Wordpress 2.7 i nowszych)."
846
-
847
- #: ../lib/admin-tab-troubleshooting.php:7
848
- msgid ""
849
- "Change them one at a time and test to see if they help. Remember that having "
850
- "a cache plugin may prevent changes from taking effect immidiately, so clear "
851
- "cache after saving changes here or deactivate cache until you finish editing "
852
- "these options."
853
- msgstr ""
854
- "Zmieniaj je pojedynczo i sprawdzaj za każdym razem czy pomogły. Pamiętaj, że "
855
- "jeśli masz włączoną wtyczkę pamięci podręcznej ustawienia mogę nie odnieść "
856
- "efekty natychmiast, więc wyczyść pamięć podręczną po zapisaniu ustawień albo "
857
- "wyłącz pamięć podręczną na czas zmieniania ustawień."
858
-
859
- #: ../lib/admin-tab-troubleshooting.php:13
860
- msgid "Do not call jQuery"
861
- msgstr "Nie ładuj jQuery"
862
-
863
- #: ../lib/admin-tab-troubleshooting.php:19
864
- msgid ""
865
- "Skip jQuery call. Use this only if jQuery is being loaded twice (default: "
866
- "off)"
867
- msgstr ""
868
- "Pomiń odwołanie do jQuery. Użyj tego tylko jeśli jQuery jest ładowane "
869
- "dwukrotnie (domyślnie: wyłączone)"
870
-
871
- #: ../lib/admin-tab-uninstall.php:3
872
- msgid ""
873
- "Like many other plugins, FancyBox for WordPress stores its settings on your "
874
- "WordPress' options database table. Actually, these settings are not using "
875
- "more than a couple of kilobytes of space, but if you want to completely "
876
- "uninstall this plugin, check the option below, then save changes, and "
877
- "<strong>when you deactivate the plugin</strong>, all its settings will be "
878
- "removed from the database."
879
- msgstr ""
880
- "Jak wiele innych wtyczek, Fancybox dla Wordpress trzyma swoje ustawienia w "
881
- "tabeli ustawień Wordpress. W zasadzie te ustawienia nie zajmują więcej niż "
882
- "kilka kilobajtów, ale jeśli chcesz kompletnie odinstalować wtyczkę, zaznacz "
883
- "opcję poniżej, a potem zapisz opcje. <strong>Kiedy wyłączysz wtyczkę</"
884
- "strong>wszystkie ustawienia zostaną usunięte z bazy danych."
885
-
886
- #: ../lib/admin-tab-uninstall.php:9
887
- msgid "Remove settings"
888
- msgstr "Usuń ustawienia"
889
-
890
- #: ../lib/admin-tab-uninstall.php:15
891
- msgid ""
892
- "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. "
893
- "(default: off)"
894
- msgstr ""
895
- "Usuń ustawienia kiedy wtyczka zostanie wyłączona z panelu \"Zarządzania "
896
- "wtyczkami\". (domyślnie: wyłączone)"
897
-
898
- #~ msgid "Fancybox for WordPress Options"
899
- #~ msgstr "Opcje wtyczki Fancybox dla Wordpress"
900
-
901
- #~ msgid "Fancybox for WP"
902
- #~ msgstr "Fancybox dla WP"
903
-
904
- #~ msgid "FancyBox for WordPress settings have been reset"
905
- #~ msgstr "Ustawienia wtyczki Fancybox dla Wordpress zostały zresetowane"
906
-
907
- #~ msgid "Padding"
908
- #~ msgstr "Margines wewnętrzny"
909
-
910
- #~ msgid "HTML color of the overlay (default: #666666)"
911
- #~ msgstr "Kolor HTML nakładki (domyślnie: #666666)"
912
-
913
- #~ msgid ""
914
- #~ "<strong>Note:</strong> If update to version 3.0.0 breaks fancybox on your "
915
- #~ "blog you will probably have to reset your settings (with the white button "
916
- #~ "below). I have tested this issue on several WordPress installations and "
917
- #~ "it always worked, so it might depend on the server. Sorry for the "
918
- #~ "inconvinience."
919
- #~ msgstr ""
920
- #~ "<strong>Notatka:</strong> Jeśli aktualizacja do wersji 3.0.0 psuje "
921
- #~ "Fancybox na twoim blogu będziesz musiał prawdopodobnie zresetować "
922
- #~ "ustawienia (białym przyciskiem poniżej). Testowałem ten problem na kilku "
923
- #~ "instalacjach Wordpress i zawsze działało, więc może to zależeć od "
924
- #~ "serwera. Przepraszam ze niedogodności."
925
-
926
- #~ msgid "Callback on Start event (default: empty)"
927
- #~ msgstr "Retrollamada en el evento de Inicio (por defecto: vacío)"
928
-
929
- #~ msgid "Callback on Show event (default: empty)"
930
- #~ msgstr "Retrollamada en el evento de Mostrado (por defecto: vacío)"
931
-
932
- #~ msgid "Callback on Close event (default: empty)"
933
- #~ msgstr "Retrollamada en el evento de Cerrado (por defecto: vacío)"
934
-
935
- #~ msgid "Leave the fields empty to disable."
936
- #~ msgstr "Deja estos campos vacíos para desactivar cualqueir retrollamada."
937
-
938
- #~ msgid "Frame Size"
939
- #~ msgstr "Tamaño del recuadro"
940
-
941
- #~ msgid ""
942
- #~ "Width in pixels of FancyBox when showing iframe content (default: 560)"
943
- #~ msgstr ""
944
- #~ "Ancho en píxeles de FancyBox cuado se muestre contenido anidado (por "
945
- #~ "defecto: 560)"
946
-
947
- #~ msgid ""
948
- #~ "Height in pixels of FancyBox when showing iframe content (default: 340)"
949
- #~ msgstr ""
950
- #~ "Alto en píxeles de FancyBox cuado se muestre contenido anidado (por "
951
- #~ "defecto: 340)"
952
-
953
- #~ msgid "jQuery \"noConflict\" Mode"
954
- #~ msgstr "Modo jQuery \"noConflict\""
955
-
956
- #~ msgid "Use jQuery noConflict mode (default: on)"
957
- #~ msgstr "Usar parámetro noConflict de jQuery (por defecto: activado)"
958
-
959
- #~ msgid ""
960
- #~ "(Turning this off may cause problems if there are plugins activated that "
961
- #~ "use other js framework like mootools, prototype, scriptaculous, etc.)"
962
- #~ msgstr ""
963
- #~ "(Desactivar esta opción puede causar problemas si hay plugins activadoes "
964
- #~ "que usen otros frameworks javascript como Mootols, Prototype, "
965
- #~ "Scriptaculous, etc.)"
966
-
967
- #~ msgid "Presentation"
968
- #~ msgstr "Presentación"
969
-
970
- #~ msgid ""
971
- #~ "These are the main settings, which let you tweak color, borders and "
972
- #~ "animation."
973
- #~ msgstr ""
974
- #~ "Estas son las opciones principales, que te permiten ajustar los colores, "
975
- #~ "bordes y animación."
976
-
977
- #~ msgid ""
978
- #~ "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding "
979
- #~ "Size</strong> to \"0\" for the classic FancyBox look)"
980
- #~ msgstr ""
981
- #~ "(Pon el <strong>Color del Borde</strong> en \"#000000\" y el "
982
- #~ "<strong>Tamaño del Margen</strong> en \"0\" para el aspecto clásico de "
983
- #~ "FancyBox)"
984
-
985
- #~ msgid "Show/Hide Advanced Settings"
986
- #~ msgstr "Mostrar/Ocultar Opciones Avanzadas"
987
-
988
- #~ msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
989
- #~ msgstr "Mostrar/Ocultar Resolución de Problemas y Desinstalaci&oacute;n"
990
-
991
- #~ msgid ""
992
- #~ "Do not call the <code>fancybox()</code> function here, the plugin does "
993
- #~ "this for you."
994
- #~ msgstr ""
995
- #~ "No llames a la función <code>fancybox()</code> desde aquí, eso ya lo hace "
996
- #~ "el plugin por tí."
997
-
998
- #~ msgid "Make a gallery for each post"
999
- #~ msgstr "Hacer una galería para cada entrada"
1000
-
1001
- #~ msgid ""
1002
- #~ "The attribute has to start with fancybox, but can end with however you "
1003
- #~ "like: \"fancybox1\", \"fancybox2\", \"fancybox-custom\" will work."
1004
- #~ msgstr ""
1005
- #~ "El atributo debe empezar por fancybox pero puede terminar como quieras: "
1006
- #~ "\"fancybox1\", \"fancybox2\", \"fancybox-custom\" servirían."
1007
-
1008
- #~ msgid "Horizontal position of the close button (default: right)"
1009
- #~ msgstr ""
1010
- #~ "Posición horizontal del botón para cerrar FancyBox (por defecto: derecha)"
1011
-
1012
- #~ msgid "About"
1013
- #~ msgstr "Informaci&oacute;n"
1014
-
1015
- #~ msgid ""
1016
- #~ "This plugin integrates FancyBox with WordPress without having to edit any "
1017
- #~ "file or code. Once activated the plugin will apply FancyBox automatically "
1018
- #~ "to all image links, including WordPress galleries. Future versions will "
1019
- #~ "include some more options like easier inline content integration and more "
1020
- #~ "advanced customization. Enjoy!"
1021
- #~ msgstr ""
1022
- #~ "Este plugin integra FancyBox con WordPress sin necesidad de editar ningún "
1023
- #~ "archivo o HTML. Una vez activado, el plugin aplicará FancyBox "
1024
- #~ "automáticamente a todos los enlaces a imágenes, incluyendo galerias de "
1025
- #~ "WordPress. Que lo disfrutes!"
1026
-
1027
- #~ msgid ""
1028
- #~ "If you have problems or questions about FancyBox itself you should <a "
1029
- #~ "href=\"http://groups.google.com/group/fancybox\">ask in the FancyBox "
1030
- #~ "Google Group</a>. If you want to make suggestions or ask just about this "
1031
- #~ "WordPress plugin you can <a href=\"http://blog.moskis.net/downloads/"
1032
- #~ "plugins/fancybox-for-wordpress/\">leave a comment here</a>, <a href="
1033
- #~ "\"http://blog.moskis.net/contactar/\">send me an email</a>, or <a href="
1034
- #~ "\"http://twitter.com/moskis\">contact me on twitter</a>."
1035
- #~ msgstr ""
1036
- #~ "Si tienes problemas o preguntas sobre FancyBox deberías <a href=\"http://"
1037
- #~ "groups.google.com/group/fancybox\">preguntar en este grupo de Google</a> "
1038
- #~ "(enlace en inglés). Si tienes preguntas o sugerencias sobre este plugin "
1039
- #~ "para WordPress, puedes <a href=\"http://blog.moskis.net/downloads/plugins/"
1040
- #~ "fancybox-for-wordpress/\">dejar un comentario aquí</a>, <a href=\"http://"
1041
- #~ "blog.moskis.net/contactar/\">enviarme un email</a>, o <a href=\"http://"
1042
- #~ "twitter.com/moskis\">contactar conmigo vía Twitter</a>."
1043
-
1044
- #~ msgid "Auto Apply"
1045
- #~ msgstr "Auto Aplicar"
1046
-
1047
- #~ msgid ""
1048
- #~ "Apply FancyBox automatically to all links pointing to .jpg, .jpeg, .png "
1049
- #~ "or .gif images (default: on)"
1050
- #~ msgstr ""
1051
- #~ "Aplicar FancyBox automáticamente a todos los enlaces que apunten a "
1052
- #~ "archivos .jpg, .jpeg, .png o .gif (por defecto: activado)"
1053
-
1054
- #~ msgid ""
1055
- #~ "(The link itself must the an image as well, text links will not be "
1056
- #~ "affected by this option!)"
1057
- #~ msgstr ""
1058
- #~ "(El link tiene que estar en una imagen, esta opción no affecta a enlaces "
1059
- #~ "de texto!)"
1060
-
1061
- #~ msgid ""
1062
- #~ "(This does NOT conflict with the previous and next image links on "
1063
- #~ "FancyBox galleries.)"
1064
- #~ msgstr ""
1065
- #~ "(Esto no afecta a los enlaces de Imagen Siguiente e Imagen Anterior en "
1066
- #~ "galerias de varias imágenes)"
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FancyBox for WordPress Polski\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/fancybox-for-wordpress\n"
5
+ "POT-Creation-Date: 2012-12-04 18:51+0100\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Jose Pardilla <info@josepardilla.com>\n"
8
+ "Language-Team: Pracownie Inżynierskie Socha <admin@socha-pi.pl>\n"
9
+ "Language: pl_PL\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 1.5.4\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-KeywordsList: _e;__;esc_attr_e\n"
16
+ "X-Poedit-Basepath: ./\n"
17
+ "X-Poedit-SearchPath-0: ..\n"
18
+ "X-Poedit-SearchPath-1: ../lib\n"
19
+
20
+ #: ../admin.php:13
21
+ #, php-format
22
+ msgid "Fancybox for WordPress (version %s)"
23
+ msgstr "Fancybox dla WordPress (wersja %s)"
24
+
25
+ #: ../admin.php:25
26
+ msgid "Info"
27
+ msgstr "Informacje"
28
+
29
+ #: ../admin.php:26
30
+ msgid "Appearance"
31
+ msgstr "Wygląd"
32
+
33
+ #: ../admin.php:27
34
+ msgid "Animations"
35
+ msgstr "Animacje"
36
+
37
+ #: ../admin.php:28
38
+ msgid "Behaviour"
39
+ msgstr "Zachowanie"
40
+
41
+ #: ../admin.php:29
42
+ msgid "Galleries"
43
+ msgstr "Galerie"
44
+
45
+ #: ../admin.php:30
46
+ msgid "Miscellaneous"
47
+ msgstr "Inne"
48
+
49
+ #: ../admin.php:31
50
+ msgid "Extra Calls"
51
+ msgstr "Odwołania"
52
+
53
+ #: ../admin.php:32
54
+ msgid "Troubleshooting"
55
+ msgstr "Problemy"
56
+
57
+ #: ../admin.php:33 ../lib/admin-tab-support.php:1
58
+ msgid "Support"
59
+ msgstr "Wsparcie"
60
+
61
+ #: ../admin.php:34 ../lib/admin-tab-uninstall.php:1
62
+ msgid "Uninstall"
63
+ msgstr "Odinstalowanie"
64
+
65
+ #: ../admin.php:81
66
+ msgid "Save Changes"
67
+ msgstr "Zapisz zmiany"
68
+
69
+ #: ../admin.php:88
70
+ msgid "Revert to defaults"
71
+ msgstr "Przywróć do ustawień domyślnych"
72
+
73
+ #: ../admin.php:96
74
+ msgid "If you use FancyBox and like it, buy the author a beer!"
75
+ msgstr "Jeśli używasz FancyBox i podoba ci się, postaw autorowi piwo!"
76
+
77
+ #: ../admin.php:113
78
+ msgid "The author of this WordPress Plugin also likes beer :P"
79
+ msgstr "Autor tej wtyczki do Wordpressa także lubi piwo :P"
80
+
81
+ #: ../admin.php:123
82
+ msgid "Follow me on Twitter for more WordPress Plugins and Themes"
83
+ msgstr "Śledź mnie na Twitterze dla innych wtyczek i motywów Wordpress"
84
+
85
+ #: ../fancybox.php:439
86
+ msgid "Settings"
87
+ msgstr "Ustawienia"
88
+
89
+ #: ../lib/admin-tab-animations.php:1
90
+ msgid "Animation Settings <span style=\"color:green\">(basic)</span>"
91
+ msgstr "Ustawienia animacji<span style=\"color:green\">(podstawowe)</span>"
92
+
93
+ #: ../lib/admin-tab-animations.php:3
94
+ msgid ""
95
+ "These settings control the animations when opening and closing Fancybox, and "
96
+ "the optional easing effects."
97
+ msgstr ""
98
+ "Te ustawienia kontrolują animacje podczas otwierania i zamykania Fancybox, "
99
+ "oraz opcjonalnie efekty przejścia."
100
+
101
+ #: ../lib/admin-tab-animations.php:9
102
+ msgid "Zoom Options"
103
+ msgstr "Opcje powiększenia"
104
+
105
+ #: ../lib/admin-tab-animations.php:15
106
+ msgid "Change content transparency during zoom animations (default: on)"
107
+ msgstr ""
108
+ "Zmień przezroczystość zawartości podczas animacji powiększania (domyślnie: "
109
+ "włączone)"
110
+
111
+ #: ../lib/admin-tab-animations.php:27
112
+ msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
113
+ msgstr "Czas trwania w milisekundach animacji powiększania (domyślnie: 500)"
114
+
115
+ #: ../lib/admin-tab-animations.php:39
116
+ msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
117
+ msgstr "Czas trwania w milisekundach animacji pomniejszania (domyślnie: 500)"
118
+
119
+ #: ../lib/admin-tab-animations.php:51
120
+ msgid ""
121
+ "Speed in miliseconds of the animation when navigating thorugh gallery items "
122
+ "(default: 500)"
123
+ msgstr ""
124
+ "Czas trwania w milisekundach animacji przejścia między elementami galerii "
125
+ "(domyślnie: 500)"
126
+
127
+ #: ../lib/admin-tab-animations.php:59
128
+ msgid "Transition Type"
129
+ msgstr "Typ przejścia"
130
+
131
+ #: ../lib/admin-tab-animations.php:73
132
+ msgid "Transition type when opening FancyBox. (default: fade)"
133
+ msgstr "Przejście podczas otwierania Fancybox (domyślnie: fade)"
134
+
135
+ #: ../lib/admin-tab-animations.php:86
136
+ msgid "Transition type when closing FancyBox. (default: fade)"
137
+ msgstr "Przejście podczas zamykania Fancybox (domyślnie: fade)"
138
+
139
+ #: ../lib/admin-tab-animations.php:94
140
+ msgid "Easing"
141
+ msgstr "Dodatkowe animacje przejścia"
142
+
143
+ #: ../lib/admin-tab-animations.php:100
144
+ msgid "Activate easing (default: off)"
145
+ msgstr "Włącz dodatkowe animacje przejścia (domyślnie: wyłączone)"
146
+
147
+ #: ../lib/admin-tab-animations.php:103
148
+ msgid "(Will load one additional javascript file, 8KB)"
149
+ msgstr "(Załaduje dodatkowy plik JavaScript, 8KB)"
150
+
151
+ #: ../lib/admin-tab-animations.php:117
152
+ msgid "Easing method when opening FancyBox. (default: easeOutBack)"
153
+ msgstr "Przejście podczas otwierania Fancybox (domyślnie: easeOutBack)"
154
+
155
+ #: ../lib/admin-tab-animations.php:120
156
+ msgid "(Requires opening transition type to be set to elastic)"
157
+ msgstr "(Wymaga ustawionego przejścia otwierania na elastic)"
158
+
159
+ #: ../lib/admin-tab-animations.php:132
160
+ msgid "Easing method when closing FancyBox. (default: easeInBack)"
161
+ msgstr "Przejście podczas zamykania Fancybox (domyślnie: easeInBack)"
162
+
163
+ #: ../lib/admin-tab-animations.php:135
164
+ msgid "(Requires closing transition type to be set to elastic)"
165
+ msgstr "(Wymaga ustawionego przejścia zamykania na elastic)"
166
+
167
+ #: ../lib/admin-tab-animations.php:147
168
+ msgid ""
169
+ "Easing method when navigating through gallery items. (default: "
170
+ "easeInOutQuart)"
171
+ msgstr ""
172
+ "Animacja przejścia między elementami galerii (domyślnie: easeInOutQuart)"
173
+
174
+ #: ../lib/admin-tab-animations.php:150
175
+ msgid ""
176
+ "(There are 30 different easing methods, the first ones are the most boring. "
177
+ "You can test them <a href=\"http://commadot.com/jquery/easing.php\" target="
178
+ "\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/"
179
+ "animationtypes.html\" target=\"_blank\">here</a>)"
180
+ msgstr ""
181
+ "(Jest 30 różnych animacji przejścia, pierwsza są najbaridzej nudne. Możesz "
182
+ "je przetestować <a href=\"http://commadot.com/jquery/easing.php\" target="
183
+ "\"_blank\">tutaj</a> albo <a href=\"http://hosted.zeh.com.br/mctween/"
184
+ "animationtypes.html\" target=\"_blank\">tutaj</a>)"
185
+
186
+ #: ../lib/admin-tab-appearance.php:1
187
+ msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
188
+ msgstr "Ustawienia wyglądu <span style=\"color:green\">(podstawowe)</span>"
189
+
190
+ #: ../lib/admin-tab-appearance.php:3
191
+ msgid ""
192
+ "These setting control how Fancybox looks, they let you tweak color, borders "
193
+ "and position of elements, like the image title and closing buttons."
194
+ msgstr ""
195
+ "Te ustawienia kontrolują jak wygląda Fancybox, pozwalają zmieniać kolor, "
196
+ "obramowanie i położenie elementów, jak tytuł obrazu i przyciski zamykania."
197
+
198
+ #: ../lib/admin-tab-appearance.php:9
199
+ msgid "Border"
200
+ msgstr "Obramowanie"
201
+
202
+ #: ../lib/admin-tab-appearance.php:15
203
+ msgid "Show Border (default: off)"
204
+ msgstr "Pokaż obramowanie (domyślnie: wyłączone)"
205
+
206
+ #: ../lib/admin-tab-appearance.php:22
207
+ msgid "HTML color of the border (default: #BBBBBB)"
208
+ msgstr "Kolor HTML obramowania (domyślnie: #bbbbbb)"
209
+
210
+ #: ../lib/admin-tab-appearance.php:33
211
+ msgid "Close Button"
212
+ msgstr "Przycisk zamykania"
213
+
214
+ #: ../lib/admin-tab-appearance.php:39
215
+ msgid "Show Close button (default: on)"
216
+ msgstr "Pokaż przycisk zamykania (domyślnie: włączone)"
217
+
218
+ #: ../lib/admin-tab-appearance.php:44
219
+ msgid "Close button position:"
220
+ msgstr "Położenie przycisku zamykania:"
221
+
222
+ #: ../lib/admin-tab-appearance.php:47
223
+ msgid "Left"
224
+ msgstr "Po lewej"
225
+
226
+ #: ../lib/admin-tab-appearance.php:52
227
+ msgid "Right (default)"
228
+ msgstr "Po prawej (domyślnie)"
229
+
230
+ #: ../lib/admin-tab-appearance.php:57
231
+ msgid "Bottom"
232
+ msgstr "Na dole"
233
+
234
+ #: ../lib/admin-tab-appearance.php:62
235
+ msgid "Top (default)"
236
+ msgstr "U góry (domyślnie)"
237
+
238
+ #: ../lib/admin-tab-appearance.php:72
239
+ msgid "FancyBox Shape"
240
+ msgstr ""
241
+
242
+ #: ../lib/admin-tab-appearance.php:78
243
+ msgid "Padding HTML color (default: #FFFFFF)"
244
+ msgstr "Kolor HTML marginesu wewnętrznego (domyślnie: #ffffff)"
245
+
246
+ #: ../lib/admin-tab-appearance.php:82
247
+ msgid ""
248
+ "(This should be left on #FFFFFF (white) if you want to display anything "
249
+ "other than images, like inline or framed content)"
250
+ msgstr ""
251
+ "(Powinno pozostać ustawione na #ffffff (biały) jeśli chcesz wyświetlać coś "
252
+ "poza obrazami, jak zawartość inline albo z ramki)"
253
+
254
+ #: ../lib/admin-tab-appearance.php:86
255
+ msgid "Padding size in pixels (default: 15)"
256
+ msgstr "Rozmiar marginesu wewnętrznego (domyślnie: 10)"
257
+
258
+ #: ../lib/admin-tab-appearance.php:91
259
+ msgid "Rounded Corners radius (default: 5)"
260
+ msgstr "Promień zaokrąglonych naróżników (domyślnie: 5)"
261
+
262
+ #: ../lib/admin-tab-appearance.php:96
263
+ msgid "Rounded Corners inner radius (default: 0)"
264
+ msgstr ""
265
+
266
+ #: ../lib/admin-tab-appearance.php:104
267
+ msgid "Overlay Options"
268
+ msgstr "Ustawienia nakładki"
269
+
270
+ #: ../lib/admin-tab-appearance.php:110
271
+ msgid "Add overlay (default: on)"
272
+ msgstr "Dodaj nakładkę (domyślnie: włączone)"
273
+
274
+ #: ../lib/admin-tab-appearance.php:117
275
+ msgid "Overlay HTML color (default: #000000)"
276
+ msgstr "Kolor HTML nakładki (domyślnie: #000000)"
277
+
278
+ #: ../lib/admin-tab-appearance.php:131
279
+ msgid "Overlay opacity. 0 is transparent, 1 is opaque (default: 0.7)"
280
+ msgstr ""
281
+ "Przezroczystość nakładki. 0 to całkowicie przezroczyste, 1 to całkowicie "
282
+ "nieprzezroczyste (domyślnie: 0.7)"
283
+
284
+ #: ../lib/admin-tab-appearance.php:141
285
+ msgid "Shadow"
286
+ msgstr "Cień"
287
+
288
+ #: ../lib/admin-tab-appearance.php:147
289
+ msgid "Shadow size (default: 25)"
290
+ msgstr "Rozmiar cienia (domyślnie: 25)"
291
+
292
+ #: ../lib/admin-tab-appearance.php:152
293
+ msgid "Shadow distance (default: 10)"
294
+ msgstr "Odległość cienia (domyślnie: 10)"
295
+
296
+ #: ../lib/admin-tab-appearance.php:165
297
+ msgid "Shadow opacity. 0 is transparent, 1 is opaque (default: 0.5)"
298
+ msgstr ""
299
+ "Przezroczystość cienia. 0 to całkowicie przezroczyste, 1 to całkowicie "
300
+ "nieprzezroczyste (domyślnie: 0.5)"
301
+
302
+ #: ../lib/admin-tab-appearance.php:173
303
+ msgid "Title"
304
+ msgstr "Tytuł"
305
+
306
+ #: ../lib/admin-tab-appearance.php:179
307
+ msgid "Show the title (default: on)"
308
+ msgstr "Pokaż tytuł (domyślnie: włączone)"
309
+
310
+ #: ../lib/admin-tab-appearance.php:186
311
+ msgid "Inside (default)"
312
+ msgstr "Wewnątrz (domyślnie)"
313
+
314
+ #: ../lib/admin-tab-appearance.php:191
315
+ msgid "Outside"
316
+ msgstr "Na zewnątrz"
317
+
318
+ #: ../lib/admin-tab-appearance.php:196
319
+ msgid "Over"
320
+ msgstr "Nad zawartością"
321
+
322
+ #: ../lib/admin-tab-appearance.php:203
323
+ msgid "Title text color (default: #333333)"
324
+ msgstr "Kolor tekstu tytułu (domyślnie: #333333)"
325
+
326
+ #: ../lib/admin-tab-appearance.php:207
327
+ msgid "(Should contrast with the padding color set above)"
328
+ msgstr ""
329
+ "(Powinien być kontrastowy w stosunku do koloru marginesu wewnętrznego "
330
+ "ustawionego powyżej)"
331
+
332
+ #: ../lib/admin-tab-appearance.php:218
333
+ msgid "Navigation Arrows"
334
+ msgstr "Strzałki nawigacyjne"
335
+
336
+ #: ../lib/admin-tab-appearance.php:224
337
+ msgid "Show the navigation arrows (default: on)"
338
+ msgstr "Pokaż strzałki nawigacyjne (domyślnie: włączone)"
339
+
340
+ #: ../lib/admin-tab-behaviour.php:1
341
+ msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
342
+ msgstr "Ustawienia zachowania <span style=\"color:orange\">(średnie)</span>"
343
+
344
+ #: ../lib/admin-tab-behaviour.php:3
345
+ msgid ""
346
+ "The following settings should be left alone unless you know what you are "
347
+ "doing."
348
+ msgstr ""
349
+ "Poniższe ustawienia powinny pozostać niezmienione, chyba że wiesz co robisz."
350
+
351
+ #: ../lib/admin-tab-behaviour.php:9
352
+ msgid "Auto Resize to Fit"
353
+ msgstr "Automatycznie zmień rozmiar"
354
+
355
+ #: ../lib/admin-tab-behaviour.php:15
356
+ msgid "Scale images to fit in viewport (default: on)"
357
+ msgstr ""
358
+ "Skaluje obrazy by zmieścić je w oknie przeglądarki (domyślnie: włączone)"
359
+
360
+ #: ../lib/admin-tab-behaviour.php:23
361
+ msgid "Center on Scroll"
362
+ msgstr "Wycentruj przy przewijaniu"
363
+
364
+ #: ../lib/admin-tab-behaviour.php:29
365
+ msgid ""
366
+ "Keep image in the center of the browser window when scrolling (default: on)"
367
+ msgstr ""
368
+ "Trzymaj obraz wyśrodkowany w oknie przeglądarki podczas przewijania "
369
+ "(domyślnie: włączone)"
370
+
371
+ #: ../lib/admin-tab-behaviour.php:37
372
+ msgid "Close on Content Click"
373
+ msgstr "Zamknij po kliknięciu na zawartość"
374
+
375
+ #: ../lib/admin-tab-behaviour.php:43
376
+ msgid "Close FancyBox by clicking on the image (default: off)"
377
+ msgstr "Zamknij Fancybox klikając na obraz (domyślnie: wyłączone)"
378
+
379
+ #: ../lib/admin-tab-behaviour.php:46
380
+ msgid ""
381
+ "(You may want to leave this off if you display iframed or inline content "
382
+ "that containts clickable elements - for example: play buttons for movies, "
383
+ "links to other pages)"
384
+ msgstr ""
385
+ "(Zostaw to wyłączone jeśli chcesz wyświetlać zawartość z ramek albo inline z "
386
+ "odnośnikami - na przykład: przyciski odtwarzania wideo, albo odnośniki do "
387
+ "stron)"
388
+
389
+ #: ../lib/admin-tab-behaviour.php:53
390
+ msgid "Close on Overlay Click"
391
+ msgstr "Zamknij po kliknięciu na nakładkę"
392
+
393
+ #: ../lib/admin-tab-behaviour.php:59
394
+ msgid "Close FancyBox by clicking on the overlay sorrounding it (default: on)"
395
+ msgstr ""
396
+ "Zamknij Fancybox po kliknięciu na nakładkę otaczającą go (domyślnie: "
397
+ "włączone)"
398
+
399
+ #: ../lib/admin-tab-behaviour.php:67
400
+ msgid "Close with &quot;Esc&quot;"
401
+ msgstr "Zamknij przy naciśnięciu &quot;Esc&quot;"
402
+
403
+ #: ../lib/admin-tab-behaviour.php:73
404
+ msgid "Close FancyBox when &quot;Escape&quot; key is pressed (default: on)"
405
+ msgstr ""
406
+ "Zamknij Fancybox jeśli zostanie wciśnięty klawisz &quot;Escape&quot; "
407
+ "(domyślnie: włączone)"
408
+
409
+ #: ../lib/admin-tab-behaviour.php:81
410
+ msgid "Cyclic Galleries"
411
+ msgstr "Zapętl galerie"
412
+
413
+ #: ../lib/admin-tab-behaviour.php:87
414
+ msgid ""
415
+ "This will make galleries cyclic, allowing you to keep pressing next/back "
416
+ "(default: on)"
417
+ msgstr ""
418
+ "To sprawi, że galerie będą zapętlone i będziesz mógł przechodzić od końca do "
419
+ "początku odnośnikami następny/poprzedni (domyślnie: wyłączone)"
420
+
421
+ #: ../lib/admin-tab-behaviour.php:95
422
+ msgid "Mouse Wheel Navigation"
423
+ msgstr "Nawigacja kółkiem myszy"
424
+
425
+ #: ../lib/admin-tab-behaviour.php:101
426
+ msgid "Lets visitors navigate galleries with the mouse wheel (default: off)"
427
+ msgstr ""
428
+ "Pozwól nawigować po galerii za pomocą kółka myszki (domyślnie: wyłączone)"
429
+
430
+ #: ../lib/admin-tab-behaviour.php:104
431
+ msgid "(Will load one additional javascript file, 3KB)"
432
+ msgstr "(Załaduje dodatkowy plik JavaScript, 3KB)"
433
+
434
+ #: ../lib/admin-tab-calls.php:1
435
+ msgid "Extra FancyBox Calls <span style=\"color:red\">(advanced)</span>"
436
+ msgstr ""
437
+ "Dodatkowe odwołania Fancybox <span style=\"color:red\">(zaawansowane)</span>"
438
+
439
+ #: ../lib/admin-tab-calls.php:3
440
+ msgid ""
441
+ "Here you can add as many additional calls to fancybox as you want, with "
442
+ "different settings. For example, if you want to use fancybox with iframes or "
443
+ "ajax on any specific link, you can configure those calls here without "
444
+ "affecting the settings for images."
445
+ msgstr ""
446
+ "Tutaj możesz dodać tyle dodakowych odwołać ile chcesz, z różnymi "
447
+ "ustawieniami. Na przykład, jeśli chcesz użyć Fancybox z ramkami albo "
448
+ "zawartością z AJAX na dowolnym odnośniku, możesz skonfigurować te odwołania "
449
+ "tutaj bez wpływu na ustawienia dla obrazów."
450
+
451
+ #: ../lib/admin-tab-calls.php:5
452
+ msgid ""
453
+ "For information on the options available you can use here see <a href="
454
+ "\"http://fancybox.net/api\">FancyBox's API & Options page</a>."
455
+ msgstr ""
456
+ "By uzyskać więcej informacji o dostępnych opcjach zobacz stronę <a href="
457
+ "\"http://fancybox.net/api\">Opcje i API Fancybox</a>."
458
+
459
+ #: ../lib/admin-tab-calls.php:11
460
+ msgid "Additional FancyBox Calls"
461
+ msgstr "Dodatkowe odwołania"
462
+
463
+ #: ../lib/admin-tab-calls.php:17
464
+ msgid "Additional FancyBox Calls (default: off)"
465
+ msgstr "Dodatkowe odwołania (domyślnie: wyłączone)"
466
+
467
+ #: ../lib/admin-tab-calls.php:26 ../lib/admin-tab-other.php:89
468
+ msgid "Example:"
469
+ msgstr "Przykład:"
470
+
471
+ #: ../lib/admin-tab-galleries.php:1
472
+ msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
473
+ msgstr "Ustawienia galerii <span style=\"color:red\">(zaawansowane)</span>"
474
+
475
+ #: ../lib/admin-tab-galleries.php:3
476
+ msgid ""
477
+ "Here you can choose if you want the plugin to group all images into a "
478
+ "gallery, or make a gallery for each post. You can also define you own jQuery "
479
+ "expression if you like."
480
+ msgstr ""
481
+ "Tutaj możesz wybrać czy chcesz by wtyczka grupowałą wszystkie obrazy w "
482
+ "galerię, czy tylko obrazy danego posta. Możesz też zdefiniować własne "
483
+ "wyrażenie jQuery."
484
+
485
+ #: ../lib/admin-tab-galleries.php:9
486
+ msgid "Gallery Type"
487
+ msgstr "Typ galerii"
488
+
489
+ #: ../lib/admin-tab-galleries.php:15
490
+ msgid "Make a gallery for all images on the page (default)"
491
+ msgstr "Utwórz galerię dla wszystkich obrazów na stronie (domyślnie)"
492
+
493
+ #: ../lib/admin-tab-galleries.php:20
494
+ msgid ""
495
+ "Do not group images in gallery automatically (use this if you want to make "
496
+ "galleries manually with the <code>REL</code> attribute)"
497
+ msgstr ""
498
+ "Nie grupuj obrazów w galerię automatycznie (użyj tego jeśli chcesz grupować "
499
+ "galerię ręcznie za pomocą atrybutu <code>REL</code>)"
500
+
501
+ #: ../lib/admin-tab-galleries.php:25
502
+ msgid ""
503
+ "Make a gallery for each post (will only work if your theme uses <code>class="
504
+ "\"post\"</code> on each post, which is common in WordPress"
505
+ msgstr ""
506
+ "Utwórz galerię dla każdego posta (zadziała jeśli motyw którego używasz "
507
+ "korzysta z <code>class=\"post\"</code> na każdym poście, co jest zwyczajowe "
508
+ "w Wordpress)"
509
+
510
+ #: ../lib/admin-tab-galleries.php:30
511
+ msgid "Use a custom expression to apply FancyBox"
512
+ msgstr "Użyj własnego wyrażenia by włączyć Fancybox"
513
+
514
+ #: ../lib/admin-tab-galleries.php:39
515
+ msgid "Custom expression guidelines:"
516
+ msgstr "Wytyczne do własnego wyrażenia:"
517
+
518
+ #: ../lib/admin-tab-galleries.php:41
519
+ msgid ""
520
+ "&middot; The custom expression has to apply <code>class=\"fancybox\"</code> "
521
+ "to the links where you want to use FancyBox. Do not call the <code>fancybox()"
522
+ "</code> function here, the plugin does this for you."
523
+ msgstr ""
524
+ "&middot; Własne wyrażene musi stosować <code>class=\"fancybox\"</code> do "
525
+ "odnośników z którymi chcesz użyć Fancybox. Nie odwołuj się do funkcji "
526
+ "<code>fancybox()</code> tutaj, wtyczka robi to za ciebie."
527
+
528
+ #: ../lib/admin-tab-galleries.php:43
529
+ msgid ""
530
+ "&middot; The jQuery <code>addClass()</code> function is a good way to add "
531
+ "the class to the desired links conserving any existing class."
532
+ msgstr ""
533
+ "&middot; Funkcja <code>addClass()</code> jQuery jest dobrym rozwiązaniem by "
534
+ "dodać klasę do odnośników, zachowując już istniejące klasy."
535
+
536
+ #: ../lib/admin-tab-galleries.php:45
537
+ msgid ""
538
+ "&middot; You can use <code>getTitle()</code> in your expression to copy the "
539
+ "title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so "
540
+ "that FancyBox can show captions."
541
+ msgstr ""
542
+ "&middot; Możesz użyć <code>getTitle()</code> w swoim wyrażeniu by skopiować "
543
+ "atrybut tytułu ze znacznika <code>IMG</code> do znacznika <code>A</code>, by "
544
+ "Fancybox mógł pokazywać podpisy."
545
+
546
+ #: ../lib/admin-tab-galleries.php:47
547
+ msgid ""
548
+ "&middot; You can use <code>jQuery(thumbnails)</code> like in the example "
549
+ "expression to apply FancyBox to thumbnails that link to these extensions: "
550
+ "BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase)."
551
+ msgstr ""
552
+ "&middot; Możesz użyć <code>jQuery(thumbnails)</code> jak w przykładowym "
553
+ "wyrażeniu by włączyć Fancybox dla miniatur z tymi rozszerzeniami: BMP, GIF, "
554
+ "JPG, JPEG, PNG (zarówno małymi jak i wielkimi literami)."
555
+
556
+ #: ../lib/admin-tab-galleries.php:49
557
+ msgid ""
558
+ "&middot; If you want to do it manually you can use something like "
559
+ "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> or whatever works for you."
560
+ msgstr ""
561
+ "&middot; Jeśli chcesz zrobić to ręcznie możesz użyć na przykład <code>jQuery"
562
+ "(\"a:has(img)[href$='.jpg']\")</code> czy cokolwiek co jest ci potrzebne."
563
+
564
+ #: ../lib/admin-tab-galleries.php:51
565
+ msgid ""
566
+ "See the <a href=\"http://docs.jquery.com/\" target=\"_blank\">jQuery "
567
+ "Documentation</a> for more help."
568
+ msgstr ""
569
+ "Sprawdź <a href=\"http://docs.jquery.com/\" target=\"_blank\">dokumentację "
570
+ "jQuery</a> by uzyskać więcej informacji."
571
+
572
+ #: ../lib/admin-tab-galleries.php:53
573
+ msgid "Examples:"
574
+ msgstr "Przykłady:"
575
+
576
+ #: ../lib/admin-tab-info.php:1
577
+ msgid "Information"
578
+ msgstr "Informacje"
579
+
580
+ #: ../lib/admin-tab-info.php:3
581
+ msgid ""
582
+ "<a target=\"_blank\" href=\"http://fancybox.net\">FancyBox</a> developed by "
583
+ "<a target=\"_blank\" href=\"http://fancybox.net\">Janis Skarnelis</a>, "
584
+ "ported to WordPress by <a target=\"_blank\" href=\"http://josepardilla.com/"
585
+ "\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href="
586
+ "\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
587
+ msgstr ""
588
+ "<a href=\"http://fancybox.net\">FancyBox</a> rozwijany przez <a href="
589
+ "\"http://fancybox.net\">Janis Skarnelis</a>, zaadopotowany do Wordpress "
590
+ "przez <a href=\"http://http://josepardilla.com/\">Jos&eacute; Pardilla</a>. "
591
+ "Licencjowany na zasadach <a target=\"_blank\" href=\"http://en.wikipedia.org/"
592
+ "wiki/MIT_License\">licencji MIT</a>."
593
+
594
+ #: ../lib/admin-tab-info.php:5
595
+ msgid ""
596
+ "As you can see, this plugin has many options you can edit, but have no fear, "
597
+ "you can leave everything as it is if you don't want to get your hands dirty, "
598
+ "since the default options should be a good start... :)"
599
+ msgstr ""
600
+ "Jak widzisz, ta wtyczka ma wiele opcji które możesz zmienić, ale nie bój "
601
+ "się, możesz też zostawić wszystko tak jak jest jeśli nie chcesz pobrudzić "
602
+ "sobie rąk, ponieważ domyślne opcje powinny wystarczyć na początek .. :)"
603
+
604
+ #: ../lib/admin-tab-info.php:7
605
+ msgid ""
606
+ "If you are an advanced user you can <a target=\"_blank\" href=\"https://"
607
+ "github.com/moskis/fancybox-for-wordpress\">follow the plugin in Github</a>, "
608
+ "fork it or help submitting fixes!"
609
+ msgstr ""
610
+ "Jeśli jesteś zaawansowanym użytkownikiem możesz <a target=\"_blank\" href="
611
+ "\"https://github.com/moskis/fancybox-for-wordpress\">śledzić tą wtyczkę na "
612
+ "Github</a>, rozpocząć swoją gałąź albo przesłać poprawki!"
613
+
614
+ #: ../lib/admin-tab-info.php:9
615
+ msgid ""
616
+ "<strong>Note:</strong> Having a cache plugin may prevent changes from taking "
617
+ "effect immidiately, if this happens clear cache after saving changes here or "
618
+ "deactivate cache until you finish editing these options."
619
+ msgstr ""
620
+ "<strong>Notatka:</strong> Uzywanie wtyczki do pamięci podręcznej może "
621
+ "sprawić, że zmiany nie będą odnosiły skutku natychmiast, jeśli tak się "
622
+ "stanie wyczyść pamięć podręczną po zapisaniu ustawień albo wyłącz pamięć "
623
+ "podręczną na czas zmieniania ustawień."
624
+
625
+ #: ../lib/admin-tab-other.php:1
626
+ msgid "Other Settings <span style=\"color:red\">(advanced)</span>"
627
+ msgstr "Inne ustawienia <span style=\"color:red\">(zaawansowane)</span>"
628
+
629
+ #: ../lib/admin-tab-other.php:3
630
+ msgid "These are additional settings for advanced users."
631
+ msgstr "To są dodatkowe ustawienia dla zaawansowanych użytkowników."
632
+
633
+ #: ../lib/admin-tab-other.php:9
634
+ msgid "Dimensions"
635
+ msgstr "Wymiary"
636
+
637
+ #: ../lib/admin-tab-other.php:15
638
+ msgid "Auto detect dimensions (default: on)"
639
+ msgstr "Automatycznie wykryj wymiary (domyślnie: włączone)"
640
+
641
+ #: ../lib/admin-tab-other.php:18
642
+ msgid ""
643
+ "Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! "
644
+ "Flash dimensions won't be autodetected so specify them below if necessary. "
645
+ "If you want to insert several pieces of flash content with different "
646
+ "dimensions you will have to use the <strong>Additional FancyBox Calls</"
647
+ "strong> option."
648
+ msgstr ""
649
+ "Działa tylko z <strong>AJAX</strong> i zawartością <strong>inline</strong>! "
650
+ "Wymiary Flasha nie zostaną wykryte automatycznie więc ustaw je poniżej jeśli "
651
+ "trzeba. Jeśli wstawisz kilka zawartości Flash z różnymi wymiarami będziesz "
652
+ "musiał użyć opcji <strong>dodatkowych odwołań</strong>."
653
+
654
+ #: ../lib/admin-tab-other.php:22
655
+ msgid ""
656
+ "Width for iframe and swf content. Also set for inline content if "
657
+ "<em>autoDimensions</em> is disabled (default: 560)"
658
+ msgstr ""
659
+ "Szerokość dla ramki i zawartości Flash. Ustaw także dla zawartości inline "
660
+ "jeśli <em>autoDimensions</em> jest wyłączone (domyślnie: 560)"
661
+
662
+ #: ../lib/admin-tab-other.php:27
663
+ msgid ""
664
+ "Height for iframe and swf content. Also set for inline content if "
665
+ "<em>autoDimensions</em> is disabled (default: 340)"
666
+ msgstr ""
667
+ "Wysokość dla ramki i zawartości Flash. Ustaw także dla zawartości inline "
668
+ "jeśli <em>autoDimensions</em> jest wyłączone (domyślnie: 340)"
669
+
670
+ #: ../lib/admin-tab-other.php:35
671
+ msgid "Load JavaScript in Footer"
672
+ msgstr "Załaduj JavaScript w stopce"
673
+
674
+ #: ../lib/admin-tab-other.php:41
675
+ msgid "Loads JavaScript at the end of the blog's HTML (default: off)"
676
+ msgstr ""
677
+ "Załaduj JavaScript na końcu zawartości HTML (eksperymentalne, domyślnie: "
678
+ "wyłączone)"
679
+
680
+ #: ../lib/admin-tab-other.php:44
681
+ msgid ""
682
+ "This option won't be recognized if you use <strong>Parallel Load</strong> "
683
+ "plugin. In that case, you can do this from Parallel Load's options."
684
+ msgstr ""
685
+ "Ta opcja nie zostanie rozpoznana jeśli użyjesz wtyczki <strong>Parallel "
686
+ "Load</strong>. W takim wypadku możesz to zrobić z poziomu opcji wtyczki "
687
+ "Parallel Load."
688
+
689
+ #: ../lib/admin-tab-other.php:51
690
+ msgid "Callbacks"
691
+ msgstr "Odwołania"
692
+
693
+ #: ../lib/admin-tab-other.php:57
694
+ msgid "Enable callbacks (default: off)"
695
+ msgstr "Włącz odwołania (domyślnie: włączone)"
696
+
697
+ #: ../lib/admin-tab-other.php:60
698
+ msgid "Enabling this will show additional settings."
699
+ msgstr "Włączenie tej opcji pokaże dodatkowe ustawienia."
700
+
701
+ #: ../lib/admin-tab-other.php:65
702
+ msgid ""
703
+ "Callback on <strong>Start</strong> event: Will be called right before "
704
+ "attempting to load the content"
705
+ msgstr ""
706
+ "Odwołanie podczas zdarzenia <strong>Start</strong>: zostanie wywołane zaraz "
707
+ "przed załadowaniem zawartości"
708
+
709
+ #: ../lib/admin-tab-other.php:70
710
+ msgid ""
711
+ "Callback on <strong>Cancel</strong> event: Will be called after loading is "
712
+ "canceled"
713
+ msgstr ""
714
+ "Odwołanie podczas zdarzenia <strong>Cancel</strong>: zostanie wywołane "
715
+ "jeśli ładowanie zostanie anulowane"
716
+
717
+ #: ../lib/admin-tab-other.php:75
718
+ msgid ""
719
+ "Callback on <strong>Complete</strong> event: Will be called once the content "
720
+ "is displayed"
721
+ msgstr ""
722
+ "Odwołanie podczas zdarzenia <strong>Complete</strong>: zostanie wywołane "
723
+ "jak tylko zawartość zostanie wyświetlona"
724
+
725
+ #: ../lib/admin-tab-other.php:80
726
+ msgid ""
727
+ "Callback on <strong>CleanUp</strong> event: Will be called just before "
728
+ "closing"
729
+ msgstr ""
730
+ "Odwołanie podczas zdarzenia <strong>CleanUp</strong>: zostanie wywołane "
731
+ "zaraz przed zamknięciem"
732
+
733
+ #: ../lib/admin-tab-other.php:85
734
+ msgid ""
735
+ "Callback on <strong>Closed</strong> event: Will be called once FancyBox is "
736
+ "closed"
737
+ msgstr ""
738
+ "Odwołanie podczas zdarzenia <strong>Cerrado</strong>: zostanie wywołane po "
739
+ "zamknięciu"
740
+
741
+ #: ../lib/admin-tab-other.php:91
742
+ msgid "Leave empty any speciic callbacks you don't need to use."
743
+ msgstr "Zostaw puste jeśli nie korzystasz z poszczególnych odwołań"
744
+
745
+ #: ../lib/admin-tab-support.php:3
746
+ msgid "Help with Fancybox"
747
+ msgstr "Pomoc z Fancybox"
748
+
749
+ #: ../lib/admin-tab-support.php:5
750
+ msgid ""
751
+ "If you have problems or questions about FancyBox itself (and not this "
752
+ "WordPress plugin), please start with these links: <a target=\"_blank\" href="
753
+ "\"http://fancybox.net/howto\">How-To</a> & <a target=\"_blank\" href="
754
+ "\"http://fancybox.net/faq\">FAQ</a>.<br />If that does not help, go to <a "
755
+ "href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</"
756
+ "a>, use the <strong>Search</strong> option, and if necesary, post your "
757
+ "question."
758
+ msgstr ""
759
+ "Jeśli masz problemy albo pytania o Fancybox (nie o wtyczce do Wordpress), "
760
+ "zacznij proszę od tych odnośników <a href=\"http://fancybox.net/howto\">How-"
761
+ "To</a> i <a href=\"http://fancybox.net/faq\">FAQ</a>.<br />Jeśli to nie "
762
+ "pomoże przejrzyj<a href=\"http://groups.google.com/group/fancybox\">Grupę "
763
+ "Google FancyBox</a>, użyj opcji <strong>wyszukiwania</strong>, jeśli trzeba "
764
+ "lub zamieść pytanie."
765
+
766
+ #: ../lib/admin-tab-support.php:8
767
+ msgid "Help with Fancybox for WordPress plugin"
768
+ msgstr "Pomoc z wtyczką Fancybox dla Wordpress"
769
+
770
+ #: ../lib/admin-tab-support.php:10
771
+ msgid ""
772
+ "If you are having trouble with this plugin take a look at this <a target="
773
+ "\"_blank\" href=\"http://plugins.josepardilla.com/fancybox-for-wordpress/faq"
774
+ "\">FAQ</a> where i will try to cover the most common problems and their "
775
+ "solutions."
776
+ msgstr ""
777
+ "Jeśli masz problemy z tą wtyczką zajrzyj tutaj <a target=\"_blank\" href="
778
+ "\"http://plugins.josepardilla.com/fancybox-for-wordpress/faq\">FAQ</a> gdzie "
779
+ "staram się opisać najczęstsze problemy i ich rozwiązania."
780
+
781
+ #: ../lib/admin-tab-support.php:11
782
+ msgid ""
783
+ "Try to localize the problem (switch your theme and deactivate plugins until "
784
+ "you find the source of the problem). You can also try the Troubleshooting "
785
+ "settings of this plugin if necesary."
786
+ msgstr ""
787
+ "Staraj się zlokalizować problem (zmień motyw, wyłącz wtyczki). Możesz też "
788
+ "sprawdzić ustawienia Rozwiązywania problemów jeśli trzeba."
789
+
790
+ #: ../lib/admin-tab-support.php:12
791
+ msgid ""
792
+ "Try reverting the plugin's settings to their defaults with the button below."
793
+ msgstr ""
794
+ "Spróbuj przywrócić ustawienia wtyczki do domyślnych przyciskiem poniżej."
795
+
796
+ #: ../lib/admin-tab-support.php:13
797
+ msgid ""
798
+ "If you still can not get the plugin to work, <a target=\"_blank\" href="
799
+ "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
800
+ "\">write a post in the WordPress Support forums</a> explaining the problem "
801
+ "or take a look and the <a target=\"_blank\" href=\"http://wordpress.org/"
802
+ "support/plugin/fancybox-for-wordpress\">already posted messages</a>."
803
+ msgstr ""
804
+ "Jeśli nadal nie możesz zmusić wtyczki do współpracy, <a target=\"_blank\" "
805
+ "href=\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
806
+ "\">napisz posta na forum Wsparcia Wordpress</a> opisując problem, lub "
807
+ "przejrzyj <a target=\"_blank\" href=\"\"http://wordpress.org/support/plugin/"
808
+ "fancybox-for-wordpress\">już zamieszczone wiadomości</a>."
809
+
810
+ #: ../lib/admin-tab-support.php:16
811
+ msgid "IMPORTANT:"
812
+ msgstr "WAŻNE:"
813
+
814
+ #: ../lib/admin-tab-support.php:16
815
+ msgid ""
816
+ "When posting your problem please provide a link to your blog and the page "
817
+ "where the error is found, and all relevant information you can, especially "
818
+ "your theme, plugins, etc."
819
+ msgstr ""
820
+ "Zamieszczając swój problem proszę dołączyć odnośnik do swojegu blogu i "
821
+ "strony na której występuje błąd, oraz wszystkie powiązane informacje, jak "
822
+ "motyw, wtyczki, itp."
823
+
824
+ #: ../lib/admin-tab-troubleshooting.php:1
825
+ msgid "Troubleshooting Settings"
826
+ msgstr "Ustawienia rozwiązywania problemów"
827
+
828
+ #: ../lib/admin-tab-troubleshooting.php:3
829
+ msgid ""
830
+ "Settings in this section should only be changed if you are having problems "
831
+ "with the plugin!"
832
+ msgstr ""
833
+ "Ustawienia w tej sekcji powinny być zmienianie tylko jeśli masz problemy z "
834
+ "wtyczką!"
835
+
836
+ #: ../lib/admin-tab-troubleshooting.php:5
837
+ msgid ""
838
+ "If the plugin doesn't seem to work, first you should check for other plugins "
839
+ "that may be conflicting with this one, especially other Lightbox, Slimbox, "
840
+ "etc. Make sure all your plugins and WordPress itself are up to date."
841
+ msgstr ""
842
+ "Jeśli wtyczka nie działa, po pierwsze sprawdź czy inny wtyczki nie "
843
+ "konfliktują z tą, zwłaszcza Lightbox, Slimbox, itp. Upewnij się, że "
844
+ "wszystkie wtyczki oraz sam Wordpress są w aktulanej wersji (ta wtyczka była "
845
+ "testowana tylko z Wordpress 2.7 i nowszych)."
846
+
847
+ #: ../lib/admin-tab-troubleshooting.php:7
848
+ msgid ""
849
+ "Change them one at a time and test to see if they help. Remember that having "
850
+ "a cache plugin may prevent changes from taking effect immidiately, so clear "
851
+ "cache after saving changes here or deactivate cache until you finish editing "
852
+ "these options."
853
+ msgstr ""
854
+ "Zmieniaj je pojedynczo i sprawdzaj za każdym razem czy pomogły. Pamiętaj, że "
855
+ "jeśli masz włączoną wtyczkę pamięci podręcznej ustawienia mogę nie odnieść "
856
+ "efekty natychmiast, więc wyczyść pamięć podręczną po zapisaniu ustawień albo "
857
+ "wyłącz pamięć podręczną na czas zmieniania ustawień."
858
+
859
+ #: ../lib/admin-tab-troubleshooting.php:13
860
+ msgid "Do not call jQuery"
861
+ msgstr "Nie ładuj jQuery"
862
+
863
+ #: ../lib/admin-tab-troubleshooting.php:19
864
+ msgid ""
865
+ "Skip jQuery call. Use this only if jQuery is being loaded twice (default: "
866
+ "off)"
867
+ msgstr ""
868
+ "Pomiń odwołanie do jQuery. Użyj tego tylko jeśli jQuery jest ładowane "
869
+ "dwukrotnie (domyślnie: wyłączone)"
870
+
871
+ #: ../lib/admin-tab-uninstall.php:3
872
+ msgid ""
873
+ "Like many other plugins, FancyBox for WordPress stores its settings on your "
874
+ "WordPress' options database table. Actually, these settings are not using "
875
+ "more than a couple of kilobytes of space, but if you want to completely "
876
+ "uninstall this plugin, check the option below, then save changes, and "
877
+ "<strong>when you deactivate the plugin</strong>, all its settings will be "
878
+ "removed from the database."
879
+ msgstr ""
880
+ "Jak wiele innych wtyczek, Fancybox dla Wordpress trzyma swoje ustawienia w "
881
+ "tabeli ustawień Wordpress. W zasadzie te ustawienia nie zajmują więcej niż "
882
+ "kilka kilobajtów, ale jeśli chcesz kompletnie odinstalować wtyczkę, zaznacz "
883
+ "opcję poniżej, a potem zapisz opcje. <strong>Kiedy wyłączysz wtyczkę</"
884
+ "strong>wszystkie ustawienia zostaną usunięte z bazy danych."
885
+
886
+ #: ../lib/admin-tab-uninstall.php:9
887
+ msgid "Remove settings"
888
+ msgstr "Usuń ustawienia"
889
+
890
+ #: ../lib/admin-tab-uninstall.php:15
891
+ msgid ""
892
+ "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. "
893
+ "(default: off)"
894
+ msgstr ""
895
+ "Usuń ustawienia kiedy wtyczka zostanie wyłączona z panelu \"Zarządzania "
896
+ "wtyczkami\". (domyślnie: wyłączone)"
897
+
898
+ #~ msgid "Fancybox for WordPress Options"
899
+ #~ msgstr "Opcje wtyczki Fancybox dla Wordpress"
900
+
901
+ #~ msgid "Fancybox for WP"
902
+ #~ msgstr "Fancybox dla WP"
903
+
904
+ #~ msgid "FancyBox for WordPress settings have been reset"
905
+ #~ msgstr "Ustawienia wtyczki Fancybox dla Wordpress zostały zresetowane"
906
+
907
+ #~ msgid "Padding"
908
+ #~ msgstr "Margines wewnętrzny"
909
+
910
+ #~ msgid "HTML color of the overlay (default: #666666)"
911
+ #~ msgstr "Kolor HTML nakładki (domyślnie: #666666)"
912
+
913
+ #~ msgid ""
914
+ #~ "<strong>Note:</strong> If update to version 3.0.0 breaks fancybox on your "
915
+ #~ "blog you will probably have to reset your settings (with the white button "
916
+ #~ "below). I have tested this issue on several WordPress installations and "
917
+ #~ "it always worked, so it might depend on the server. Sorry for the "
918
+ #~ "inconvinience."
919
+ #~ msgstr ""
920
+ #~ "<strong>Notatka:</strong> Jeśli aktualizacja do wersji 3.0.0 psuje "
921
+ #~ "Fancybox na twoim blogu będziesz musiał prawdopodobnie zresetować "
922
+ #~ "ustawienia (białym przyciskiem poniżej). Testowałem ten problem na kilku "
923
+ #~ "instalacjach Wordpress i zawsze działało, więc może to zależeć od "
924
+ #~ "serwera. Przepraszam ze niedogodności."
925
+
926
+ #~ msgid "Callback on Start event (default: empty)"
927
+ #~ msgstr "Retrollamada en el evento de Inicio (por defecto: vacío)"
928
+
929
+ #~ msgid "Callback on Show event (default: empty)"
930
+ #~ msgstr "Retrollamada en el evento de Mostrado (por defecto: vacío)"
931
+
932
+ #~ msgid "Callback on Close event (default: empty)"
933
+ #~ msgstr "Retrollamada en el evento de Cerrado (por defecto: vacío)"
934
+
935
+ #~ msgid "Leave the fields empty to disable."
936
+ #~ msgstr "Deja estos campos vacíos para desactivar cualqueir retrollamada."
937
+
938
+ #~ msgid "Frame Size"
939
+ #~ msgstr "Tamaño del recuadro"
940
+
941
+ #~ msgid ""
942
+ #~ "Width in pixels of FancyBox when showing iframe content (default: 560)"
943
+ #~ msgstr ""
944
+ #~ "Ancho en píxeles de FancyBox cuado se muestre contenido anidado (por "
945
+ #~ "defecto: 560)"
946
+
947
+ #~ msgid ""
948
+ #~ "Height in pixels of FancyBox when showing iframe content (default: 340)"
949
+ #~ msgstr ""
950
+ #~ "Alto en píxeles de FancyBox cuado se muestre contenido anidado (por "
951
+ #~ "defecto: 340)"
952
+
953
+ #~ msgid "jQuery \"noConflict\" Mode"
954
+ #~ msgstr "Modo jQuery \"noConflict\""
955
+
956
+ #~ msgid "Use jQuery noConflict mode (default: on)"
957
+ #~ msgstr "Usar parámetro noConflict de jQuery (por defecto: activado)"
958
+
959
+ #~ msgid ""
960
+ #~ "(Turning this off may cause problems if there are plugins activated that "
961
+ #~ "use other js framework like mootools, prototype, scriptaculous, etc.)"
962
+ #~ msgstr ""
963
+ #~ "(Desactivar esta opción puede causar problemas si hay plugins activadoes "
964
+ #~ "que usen otros frameworks javascript como Mootols, Prototype, "
965
+ #~ "Scriptaculous, etc.)"
966
+
967
+ #~ msgid "Presentation"
968
+ #~ msgstr "Presentación"
969
+
970
+ #~ msgid ""
971
+ #~ "These are the main settings, which let you tweak color, borders and "
972
+ #~ "animation."
973
+ #~ msgstr ""
974
+ #~ "Estas son las opciones principales, que te permiten ajustar los colores, "
975
+ #~ "bordes y animación."
976
+
977
+ #~ msgid ""
978
+ #~ "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding "
979
+ #~ "Size</strong> to \"0\" for the classic FancyBox look)"
980
+ #~ msgstr ""
981
+ #~ "(Pon el <strong>Color del Borde</strong> en \"#000000\" y el "
982
+ #~ "<strong>Tamaño del Margen</strong> en \"0\" para el aspecto clásico de "
983
+ #~ "FancyBox)"
984
+
985
+ #~ msgid "Show/Hide Advanced Settings"
986
+ #~ msgstr "Mostrar/Ocultar Opciones Avanzadas"
987
+
988
+ #~ msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
989
+ #~ msgstr "Mostrar/Ocultar Resolución de Problemas y Desinstalaci&oacute;n"
990
+
991
+ #~ msgid ""
992
+ #~ "Do not call the <code>fancybox()</code> function here, the plugin does "
993
+ #~ "this for you."
994
+ #~ msgstr ""
995
+ #~ "No llames a la función <code>fancybox()</code> desde aquí, eso ya lo hace "
996
+ #~ "el plugin por tí."
997
+
998
+ #~ msgid "Make a gallery for each post"
999
+ #~ msgstr "Hacer una galería para cada entrada"
1000
+
1001
+ #~ msgid ""
1002
+ #~ "The attribute has to start with fancybox, but can end with however you "
1003
+ #~ "like: \"fancybox1\", \"fancybox2\", \"fancybox-custom\" will work."
1004
+ #~ msgstr ""
1005
+ #~ "El atributo debe empezar por fancybox pero puede terminar como quieras: "
1006
+ #~ "\"fancybox1\", \"fancybox2\", \"fancybox-custom\" servirían."
1007
+
1008
+ #~ msgid "Horizontal position of the close button (default: right)"
1009
+ #~ msgstr ""
1010
+ #~ "Posición horizontal del botón para cerrar FancyBox (por defecto: derecha)"
1011
+
1012
+ #~ msgid "About"
1013
+ #~ msgstr "Informaci&oacute;n"
1014
+
1015
+ #~ msgid ""
1016
+ #~ "This plugin integrates FancyBox with WordPress without having to edit any "
1017
+ #~ "file or code. Once activated the plugin will apply FancyBox automatically "
1018
+ #~ "to all image links, including WordPress galleries. Future versions will "
1019
+ #~ "include some more options like easier inline content integration and more "
1020
+ #~ "advanced customization. Enjoy!"
1021
+ #~ msgstr ""
1022
+ #~ "Este plugin integra FancyBox con WordPress sin necesidad de editar ningún "
1023
+ #~ "archivo o HTML. Una vez activado, el plugin aplicará FancyBox "
1024
+ #~ "automáticamente a todos los enlaces a imágenes, incluyendo galerias de "
1025
+ #~ "WordPress. Que lo disfrutes!"
1026
+
1027
+ #~ msgid ""
1028
+ #~ "If you have problems or questions about FancyBox itself you should <a "
1029
+ #~ "href=\"http://groups.google.com/group/fancybox\">ask in the FancyBox "
1030
+ #~ "Google Group</a>. If you want to make suggestions or ask just about this "
1031
+ #~ "WordPress plugin you can <a href=\"http://blog.moskis.net/downloads/"
1032
+ #~ "plugins/fancybox-for-wordpress/\">leave a comment here</a>, <a href="
1033
+ #~ "\"http://blog.moskis.net/contactar/\">send me an email</a>, or <a href="
1034
+ #~ "\"http://twitter.com/moskis\">contact me on twitter</a>."
1035
+ #~ msgstr ""
1036
+ #~ "Si tienes problemas o preguntas sobre FancyBox deberías <a href=\"http://"
1037
+ #~ "groups.google.com/group/fancybox\">preguntar en este grupo de Google</a> "
1038
+ #~ "(enlace en inglés). Si tienes preguntas o sugerencias sobre este plugin "
1039
+ #~ "para WordPress, puedes <a href=\"http://blog.moskis.net/downloads/plugins/"
1040
+ #~ "fancybox-for-wordpress/\">dejar un comentario aquí</a>, <a href=\"http://"
1041
+ #~ "blog.moskis.net/contactar/\">enviarme un email</a>, o <a href=\"http://"
1042
+ #~ "twitter.com/moskis\">contactar conmigo vía Twitter</a>."
1043
+
1044
+ #~ msgid "Auto Apply"
1045
+ #~ msgstr "Auto Aplicar"
1046
+
1047
+ #~ msgid ""
1048
+ #~ "Apply FancyBox automatically to all links pointing to .jpg, .jpeg, .png "
1049
+ #~ "or .gif images (default: on)"
1050
+ #~ msgstr ""
1051
+ #~ "Aplicar FancyBox automáticamente a todos los enlaces que apunten a "
1052
+ #~ "archivos .jpg, .jpeg, .png o .gif (por defecto: activado)"
1053
+
1054
+ #~ msgid ""
1055
+ #~ "(The link itself must the an image as well, text links will not be "
1056
+ #~ "affected by this option!)"
1057
+ #~ msgstr ""
1058
+ #~ "(El link tiene que estar en una imagen, esta opción no affecta a enlaces "
1059
+ #~ "de texto!)"
1060
+
1061
+ #~ msgid ""
1062
+ #~ "(This does NOT conflict with the previous and next image links on "
1063
+ #~ "FancyBox galleries.)"
1064
+ #~ msgstr ""
1065
+ #~ "(Esto no afecta a los enlaces de Imagen Siguiente e Imagen Anterior en "
1066
+ #~ "galerias de varias imágenes)"
languages/mfbfw-tr_TR.po CHANGED
@@ -1,325 +1,325 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: FancyBox for WordPress\n"
4
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/fancybox-for-wordpress\n"
5
- "POT-Creation-Date: 2009-03-25 16:40+0000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Yunus Emre <immortalance@gmail.com>\n"
8
- "Language-Team: \n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
-
13
- #: admin.php:21
14
- #, php-format
15
- msgid "Fancybox for WordPress Options (version %s)"
16
- msgstr "Wordpress Ayarları için Fancybox (Versiyon %s)"
17
-
18
- #: admin.php:25
19
- msgid "If you use FancyBox and like it, buy the author a beer!"
20
- msgstr "Fancybox'u sevdiyseniz kodlayıcısına bir bira ısmarlayabilirsiniz!"
21
-
22
- #: admin.php:46
23
- msgid "The author of this WordPress Plugin also likes beer :P"
24
- msgstr "Bu eklentinin sahibi bira hastasıdır :P"
25
-
26
- #: admin.php:59
27
- msgid "Follow me on Twitter for more WordPress Plugins and Themes"
28
- msgstr "Daha fazla tema ve plugin için Twitter'dan beni takip edin."
29
-
30
- #: admin.php:66
31
- msgid "Info & Support"
32
- msgstr "Bilgi & Destek"
33
-
34
- #: admin.php:68
35
- msgid "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> developed by <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a>, ported to WordPress by <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
36
- msgstr "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a> tarafından kodlanmıştır. WordPress'e <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a> tarafından uyarlanmıştır. <strong><a href=\"http://blog.immortalance.net/\">Yunus Emre Bayraktar</a></strong> tarafından Türkçeleştirilmiştir. Lisans Tipi:<a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
37
-
38
- #: admin.php:70
39
- msgid "As you can see, this plugin has many options you can edit, but have no fear, you can leave everything as it is if you want, since the default options should be a good start... :)"
40
- msgstr "Gördüğünüz gibi bu eklentide bir çok ayarlama yapabilirsin. Korkma, yanlış yaptığında ilk ayarlara dönüş imkanın var. :)"
41
-
42
- #: admin.php:74
43
- msgid "If you have problems or questions about FancyBox, please start with these links: <a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>.<br />If that does not help, go to <a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>, use the <strong>Search</strong> option, and if necesary, post your question."
44
- msgstr "FancyBox hakkında problem ve sorularınız varsa bu linkten başlayın: <a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>.<br />Eğer aradığınızı bulamadıysanız: <a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>,'na gidin ve <strong>Arama</strong> kutucuğunu kullanın. Bulamadıysanız bir başlık açın."
45
-
46
- #: admin.php:76
47
- msgid "If you are having trouble with this plugin try to localize the problem (switch your theme and/or deactivate plugins until you find the source of the problem). You can also try the Troubleshooting settings at the bottom of this page if necesary. If you still can not get the plugin to work, <a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">leave a comment here</a> explaining the problem."
48
- msgstr "Eğer bir problem yaşarsanız temanızı kontrol ediniz ve sorunu çözene kadar eklentiyi kapatınız. Sorun Giderme kılavuzundan gerektiği taktirde yardım alabilirsiniz. eğer hala bir çözüm bulamadıysanız, <a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">buraya</a> sorununuz hakkında yorum bırakabilirsiniz."
49
-
50
- #: admin.php:81
51
- msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
52
- msgstr "Görünen Ayarlar <span style=\"color:green\">(basic)</span>"
53
-
54
- #: admin.php:83
55
- msgid "These are the main settings, which let you tweak color, borders and animation."
56
- msgstr "Buradaki ana ayarlar ile renk, çerçeve ve animasyonu seçebilirsiniz."
57
-
58
- #: admin.php:85
59
- msgid "<strong>Note:</strong> Having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
60
- msgstr "<strong>Not:</strong> Eğer bir önbellek (Cache) eklentisi kullanıyorsanız ayarlamaları yaptıktan sonra değişiklikleri görmek için önbelleği temizleyin. Daha iyi bir yol ise önbellek eklentisini ayarlarınız bitene kadar kapalı konumda tutun."
61
-
62
- #: admin.php:95
63
- msgid "Border Color"
64
- msgstr "Çerçeve Rengi"
65
-
66
- #: admin.php:101
67
- msgid "HTML color of the border (default: #BBBBBB)"
68
- msgstr "Çerçeve için HTML rengi (default: #BBBBBB)"
69
-
70
- #: admin.php:109
71
- msgid "Close Button Position"
72
- msgstr "Çıkış Butonu Pozisyonu"
73
-
74
- #: admin.php:115
75
- msgid "Left"
76
- msgstr "Sol"
77
-
78
- #: admin.php:120
79
- msgid "Right (default)"
80
- msgstr "Sağ"
81
-
82
- #: admin.php:125
83
- msgid "Bottom"
84
- msgstr "Alt"
85
-
86
- #: admin.php:130
87
- msgid "Top (default)"
88
- msgstr "Üst"
89
-
90
- #: admin.php:138
91
- msgid "Padding"
92
- msgstr "Dolgu"
93
-
94
- #: admin.php:144
95
- msgid "HTML color of the padding (default: #FFFFFF)"
96
- msgstr "Dolgunun HTML rengi (default: #FFFFFF)"
97
-
98
- #: admin.php:149
99
- msgid "Padding size in pixels (default: 10)"
100
- msgstr "Pixel cinsinden dolgu (default: 10)"
101
-
102
- #: admin.php:152
103
- msgid "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding Size</strong> to \"0\" for the classic FancyBox look)"
104
- msgstr "(Klasik görünüm için<strong>Border Color</strong>'ni \"#000000\"'a ayarla ve <strong>Dolgu Boyutunu</strong> \"0\"a ayarla )"
105
-
106
- #: admin.php:159
107
- msgid "Overlay Options"
108
- msgstr "Kaplama Ayarları"
109
-
110
- #: admin.php:165
111
- msgid "Add overlay (default: on)"
112
- msgstr "Kaplama Ekle (default: on)"
113
-
114
- #: admin.php:170
115
- msgid "HTML color of the overlay (default: #666666)"
116
- msgstr "Kaplama için ana HTML rengi (default: #666666)"
117
-
118
- #: admin.php:183
119
- msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
120
- msgstr "Saydamlık ayarları. \"0\" saydam, \"1\" mat şekildedir. (default: 0.3)"
121
-
122
- #: admin.php:191
123
- msgid "Zoom Options"
124
- msgstr "Yakınlaştırma Ayarları"
125
-
126
- #: admin.php:197
127
- msgid "Change content transparency during zoom animations (default: on)"
128
- msgstr "Animasyonel yakınlaştırma sırasında resmin bulunduğu sayfayı saydamlaştır. (default: on)"
129
-
130
- #: admin.php:209
131
- msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
132
- msgstr "Milisaniye cinsinden yakınlaştırma hızı. (default: 500)"
133
-
134
- #: admin.php:221
135
- msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
136
- msgstr "Milisaniye cinsinden uzaklaştırma hızı. (default: 500)"
137
-
138
- #: admin.php:229
139
- msgid "Easing"
140
- msgstr "Sönüklük"
141
-
142
- #: admin.php:235
143
- msgid "Activate easing (default: off)"
144
- msgstr "Sönüklüğü Aktifleştir (Default: off)"
145
-
146
- #: admin.php:248
147
- msgid "Easing method when opening FancyBox. (default: easeOutBack)"
148
- msgstr "Fancybox'u sönükleştirerek aç. (default: easeinback)"
149
-
150
- #: admin.php:261
151
- msgid "Easing method when closing FancyBox. (default: easeInBack)"
152
- msgstr "Fancybox'u sönükleştirerek kapat. (default: easeinback)"
153
-
154
- #: admin.php:274
155
- msgid "Easing method when navigating through gallery items. (default: easeInOutQuart)"
156
- msgstr "Galeri parçalarını gezdirirken sönükleştir . (default: easeInOutQuart)"
157
-
158
- #: admin.php:277
159
- msgid "(There are 30 different easing methods, the first ones are the most boring. You can test them <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html\" target=\"_blank\">here</a>)"
160
- msgstr "(Burada 30 adet geçiş modu bulunmaktadır. İlk seçtiğiniz kötü olabilir. <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html\" target=\"_blank\">Buradan</a>) diğerlerini de kontrol edebilirsiniz."
161
-
162
- #: admin.php:286
163
- msgid "Show/Hide Advanced Settings"
164
- msgstr "İnce Ayarları Göster/Sakla"
165
-
166
- #: admin.php:287
167
- msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
168
- msgstr "Troubleshooting &amp; Eklentiyi Kaldırma ayarları Göster/Sakla"
169
-
170
- #: admin.php:292
171
- msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
172
- msgstr "Hareket Ayarları <span style=\"color:orange\">(medium)</span>"
173
-
174
- #: admin.php:294
175
- msgid "The following settings should be left on default unless you know what you are doing."
176
- msgstr "Ne yaptığınızı bilmiyorsanız düzünlemekten vazgeçin ve ayarları ilk konumuna getirin. (default değerlerine)"
177
-
178
- #: admin.php:300
179
- msgid "Auto Resize to Fit"
180
- msgstr "Otomatik Boyutlandırma"
181
-
182
- #: admin.php:306
183
- msgid "Scale images to fit in viewport (default: on)"
184
- msgstr "Görüntülemeyi ölçeklendir. (default: on)"
185
-
186
- #: admin.php:314
187
- msgid "Center on Scroll"
188
- msgstr "Kaydırırken Ortada"
189
-
190
- #: admin.php:320
191
- msgid "Keep image in the center of the browser window when scrolling (default: on)"
192
- msgstr "Pencere kaydırıldığında resim de sayfayla beraber kaysın. (default: on)"
193
-
194
- #: admin.php:328
195
- msgid "Close on Click"
196
- msgstr "Tıklandığında Çıkış"
197
-
198
- #: admin.php:334
199
- msgid "Close FancyBox by clicking on the image (default: off)"
200
- msgstr "Resime tıklandığında resim penceresini kapat. (default: off)"
201
-
202
- #: admin.php:337
203
- msgid "(You may want to leave this off if you display iframed or inline content and it containts clickable elements - for example: play buttons for movies, links to other pages)"
204
- msgstr "(Eğer sayfayı iframe içerisinde göstermek istemiyorsanız burayı terkedebilirsiniz. Ör:/ videolar için oynatma butonu ve diğer sayfalara linkler koymak gibi.)"
205
-
206
- #: admin.php:347
207
- msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
208
- msgstr "Galeri Ayarları <span style=\"color:red\">(advanced)</span>"
209
-
210
- #: admin.php:349
211
- msgid "Here you can choose if you want the plugin to group all images into a gallery, or make a gallery for each post. You can also define you own jQuery expression if you like."
212
- msgstr "İsterseniz buradan bütün resimleri galerinin içine koyabilir ve yazınıza galeri oluşturabilirsiniz. Ayrıca kendi jQuery ifadelerini kullanabilirsiniz."
213
-
214
- #: admin.php:355
215
- msgid "Frame Size"
216
- msgstr "Açılır Pencere Boyutu"
217
-
218
- #: admin.php:361
219
- msgid "Width in pixels of FancyBox when showing iframe content (default: 640)"
220
- msgstr "Açılır pencere açıldığında Fancybox'un Pixel cinsinden genişliği. (default: 640)"
221
-
222
- #: admin.php:366
223
- msgid "Height in pixels of FancyBox when showing iframe content (default: 500)"
224
- msgstr "Açılır pencere açıldığında Fancybox'un Pixel cinsinden yüksekliği. (default: 500)"
225
-
226
- #: admin.php:374
227
- msgid "Gallery Type"
228
- msgstr "Galeri Tipi"
229
-
230
- #: admin.php:380
231
- msgid "Make a gallery for all images on the page (default)"
232
- msgstr "Sayfadaki tüm resimlerden bir galeri oluştur. (default)"
233
-
234
- #: admin.php:385
235
- msgid "Do not group images in gallery automatically (use this if you want to make galleries manually with the <code>REL</code> attribute)"
236
- msgstr "Resimleri otomatik olarak galeriye ekleme. (Bunu resimleri kendiniz galeriye eklemek isterseniz kullanın. Resimleri<code>REL</code> kodu ile galeriye ekleyebilirsiniz.)"
237
-
238
- #: admin.php:390
239
- msgid "Make a gallery for each post (will only work if your theme uses <code>class=\"post\"</code> on each post, which is common in WordPress"
240
- msgstr "Her yazıda resim galerisi oluştur. (Sadece temanız her yazıda<code>class=\"post\"</code> kodunu kullanıyorsa çalışır, Wordpress'de yaygın olarak kullanılır.)"
241
-
242
- #: admin.php:395
243
- msgid "Use a custom expression to apply FancyBox"
244
- msgstr "Kendi ifadelerinizi Fancybox'a ekleyin."
245
-
246
- #: admin.php:404
247
- msgid "Custom expression guidelines:"
248
- msgstr "Özelleştirilmiş İfadeler Kılavuzu:"
249
-
250
- #: admin.php:406
251
- msgid "The custom expression has to apply <code>class=\"fancybox\"</code> to the links where you want to use FancyBox."
252
- msgstr "Kendi ifadelerinizi kullanmak için FancyBox'u kullandığınız yerdeki linke <code>class=\"fancybox\"</code> kodunu yerleştiriniz."
253
-
254
- #: admin.php:408
255
- msgid "The jQuery <code>addClass()</code> function is a good way to add the class to the desired links conserving any existing class."
256
- msgstr "jQuery <code>addClass()</code> fonksiyonu linklere falan şekil vermek için iyi bir yoldur."
257
-
258
- #: admin.php:410
259
- msgid "You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so that FancyBox can show captions."
260
- msgstr "You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, böylece başlıkları gösterebilirsiniz."
261
-
262
- #: admin.php:412
263
- msgid "Do not call the <code>fancybox()</code> function here, the plugin does this for you."
264
- msgstr "<code>fancybox()</code> fonksiyonunu burada çalıştırma, eklenti sizin için."
265
-
266
- #: admin.php:428
267
- msgid "Troubleshooting Settings"
268
- msgstr "Sorun Giderme Ayarları"
269
-
270
- #: admin.php:430
271
- msgid "Settings in this section should only be changed if you are having problems with the plugin!"
272
- msgstr "Bu seçenek sadece eklentide bir problem yaşanıyorsa değiştirilebilir."
273
-
274
- #: admin.php:432
275
- msgid "If the plugin doesn't seem to work, first you should check for other plugins that may be conflicting with this one, especially other Lightbox, Slimbox, etc. Make sure all your plugins and WordPress itself are up to date (this plugin has only been tested in WordPress 2.7 and above)."
276
- msgstr "Eğer bu eklenti çalışmıyor gibi görünüyorsa diğer eklentileri kontrol edin ve tüm eklentilerin güncel olduğundan emin olun. ( Bu eklenti sadece Wordpress 2.7 ve daha yüksek sürümlerinde test edilmiştir.)"
277
-
278
- #: admin.php:434
279
- msgid "Change them one at a time and test to see if they help. Remember that having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
280
- msgstr "Bir defalığına test etmeniz size yardımcı olabilir. Test işlemini yapmadan önce ön bellek (cache) kullanıyorsanız önbelleği temizleyiniz ve sonra test işlemi yapınız. Önbelekleme sizin yaptığınız değişiklikleri görmenizi engelleyecektir. "
281
-
282
- #: admin.php:440
283
- msgid "Do not call jQuery"
284
- msgstr "jQuery kullanma"
285
-
286
- #: admin.php:446
287
- msgid "Skip jQuery call. Use this only if jQuery is being loaded twice (default: off)"
288
- msgstr "JQuery sorgusunu atla. Eğer JQuery iki defa çalışıyorsa bunu kullanın."
289
-
290
- #: admin.php:454
291
- msgid "jQuery \"noConflict\" Mode"
292
- msgstr "jQuery \"noConflict\" Modu"
293
-
294
- #: admin.php:460
295
- msgid "Use jQuery noConflict mode (default: on)"
296
- msgstr "jQuery noConflict modu kullan (default: on)"
297
-
298
- #: admin.php:463
299
- msgid "(Turning this off may cause problems if there are plugins activated that use other js framework like mootools, prototype, scriptaculous, etc.)"
300
- msgstr "(Eğer eklenti aktifken diğer Java Scriptlerle ilgili problem yaşarsa (mootols, prototype gibi) bunu kapalı konuma getirin. )"
301
-
302
- #: admin.php:472
303
- msgid "Uninstall"
304
- msgstr "Eklentiyi Kaldır"
305
-
306
- #: admin.php:474
307
- msgid "Like many other plugins, FancyBox for WordPress stores its settings on your WordPress' options database table. Actually, these settings are not using more than a couple of kilobytes of space, but if you want to completely uninstall this plugin, check the option below, then save changes, and <strong>when you deactivate the plugin</strong>, all its settings will be removed from the database."
308
- msgstr "Diğer eklentiler gibi Fancybox da veritabanında Wordpress ayarları tablosunu kullanarak çalışır. Çok fazla boyut kullanmamasına rağmen kaldırmak isterseniz öncelikle ayarlardan eklentiyi kapatınız. Böylece ayarlarınız veritababnından silinecektir. Daha sonra kaldırma işlemini tamamlayabilirsiniz."
309
-
310
- #: admin.php:480
311
- msgid "Remove settings"
312
- msgstr "Ayarları Sil"
313
-
314
- #: admin.php:486
315
- msgid "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. (default: off)"
316
- msgstr "Eklenti etkisizleştirildiğinde ayarları temizle."
317
-
318
- #: admin.php:503
319
- msgid "Save Changes"
320
- msgstr "Değişiklikleri Kaydet"
321
-
322
- #: fancybox.php:437
323
- msgid "Settings"
324
- msgstr "Ayarlar"
325
-
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: FancyBox for WordPress\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/fancybox-for-wordpress\n"
5
+ "POT-Creation-Date: 2009-03-25 16:40+0000\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Yunus Emre <immortalance@gmail.com>\n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+
13
+ #: admin.php:21
14
+ #, php-format
15
+ msgid "Fancybox for WordPress Options (version %s)"
16
+ msgstr "Wordpress Ayarları için Fancybox (Versiyon %s)"
17
+
18
+ #: admin.php:25
19
+ msgid "If you use FancyBox and like it, buy the author a beer!"
20
+ msgstr "Fancybox'u sevdiyseniz kodlayıcısına bir bira ısmarlayabilirsiniz!"
21
+
22
+ #: admin.php:46
23
+ msgid "The author of this WordPress Plugin also likes beer :P"
24
+ msgstr "Bu eklentinin sahibi bira hastasıdır :P"
25
+
26
+ #: admin.php:59
27
+ msgid "Follow me on Twitter for more WordPress Plugins and Themes"
28
+ msgstr "Daha fazla tema ve plugin için Twitter'dan beni takip edin."
29
+
30
+ #: admin.php:66
31
+ msgid "Info & Support"
32
+ msgstr "Bilgi & Destek"
33
+
34
+ #: admin.php:68
35
+ msgid "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> developed by <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a>, ported to WordPress by <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
36
+ msgstr "<a href=\"http://fancy.klade.lv/home\">FancyBox</a> <a href=\"http://kac.klade.lv/\">Janis Skarnelis</a> tarafından kodlanmıştır. WordPress'e <a href=\"http://moskis.net/\">Jos&eacute; Pardilla</a> tarafından uyarlanmıştır. <strong><a href=\"http://blog.immortalance.net/\">Yunus Emre Bayraktar</a></strong> tarafından Türkçeleştirilmiştir. Lisans Tipi:<a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
37
+
38
+ #: admin.php:70
39
+ msgid "As you can see, this plugin has many options you can edit, but have no fear, you can leave everything as it is if you want, since the default options should be a good start... :)"
40
+ msgstr "Gördüğünüz gibi bu eklentide bir çok ayarlama yapabilirsin. Korkma, yanlış yaptığında ilk ayarlara dönüş imkanın var. :)"
41
+
42
+ #: admin.php:74
43
+ msgid "If you have problems or questions about FancyBox, please start with these links: <a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>.<br />If that does not help, go to <a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>, use the <strong>Search</strong> option, and if necesary, post your question."
44
+ msgstr "FancyBox hakkında problem ve sorularınız varsa bu linkten başlayın: <a href=\"http://fancy.klade.lv/howto\">How-To</a> & <a href=\"http://fancy.klade.lv/faq\">FAQ</a>.<br />Eğer aradığınızı bulamadıysanız: <a href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</a>,'na gidin ve <strong>Arama</strong> kutucuğunu kullanın. Bulamadıysanız bir başlık açın."
45
+
46
+ #: admin.php:76
47
+ msgid "If you are having trouble with this plugin try to localize the problem (switch your theme and/or deactivate plugins until you find the source of the problem). You can also try the Troubleshooting settings at the bottom of this page if necesary. If you still can not get the plugin to work, <a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">leave a comment here</a> explaining the problem."
48
+ msgstr "Eğer bir problem yaşarsanız temanızı kontrol ediniz ve sorunu çözene kadar eklentiyi kapatınız. Sorun Giderme kılavuzundan gerektiği taktirde yardım alabilirsiniz. eğer hala bir çözüm bulamadıysanız, <a href=\"http://blog.moskis.net/downloads/plugins/fancybox-for-wordpress/\">buraya</a> sorununuz hakkında yorum bırakabilirsiniz."
49
+
50
+ #: admin.php:81
51
+ msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
52
+ msgstr "Görünen Ayarlar <span style=\"color:green\">(basic)</span>"
53
+
54
+ #: admin.php:83
55
+ msgid "These are the main settings, which let you tweak color, borders and animation."
56
+ msgstr "Buradaki ana ayarlar ile renk, çerçeve ve animasyonu seçebilirsiniz."
57
+
58
+ #: admin.php:85
59
+ msgid "<strong>Note:</strong> Having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
60
+ msgstr "<strong>Not:</strong> Eğer bir önbellek (Cache) eklentisi kullanıyorsanız ayarlamaları yaptıktan sonra değişiklikleri görmek için önbelleği temizleyin. Daha iyi bir yol ise önbellek eklentisini ayarlarınız bitene kadar kapalı konumda tutun."
61
+
62
+ #: admin.php:95
63
+ msgid "Border Color"
64
+ msgstr "Çerçeve Rengi"
65
+
66
+ #: admin.php:101
67
+ msgid "HTML color of the border (default: #BBBBBB)"
68
+ msgstr "Çerçeve için HTML rengi (default: #BBBBBB)"
69
+
70
+ #: admin.php:109
71
+ msgid "Close Button Position"
72
+ msgstr "Çıkış Butonu Pozisyonu"
73
+
74
+ #: admin.php:115
75
+ msgid "Left"
76
+ msgstr "Sol"
77
+
78
+ #: admin.php:120
79
+ msgid "Right (default)"
80
+ msgstr "Sağ"
81
+
82
+ #: admin.php:125
83
+ msgid "Bottom"
84
+ msgstr "Alt"
85
+
86
+ #: admin.php:130
87
+ msgid "Top (default)"
88
+ msgstr "Üst"
89
+
90
+ #: admin.php:138
91
+ msgid "Padding"
92
+ msgstr "Dolgu"
93
+
94
+ #: admin.php:144
95
+ msgid "HTML color of the padding (default: #FFFFFF)"
96
+ msgstr "Dolgunun HTML rengi (default: #FFFFFF)"
97
+
98
+ #: admin.php:149
99
+ msgid "Padding size in pixels (default: 10)"
100
+ msgstr "Pixel cinsinden dolgu (default: 10)"
101
+
102
+ #: admin.php:152
103
+ msgid "(Set <strong>Border Color</strong> to \"#000000\" and <strong>Padding Size</strong> to \"0\" for the classic FancyBox look)"
104
+ msgstr "(Klasik görünüm için<strong>Border Color</strong>'ni \"#000000\"'a ayarla ve <strong>Dolgu Boyutunu</strong> \"0\"a ayarla )"
105
+
106
+ #: admin.php:159
107
+ msgid "Overlay Options"
108
+ msgstr "Kaplama Ayarları"
109
+
110
+ #: admin.php:165
111
+ msgid "Add overlay (default: on)"
112
+ msgstr "Kaplama Ekle (default: on)"
113
+
114
+ #: admin.php:170
115
+ msgid "HTML color of the overlay (default: #666666)"
116
+ msgstr "Kaplama için ana HTML rengi (default: #666666)"
117
+
118
+ #: admin.php:183
119
+ msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
120
+ msgstr "Saydamlık ayarları. \"0\" saydam, \"1\" mat şekildedir. (default: 0.3)"
121
+
122
+ #: admin.php:191
123
+ msgid "Zoom Options"
124
+ msgstr "Yakınlaştırma Ayarları"
125
+
126
+ #: admin.php:197
127
+ msgid "Change content transparency during zoom animations (default: on)"
128
+ msgstr "Animasyonel yakınlaştırma sırasında resmin bulunduğu sayfayı saydamlaştır. (default: on)"
129
+
130
+ #: admin.php:209
131
+ msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
132
+ msgstr "Milisaniye cinsinden yakınlaştırma hızı. (default: 500)"
133
+
134
+ #: admin.php:221
135
+ msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
136
+ msgstr "Milisaniye cinsinden uzaklaştırma hızı. (default: 500)"
137
+
138
+ #: admin.php:229
139
+ msgid "Easing"
140
+ msgstr "Sönüklük"
141
+
142
+ #: admin.php:235
143
+ msgid "Activate easing (default: off)"
144
+ msgstr "Sönüklüğü Aktifleştir (Default: off)"
145
+
146
+ #: admin.php:248
147
+ msgid "Easing method when opening FancyBox. (default: easeOutBack)"
148
+ msgstr "Fancybox'u sönükleştirerek aç. (default: easeinback)"
149
+
150
+ #: admin.php:261
151
+ msgid "Easing method when closing FancyBox. (default: easeInBack)"
152
+ msgstr "Fancybox'u sönükleştirerek kapat. (default: easeinback)"
153
+
154
+ #: admin.php:274
155
+ msgid "Easing method when navigating through gallery items. (default: easeInOutQuart)"
156
+ msgstr "Galeri parçalarını gezdirirken sönükleştir . (default: easeInOutQuart)"
157
+
158
+ #: admin.php:277
159
+ msgid "(There are 30 different easing methods, the first ones are the most boring. You can test them <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html\" target=\"_blank\">here</a>)"
160
+ msgstr "(Burada 30 adet geçiş modu bulunmaktadır. İlk seçtiğiniz kötü olabilir. <a href=\"http://commadot.com/jquery/easing.php\" target=\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/animationtypes.html\" target=\"_blank\">Buradan</a>) diğerlerini de kontrol edebilirsiniz."
161
+
162
+ #: admin.php:286
163
+ msgid "Show/Hide Advanced Settings"
164
+ msgstr "İnce Ayarları Göster/Sakla"
165
+
166
+ #: admin.php:287
167
+ msgid "Show/Hide Troubleshooting &amp; Uninstall Settings"
168
+ msgstr "Troubleshooting &amp; Eklentiyi Kaldırma ayarları Göster/Sakla"
169
+
170
+ #: admin.php:292
171
+ msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
172
+ msgstr "Hareket Ayarları <span style=\"color:orange\">(medium)</span>"
173
+
174
+ #: admin.php:294
175
+ msgid "The following settings should be left on default unless you know what you are doing."
176
+ msgstr "Ne yaptığınızı bilmiyorsanız düzünlemekten vazgeçin ve ayarları ilk konumuna getirin. (default değerlerine)"
177
+
178
+ #: admin.php:300
179
+ msgid "Auto Resize to Fit"
180
+ msgstr "Otomatik Boyutlandırma"
181
+
182
+ #: admin.php:306
183
+ msgid "Scale images to fit in viewport (default: on)"
184
+ msgstr "Görüntülemeyi ölçeklendir. (default: on)"
185
+
186
+ #: admin.php:314
187
+ msgid "Center on Scroll"
188
+ msgstr "Kaydırırken Ortada"
189
+
190
+ #: admin.php:320
191
+ msgid "Keep image in the center of the browser window when scrolling (default: on)"
192
+ msgstr "Pencere kaydırıldığında resim de sayfayla beraber kaysın. (default: on)"
193
+
194
+ #: admin.php:328
195
+ msgid "Close on Click"
196
+ msgstr "Tıklandığında Çıkış"
197
+
198
+ #: admin.php:334
199
+ msgid "Close FancyBox by clicking on the image (default: off)"
200
+ msgstr "Resime tıklandığında resim penceresini kapat. (default: off)"
201
+
202
+ #: admin.php:337
203
+ msgid "(You may want to leave this off if you display iframed or inline content and it containts clickable elements - for example: play buttons for movies, links to other pages)"
204
+ msgstr "(Eğer sayfayı iframe içerisinde göstermek istemiyorsanız burayı terkedebilirsiniz. Ör:/ videolar için oynatma butonu ve diğer sayfalara linkler koymak gibi.)"
205
+
206
+ #: admin.php:347
207
+ msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
208
+ msgstr "Galeri Ayarları <span style=\"color:red\">(advanced)</span>"
209
+
210
+ #: admin.php:349
211
+ msgid "Here you can choose if you want the plugin to group all images into a gallery, or make a gallery for each post. You can also define you own jQuery expression if you like."
212
+ msgstr "İsterseniz buradan bütün resimleri galerinin içine koyabilir ve yazınıza galeri oluşturabilirsiniz. Ayrıca kendi jQuery ifadelerini kullanabilirsiniz."
213
+
214
+ #: admin.php:355
215
+ msgid "Frame Size"
216
+ msgstr "Açılır Pencere Boyutu"
217
+
218
+ #: admin.php:361
219
+ msgid "Width in pixels of FancyBox when showing iframe content (default: 640)"
220
+ msgstr "Açılır pencere açıldığında Fancybox'un Pixel cinsinden genişliği. (default: 640)"
221
+
222
+ #: admin.php:366
223
+ msgid "Height in pixels of FancyBox when showing iframe content (default: 500)"
224
+ msgstr "Açılır pencere açıldığında Fancybox'un Pixel cinsinden yüksekliği. (default: 500)"
225
+
226
+ #: admin.php:374
227
+ msgid "Gallery Type"
228
+ msgstr "Galeri Tipi"
229
+
230
+ #: admin.php:380
231
+ msgid "Make a gallery for all images on the page (default)"
232
+ msgstr "Sayfadaki tüm resimlerden bir galeri oluştur. (default)"
233
+
234
+ #: admin.php:385
235
+ msgid "Do not group images in gallery automatically (use this if you want to make galleries manually with the <code>REL</code> attribute)"
236
+ msgstr "Resimleri otomatik olarak galeriye ekleme. (Bunu resimleri kendiniz galeriye eklemek isterseniz kullanın. Resimleri<code>REL</code> kodu ile galeriye ekleyebilirsiniz.)"
237
+
238
+ #: admin.php:390
239
+ msgid "Make a gallery for each post (will only work if your theme uses <code>class=\"post\"</code> on each post, which is common in WordPress"
240
+ msgstr "Her yazıda resim galerisi oluştur. (Sadece temanız her yazıda<code>class=\"post\"</code> kodunu kullanıyorsa çalışır, Wordpress'de yaygın olarak kullanılır.)"
241
+
242
+ #: admin.php:395
243
+ msgid "Use a custom expression to apply FancyBox"
244
+ msgstr "Kendi ifadelerinizi Fancybox'a ekleyin."
245
+
246
+ #: admin.php:404
247
+ msgid "Custom expression guidelines:"
248
+ msgstr "Özelleştirilmiş İfadeler Kılavuzu:"
249
+
250
+ #: admin.php:406
251
+ msgid "The custom expression has to apply <code>class=\"fancybox\"</code> to the links where you want to use FancyBox."
252
+ msgstr "Kendi ifadelerinizi kullanmak için FancyBox'u kullandığınız yerdeki linke <code>class=\"fancybox\"</code> kodunu yerleştiriniz."
253
+
254
+ #: admin.php:408
255
+ msgid "The jQuery <code>addClass()</code> function is a good way to add the class to the desired links conserving any existing class."
256
+ msgstr "jQuery <code>addClass()</code> fonksiyonu linklere falan şekil vermek için iyi bir yoldur."
257
+
258
+ #: admin.php:410
259
+ msgid "You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so that FancyBox can show captions."
260
+ msgstr "You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, böylece başlıkları gösterebilirsiniz."
261
+
262
+ #: admin.php:412
263
+ msgid "Do not call the <code>fancybox()</code> function here, the plugin does this for you."
264
+ msgstr "<code>fancybox()</code> fonksiyonunu burada çalıştırma, eklenti sizin için."
265
+
266
+ #: admin.php:428
267
+ msgid "Troubleshooting Settings"
268
+ msgstr "Sorun Giderme Ayarları"
269
+
270
+ #: admin.php:430
271
+ msgid "Settings in this section should only be changed if you are having problems with the plugin!"
272
+ msgstr "Bu seçenek sadece eklentide bir problem yaşanıyorsa değiştirilebilir."
273
+
274
+ #: admin.php:432
275
+ msgid "If the plugin doesn't seem to work, first you should check for other plugins that may be conflicting with this one, especially other Lightbox, Slimbox, etc. Make sure all your plugins and WordPress itself are up to date (this plugin has only been tested in WordPress 2.7 and above)."
276
+ msgstr "Eğer bu eklenti çalışmıyor gibi görünüyorsa diğer eklentileri kontrol edin ve tüm eklentilerin güncel olduğundan emin olun. ( Bu eklenti sadece Wordpress 2.7 ve daha yüksek sürümlerinde test edilmiştir.)"
277
+
278
+ #: admin.php:434
279
+ msgid "Change them one at a time and test to see if they help. Remember that having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options."
280
+ msgstr "Bir defalığına test etmeniz size yardımcı olabilir. Test işlemini yapmadan önce ön bellek (cache) kullanıyorsanız önbelleği temizleyiniz ve sonra test işlemi yapınız. Önbelekleme sizin yaptığınız değişiklikleri görmenizi engelleyecektir. "
281
+
282
+ #: admin.php:440
283
+ msgid "Do not call jQuery"
284
+ msgstr "jQuery kullanma"
285
+
286
+ #: admin.php:446
287
+ msgid "Skip jQuery call. Use this only if jQuery is being loaded twice (default: off)"
288
+ msgstr "JQuery sorgusunu atla. Eğer JQuery iki defa çalışıyorsa bunu kullanın."
289
+
290
+ #: admin.php:454
291
+ msgid "jQuery \"noConflict\" Mode"
292
+ msgstr "jQuery \"noConflict\" Modu"
293
+
294
+ #: admin.php:460
295
+ msgid "Use jQuery noConflict mode (default: on)"
296
+ msgstr "jQuery noConflict modu kullan (default: on)"
297
+
298
+ #: admin.php:463
299
+ msgid "(Turning this off may cause problems if there are plugins activated that use other js framework like mootools, prototype, scriptaculous, etc.)"
300
+ msgstr "(Eğer eklenti aktifken diğer Java Scriptlerle ilgili problem yaşarsa (mootols, prototype gibi) bunu kapalı konuma getirin. )"
301
+
302
+ #: admin.php:472
303
+ msgid "Uninstall"
304
+ msgstr "Eklentiyi Kaldır"
305
+
306
+ #: admin.php:474
307
+ msgid "Like many other plugins, FancyBox for WordPress stores its settings on your WordPress' options database table. Actually, these settings are not using more than a couple of kilobytes of space, but if you want to completely uninstall this plugin, check the option below, then save changes, and <strong>when you deactivate the plugin</strong>, all its settings will be removed from the database."
308
+ msgstr "Diğer eklentiler gibi Fancybox da veritabanında Wordpress ayarları tablosunu kullanarak çalışır. Çok fazla boyut kullanmamasına rağmen kaldırmak isterseniz öncelikle ayarlardan eklentiyi kapatınız. Böylece ayarlarınız veritababnından silinecektir. Daha sonra kaldırma işlemini tamamlayabilirsiniz."
309
+
310
+ #: admin.php:480
311
+ msgid "Remove settings"
312
+ msgstr "Ayarları Sil"
313
+
314
+ #: admin.php:486
315
+ msgid "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. (default: off)"
316
+ msgstr "Eklenti etkisizleştirildiğinde ayarları temizle."
317
+
318
+ #: admin.php:503
319
+ msgid "Save Changes"
320
+ msgstr "Değişiklikleri Kaydet"
321
+
322
+ #: fancybox.php:437
323
+ msgid "Settings"
324
+ msgstr "Ayarlar"
325
+
languages/mfbfw.pot CHANGED
@@ -1,644 +1,644 @@
1
- # Copyright (C) 2015 FancyBox for WordPress
2
- # This file is distributed under the same license as the FancyBox for WordPress package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: FancyBox for WordPress 3.0.5\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/fancybox-for-"
7
- "wordpress\n"
8
- "POT-Creation-Date: 2015-02-07 01:56:01+00:00\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
-
16
- #: admin.php:12
17
- #, php-format
18
- msgid "Fancybox for WordPress (version %s)"
19
- msgstr ""
20
-
21
- #: admin.php:26
22
- msgid "Appearance"
23
- msgstr ""
24
-
25
- #: admin.php:27
26
- msgid "Animations"
27
- msgstr ""
28
-
29
- #: admin.php:28
30
- msgid "Behaviour"
31
- msgstr ""
32
-
33
- #: admin.php:29
34
- msgid "Galleries"
35
- msgstr ""
36
-
37
- #: admin.php:30
38
- msgid "Misc."
39
- msgstr ""
40
-
41
- #: admin.php:31
42
- msgid "Support"
43
- msgstr ""
44
-
45
- #: admin.php:62
46
- msgid "Save Changes"
47
- msgstr ""
48
-
49
- #: admin.php:71
50
- msgid "Revert to defaults"
51
- msgstr ""
52
-
53
- #: fancybox.php:382
54
- msgid "Rollback version"
55
- msgstr ""
56
-
57
- #: fancybox.php:469
58
- msgid "Settings"
59
- msgstr ""
60
-
61
- #: lib/admin-tab-animations.php:1
62
- msgid "Animation Settings <span style=\"color:green\">(basic)</span>"
63
- msgstr ""
64
-
65
- #: lib/admin-tab-animations.php:3
66
- msgid ""
67
- "These settings control the animations when opening and closing Fancybox, and "
68
- "the optional easing effects."
69
- msgstr ""
70
-
71
- #: lib/admin-tab-animations.php:8
72
- msgid "Zoom Options"
73
- msgstr ""
74
-
75
- #: lib/admin-tab-animations.php:16
76
- msgid "Change content transparency during zoom animations (default: on)"
77
- msgstr ""
78
-
79
- #: lib/admin-tab-animations.php:22
80
- msgid "Animation Type"
81
- msgstr ""
82
-
83
- #: lib/admin-tab-animations.php:33
84
- msgid "Animation type when opening FancyBox. (default: fade)"
85
- msgstr ""
86
-
87
- #: lib/admin-tab-animations.php:45
88
- msgid "Speed in miliseconds of the FancyBox opening animation (default: 500)"
89
- msgstr ""
90
-
91
- #: lib/admin-tab-animations.php:52
92
- msgid "Animation between slides Options"
93
- msgstr ""
94
-
95
- #: lib/admin-tab-animations.php:63
96
- msgid "Select Animation type for the slides(default: fade)"
97
- msgstr ""
98
-
99
- #: lib/admin-tab-animations.php:74
100
- msgid ""
101
- "Speed in miliseconds of the animation when navigating thorugh gallery items "
102
- "(default: 300)"
103
- msgstr ""
104
-
105
- #: lib/admin-tab-appearance.php:1
106
- msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
107
- msgstr ""
108
-
109
- #: lib/admin-tab-appearance.php:3
110
- msgid ""
111
- "These setting control how Fancybox looks, they let you tweak color, borders "
112
- "and position of elements, like the image title and closing buttons."
113
- msgstr ""
114
-
115
- #: lib/admin-tab-appearance.php:8
116
- msgid "Close Button"
117
- msgstr ""
118
-
119
- #: lib/admin-tab-appearance.php:17
120
- msgid "Show Close button (default: on)"
121
- msgstr ""
122
-
123
- #: lib/admin-tab-appearance.php:24
124
- msgid "Toolbar"
125
- msgstr ""
126
-
127
- #: lib/admin-tab-appearance.php:33
128
- msgid "Show Toolbar (default: on)"
129
- msgstr ""
130
-
131
- #: lib/admin-tab-appearance.php:40
132
- msgid "Border"
133
- msgstr ""
134
-
135
- #: lib/admin-tab-appearance.php:48
136
- msgid "Show Border (default: off)"
137
- msgstr ""
138
-
139
- #: lib/admin-tab-appearance.php:55
140
- msgid "HTML color of the border (default: #BBBBBB)"
141
- msgstr ""
142
-
143
- #: lib/admin-tab-appearance.php:62
144
- msgid "Padding"
145
- msgstr ""
146
-
147
- #: lib/admin-tab-appearance.php:69
148
- msgid "HTML color of the padding (default: #FFFFFF)"
149
- msgstr ""
150
-
151
- #: lib/admin-tab-appearance.php:70
152
- msgid ""
153
- "(This should be left on #FFFFFF (white) if you want to display anything "
154
- "other than images, like inline or framed content)"
155
- msgstr ""
156
-
157
- #: lib/admin-tab-appearance.php:78
158
- msgid "Padding size in pixels (default: 10)"
159
- msgstr ""
160
-
161
- #: lib/admin-tab-appearance.php:85
162
- msgid "Overlay Options"
163
- msgstr ""
164
-
165
- #: lib/admin-tab-appearance.php:93
166
- msgid "Add overlay (default: on)"
167
- msgstr ""
168
-
169
- #: lib/admin-tab-appearance.php:100
170
- msgid "HTML color of the overlay (default: #666666)"
171
- msgstr ""
172
-
173
- #: lib/admin-tab-appearance.php:108
174
- msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
175
- msgstr ""
176
-
177
- #: lib/admin-tab-appearance.php:116
178
- msgid "Title"
179
- msgstr ""
180
-
181
- #: lib/admin-tab-appearance.php:124
182
- msgid "Show the title (default: on)"
183
- msgstr ""
184
-
185
- #: lib/admin-tab-appearance.php:130
186
- msgid "Title size (default: 14px)"
187
- msgstr ""
188
-
189
- #: lib/admin-tab-appearance.php:139
190
- msgid "Inside (default)"
191
- msgstr ""
192
-
193
- #: lib/admin-tab-appearance.php:146
194
- msgid "Outside"
195
- msgstr ""
196
-
197
- #: lib/admin-tab-appearance.php:153
198
- msgid "Over"
199
- msgstr ""
200
-
201
- #: lib/admin-tab-appearance.php:162
202
- msgid "Title text color (default: #333333)"
203
- msgstr ""
204
-
205
- #: lib/admin-tab-appearance.php:163
206
- msgid "(Should contrast with the padding color set above)"
207
- msgstr ""
208
-
209
- #: lib/admin-tab-appearance.php:171
210
- msgid "Navigation Arrows"
211
- msgstr ""
212
-
213
- #: lib/admin-tab-appearance.php:179
214
- msgid "Show the navigation arrows (default: on)"
215
- msgstr ""
216
-
217
- #: lib/admin-tab-behaviour.php:1
218
- msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
219
- msgstr ""
220
-
221
- #: lib/admin-tab-behaviour.php:2
222
- msgid ""
223
- "The following settings should be left alone unless you know what you are "
224
- "doing."
225
- msgstr ""
226
-
227
- #: lib/admin-tab-behaviour.php:6
228
- msgid "Close on Content Click"
229
- msgstr ""
230
-
231
- #: lib/admin-tab-behaviour.php:14
232
- msgid "Close FancyBox by clicking on the image (default: off)"
233
- msgstr ""
234
-
235
- #: lib/admin-tab-behaviour.php:17
236
- msgid ""
237
- "(You may want to leave this off if you display iframed or inline content "
238
- "that containts clickable elements - for example: play buttons for movies, "
239
- "links to other pages)"
240
- msgstr ""
241
-
242
- #: lib/admin-tab-behaviour.php:24
243
- msgid "Close on Overlay Click"
244
- msgstr ""
245
-
246
- #: lib/admin-tab-behaviour.php:32
247
- msgid "Close FancyBox by clicking on the overlay sorrounding it (default: on)"
248
- msgstr ""
249
-
250
- #: lib/admin-tab-behaviour.php:39
251
- msgid "Keyboard navigation;"
252
- msgstr ""
253
-
254
- #: lib/admin-tab-behaviour.php:47
255
- msgid "Enable Keyboard Navigation (default: on)"
256
- msgstr ""
257
-
258
- #: lib/admin-tab-behaviour.php:54
259
- msgid "Loop Galleries"
260
- msgstr ""
261
-
262
- #: lib/admin-tab-behaviour.php:62
263
- msgid ""
264
- "This will make galleries loop, allowing you to keep pressing next/back "
265
- "(default: off)"
266
- msgstr ""
267
-
268
- #: lib/admin-tab-behaviour.php:69
269
- msgid "Mouse Wheel Navigation"
270
- msgstr ""
271
-
272
- #: lib/admin-tab-behaviour.php:77
273
- msgid "Lets visitors navigate galleries with the mouse wheel (default: off)"
274
- msgstr ""
275
-
276
- #: lib/admin-tab-behaviour.php:84
277
- msgid "Woocommerce:"
278
- msgstr ""
279
-
280
- #: lib/admin-tab-behaviour.php:92
281
- msgid "Disable on Woocommerce Shop page.( Default : off )"
282
- msgstr ""
283
-
284
- #: lib/admin-tab-behaviour.php:101
285
- msgid "Disable on Woocommerce products.( Default : off )"
286
- msgstr ""
287
-
288
- #: lib/admin-tab-galleries.php:1
289
- msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
290
- msgstr ""
291
-
292
- #: lib/admin-tab-galleries.php:2
293
- msgid ""
294
- "Here you can choose if you want the plugin to group all images into a "
295
- "gallery, or make a gallery for each post. You can also define you own jQuery "
296
- "expression if you like."
297
- msgstr ""
298
-
299
- #: lib/admin-tab-galleries.php:11
300
- msgid "Gallery Type"
301
- msgstr ""
302
-
303
- #: lib/admin-tab-galleries.php:16
304
- msgid "Make a gallery for all images on the page (default)"
305
- msgstr ""
306
-
307
- #: lib/admin-tab-galleries.php:21
308
- msgid ""
309
- "Do not group images in gallery automatically (use this if you want to make "
310
- "galleries manually with the <code>REL</code> attribute)"
311
- msgstr ""
312
-
313
- #: lib/admin-tab-galleries.php:26
314
- msgid ""
315
- "Make a gallery for each post (will only work if your theme uses <code>class="
316
- "\"post\"</code> on each post, which is common in WordPress"
317
- msgstr ""
318
-
319
- #: lib/admin-tab-galleries.php:31
320
- msgid "Use a custom expression to apply FancyBox"
321
- msgstr ""
322
-
323
- #: lib/admin-tab-galleries.php:35 lib/admin-tab-other.php:70
324
- #: lib/admin-tab-other.php:78 lib/admin-tab-other.php:86
325
- #: lib/admin-tab-other.php:94 lib/admin-tab-other.php:102
326
- #: lib/admin-tab-other.php:137
327
- msgid "Click to start editing"
328
- msgstr ""
329
-
330
- #: lib/admin-tab-galleries.php:39
331
- msgid "Custom expression guidelines:"
332
- msgstr ""
333
-
334
- #: lib/admin-tab-galleries.php:41
335
- msgid ""
336
- "&middot; The custom expression has to apply <code>class=\"fancybox\"</code> "
337
- "to the links where you want to use FancyBox. Do not call the "
338
- "<code>fancybox()</code> function here, the plugin does this for you."
339
- msgstr ""
340
-
341
- #: lib/admin-tab-galleries.php:43
342
- msgid ""
343
- "&middot; The jQuery <code>addClass()</code> function is a good way to add "
344
- "the class to the desired links conserving any existing class."
345
- msgstr ""
346
-
347
- #: lib/admin-tab-galleries.php:45
348
- msgid ""
349
- "&middot; You can use <code>getTitle()</code> in your expression to copy the "
350
- "title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so "
351
- "that FancyBox can show captions."
352
- msgstr ""
353
-
354
- #: lib/admin-tab-galleries.php:47
355
- msgid ""
356
- "&middot; You can use <code>jQuery(thumbnails)</code> like in the example "
357
- "expression to apply FancyBox to thumbnails that link to these extensions: "
358
- "BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase)."
359
- msgstr ""
360
-
361
- #: lib/admin-tab-galleries.php:49
362
- msgid ""
363
- "&middot; If you want to do it manually you can use something like "
364
- "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> or whatever works for you."
365
- msgstr ""
366
-
367
- #: lib/admin-tab-galleries.php:51
368
- msgid ""
369
- "See the <a href=\"http://docs.jquery.com/\" target=\"_blank\">jQuery "
370
- "Documentation</a> for more help."
371
- msgstr ""
372
-
373
- #: lib/admin-tab-galleries.php:53
374
- msgid "Examples:"
375
- msgstr ""
376
-
377
- #: lib/admin-tab-other.php:1
378
- msgid "Other Settings <span style=\"color:red\">(advanced)</span>"
379
- msgstr ""
380
-
381
- #: lib/admin-tab-other.php:2
382
- msgid "These are additional settings for advanced users."
383
- msgstr ""
384
-
385
- #: lib/admin-tab-other.php:6
386
- msgid "Dimensions"
387
- msgstr ""
388
-
389
- #: lib/admin-tab-other.php:14
390
- msgid "Auto detect dimensions (default: on)"
391
- msgstr ""
392
-
393
- #: lib/admin-tab-other.php:17
394
- msgid ""
395
- "Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! "
396
- "Flash dimensions won't be autodetected so specify them below if necessary. "
397
- "If you want to insert several pieces of flash content with different "
398
- "dimensions you will have to use the <strong>Additional FancyBox Calls</"
399
- "strong> option."
400
- msgstr ""
401
-
402
- #: lib/admin-tab-other.php:23
403
- msgid ""
404
- "Width for iframe and swf content. Also set for inline content if "
405
- "<em>autoDimensions</em> is disabled (default: 560)"
406
- msgstr ""
407
-
408
- #: lib/admin-tab-other.php:28
409
- msgid ""
410
- "Height for iframe and swf content. Also set for inline content if "
411
- "<em>autoDimensions</em> is disabled (default: 340)"
412
- msgstr ""
413
-
414
- #: lib/admin-tab-other.php:35
415
- msgid "Load JavaScript in Footer"
416
- msgstr ""
417
-
418
- #: lib/admin-tab-other.php:43
419
- msgid ""
420
- "Loads JavaScript at the end of the blog's HTML (experimental) (default: off)"
421
- msgstr ""
422
-
423
- #: lib/admin-tab-other.php:46
424
- msgid ""
425
- "This option won't be recognized if you use <strong>Parallel Load</strong> "
426
- "plugin. In that case, you can do this from Parallel Load's options."
427
- msgstr ""
428
-
429
- #: lib/admin-tab-other.php:53
430
- msgid "Callbacks"
431
- msgstr ""
432
-
433
- #: lib/admin-tab-other.php:61
434
- msgid "Enable callbacks (default: off)"
435
- msgstr ""
436
-
437
- #: lib/admin-tab-other.php:63
438
- msgid "Enabling this will show additional settings."
439
- msgstr ""
440
-
441
- #: lib/admin-tab-other.php:67
442
- msgid ""
443
- "Callback on <strong>Start</strong> event: Will be called right before "
444
- "attempting to load the content"
445
- msgstr ""
446
-
447
- #: lib/admin-tab-other.php:75
448
- msgid ""
449
- "Callback on <strong>Cancel</strong> event: Will be called after loading is "
450
- "canceled"
451
- msgstr ""
452
-
453
- #: lib/admin-tab-other.php:83
454
- msgid ""
455
- "Callback on <strong>Complete</strong> event: Will be called once the content "
456
- "is displayed"
457
- msgstr ""
458
-
459
- #: lib/admin-tab-other.php:91
460
- msgid ""
461
- "Callback on <strong>CleanUp</strong> event: Will be called just before "
462
- "closing"
463
- msgstr ""
464
-
465
- #: lib/admin-tab-other.php:99
466
- msgid ""
467
- "Callback on <strong>Closed</strong> event: Will be called once FancyBox is "
468
- "closed"
469
- msgstr ""
470
-
471
- #: lib/admin-tab-other.php:107 lib/admin-tab-other.php:142
472
- msgid "Example:"
473
- msgstr ""
474
-
475
- #: lib/admin-tab-other.php:110
476
- msgid "Leave empty any speciic callbacks you don't need to use."
477
- msgstr ""
478
-
479
- #: lib/admin-tab-other.php:118
480
- msgid "Extra FancyBox Calls <span style=\"color:red\">(advanced)</span>"
481
- msgstr ""
482
-
483
- #: lib/admin-tab-other.php:119
484
- msgid ""
485
- "Here you can add as many additional calls to fancybox as you want, with "
486
- "different settings. For example, if you want to use fancybox with iframes or "
487
- "ajax on any specific link, you can configure those calls here without "
488
- "affecting the settings for images."
489
- msgstr ""
490
-
491
- #: lib/admin-tab-other.php:120
492
- msgid ""
493
- "For information on the options available you can use here see <a href="
494
- "\"http://fancyapps.com/fancybox/3/\">FancyBox's API & Options page</a>."
495
- msgstr ""
496
-
497
- #: lib/admin-tab-other.php:124
498
- msgid "Additional FancyBox Calls"
499
- msgstr ""
500
-
501
- #: lib/admin-tab-other.php:132
502
- msgid "Additional FancyBox Calls (default: off)"
503
- msgstr ""
504
-
505
- #: lib/admin-tab-other.php:157
506
- msgid "Troubleshooting Settings"
507
- msgstr ""
508
-
509
- #: lib/admin-tab-other.php:159
510
- msgid ""
511
- "Settings in this section should only be changed if you are having problems "
512
- "with the plugin!"
513
- msgstr ""
514
-
515
- #: lib/admin-tab-other.php:161
516
- msgid ""
517
- "If the plugin doesn't seem to work, first you should check for other plugins "
518
- "that may be conflicting with this one, especially other Lightbox, Slimbox, "
519
- "etc. Make sure all your plugins and WordPress itself are up to date (this "
520
- "plugin has only been tested in WordPress 2.7 and above)."
521
- msgstr ""
522
-
523
- #: lib/admin-tab-other.php:162
524
- msgid ""
525
- "Change them one at a time and test to see if they help. Remember that having "
526
- "a cache plugin may prevent changes from taking effect immidiately, so clear "
527
- "cache after saving changes here or deactivate cache until you finish editing "
528
- "these options."
529
- msgstr ""
530
-
531
- #: lib/admin-tab-other.php:167
532
- msgid "Do not call jQuery"
533
- msgstr ""
534
-
535
- #: lib/admin-tab-other.php:175
536
- msgid ""
537
- "Skip jQuery call. Use this only if jQuery is being loaded twice (default: "
538
- "off)"
539
- msgstr ""
540
-
541
- #: lib/admin-tab-other.php:182
542
- msgid "Uninstall"
543
- msgstr ""
544
-
545
- #: lib/admin-tab-other.php:183
546
- msgid ""
547
- "Like many other plugins, FancyBox for WordPress stores its settings on your "
548
- "WordPress' options database table. Actually, these settings are not using "
549
- "more than a couple of kilobytes of space, but if you want to completely "
550
- "uninstall this plugin, check the option below, then save changes, and "
551
- "<strong>when you deactivate the plugin</strong>, all its settings will be "
552
- "removed from the database."
553
- msgstr ""
554
-
555
- #: lib/admin-tab-other.php:187
556
- msgid "Remove settings"
557
- msgstr ""
558
-
559
- #: lib/admin-tab-other.php:195
560
- msgid ""
561
- "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. "
562
- "(default: off)"
563
- msgstr ""
564
-
565
- #: lib/admin-tab-support.php:1
566
- msgid "Help with Fancybox"
567
- msgstr ""
568
-
569
- #: lib/admin-tab-support.php:3
570
- msgid ""
571
- "If you have problems or questions about FancyBox itself (and not this "
572
- "WordPress plugin), please start with these links: <a target=\"_blank\" href="
573
- "\"http://fancyapps.com/fancybox/3/\">How-To</a> & <a target=\"_blank\" href="
574
- "\"http://fancyapps.com/fancybox/3/docs/\">Documentation</a>.<br />If that "
575
- "does not help, go to <a href=\"http://groups.google.com/group/fancybox\">the "
576
- "FancyBox Google Group</a>, use the <strong>Search</strong> option, and if "
577
- "necesary, post your question."
578
- msgstr ""
579
-
580
- #: lib/admin-tab-support.php:6
581
- msgid "Help with Fancybox for WordPress plugin"
582
- msgstr ""
583
-
584
- #: lib/admin-tab-support.php:8
585
- msgid ""
586
- "Try to localize the problem (switch your theme and deactivate plugins until "
587
- "you find the source of the problem). You can also try the Troubleshooting "
588
- "settings of this plugin if necesary."
589
- msgstr ""
590
-
591
- #: lib/admin-tab-support.php:9
592
- msgid ""
593
- "Try reverting the plugin's settings to their defaults with the button below."
594
- msgstr ""
595
-
596
- #: lib/admin-tab-support.php:10
597
- msgid ""
598
- "If you still can not get the plugin to work, <a target=\"_blank\" href="
599
- "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
600
- "\">write a post in the WordPress Support forums</a> explaining the problem "
601
- "or take a look and the <a target=\"_blank\" href=\"http://wordpress.org/"
602
- "support/plugin/fancybox-for-wordpress\">already posted messages</a>."
603
- msgstr ""
604
-
605
- #: lib/admin-tab-support.php:13
606
- msgid "IMPORTANT:"
607
- msgstr ""
608
-
609
- #: lib/admin-tab-support.php:13
610
- msgid ""
611
- "When posting your problem please provide a link to your blog and the page "
612
- "where the error is found, and all relevant information you can, especially "
613
- "your theme, plugins, etc."
614
- msgstr ""
615
-
616
- #: lib/class-fbfw-plugin-rollback.php:41
617
- msgid "Previous plugin version or plugin basename CONST aren't defined."
618
- msgstr ""
619
-
620
- #: lib/class-fbfw-plugin-rollback.php:58 lib/class-fbfw-rollback.php:157
621
- msgid "Rollback to Previous Version"
622
- msgstr ""
623
-
624
- #. Plugin Name of the plugin/theme
625
- msgid "FancyBox for WordPress"
626
- msgstr ""
627
-
628
- #. Plugin URI of the plugin/theme
629
- msgid "http://plugins.josepardilla.com/fancybox-for-wordpress/"
630
- msgstr ""
631
-
632
- #. Description of the plugin/theme
633
- msgid ""
634
- "Integrates <a href=\"http://fancyapps.com/fancybox/3/\">FancyBox</a> by <a "
635
- "href=\"http://klade.lv/\">Janis Skarnelis</a> into WordPress."
636
- msgstr ""
637
-
638
- #. Author of the plugin/theme
639
- msgid "Jos&eacute; Pardilla"
640
- msgstr ""
641
-
642
- #. Author URI of the plugin/theme
643
- msgid "http://josepardilla.com/"
644
- msgstr ""
1
+ # Copyright (C) 2015 FancyBox for WordPress
2
+ # This file is distributed under the same license as the FancyBox for WordPress package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: FancyBox for WordPress 3.0.5\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/fancybox-for-"
7
+ "wordpress\n"
8
+ "POT-Creation-Date: 2015-02-07 01:56:01+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: admin.php:12
17
+ #, php-format
18
+ msgid "Fancybox for WordPress (version %s)"
19
+ msgstr ""
20
+
21
+ #: admin.php:26
22
+ msgid "Appearance"
23
+ msgstr ""
24
+
25
+ #: admin.php:27
26
+ msgid "Animations"
27
+ msgstr ""
28
+
29
+ #: admin.php:28
30
+ msgid "Behaviour"
31
+ msgstr ""
32
+
33
+ #: admin.php:29
34
+ msgid "Galleries"
35
+ msgstr ""
36
+
37
+ #: admin.php:30
38
+ msgid "Misc."
39
+ msgstr ""
40
+
41
+ #: admin.php:31
42
+ msgid "Support"
43
+ msgstr ""
44
+
45
+ #: admin.php:62
46
+ msgid "Save Changes"
47
+ msgstr ""
48
+
49
+ #: admin.php:71
50
+ msgid "Revert to defaults"
51
+ msgstr ""
52
+
53
+ #: fancybox.php:382
54
+ msgid "Rollback version"
55
+ msgstr ""
56
+
57
+ #: fancybox.php:469
58
+ msgid "Settings"
59
+ msgstr ""
60
+
61
+ #: lib/admin-tab-animations.php:1
62
+ msgid "Animation Settings <span style=\"color:green\">(basic)</span>"
63
+ msgstr ""
64
+
65
+ #: lib/admin-tab-animations.php:3
66
+ msgid ""
67
+ "These settings control the animations when opening and closing Fancybox, and "
68
+ "the optional easing effects."
69
+ msgstr ""
70
+
71
+ #: lib/admin-tab-animations.php:8
72
+ msgid "Zoom Options"
73
+ msgstr ""
74
+
75
+ #: lib/admin-tab-animations.php:16
76
+ msgid "Change content transparency during zoom animations (default: on)"
77
+ msgstr ""
78
+
79
+ #: lib/admin-tab-animations.php:22
80
+ msgid "Animation Type"
81
+ msgstr ""
82
+
83
+ #: lib/admin-tab-animations.php:33
84
+ msgid "Animation type when opening FancyBox. (default: fade)"
85
+ msgstr ""
86
+
87
+ #: lib/admin-tab-animations.php:45
88
+ msgid "Speed in miliseconds of the FancyBox opening animation (default: 500)"
89
+ msgstr ""
90
+
91
+ #: lib/admin-tab-animations.php:52
92
+ msgid "Animation between slides Options"
93
+ msgstr ""
94
+
95
+ #: lib/admin-tab-animations.php:63
96
+ msgid "Select Animation type for the slides(default: fade)"
97
+ msgstr ""
98
+
99
+ #: lib/admin-tab-animations.php:74
100
+ msgid ""
101
+ "Speed in miliseconds of the animation when navigating thorugh gallery items "
102
+ "(default: 300)"
103
+ msgstr ""
104
+
105
+ #: lib/admin-tab-appearance.php:1
106
+ msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
107
+ msgstr ""
108
+
109
+ #: lib/admin-tab-appearance.php:3
110
+ msgid ""
111
+ "These setting control how Fancybox looks, they let you tweak color, borders "
112
+ "and position of elements, like the image title and closing buttons."
113
+ msgstr ""
114
+
115
+ #: lib/admin-tab-appearance.php:8
116
+ msgid "Close Button"
117
+ msgstr ""
118
+
119
+ #: lib/admin-tab-appearance.php:17
120
+ msgid "Show Close button (default: on)"
121
+ msgstr ""
122
+
123
+ #: lib/admin-tab-appearance.php:24
124
+ msgid "Toolbar"
125
+ msgstr ""
126
+
127
+ #: lib/admin-tab-appearance.php:33
128
+ msgid "Show Toolbar (default: on)"
129
+ msgstr ""
130
+
131
+ #: lib/admin-tab-appearance.php:40
132
+ msgid "Border"
133
+ msgstr ""
134
+
135
+ #: lib/admin-tab-appearance.php:48
136
+ msgid "Show Border (default: off)"
137
+ msgstr ""
138
+
139
+ #: lib/admin-tab-appearance.php:55
140
+ msgid "HTML color of the border (default: #BBBBBB)"
141
+ msgstr ""
142
+
143
+ #: lib/admin-tab-appearance.php:62
144
+ msgid "Padding"
145
+ msgstr ""
146
+
147
+ #: lib/admin-tab-appearance.php:69
148
+ msgid "HTML color of the padding (default: #FFFFFF)"
149
+ msgstr ""
150
+
151
+ #: lib/admin-tab-appearance.php:70
152
+ msgid ""
153
+ "(This should be left on #FFFFFF (white) if you want to display anything "
154
+ "other than images, like inline or framed content)"
155
+ msgstr ""
156
+
157
+ #: lib/admin-tab-appearance.php:78
158
+ msgid "Padding size in pixels (default: 10)"
159
+ msgstr ""
160
+
161
+ #: lib/admin-tab-appearance.php:85
162
+ msgid "Overlay Options"
163
+ msgstr ""
164
+
165
+ #: lib/admin-tab-appearance.php:93
166
+ msgid "Add overlay (default: on)"
167
+ msgstr ""
168
+
169
+ #: lib/admin-tab-appearance.php:100
170
+ msgid "HTML color of the overlay (default: #666666)"
171
+ msgstr ""
172
+
173
+ #: lib/admin-tab-appearance.php:108
174
+ msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
175
+ msgstr ""
176
+
177
+ #: lib/admin-tab-appearance.php:116
178
+ msgid "Title"
179
+ msgstr ""
180
+
181
+ #: lib/admin-tab-appearance.php:124
182
+ msgid "Show the title (default: on)"
183
+ msgstr ""
184
+
185
+ #: lib/admin-tab-appearance.php:130
186
+ msgid "Title size (default: 14px)"
187
+ msgstr ""
188
+
189
+ #: lib/admin-tab-appearance.php:139
190
+ msgid "Inside (default)"
191
+ msgstr ""
192
+
193
+ #: lib/admin-tab-appearance.php:146
194
+ msgid "Outside"
195
+ msgstr ""
196
+
197
+ #: lib/admin-tab-appearance.php:153
198
+ msgid "Over"
199
+ msgstr ""
200
+
201
+ #: lib/admin-tab-appearance.php:162
202
+ msgid "Title text color (default: #333333)"
203
+ msgstr ""
204
+
205
+ #: lib/admin-tab-appearance.php:163
206
+ msgid "(Should contrast with the padding color set above)"
207
+ msgstr ""
208
+
209
+ #: lib/admin-tab-appearance.php:171
210
+ msgid "Navigation Arrows"
211
+ msgstr ""
212
+
213
+ #: lib/admin-tab-appearance.php:179
214
+ msgid "Show the navigation arrows (default: on)"
215
+ msgstr ""
216
+
217
+ #: lib/admin-tab-behaviour.php:1
218
+ msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
219
+ msgstr ""
220
+
221
+ #: lib/admin-tab-behaviour.php:2
222
+ msgid ""
223
+ "The following settings should be left alone unless you know what you are "
224
+ "doing."
225
+ msgstr ""
226
+
227
+ #: lib/admin-tab-behaviour.php:6
228
+ msgid "Close on Content Click"
229
+ msgstr ""
230
+
231
+ #: lib/admin-tab-behaviour.php:14
232
+ msgid "Close FancyBox by clicking on the image (default: off)"
233
+ msgstr ""
234
+
235
+ #: lib/admin-tab-behaviour.php:17
236
+ msgid ""
237
+ "(You may want to leave this off if you display iframed or inline content "
238
+ "that containts clickable elements - for example: play buttons for movies, "
239
+ "links to other pages)"
240
+ msgstr ""
241
+
242
+ #: lib/admin-tab-behaviour.php:24
243
+ msgid "Close on Overlay Click"
244
+ msgstr ""
245
+
246
+ #: lib/admin-tab-behaviour.php:32
247
+ msgid "Close FancyBox by clicking on the overlay sorrounding it (default: on)"
248
+ msgstr ""
249
+
250
+ #: lib/admin-tab-behaviour.php:39
251
+ msgid "Keyboard navigation;"
252
+ msgstr ""
253
+
254
+ #: lib/admin-tab-behaviour.php:47
255
+ msgid "Enable Keyboard Navigation (default: on)"
256
+ msgstr ""
257
+
258
+ #: lib/admin-tab-behaviour.php:54
259
+ msgid "Loop Galleries"
260
+ msgstr ""
261
+
262
+ #: lib/admin-tab-behaviour.php:62
263
+ msgid ""
264
+ "This will make galleries loop, allowing you to keep pressing next/back "
265
+ "(default: off)"
266
+ msgstr ""
267
+
268
+ #: lib/admin-tab-behaviour.php:69
269
+ msgid "Mouse Wheel Navigation"
270
+ msgstr ""
271
+
272
+ #: lib/admin-tab-behaviour.php:77
273
+ msgid "Lets visitors navigate galleries with the mouse wheel (default: off)"
274
+ msgstr ""
275
+
276
+ #: lib/admin-tab-behaviour.php:84
277
+ msgid "Woocommerce:"
278
+ msgstr ""
279
+
280
+ #: lib/admin-tab-behaviour.php:92
281
+ msgid "Disable on Woocommerce Shop page.( Default : off )"
282
+ msgstr ""
283
+
284
+ #: lib/admin-tab-behaviour.php:101
285
+ msgid "Disable on Woocommerce products.( Default : off )"
286
+ msgstr ""
287
+
288
+ #: lib/admin-tab-galleries.php:1
289
+ msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
290
+ msgstr ""
291
+
292
+ #: lib/admin-tab-galleries.php:2
293
+ msgid ""
294
+ "Here you can choose if you want the plugin to group all images into a "
295
+ "gallery, or make a gallery for each post. You can also define you own jQuery "
296
+ "expression if you like."
297
+ msgstr ""
298
+
299
+ #: lib/admin-tab-galleries.php:11
300
+ msgid "Gallery Type"
301
+ msgstr ""
302
+
303
+ #: lib/admin-tab-galleries.php:16
304
+ msgid "Make a gallery for all images on the page (default)"
305
+ msgstr ""
306
+
307
+ #: lib/admin-tab-galleries.php:21
308
+ msgid ""
309
+ "Do not group images in gallery automatically (use this if you want to make "
310
+ "galleries manually with the <code>REL</code> attribute)"
311
+ msgstr ""
312
+
313
+ #: lib/admin-tab-galleries.php:26
314
+ msgid ""
315
+ "Make a gallery for each post (will only work if your theme uses <code>class="
316
+ "\"post\"</code> on each post, which is common in WordPress"
317
+ msgstr ""
318
+
319
+ #: lib/admin-tab-galleries.php:31
320
+ msgid "Use a custom expression to apply FancyBox"
321
+ msgstr ""
322
+
323
+ #: lib/admin-tab-galleries.php:35 lib/admin-tab-other.php:70
324
+ #: lib/admin-tab-other.php:78 lib/admin-tab-other.php:86
325
+ #: lib/admin-tab-other.php:94 lib/admin-tab-other.php:102
326
+ #: lib/admin-tab-other.php:137
327
+ msgid "Click to start editing"
328
+ msgstr ""
329
+
330
+ #: lib/admin-tab-galleries.php:39
331
+ msgid "Custom expression guidelines:"
332
+ msgstr ""
333
+
334
+ #: lib/admin-tab-galleries.php:41
335
+ msgid ""
336
+ "&middot; The custom expression has to apply <code>class=\"fancybox\"</code> "
337
+ "to the links where you want to use FancyBox. Do not call the "
338
+ "<code>fancybox()</code> function here, the plugin does this for you."
339
+ msgstr ""
340
+
341
+ #: lib/admin-tab-galleries.php:43
342
+ msgid ""
343
+ "&middot; The jQuery <code>addClass()</code> function is a good way to add "
344
+ "the class to the desired links conserving any existing class."
345
+ msgstr ""
346
+
347
+ #: lib/admin-tab-galleries.php:45
348
+ msgid ""
349
+ "&middot; You can use <code>getTitle()</code> in your expression to copy the "
350
+ "title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so "
351
+ "that FancyBox can show captions."
352
+ msgstr ""
353
+
354
+ #: lib/admin-tab-galleries.php:47
355
+ msgid ""
356
+ "&middot; You can use <code>jQuery(thumbnails)</code> like in the example "
357
+ "expression to apply FancyBox to thumbnails that link to these extensions: "
358
+ "BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase)."
359
+ msgstr ""
360
+
361
+ #: lib/admin-tab-galleries.php:49
362
+ msgid ""
363
+ "&middot; If you want to do it manually you can use something like "
364
+ "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> or whatever works for you."
365
+ msgstr ""
366
+
367
+ #: lib/admin-tab-galleries.php:51
368
+ msgid ""
369
+ "See the <a href=\"http://docs.jquery.com/\" target=\"_blank\">jQuery "
370
+ "Documentation</a> for more help."
371
+ msgstr ""
372
+
373
+ #: lib/admin-tab-galleries.php:53
374
+ msgid "Examples:"
375
+ msgstr ""
376
+
377
+ #: lib/admin-tab-other.php:1
378
+ msgid "Other Settings <span style=\"color:red\">(advanced)</span>"
379
+ msgstr ""
380
+
381
+ #: lib/admin-tab-other.php:2
382
+ msgid "These are additional settings for advanced users."
383
+ msgstr ""
384
+
385
+ #: lib/admin-tab-other.php:6
386
+ msgid "Dimensions"
387
+ msgstr ""
388
+
389
+ #: lib/admin-tab-other.php:14
390
+ msgid "Auto detect dimensions (default: on)"
391
+ msgstr ""
392
+
393
+ #: lib/admin-tab-other.php:17
394
+ msgid ""
395
+ "Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! "
396
+ "Flash dimensions won't be autodetected so specify them below if necessary. "
397
+ "If you want to insert several pieces of flash content with different "
398
+ "dimensions you will have to use the <strong>Additional FancyBox Calls</"
399
+ "strong> option."
400
+ msgstr ""
401
+
402
+ #: lib/admin-tab-other.php:23
403
+ msgid ""
404
+ "Width for iframe and swf content. Also set for inline content if "
405
+ "<em>autoDimensions</em> is disabled (default: 560)"
406
+ msgstr ""
407
+
408
+ #: lib/admin-tab-other.php:28
409
+ msgid ""
410
+ "Height for iframe and swf content. Also set for inline content if "
411
+ "<em>autoDimensions</em> is disabled (default: 340)"
412
+ msgstr ""
413
+
414
+ #: lib/admin-tab-other.php:35
415
+ msgid "Load JavaScript in Footer"
416
+ msgstr ""
417
+
418
+ #: lib/admin-tab-other.php:43
419
+ msgid ""
420
+ "Loads JavaScript at the end of the blog's HTML (experimental) (default: off)"
421
+ msgstr ""
422
+
423
+ #: lib/admin-tab-other.php:46
424
+ msgid ""
425
+ "This option won't be recognized if you use <strong>Parallel Load</strong> "
426
+ "plugin. In that case, you can do this from Parallel Load's options."
427
+ msgstr ""
428
+
429
+ #: lib/admin-tab-other.php:53
430
+ msgid "Callbacks"
431
+ msgstr ""
432
+
433
+ #: lib/admin-tab-other.php:61
434
+ msgid "Enable callbacks (default: off)"
435
+ msgstr ""
436
+
437
+ #: lib/admin-tab-other.php:63
438
+ msgid "Enabling this will show additional settings."
439
+ msgstr ""
440
+
441
+ #: lib/admin-tab-other.php:67
442
+ msgid ""
443
+ "Callback on <strong>Start</strong> event: Will be called right before "
444
+ "attempting to load the content"
445
+ msgstr ""
446
+
447
+ #: lib/admin-tab-other.php:75
448
+ msgid ""
449
+ "Callback on <strong>Cancel</strong> event: Will be called after loading is "
450
+ "canceled"
451
+ msgstr ""
452
+
453
+ #: lib/admin-tab-other.php:83
454
+ msgid ""
455
+ "Callback on <strong>Complete</strong> event: Will be called once the content "
456
+ "is displayed"
457
+ msgstr ""
458
+
459
+ #: lib/admin-tab-other.php:91
460
+ msgid ""
461
+ "Callback on <strong>CleanUp</strong> event: Will be called just before "
462
+ "closing"
463
+ msgstr ""
464
+
465
+ #: lib/admin-tab-other.php:99
466
+ msgid ""
467
+ "Callback on <strong>Closed</strong> event: Will be called once FancyBox is "
468
+ "closed"
469
+ msgstr ""
470
+
471
+ #: lib/admin-tab-other.php:107 lib/admin-tab-other.php:142
472
+ msgid "Example:"
473
+ msgstr ""
474
+
475
+ #: lib/admin-tab-other.php:110
476
+ msgid "Leave empty any speciic callbacks you don't need to use."
477
+ msgstr ""
478
+
479
+ #: lib/admin-tab-other.php:118
480
+ msgid "Extra FancyBox Calls <span style=\"color:red\">(advanced)</span>"
481
+ msgstr ""
482
+
483
+ #: lib/admin-tab-other.php:119
484
+ msgid ""
485
+ "Here you can add as many additional calls to fancybox as you want, with "
486
+ "different settings. For example, if you want to use fancybox with iframes or "
487
+ "ajax on any specific link, you can configure those calls here without "
488
+ "affecting the settings for images."
489
+ msgstr ""
490
+
491
+ #: lib/admin-tab-other.php:120
492
+ msgid ""
493
+ "For information on the options available you can use here see <a href="
494
+ "\"http://fancyapps.com/fancybox/3/\">FancyBox's API & Options page</a>."
495
+ msgstr ""
496
+
497
+ #: lib/admin-tab-other.php:124
498
+ msgid "Additional FancyBox Calls"
499
+ msgstr ""
500
+
501
+ #: lib/admin-tab-other.php:132
502
+ msgid "Additional FancyBox Calls (default: off)"
503
+ msgstr ""
504
+
505
+ #: lib/admin-tab-other.php:157
506
+ msgid "Troubleshooting Settings"
507
+ msgstr ""
508
+
509
+ #: lib/admin-tab-other.php:159
510
+ msgid ""
511
+ "Settings in this section should only be changed if you are having problems "
512
+ "with the plugin!"
513
+ msgstr ""
514
+
515
+ #: lib/admin-tab-other.php:161
516
+ msgid ""
517
+ "If the plugin doesn't seem to work, first you should check for other plugins "
518
+ "that may be conflicting with this one, especially other Lightbox, Slimbox, "
519
+ "etc. Make sure all your plugins and WordPress itself are up to date (this "
520
+ "plugin has only been tested in WordPress 2.7 and above)."
521
+ msgstr ""
522
+
523
+ #: lib/admin-tab-other.php:162
524
+ msgid ""
525
+ "Change them one at a time and test to see if they help. Remember that having "
526
+ "a cache plugin may prevent changes from taking effect immidiately, so clear "
527
+ "cache after saving changes here or deactivate cache until you finish editing "
528
+ "these options."
529
+ msgstr ""
530
+
531
+ #: lib/admin-tab-other.php:167
532
+ msgid "Do not call jQuery"
533
+ msgstr ""
534
+
535
+ #: lib/admin-tab-other.php:175
536
+ msgid ""
537
+ "Skip jQuery call. Use this only if jQuery is being loaded twice (default: "
538
+ "off)"
539
+ msgstr ""
540
+
541
+ #: lib/admin-tab-other.php:182
542
+ msgid "Uninstall"
543
+ msgstr ""
544
+
545
+ #: lib/admin-tab-other.php:183
546
+ msgid ""
547
+ "Like many other plugins, FancyBox for WordPress stores its settings on your "
548
+ "WordPress' options database table. Actually, these settings are not using "
549
+ "more than a couple of kilobytes of space, but if you want to completely "
550
+ "uninstall this plugin, check the option below, then save changes, and "
551
+ "<strong>when you deactivate the plugin</strong>, all its settings will be "
552
+ "removed from the database."
553
+ msgstr ""
554
+
555
+ #: lib/admin-tab-other.php:187
556
+ msgid "Remove settings"
557
+ msgstr ""
558
+
559
+ #: lib/admin-tab-other.php:195
560
+ msgid ""
561
+ "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. "
562
+ "(default: off)"
563
+ msgstr ""
564
+
565
+ #: lib/admin-tab-support.php:1
566
+ msgid "Help with Fancybox"
567
+ msgstr ""
568
+
569
+ #: lib/admin-tab-support.php:3
570
+ msgid ""
571
+ "If you have problems or questions about FancyBox itself (and not this "
572
+ "WordPress plugin), please start with these links: <a target=\"_blank\" href="
573
+ "\"http://fancyapps.com/fancybox/3/\">How-To</a> & <a target=\"_blank\" href="
574
+ "\"http://fancyapps.com/fancybox/3/docs/\">Documentation</a>.<br />If that "
575
+ "does not help, go to <a href=\"http://groups.google.com/group/fancybox\">the "
576
+ "FancyBox Google Group</a>, use the <strong>Search</strong> option, and if "
577
+ "necesary, post your question."
578
+ msgstr ""
579
+
580
+ #: lib/admin-tab-support.php:6
581
+ msgid "Help with Fancybox for WordPress plugin"
582
+ msgstr ""
583
+
584
+ #: lib/admin-tab-support.php:8
585
+ msgid ""
586
+ "Try to localize the problem (switch your theme and deactivate plugins until "
587
+ "you find the source of the problem). You can also try the Troubleshooting "
588
+ "settings of this plugin if necesary."
589
+ msgstr ""
590
+
591
+ #: lib/admin-tab-support.php:9
592
+ msgid ""
593
+ "Try reverting the plugin's settings to their defaults with the button below."
594
+ msgstr ""
595
+
596
+ #: lib/admin-tab-support.php:10
597
+ msgid ""
598
+ "If you still can not get the plugin to work, <a target=\"_blank\" href="
599
+ "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
600
+ "\">write a post in the WordPress Support forums</a> explaining the problem "
601
+ "or take a look and the <a target=\"_blank\" href=\"http://wordpress.org/"
602
+ "support/plugin/fancybox-for-wordpress\">already posted messages</a>."
603
+ msgstr ""
604
+
605
+ #: lib/admin-tab-support.php:13
606
+ msgid "IMPORTANT:"
607
+ msgstr ""
608
+
609
+ #: lib/admin-tab-support.php:13
610
+ msgid ""
611
+ "When posting your problem please provide a link to your blog and the page "
612
+ "where the error is found, and all relevant information you can, especially "
613
+ "your theme, plugins, etc."
614
+ msgstr ""
615
+
616
+ #: lib/class-fbfw-plugin-rollback.php:41
617
+ msgid "Previous plugin version or plugin basename CONST aren't defined."
618
+ msgstr ""
619
+
620
+ #: lib/class-fbfw-plugin-rollback.php:58 lib/class-fbfw-rollback.php:157
621
+ msgid "Rollback to Previous Version"
622
+ msgstr ""
623
+
624
+ #. Plugin Name of the plugin/theme
625
+ msgid "FancyBox for WordPress"
626
+ msgstr ""
627
+
628
+ #. Plugin URI of the plugin/theme
629
+ msgid "http://plugins.josepardilla.com/fancybox-for-wordpress/"
630
+ msgstr ""
631
+
632
+ #. Description of the plugin/theme
633
+ msgid ""
634
+ "Integrates <a href=\"http://fancyapps.com/fancybox/3/\">FancyBox</a> by <a "
635
+ "href=\"http://klade.lv/\">Janis Skarnelis</a> into WordPress."
636
+ msgstr ""
637
+
638
+ #. Author of the plugin/theme
639
+ msgid "Jos&eacute; Pardilla"
640
+ msgstr ""
641
+
642
+ #. Author URI of the plugin/theme
643
+ msgid "http://josepardilla.com/"
644
+ msgstr ""
lib/admin-head.php CHANGED
@@ -1,17 +1,17 @@
1
- <?php
2
-
3
- if ( isset($_REQUEST['reset']) && $_REQUEST['reset'] )
4
- echo '<div id="message" class="updated fade"><p><strong>FancyBox for WordPress settings have been reset.</strong></p></div>';
5
-
6
-
7
- // Get array with all the options
8
- $settings = get_option( 'mfbfw' );
9
-
10
- // Get Version
11
- $version = get_option('mfbfw_active_version');
12
-
13
- // Make selects data
14
- $transitionTypeArray = array( 'fade', 'zoom', 'zoom-in-out' ,'none' );
15
- $overlayArray = array( 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1 );
16
- $msArray = array( 0, 25, 50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1250, 1500, 1750, 2000 );
17
- $slideEffectArray = array('false','fade','slide','circular','tube','zoom-in-out','rotate');
1
+ <?php
2
+
3
+ if ( isset($_REQUEST['reset']) && $_REQUEST['reset'] )
4
+ echo '<div id="message" class="updated fade"><p><strong>FancyBox for WordPress settings have been reset.</strong></p></div>';
5
+
6
+
7
+ // Get array with all the options
8
+ $settings = get_option( 'mfbfw' );
9
+
10
+ // Get Version
11
+ $version = get_option('mfbfw_active_version');
12
+
13
+ // Make selects data
14
+ $transitionTypeArray = array( 'fade', 'zoom', 'zoom-in-out' ,'none' );
15
+ $overlayArray = array( 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1 );
16
+ $msArray = array( 0, 25, 50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1250, 1500, 1750, 2000 );
17
+ $slideEffectArray = array('false','fade','slide','circular','tube','zoom-in-out','rotate');
lib/admin-tab-animations.php CHANGED
@@ -1,78 +1,78 @@
1
- <h3><?php _e( 'Animation Settings <span style="color:green">(basic)</span>', 'mfbfw' ); ?></h3>
2
-
3
- <p><?php _e( 'These settings control the animations when opening and closing Fancybox, and the optional easing effects.', 'mfbfw' ); ?></p>
4
-
5
- <table class="form-table fancy-table" style="clear:none;">
6
- <tbody>
7
- <tr valign="top">
8
- <th scope="row"><?php _e( 'Zoom Options', 'mfbfw' ); ?></th>
9
- <td>
10
- <fieldset>
11
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[zoomOpacity]"
12
- id="zoomOpacity"<?php if ( isset( $settings['zoomOpacity'] ) && $settings['zoomOpacity'] ) {
13
- echo ' checked="yes"';
14
- } ?> />
15
- <label for="zoomOpacity" class="onoffswitch-label"></label>
16
- <span class="switch-text"><?php _e( 'Change content transparency during zoom animations (default: on)', 'mfbfw' ); ?></span>
17
- </fieldset>
18
- </td>
19
- </tr>
20
- <tr valign="top">
21
- <th scope="row"><?php _e( 'Animation Type', 'mfbfw' ); ?></th>
22
- <td>
23
- <fieldset>
24
- <label for="transitionIn">
25
- <select name="mfbfw[transitionIn]" id="transitionIn">
26
- <?php
27
- foreach ( $transitionTypeArray as $key => $ms ) {
28
- echo "<option value='$ms' " . selected( $settings['transitionIn'], $ms, false ) . ">$ms</option>\n";
29
- }
30
- ?>
31
- </select>
32
- <?php _e( 'Animation type when opening FancyBox. (default: fade)', 'mfbfw' ); ?>
33
- </label>
34
- <div class="cf"></div>
35
- <div class="line-spacer"></div>
36
- <label for="zoomSpeedIn">
37
- <select name="mfbfw[zoomSpeedIn]" id="zoomSpeedIn">
38
- <?php
39
- foreach ( $msArray as $key => $ms ) {
40
- echo "<option value='$ms' " . selected( $settings['zoomSpeedIn'], $ms, false ) . ">$ms</option>\n";
41
- }
42
- ?>
43
- </select>
44
- <?php _e( 'Speed in miliseconds of the FancyBox opening animation (default: 500)', 'mfbfw' ); ?>
45
- </label>
46
- </fieldset>
47
- </td>
48
- </tr>
49
- <tr valign="top">
50
- <th scope="row"><?php _e( 'Animation between slides Options', 'mfbfw' ); ?></th>
51
- <td>
52
- <fieldset>
53
- <label for="transitionEffect">
54
- <select name="mfbfw[transitionEffect]" id="animationDuration">
55
- <?php
56
- foreach ( $slideEffectArray as $key => $ms ) {
57
- echo "<option value='$ms' " . selected( $settings['transitionEffect'], $ms, false ) . ">$ms</option>\n";
58
- }
59
- ?>
60
- </select>
61
- <?php _e( 'Select Animation type for the slides(default: fade)', 'mfbfw' ); ?>
62
- </label>
63
- <div class="line-spacer"></div>
64
- <label for="zoomSpeedChange">
65
- <select name="mfbfw[zoomSpeedChange]" id="zoomSpeedChange">
66
- <?php
67
- foreach ( $msArray as $key => $ms ) {
68
- echo "<option value='$ms' " . selected( $settings['zoomSpeedChange'], $ms, false ) . ">$ms</option>\n";
69
- }
70
- ?>
71
- </select>
72
- <?php _e( 'Speed in miliseconds of the animation when navigating thorugh gallery items (default: 300)', 'mfbfw' ); ?>
73
- </label>
74
- </fieldset>
75
- </td>
76
- </tr>
77
- </tbody>
78
  </table>
1
+ <h3><?php _e( 'Animation Settings <span style="color:green">(basic)</span>', 'mfbfw' ); ?></h3>
2
+
3
+ <p><?php _e( 'These settings control the animations when opening and closing Fancybox, and the optional easing effects.', 'mfbfw' ); ?></p>
4
+
5
+ <table class="form-table fancy-table" style="clear:none;">
6
+ <tbody>
7
+ <tr valign="top">
8
+ <th scope="row"><?php _e( 'Zoom Options', 'mfbfw' ); ?></th>
9
+ <td>
10
+ <fieldset>
11
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[zoomOpacity]"
12
+ id="zoomOpacity"<?php if ( isset( $settings['zoomOpacity'] ) && $settings['zoomOpacity'] ) {
13
+ echo ' checked="yes"';
14
+ } ?> />
15
+ <label for="zoomOpacity" class="onoffswitch-label"></label>
16
+ <span class="switch-text"><?php _e( 'Change content transparency during zoom animations (default: on)', 'mfbfw' ); ?></span>
17
+ </fieldset>
18
+ </td>
19
+ </tr>
20
+ <tr valign="top">
21
+ <th scope="row"><?php _e( 'Animation Type', 'mfbfw' ); ?></th>
22
+ <td>
23
+ <fieldset>
24
+ <label for="transitionIn">
25
+ <select name="mfbfw[transitionIn]" id="transitionIn">
26
+ <?php
27
+ foreach ( $transitionTypeArray as $key => $ms ) {
28
+ echo "<option value='$ms' " . selected( $settings['transitionIn'], $ms, false ) . ">$ms</option>\n";
29
+ }
30
+ ?>
31
+ </select>
32
+ <?php _e( 'Animation type when opening FancyBox. (default: fade)', 'mfbfw' ); ?>
33
+ </label>
34
+ <div class="cf"></div>
35
+ <div class="line-spacer"></div>
36
+ <label for="zoomSpeedIn">
37
+ <select name="mfbfw[zoomSpeedIn]" id="zoomSpeedIn">
38
+ <?php
39
+ foreach ( $msArray as $key => $ms ) {
40
+ echo "<option value='$ms' " . selected( $settings['zoomSpeedIn'], $ms, false ) . ">$ms</option>\n";
41
+ }
42
+ ?>
43
+ </select>
44
+ <?php _e( 'Speed in miliseconds of the FancyBox opening animation (default: 500)', 'mfbfw' ); ?>
45
+ </label>
46
+ </fieldset>
47
+ </td>
48
+ </tr>
49
+ <tr valign="top">
50
+ <th scope="row"><?php _e( 'Animation between slides Options', 'mfbfw' ); ?></th>
51
+ <td>
52
+ <fieldset>
53
+ <label for="transitionEffect">
54
+ <select name="mfbfw[transitionEffect]" id="animationDuration">
55
+ <?php
56
+ foreach ( $slideEffectArray as $key => $ms ) {
57
+ echo "<option value='$ms' " . selected( $settings['transitionEffect'], $ms, false ) . ">$ms</option>\n";
58
+ }
59
+ ?>
60
+ </select>
61
+ <?php _e( 'Select Animation type for the slides(default: fade)', 'mfbfw' ); ?>
62
+ </label>
63
+ <div class="line-spacer"></div>
64
+ <label for="zoomSpeedChange">
65
+ <select name="mfbfw[zoomSpeedChange]" id="zoomSpeedChange">
66
+ <?php
67
+ foreach ( $msArray as $key => $ms ) {
68
+ echo "<option value='$ms' " . selected( $settings['zoomSpeedChange'], $ms, false ) . ">$ms</option>\n";
69
+ }
70
+ ?>
71
+ </select>
72
+ <?php _e( 'Speed in miliseconds of the animation when navigating thorugh gallery items (default: 300)', 'mfbfw' ); ?>
73
+ </label>
74
+ </fieldset>
75
+ </td>
76
+ </tr>
77
+ </tbody>
78
  </table>
lib/admin-tab-appearance.php CHANGED
@@ -1,179 +1,179 @@
1
- <h3><?php _e( 'Appearance Settings <span style="color:green">(basic)</span>', 'mfbfw' ); ?></h3>
2
-
3
- <p><?php _e( 'These setting control how Fancybox looks, they let you tweak color, borders and position of elements, like the image title and closing buttons.', 'mfbfw' ); ?></p>
4
-
5
- <table class="form-table fancy-table" style="clear:none;">
6
- <tbody>
7
- <tr valign="top">
8
- <th scope="row"><?php _e( 'Close Button', 'mfbfw' ); ?></th>
9
- <td>
10
- <fieldset>
11
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[showCloseButton]"
12
- id="showCloseButton"<?php if ( isset( $settings['showCloseButton'] ) && $settings['showCloseButton'] ) {
13
- echo ' checked="yes"';
14
- } ?> />
15
- <label for="showCloseButton" class="onoffswitch-label">
16
- </label>
17
- <span class="switch-text"><?php _e( 'Show Close button (default: off)', 'mfbfw' ); ?></span>
18
- <div class="cf"></div>
19
- </fieldset>
20
- </td>
21
- </tr>
22
- <tr valign="top">
23
- <th scope="row"><?php _e( 'Toolbar', 'mfbfw' ); ?></th>
24
- <td>
25
- <fieldset>
26
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[showToolbar]"
27
- id="showToolbar"<?php if ( isset( $settings['showToolbar'] ) && $settings['showToolbar'] ) {
28
- echo ' checked="yes"';
29
- } ?> />
30
- <label for="showToolbar" class="onoffswitch-label">
31
- </label>
32
- <span class="switch-text"><?php _e( 'Show Toolbar (default: on)', 'mfbfw' ); ?></span>
33
- <div class="cf"></div>
34
- </fieldset>
35
- </td>
36
- </tr>
37
- <tr valign="top">
38
- <th scope="row"><?php _e( 'Border', 'mfbfw' ); ?></th>
39
- <td>
40
- <fieldset>
41
- <input class="onoffswitch-checkbox" type="checkbox" name="mfbfw[border]"
42
- id="border"<?php if ( isset( $settings['border'] ) && $settings['border'] ) {
43
- echo ' checked="yes"';
44
- } ?> />
45
- <label for="border" class="onoffswitch-label"></label>
46
- <span class="switch-text"><?php _e( 'Show Border (default: off)', 'mfbfw' ); ?></span>
47
- <div class="cf"></div>
48
- <div id="borderColorBlock" class="hidden-block">
49
- <label for="borderColor">
50
- <input type="text" class="color-btn" name="mfbfw[borderColor]" id="borderColor"
51
- value="<?php echo $settings['borderColor'] ?>" size="7" maxlength="7"/>
52
- </label>
53
- <p class="description"><?php _e( 'HTML color of the border (default: #BBBBBB)', 'mfbfw' ); ?></p>
54
- </div>
55
- </fieldset>
56
- </td>
57
- </tr>
58
- <tr valign="top">
59
- <th scope="row"><?php _e( 'Padding', 'mfbfw' ); ?></th>
60
- <td>
61
- <fieldset>
62
- <label for="paddingColor">
63
- <input type="text" class="color-btn" name="mfbfw[paddingColor]" id="paddingColor"
64
- value="<?php echo $settings['paddingColor'] ?>" size="7" maxlength="7"/>
65
- </label>
66
- <p class="description"><?php _e( 'HTML color of the padding (default: #FFFFFF)', 'mfbfw' ); ?></p>
67
- <p class="description"><?php _e( '(This should be left on #FFFFFF (white) if you want to display anything other than images, like inline or framed content)', 'mfbfw' ); ?></p>
68
- <div class="line-spacer"></div>
69
- <label for="padding" class="inlined">
70
- <input type="text" class="slider-text" name="mfbfw[padding]" id="padding"
71
- value="<?php echo $settings['padding']; ?>" size="7" maxlength="7"/>
72
- <div class="slider-horizontal" minSl="0" maxSl="100" stepSl="1" rangeSl="min"
73
- style="height:14px;"></div>
74
- <div class="cf"></div>
75
- <p class="description"><span class="slider-spantext"><?php _e( 'Padding size in pixels (default: 10)', 'mfbfw' ); ?></span></p>
76
- </label>
77
- </fieldset>
78
- </td>
79
- </tr>
80
- <tr valign="top">
81
- <th scope="row"><?php _e( 'Overlay Options', 'mfbfw' ); ?></th>
82
- <td>
83
- <fieldset>
84
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[overlayShow]"
85
- id="overlayShow"<?php if ( isset( $settings['overlayShow'] ) && $settings['overlayShow'] ) {
86
- echo ' checked="yes"';
87
- } ?> />
88
- <label for="overlayShow" class="onoffswitch-label"></label>
89
- <span class="switch-text"><?php _e( 'Add overlay (default: on)', 'mfbfw' ); ?></span>
90
- <div class="cf"></div>
91
- <div id="overlayBlock" class="hidden-block">
92
- <label for="overlayColor">
93
- <input type="text" class="color-btn" name="mfbfw[overlayColor]" id="overlayColor"
94
- value="<?php echo $settings['overlayColor']; ?>" size="7" maxlength="7"/>
95
- </label>
96
- <p class="description"><?php _e( 'HTML color of the overlay (default: #666666)', 'mfbfw' ); ?></p>
97
- <div class="line-spacer"></div>
98
- <label for="overlayOpacity" class="inlined">
99
- <input type="text" class="slider-text" name="mfbfw[overlayOpacity]" id="overlayOpacity"
100
- value="<?php echo $settings['overlayOpacity']; ?>" size="7" maxlength="7"/>
101
- <div class="slider-horizontal" minSl="0" maxSl="1" stepSl="0.1" rangeSl="min"
102
- style="height:14px;"></div>
103
- <div class="cf"></div>
104
- <p class="description"><span class="slider-spantext"><?php _e( 'Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)', 'mfbfw' ); ?></span></p>
105
- </label>
106
- </div>
107
- </fieldset>
108
- </td>
109
- </tr>
110
- <tr valign="top">
111
- <th scope="row"><?php _e( 'Title', 'mfbfw' ); ?></th>
112
- <td>
113
- <fieldset>
114
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[titleShow]"
115
- id="titleShow"<?php if ( isset( $settings['titleShow'] ) && $settings['titleShow'] ) {
116
- echo ' checked="yes"';
117
- } ?> />
118
- <label for="titleShow" class="onoffswitch-label"></label>
119
- <span class="switch-text"><?php _e( 'Show the title (default: on)', 'mfbfw' ); ?></span>
120
- <div class="cf"></div>
121
- <div id="titleBlock" class="hidden-block">
122
- <label for="titleSize">
123
- <input type="text" name="mfbfw[titleSize]" id="titleSize" size="2" maxlength="4"
124
- value="<?php echo $settings['titleSize']; ?>"/>
125
- <?php _e( 'Title size (default: 14px)', 'mfbfw' ); ?>
126
- </label>
127
- <div class="cf"></div>
128
- <div class="line-spacer"></div>
129
- <input id="titlePositionInside" class="titlePosition" type="radio" value="inside"
130
- name="mfbfw[titlePosition]"<?php if ( $settings['titlePosition'] == 'inside' ) {
131
- echo ' checked="yes"';
132
- } ?> />
133
- <label for="titlePositionInside">
134
- <?php _e( 'Inside (default)', 'mfbfw' ); ?>
135
- </label>
136
- <input id="titlePositionOutside" class="titlePosition" type="radio" value="float"
137
- name="mfbfw[titlePosition]"<?php if ( $settings['titlePosition'] == 'float' ) {
138
- echo ' checked="yes"';
139
- } ?> />
140
- <label for="titlePositionOutside">
141
- <?php _e( 'Outside', 'mfbfw' ); ?>
142
- </label>
143
- <input id="titlePositionOver" class="titlePosition" type="radio" value="over"
144
- name="mfbfw[titlePosition]"<?php if ( $settings['titlePosition'] == 'over' ) {
145
- echo ' checked="yes"';
146
- } ?> />
147
- <label for="titlePositionOver">
148
- <?php _e( 'Over', 'mfbfw' ); ?>
149
- </label>
150
- <div class="line-spacer"></div>
151
- <div id="titleColorBlock">
152
- <label for="titleColor">
153
- <input type="text" class="color-btn" name="mfbfw[titleColor]" id="titleColor"
154
- class="colorpick" value="<?php echo $settings['titleColor']; ?>" size="7"
155
- maxlength="7"/>
156
- </label>
157
- <p class="description"><?php _e( 'Title text color (default: #333333)', 'mfbfw' ); ?></p>
158
- <p class="description"><?php _e( '(Should contrast with the padding color set above)', 'mfbfw' ); ?></p>
159
- </div>
160
- </div>
161
- </fieldset>
162
- </td>
163
- </tr>
164
- <tr valign="top">
165
- <th scope="row"><?php _e( 'Navigation Arrows', 'mfbfw' ); ?></th>
166
- <td>
167
- <fieldset>
168
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[showNavArrows]"
169
- id="showNavArrows"<?php if ( isset( $settings['showNavArrows'] ) && $settings['showNavArrows'] ) {
170
- echo ' checked="yes"';
171
- } ?> />
172
- <label for="showNavArrows" class="onoffswitch-label"></label>
173
- <span class="switch-text"><?php _e( 'Show the navigation arrows (default: on)', 'mfbfw' ); ?></span>
174
- <div class="cf"></div>
175
- </fieldset>
176
- </td>
177
- </tr>
178
- </tbody>
179
  </table>
1
+ <h3><?php _e( 'Appearance Settings <span style="color:green">(basic)</span>', 'mfbfw' ); ?></h3>
2
+
3
+ <p><?php _e( 'These setting control how Fancybox looks, they let you tweak color, borders and position of elements, like the image title and closing buttons.', 'mfbfw' ); ?></p>
4
+
5
+ <table class="form-table fancy-table" style="clear:none;">
6
+ <tbody>
7
+ <tr valign="top">
8
+ <th scope="row"><?php _e( 'Close Button', 'mfbfw' ); ?></th>
9
+ <td>
10
+ <fieldset>
11
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[showCloseButton]"
12
+ id="showCloseButton"<?php if ( isset( $settings['showCloseButton'] ) && $settings['showCloseButton'] ) {
13
+ echo ' checked="yes"';
14
+ } ?> />
15
+ <label for="showCloseButton" class="onoffswitch-label">
16
+ </label>
17
+ <span class="switch-text"><?php _e( 'Show Close button (default: off)', 'mfbfw' ); ?></span>
18
+ <div class="cf"></div>
19
+ </fieldset>
20
+ </td>
21
+ </tr>
22
+ <tr valign="top">
23
+ <th scope="row"><?php _e( 'Toolbar', 'mfbfw' ); ?></th>
24
+ <td>
25
+ <fieldset>
26
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[showToolbar]"
27
+ id="showToolbar"<?php if ( isset( $settings['showToolbar'] ) && $settings['showToolbar'] ) {
28
+ echo ' checked="yes"';
29
+ } ?> />
30
+ <label for="showToolbar" class="onoffswitch-label">
31
+ </label>
32
+ <span class="switch-text"><?php _e( 'Show Toolbar (default: on)', 'mfbfw' ); ?></span>
33
+ <div class="cf"></div>
34
+ </fieldset>
35
+ </td>
36
+ </tr>
37
+ <tr valign="top">
38
+ <th scope="row"><?php _e( 'Border', 'mfbfw' ); ?></th>
39
+ <td>
40
+ <fieldset>
41
+ <input class="onoffswitch-checkbox" type="checkbox" name="mfbfw[border]"
42
+ id="border"<?php if ( isset( $settings['border'] ) && $settings['border'] ) {
43
+ echo ' checked="yes"';
44
+ } ?> />
45
+ <label for="border" class="onoffswitch-label"></label>
46
+ <span class="switch-text"><?php _e( 'Show Border (default: off)', 'mfbfw' ); ?></span>
47
+ <div class="cf"></div>
48
+ <div id="borderColorBlock" class="hidden-block">
49
+ <label for="borderColor">
50
+ <input type="text" class="color-btn" name="mfbfw[borderColor]" id="borderColor"
51
+ value="<?php echo $settings['borderColor'] ?>" size="7" maxlength="7"/>
52
+ </label>
53
+ <p class="description"><?php _e( 'HTML color of the border (default: #BBBBBB)', 'mfbfw' ); ?></p>
54
+ </div>
55
+ </fieldset>
56
+ </td>
57
+ </tr>
58
+ <tr valign="top">
59
+ <th scope="row"><?php _e( 'Padding', 'mfbfw' ); ?></th>
60
+ <td>
61
+ <fieldset>
62
+ <label for="paddingColor">
63
+ <input type="text" class="color-btn" name="mfbfw[paddingColor]" id="paddingColor"
64
+ value="<?php echo $settings['paddingColor'] ?>" size="7" maxlength="7"/>
65
+ </label>
66
+ <p class="description"><?php _e( 'HTML color of the padding (default: #FFFFFF)', 'mfbfw' ); ?></p>
67
+ <p class="description"><?php _e( '(This should be left on #FFFFFF (white) if you want to display anything other than images, like inline or framed content)', 'mfbfw' ); ?></p>
68
+ <div class="line-spacer"></div>
69
+ <label for="padding" class="inlined">
70
+ <input type="text" class="slider-text" name="mfbfw[padding]" id="padding"
71
+ value="<?php echo $settings['padding']; ?>" size="7" maxlength="7"/>
72
+ <div class="slider-horizontal" minSl="0" maxSl="100" stepSl="1" rangeSl="min"
73
+ style="height:14px;"></div>
74
+ <div class="cf"></div>
75
+ <p class="description"><span class="slider-spantext"><?php _e( 'Padding size in pixels (default: 10)', 'mfbfw' ); ?></span></p>
76
+ </label>
77
+ </fieldset>
78
+ </td>
79
+ </tr>
80
+ <tr valign="top">
81
+ <th scope="row"><?php _e( 'Overlay Options', 'mfbfw' ); ?></th>
82
+ <td>
83
+ <fieldset>
84
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[overlayShow]"
85
+ id="overlayShow"<?php if ( isset( $settings['overlayShow'] ) && $settings['overlayShow'] ) {
86
+ echo ' checked="yes"';
87
+ } ?> />
88
+ <label for="overlayShow" class="onoffswitch-label"></label>
89
+ <span class="switch-text"><?php _e( 'Add overlay (default: on)', 'mfbfw' ); ?></span>
90
+ <div class="cf"></div>
91
+ <div id="overlayBlock" class="hidden-block">
92
+ <label for="overlayColor">
93
+ <input type="text" class="color-btn" name="mfbfw[overlayColor]" id="overlayColor"
94
+ value="<?php echo $settings['overlayColor']; ?>" size="7" maxlength="7"/>
95
+ </label>
96
+ <p class="description"><?php _e( 'HTML color of the overlay (default: #666666)', 'mfbfw' ); ?></p>
97
+ <div class="line-spacer"></div>
98
+ <label for="overlayOpacity" class="inlined">
99
+ <input type="text" class="slider-text" name="mfbfw[overlayOpacity]" id="overlayOpacity"
100
+ value="<?php echo $settings['overlayOpacity']; ?>" size="7" maxlength="7"/>
101
+ <div class="slider-horizontal" minSl="0" maxSl="1" stepSl="0.1" rangeSl="min"
102
+ style="height:14px;"></div>
103
+ <div class="cf"></div>
104
+ <p class="description"><span class="slider-spantext"><?php _e( 'Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)', 'mfbfw' ); ?></span></p>
105
+ </label>
106
+ </div>
107
+ </fieldset>
108
+ </td>
109
+ </tr>
110
+ <tr valign="top">
111
+ <th scope="row"><?php _e( 'Title', 'mfbfw' ); ?></th>
112
+ <td>
113
+ <fieldset>
114
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[titleShow]"
115
+ id="titleShow"<?php if ( isset( $settings['titleShow'] ) && $settings['titleShow'] ) {
116
+ echo ' checked="yes"';
117
+ } ?> />
118
+ <label for="titleShow" class="onoffswitch-label"></label>
119
+ <span class="switch-text"><?php _e( 'Show the title (default: on)', 'mfbfw' ); ?></span>
120
+ <div class="cf"></div>
121
+ <div id="titleBlock" class="hidden-block">
122
+ <label for="titleSize">
123
+ <input type="text" name="mfbfw[titleSize]" id="titleSize" size="2" maxlength="4"
124
+ value="<?php echo $settings['titleSize']; ?>"/>
125
+ <?php _e( 'Title size (default: 14px)', 'mfbfw' ); ?>
126
+ </label>
127
+ <div class="cf"></div>
128
+ <div class="line-spacer"></div>
129
+ <input id="titlePositionInside" class="titlePosition" type="radio" value="inside"
130
+ name="mfbfw[titlePosition]"<?php if ( $settings['titlePosition'] == 'inside' ) {
131
+ echo ' checked="yes"';
132
+ } ?> />
133
+ <label for="titlePositionInside">
134
+ <?php _e( 'Inside (default)', 'mfbfw' ); ?>
135
+ </label>
136
+ <input id="titlePositionOutside" class="titlePosition" type="radio" value="float"
137
+ name="mfbfw[titlePosition]"<?php if ( $settings['titlePosition'] == 'float' ) {
138
+ echo ' checked="yes"';
139
+ } ?> />
140
+ <label for="titlePositionOutside">
141
+ <?php _e( 'Outside', 'mfbfw' ); ?>
142
+ </label>
143
+ <input id="titlePositionOver" class="titlePosition" type="radio" value="over"
144
+ name="mfbfw[titlePosition]"<?php if ( $settings['titlePosition'] == 'over' ) {
145
+ echo ' checked="yes"';
146
+ } ?> />
147
+ <label for="titlePositionOver">
148
+ <?php _e( 'Over', 'mfbfw' ); ?>
149
+ </label>
150
+ <div class="line-spacer"></div>
151
+ <div id="titleColorBlock">
152
+ <label for="titleColor">
153
+ <input type="text" class="color-btn" name="mfbfw[titleColor]" id="titleColor"
154
+ class="colorpick" value="<?php echo $settings['titleColor']; ?>" size="7"
155
+ maxlength="7"/>
156
+ </label>
157
+ <p class="description"><?php _e( 'Title text color (default: #333333)', 'mfbfw' ); ?></p>
158
+ <p class="description"><?php _e( '(Should contrast with the padding color set above)', 'mfbfw' ); ?></p>
159
+ </div>
160
+ </div>
161
+ </fieldset>
162
+ </td>
163
+ </tr>
164
+ <tr valign="top">
165
+ <th scope="row"><?php _e( 'Navigation Arrows', 'mfbfw' ); ?></th>
166
+ <td>
167
+ <fieldset>
168
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[showNavArrows]"
169
+ id="showNavArrows"<?php if ( isset( $settings['showNavArrows'] ) && $settings['showNavArrows'] ) {
170
+ echo ' checked="yes"';
171
+ } ?> />
172
+ <label for="showNavArrows" class="onoffswitch-label"></label>
173
+ <span class="switch-text"><?php _e( 'Show the navigation arrows (default: on)', 'mfbfw' ); ?></span>
174
+ <div class="cf"></div>
175
+ </fieldset>
176
+ </td>
177
+ </tr>
178
+ </tbody>
179
  </table>
lib/admin-tab-behaviour.php CHANGED
@@ -1,102 +1,102 @@
1
- <h3><?php _e( 'Behavior Settings <span style="color:orange">(medium)</span>', 'mfbfw' ); ?></h3>
2
- <p><?php _e( 'The following settings should be left alone unless you know what you are doing.', 'mfbfw' ); ?></p>
3
- <table class="form-table fancy-table" style="clear:none;">
4
- <tbody>
5
- <tr valign="top">
6
- <th scope="row"><?php _e( 'Close on Content Click', 'mfbfw' ); ?></th>
7
- <td>
8
- <fieldset>
9
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[hideOnContentClick]"
10
- id="hideOnContentClick"<?php if ( isset( $settings['hideOnContentClick'] ) && $settings['hideOnContentClick'] ) {
11
- echo ' checked="yes"';
12
- } ?> />
13
- <label for="hideOnContentClick" class="onoffswitch-label"></label>
14
- <span class="switch-text"><?php _e( 'Close FancyBox by clicking on the image (default: off)', 'mfbfw' ); ?></span>
15
- <div class="cf"></div>
16
- <p class="description">
17
- <em><?php _e( '(You may want to leave this off if you display iframed or inline content that containts clickable elements - for example: play buttons for movies, links to other pages)', 'mfbfw' ); ?>
18
- </p>
19
- </fieldset>
20
- </td>
21
- </tr>
22
- <tr valign="top">
23
- <th scope="row"><?php _e( 'Close on Overlay Click', 'mfbfw' ); ?></th>
24
- <td>
25
- <fieldset>
26
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[hideOnOverlayClick]"
27
- id="hideOnOverlayClick"<?php if ( isset( $settings['hideOnOverlayClick'] ) && $settings['hideOnOverlayClick'] ) {
28
- echo ' checked="yes"';
29
- } ?> />
30
- <label for="hideOnOverlayClick" class="onoffswitch-label"></label>
31
- <span class="switch-text"><?php _e( 'Close FancyBox by clicking on the overlay sorrounding it (default: on)', 'mfbfw' ); ?></span>
32
- <div class="cf"></div>
33
- </fieldset>
34
- </td>
35
- </tr>
36
- <tr valign="top">
37
- <th scope="row"><?php _e( 'Keyboard navigation;', 'mfbfw' ); ?></th>
38
- <td>
39
- <fieldset>
40
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[enableEscapeButton]"
41
- id="enableEscapeButton"<?php if ( isset( $settings['enableEscapeButton'] ) && $settings['enableEscapeButton'] ) {
42
- echo ' checked="yes"';
43
- } ?> />
44
- <label for="enableEscapeButton" class="onoffswitch-label"></label>
45
- <span class="switch-text"><?php _e( 'Enable Keyboard Navigation (default: on)', 'mfbfw' ); ?></span>
46
- <div class="cf"></div>
47
- </fieldset>
48
- </td>
49
- </tr>
50
- <tr valign="top">
51
- <th scope="row"><?php _e( 'Loop Galleries', 'mfbfw' ); ?></th>
52
- <td>
53
- <fieldset>
54
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[cyclic]"
55
- id="cyclic"<?php if ( isset( $settings['cyclic'] ) && $settings['cyclic'] ) {
56
- echo ' checked="yes"';
57
- } ?> />
58
- <label for="cyclic" class="onoffswitch-label"></label>
59
- <span class="switch-text"><?php _e( 'This will make galleries loop, allowing you to keep pressing next/back (default: off)', 'mfbfw' ); ?></span>
60
- <div class="cf"></div>
61
- </fieldset>
62
- </td>
63
- </tr>
64
- <tr valign="top">
65
- <th scope="row"><?php _e( 'Mouse Wheel Navigation', 'mfbfw' ); ?></th>
66
- <td>
67
- <fieldset>
68
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[mouseWheel]"
69
- id="mouseWheel"<?php if ( isset( $settings['mouseWheel'] ) && $settings['mouseWheel'] ) {
70
- echo ' checked="yes"';
71
- } ?> />
72
- <label for="mouseWheel" class="onoffswitch-label"></label>
73
- <span class="switch-text"><?php _e( 'Lets visitors navigate galleries with the mouse wheel (default: off)', 'mfbfw' ); ?></span>
74
- <div class="cf"></div>
75
- </fieldset>
76
- </td>
77
- </tr>
78
- <tr valign="top">
79
- <th scope="row"><?php _e( 'Woocommerce:', 'mfbfw' ); ?></th>
80
- <td>
81
- <fieldset>
82
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[disableWoocommercePages]"
83
- id="disableWoocommercePages"<?php if ( isset( $settings['disableWoocommercePages'] ) && $settings['disableWoocommercePages'] ) {
84
- echo ' checked="yes"';
85
- } ?> />
86
- <label for="disableWoocommercePages" class="onoffswitch-label"></label>
87
- <span class="switch-text"><?php _e( 'Disable on Woocommerce Shop page.( Default : off )', 'mfbfw' ); ?></span>
88
- <div class="cf"></div>
89
- </fieldset>
90
- <fieldset>
91
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[disableWoocommerceProducts]"
92
- id="disableWoocommerceProducts"<?php if ( isset( $settings['disableWoocommerceProducts'] ) && $settings['disableWoocommerceProducts'] ) {
93
- echo ' checked="yes"';
94
- } ?> />
95
- <label for="disableWoocommerceProducts" class="onoffswitch-label"></label>
96
- <span class="switch-text"><?php _e( 'Disable on Woocommerce products.( Default : off )', 'mfbfw' ); ?></span>
97
- <div class="cf"></div>
98
- </fieldset>
99
- </td>
100
- </tr>
101
- </tbody>
102
  </table>
1
+ <h3><?php _e( 'Behavior Settings <span style="color:orange">(medium)</span>', 'mfbfw' ); ?></h3>
2
+ <p><?php _e( 'The following settings should be left alone unless you know what you are doing.', 'mfbfw' ); ?></p>
3
+ <table class="form-table fancy-table" style="clear:none;">
4
+ <tbody>
5
+ <tr valign="top">
6
+ <th scope="row"><?php _e( 'Close on Content Click', 'mfbfw' ); ?></th>
7
+ <td>
8
+ <fieldset>
9
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[hideOnContentClick]"
10
+ id="hideOnContentClick"<?php if ( isset( $settings['hideOnContentClick'] ) && $settings['hideOnContentClick'] ) {
11
+ echo ' checked="yes"';
12
+ } ?> />
13
+ <label for="hideOnContentClick" class="onoffswitch-label"></label>
14
+ <span class="switch-text"><?php _e( 'Close FancyBox by clicking on the image (default: off)', 'mfbfw' ); ?></span>
15
+ <div class="cf"></div>
16
+ <p class="description">
17
+ <em><?php _e( '(You may want to leave this off if you display iframed or inline content that containts clickable elements - for example: play buttons for movies, links to other pages)', 'mfbfw' ); ?>
18
+ </p>
19
+ </fieldset>
20
+ </td>
21
+ </tr>
22
+ <tr valign="top">
23
+ <th scope="row"><?php _e( 'Close on Overlay Click', 'mfbfw' ); ?></th>
24
+ <td>
25
+ <fieldset>
26
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[hideOnOverlayClick]"
27
+ id="hideOnOverlayClick"<?php if ( isset( $settings['hideOnOverlayClick'] ) && $settings['hideOnOverlayClick'] ) {
28
+ echo ' checked="yes"';
29
+ } ?> />
30
+ <label for="hideOnOverlayClick" class="onoffswitch-label"></label>
31
+ <span class="switch-text"><?php _e( 'Close FancyBox by clicking on the overlay sorrounding it (default: on)', 'mfbfw' ); ?></span>
32
+ <div class="cf"></div>
33
+ </fieldset>
34
+ </td>
35
+ </tr>
36
+ <tr valign="top">
37
+ <th scope="row"><?php _e( 'Keyboard navigation;', 'mfbfw' ); ?></th>
38
+ <td>
39
+ <fieldset>
40
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[enableEscapeButton]"
41
+ id="enableEscapeButton"<?php if ( isset( $settings['enableEscapeButton'] ) && $settings['enableEscapeButton'] ) {
42
+ echo ' checked="yes"';
43
+ } ?> />
44
+ <label for="enableEscapeButton" class="onoffswitch-label"></label>
45
+ <span class="switch-text"><?php _e( 'Enable Keyboard Navigation (default: on)', 'mfbfw' ); ?></span>
46
+ <div class="cf"></div>
47
+ </fieldset>
48
+ </td>
49
+ </tr>
50
+ <tr valign="top">
51
+ <th scope="row"><?php _e( 'Loop Galleries', 'mfbfw' ); ?></th>
52
+ <td>
53
+ <fieldset>
54
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[cyclic]"
55
+ id="cyclic"<?php if ( isset( $settings['cyclic'] ) && $settings['cyclic'] ) {
56
+ echo ' checked="yes"';
57
+ } ?> />
58
+ <label for="cyclic" class="onoffswitch-label"></label>
59
+ <span class="switch-text"><?php _e( 'This will make galleries loop, allowing you to keep pressing next/back (default: off)', 'mfbfw' ); ?></span>
60
+ <div class="cf"></div>
61
+ </fieldset>
62
+ </td>
63
+ </tr>
64
+ <tr valign="top">
65
+ <th scope="row"><?php _e( 'Mouse Wheel Navigation', 'mfbfw' ); ?></th>
66
+ <td>
67
+ <fieldset>
68
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[mouseWheel]"
69
+ id="mouseWheel"<?php if ( isset( $settings['mouseWheel'] ) && $settings['mouseWheel'] ) {
70
+ echo ' checked="yes"';
71
+ } ?> />
72
+ <label for="mouseWheel" class="onoffswitch-label"></label>
73
+ <span class="switch-text"><?php _e( 'Lets visitors navigate galleries with the mouse wheel (default: off)', 'mfbfw' ); ?></span>
74
+ <div class="cf"></div>
75
+ </fieldset>
76
+ </td>
77
+ </tr>
78
+ <tr valign="top">
79
+ <th scope="row"><?php _e( 'Woocommerce:', 'mfbfw' ); ?></th>
80
+ <td>
81
+ <fieldset>
82
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[disableWoocommercePages]"
83
+ id="disableWoocommercePages"<?php if ( isset( $settings['disableWoocommercePages'] ) && $settings['disableWoocommercePages'] ) {
84
+ echo ' checked="yes"';
85
+ } ?> />
86
+ <label for="disableWoocommercePages" class="onoffswitch-label"></label>
87
+ <span class="switch-text"><?php _e( 'Disable on Woocommerce Shop page.( Default : off )', 'mfbfw' ); ?></span>
88
+ <div class="cf"></div>
89
+ </fieldset>
90
+ <fieldset>
91
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[disableWoocommerceProducts]"
92
+ id="disableWoocommerceProducts"<?php if ( isset( $settings['disableWoocommerceProducts'] ) && $settings['disableWoocommerceProducts'] ) {
93
+ echo ' checked="yes"';
94
+ } ?> />
95
+ <label for="disableWoocommerceProducts" class="onoffswitch-label"></label>
96
+ <span class="switch-text"><?php _e( 'Disable on Woocommerce products.( Default : off )', 'mfbfw' ); ?></span>
97
+ <div class="cf"></div>
98
+ </fieldset>
99
+ </td>
100
+ </tr>
101
+ </tbody>
102
  </table>
lib/admin-tab-galleries.php CHANGED
@@ -1,54 +1,54 @@
1
- <h3><?php _e( 'Gallery Settings <span style="color:red">(advanced)</span>', 'mfbfw' ); ?></h3>
2
- <p><?php _e( 'Here you can choose if you want the plugin to group all images into a gallery, or make a gallery for each post. You can also define you own jQuery expression if you like.', 'mfbfw' ); ?></p>
3
- <?php
4
- //customExpression fix for update ( fancybox uses data-fancybox attribute for grouping galleries )
5
- $settings['customExpression'] = str_replace('"rel"','"data-fancybox"',$settings['customExpression']);
6
-
7
- ?>
8
- <table class="form-table" style="clear:none;">
9
- <tbody>
10
- <tr valign="top">
11
- <th scope="row"><?php _e( 'Gallery Type', 'mfbfw' ); ?></th>
12
- <td>
13
- <input id="galleryTypeAll" class="galleryType" type="radio" value="all" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'all' ) echo ' checked="yes"'; ?> />
14
- <label for="galleryTypeAll">
15
- <?php _e( 'Make a gallery for all images on the page (default)', 'mfbfw' ); ?>
16
- </label><br /><br />
17
-
18
- <input id="galleryTypeNone" class="galleryType" type="radio" value="none" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'none' ) echo ' checked="yes"'; ?> />
19
- <label for="galleryTypeNone">
20
- <?php _e( 'Do not group images in gallery automatically (use this if you want to make galleries manually with the <code>REL</code> attribute)', 'mfbfw' ); ?>
21
- </label><br /><br />
22
-
23
- <input id="galleryTypePost" class="galleryType" type="radio" value="post" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'post' ) echo ' checked="yes"'; ?> />
24
- <label for="galleryTypePost">
25
- <?php _e( 'Make a gallery for each post (will only work if your theme uses <code>class="post"</code> on each post, which is common in WordPress', 'mfbfw' ); ?>
26
- </label><br /><br />
27
-
28
- <input id="galleryTypeCustom" class="galleryType" type="radio" value="custom" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'custom' ) echo ' checked="yes"'; ?> />
29
- <label for="galleryTypeCustom">
30
- <?php _e( 'Use a custom expression to apply FancyBox', 'mfbfw' ); ?>
31
- </label><br /><br />
32
- <fieldset>
33
- <div id="customExpressionBlock">
34
- <label for="mfbfw[customExpression]">
35
- <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
36
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[customExpression]" wrap="physical" id="customExpression"><?php echo ($settings[ 'customExpression' ]); ?></textarea>
37
- </label><br />
38
- <p class="description"><strong><em><?php _e( 'Custom expression guidelines:', 'mfbfw' ); ?></em></strong></p><br />
39
- <p class="description"><em><?php _e('&middot; The custom expression has to apply <code>class="fancybox"</code> to the links where you want to use FancyBox. Do not call the <code>fancybox()</code> function here, the plugin does this for you.', 'mfbfw'); ?></em></p><br />
40
- <p class="description"><em><?php _e('&middot; The jQuery <code>addClass()</code> function is a good way to add the class to the desired links conserving any existing class.', 'mfbfw'); ?></em></p><br />
41
- <p class="description"><em><?php _e('&middot; You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so that FancyBox can show captions.', 'mfbfw'); ?></em></p><br />
42
- <p class="description"><em><?php _e('&middot; You can use <code>jQuery(thumbnails)</code> like in the example expression to apply FancyBox to thumbnails that link to these extensions: BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase).', 'mfbfw'); ?></em></p><br />
43
- <p class="description"><em><?php _e('&middot; If you want to do it manually you can use something like <code>jQuery("a:has(img)[href$=\'.jpg\']")</code> or whatever works for you.', 'mfbfw'); ?></em></p><br />
44
- <p class="description"><em><?php _e('See the <a href="http://docs.jquery.com/" target="_blank">jQuery Documentation</a> for more help.', 'mfbfw'); ?></em></p><br /><br />
45
- <p class="description"><strong><em><?php _e('Examples:', 'mfbfw'); ?></em></strong></p><br />
46
- <p class="description"><em><code>jQuery(thumbnails).addClass(&quot;fancybox&quot;).attr(&quot;rel&quot;,&quot;fancybox&quot;).getTitle();</code></em></p><br />
47
- <p class="description"><em><code>jQuery&quot;a:has(img)[href$='.jpg']&quot;).addClass&quot;fancybox&quot;).attr(&quot;rel&quot;,&quot;fancybox&quot;).getTitle();</code></em></p><br /><br />
48
- </div>
49
- </fieldset>
50
- </td>
51
- </tr>
52
-
53
- </tbody>
54
- </table>
1
+ <h3><?php _e( 'Gallery Settings <span style="color:red">(advanced)</span>', 'mfbfw' ); ?></h3>
2
+ <p><?php _e( 'Here you can choose if you want the plugin to group all images into a gallery, or make a gallery for each post. You can also define you own jQuery expression if you like.', 'mfbfw' ); ?></p>
3
+ <?php
4
+ //customExpression fix for update ( fancybox uses data-fancybox attribute for grouping galleries )
5
+ $settings['customExpression'] = str_replace('"rel"','"data-fancybox"',$settings['customExpression']);
6
+
7
+ ?>
8
+ <table class="form-table" style="clear:none;">
9
+ <tbody>
10
+ <tr valign="top">
11
+ <th scope="row"><?php _e( 'Gallery Type', 'mfbfw' ); ?></th>
12
+ <td>
13
+ <input id="galleryTypeAll" class="galleryType" type="radio" value="all" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'all' ) echo ' checked="yes"'; ?> />
14
+ <label for="galleryTypeAll">
15
+ <?php _e( 'Make a gallery for all images on the page (default)', 'mfbfw' ); ?>
16
+ </label><br /><br />
17
+
18
+ <input id="galleryTypeNone" class="galleryType" type="radio" value="none" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'none' ) echo ' checked="yes"'; ?> />
19
+ <label for="galleryTypeNone">
20
+ <?php _e( 'Do not group images in gallery automatically (use this if you want to make galleries manually with the <code>REL</code> attribute)', 'mfbfw' ); ?>
21
+ </label><br /><br />
22
+
23
+ <input id="galleryTypePost" class="galleryType" type="radio" value="post" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'post' ) echo ' checked="yes"'; ?> />
24
+ <label for="galleryTypePost">
25
+ <?php _e( 'Make a gallery for each post (will only work if your theme uses <code>class="post"</code> on each post, which is common in WordPress', 'mfbfw' ); ?>
26
+ </label><br /><br />
27
+
28
+ <input id="galleryTypeCustom" class="galleryType" type="radio" value="custom" name="mfbfw[galleryType]"<?php if ( $settings[ 'galleryType' ] == 'custom' ) echo ' checked="yes"'; ?> />
29
+ <label for="galleryTypeCustom">
30
+ <?php _e( 'Use a custom expression to apply FancyBox', 'mfbfw' ); ?>
31
+ </label><br /><br />
32
+ <fieldset>
33
+ <div id="customExpressionBlock">
34
+ <label for="mfbfw[customExpression]">
35
+ <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
36
+ <textarea rows="10" cols="50" class="large-text code" name="mfbfw[customExpression]" wrap="physical" id="customExpression"><?php echo ($settings[ 'customExpression' ]); ?></textarea>
37
+ </label><br />
38
+ <p class="description"><strong><em><?php _e( 'Custom expression guidelines:', 'mfbfw' ); ?></em></strong></p><br />
39
+ <p class="description"><em><?php _e('&middot; The custom expression has to apply <code>class="fancybox"</code> to the links where you want to use FancyBox. Do not call the <code>fancybox()</code> function here, the plugin does this for you.', 'mfbfw'); ?></em></p><br />
40
+ <p class="description"><em><?php _e('&middot; The jQuery <code>addClass()</code> function is a good way to add the class to the desired links conserving any existing class.', 'mfbfw'); ?></em></p><br />
41
+ <p class="description"><em><?php _e('&middot; You can use <code>getTitle()</code> in your expression to copy the title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so that FancyBox can show captions.', 'mfbfw'); ?></em></p><br />
42
+ <p class="description"><em><?php _e('&middot; You can use <code>jQuery(thumbnails)</code> like in the example expression to apply FancyBox to thumbnails that link to these extensions: BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase).', 'mfbfw'); ?></em></p><br />
43
+ <p class="description"><em><?php _e('&middot; If you want to do it manually you can use something like <code>jQuery("a:has(img)[href$=\'.jpg\']")</code> or whatever works for you.', 'mfbfw'); ?></em></p><br />
44
+ <p class="description"><em><?php _e('See the <a href="http://docs.jquery.com/" target="_blank">jQuery Documentation</a> for more help.', 'mfbfw'); ?></em></p><br /><br />
45
+ <p class="description"><strong><em><?php _e('Examples:', 'mfbfw'); ?></em></strong></p><br />
46
+ <p class="description"><em><code>jQuery(thumbnails).addClass(&quot;fancybox&quot;).attr(&quot;rel&quot;,&quot;fancybox&quot;).getTitle();</code></em></p><br />
47
+ <p class="description"><em><code>jQuery&quot;a:has(img)[href$='.jpg']&quot;).addClass&quot;fancybox&quot;).attr(&quot;rel&quot;,&quot;fancybox&quot;).getTitle();</code></em></p><br /><br />
48
+ </div>
49
+ </fieldset>
50
+ </td>
51
+ </tr>
52
+
53
+ </tbody>
54
+ </table>
lib/admin-tab-other.php CHANGED
@@ -1,199 +1,199 @@
1
- <h3><?php _e( 'Other Settings <span style="color:red">(advanced)</span>', 'mfbfw' ); ?></h3>
2
- <p><?php _e( 'These are additional settings for advanced users.', 'mfbfw' ); ?></p>
3
- <table class="form-table fancy-table" style="clear:none;">
4
- <tbody>
5
- <tr valign="top">
6
- <th scope="row"><?php _e( 'Dimensions', 'mfbfw' ); ?></th>
7
- <td>
8
- <fieldset>
9
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[autoDimensions]"
10
- id="autoDimensions"<?php if ( isset( $settings['autoDimensions'] ) && $settings['autoDimensions'] ) {
11
- echo ' checked="yes"';
12
- } ?> />
13
- <label for="autoDimensions" class="onoffswitch-label"></label>
14
- <span class="switch-text"><?php _e( 'Auto detect dimensions (default: on)', 'mfbfw' ); ?></span>
15
- <div class="cf"></div>
16
- <p class="description">
17
- <em><?php _e( 'Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! Flash dimensions won\'t be autodetected so specify them below if necessary. If you want to insert several pieces of flash content with different dimensions you will have to use the <strong>Additional FancyBox Calls</strong> option.', 'mfbfw' ); ?></em>
18
- </p>
19
- <div class="line-spacer"></div>
20
- <label for="frameWidth">
21
- <input type="text" name="mfbfw[frameWidth]" id="frameWidth"
22
- value="<?php echo $settings['frameWidth']; ?>" size="4" maxlength="4"/>
23
- <?php _e( 'Width for iframe and swf content. Also set for inline content if <em>autoDimensions</em> is disabled (default: 560)', 'mfbfw' ); ?>
24
- </label>
25
- <label for="frameHeight">
26
- <input type="text" name="mfbfw[frameHeight]" id="frameHeight"
27
- value="<?php echo $settings['frameHeight']; ?>" size="4" maxlength="4"/>
28
- <?php _e( 'Height for iframe and swf content. Also set for inline content if <em>autoDimensions</em> is disabled (default: 340)', 'mfbfw' ); ?>
29
- </label>
30
- </fieldset>
31
- </td>
32
- </tr>
33
- <tr valign="top">
34
- <th scope="row"><?php _e( 'Load JavaScript in Footer', 'mfbfw' ); ?></th>
35
- <td>
36
- <fieldset>
37
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[loadAtFooter]"
38
- id="loadAtFooter"<?php if ( isset( $settings['loadAtFooter'] ) && $settings['loadAtFooter'] ) {
39
- echo ' checked="yes"';
40
- } ?> />
41
- <label for="loadAtFooter" class="onoffswitch-label"></label>
42
- <span class="switch-text"><?php _e( 'Loads JavaScript at the end of the blog\'s HTML (experimental) (default: off)', 'mfbfw' ); ?></span>
43
- <div class="cf"></div>
44
- <p class="description">
45
- <em><?php _e( 'This option won\'t be recognized if you use <strong>Parallel Load</strong> plugin. In that case, you can do this from Parallel Load\'s options.', 'mfbfw' ); ?></em>
46
- </p>
47
- </fieldset>
48
- </td>
49
- </tr>
50
- <tr valign="top">
51
- <th scope="row"><?php _e( 'Callbacks', 'mfbfw' ); ?></th>
52
- <td>
53
- <fieldset>
54
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[callbackEnable]"
55
- id="callbackEnable"<?php if ( isset( $settings['callbackEnable'] ) && $settings['callbackEnable'] ) {
56
- echo ' checked="yes"';
57
- } ?> />
58
- <label for="callbackEnable" class="onoffswitch-label"></label>
59
- <span class="switch-text"><?php _e( 'Enable callbacks (default: off)', 'mfbfw' ); ?></span>
60
- <div class="cf"></div>
61
- <p class="description"><em><?php _e( 'Enabling this will show additional settings.', 'mfbfw' ); ?></em>
62
- </p>
63
- <div class="line-spacer"></div>
64
- <div id="callbackBlock">
65
- <?php _e( 'Callback on <strong>Start</strong> event: Will be called right before attempting to load the content', 'mfbfw' ); ?>
66
- <div class="line-spacer"></div>
67
- <label for="callbackOnStart">
68
- <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
69
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnStart]"
70
- wrap="physical"
71
- id="callbackOnStart"><?php echo( $settings['callbackOnStart'] ); ?></textarea>
72
- </label>
73
- <?php _e( 'Callback on <strong>Cancel</strong> event: Will be called after loading is canceled', 'mfbfw' ); ?>
74
- <div class="line-spacer"></div>
75
- <label for="callbackOnCancel">
76
- <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
77
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnCancel]"
78
- wrap="physical"
79
- id="callbackOnCancel"><?php echo( $settings['callbackOnCancel'] ); ?></textarea>
80
- </label>
81
- <?php _e( 'Callback on <strong>Complete</strong> event: Will be called once the content is displayed', 'mfbfw' ); ?>
82
- <div class="line-spacer"></div>
83
- <label for="callbackOnComplete">
84
- <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
85
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnComplete]"
86
- wrap="physical"
87
- id="callbackOnComplete"><?php echo( $settings['callbackOnComplete'] ); ?></textarea>
88
- </label>
89
- <?php _e( 'Callback on <strong>CleanUp</strong> event: Will be called just before closing', 'mfbfw' ); ?>
90
- <div class="line-spacer"></div>
91
- <label for="callbackOnCleanup">
92
- <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
93
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnCleanup]"
94
- wrap="physical"
95
- id="callbackOnCleanup"><?php echo( $settings['callbackOnCleanup'] ); ?></textarea>
96
- </label>
97
- <?php _e( 'Callback on <strong>Closed</strong> event: Will be called once FancyBox is closed', 'mfbfw' ); ?>
98
- <div class="line-spacer"></div>
99
- <label for="callbackOnClosed">
100
- <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
101
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnClose]"
102
- wrap="physical"
103
- id="callbackOnClosed"><?php echo( $settings['callbackOnClose'] ); ?></textarea>
104
- </label>
105
- <p class="description"><strong><em><?php _e( 'Example:', 'mfbfw' ); ?></em></strong></p>
106
- <p class="description"><em><code>function() { alert('Hello world!'); }</code></em></p>
107
- <p class="description">
108
- <em><?php _e( 'Leave empty any speciic callbacks you don\'t need to use.', 'mfbfw' ); ?></em>
109
- </p>
110
- </div>
111
- </fieldset>
112
- </td>
113
- </tr>
114
- </tbody>
115
- </table>
116
- <h3><?php _e( 'Extra FancyBox Calls <span style="color:red">(advanced)</span>', 'mfbfw' ); ?></h3>
117
- <p><?php _e( 'Here you can add as many additional calls to fancybox as you want, with different settings. For example, if you want to use fancybox with iframes or ajax on any specific link, you can configure those calls here without affecting the settings for images.', 'mfbfw' ); ?></p>
118
- <p><?php _e( 'For information on the options available you can use here see <a href="http://fancyapps.com/fancybox/3/">FancyBox\'s API & Options page</a>.', 'mfbfw' ); ?></p>
119
- <table class="form-table fancy-table" style="clear:none;">
120
- <tbody>
121
- <tr valign="top">
122
- <th scope="row"><?php _e( 'Additional FancyBox Calls', 'mfbfw' ); ?></th>
123
- <td>
124
- <fieldset>
125
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[extraCallsEnable]"
126
- id="extraCallsEnable"<?php if ( isset( $settings['extraCallsEnable'] ) && $settings['extraCallsEnable'] ) {
127
- echo ' checked="yes"';
128
- } ?> />
129
- <label for="extraCallsEnable" class="onoffswitch-label"></label>
130
- <span class="switch-text"><?php _e( 'Additional FancyBox Calls (default: off)', 'mfbfw' ); ?></span>
131
- <div class="cf"></div>
132
- <div class="line-spacer"></div>
133
- <div id="extraCallsBlock">
134
- <label for="extraCalls">
135
- <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
136
- <textarea rows="20" cols="50" class="large-text code" name="mfbfw[extraCallsData]"
137
- wrap="physical"
138
- id="extraCalls"><?php echo( $settings['extraCallsData'] ); ?></textarea>
139
- </label>
140
- <p class="description"><strong><em><?php _e( 'Example:', 'mfbfw' ); ?></em></strong></p><br/>
141
- <p class="description"><em><code>
142
- jQuery("#login a").fancybox({<br/>
143
- &nbsp;&nbsp;'transitionIn': 'elastic',<br/>
144
- &nbsp;&nbsp;'speedIn': 600,<br/>
145
- &nbsp;&nbsp;'speedOut': 200,<br/>
146
- &nbsp;&nbsp;'type': 'iframe'<br/>
147
- });
148
- </code></em></p>
149
- </div>
150
- </fieldset>
151
- </td>
152
- </tr>
153
- </tbody>
154
- </table>
155
- <h3><?php _e( 'Troubleshooting Settings', 'mfbfw' ); ?></h3>
156
- <p>
157
- <span style="font-weight:bold;color:red;"><?php _e( 'Settings in this section should only be changed if you are having problems with the plugin!', 'mfbfw' ); ?></span>
158
- </p>
159
- <p><?php _e( 'If the plugin doesn\'t seem to work, first you should check for other plugins that may be conflicting with this one, especially other Lightbox, Slimbox, etc. Make sure all your plugins and WordPress itself are up to date (this plugin has only been tested in WordPress 2.7 and above).', 'mfbfw' ); ?></p>
160
- <p><?php _e( 'Change them one at a time and test to see if they help. Remember that having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options.', 'mfbfw' ); ?></p>
161
- <br/>
162
- <table class="form-table fancy-table" style="clear:none;">
163
- <tbody>
164
- <tr valign="top">
165
- <th scope="row"><?php _e( 'Do not call jQuery', 'mfbfw' ); ?></th>
166
- <td>
167
- <fieldset>
168
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[nojQuery]"
169
- id="nojQuery"<?php if ( isset( $settings['nojQuery'] ) && $settings['nojQuery'] ) {
170
- echo ' checked="yes"';
171
- } ?> />
172
- <label for="nojQuery" class="onoffswitch-label"></label>
173
- <span class="switch-text"><?php _e( 'Skip jQuery call. Use this only if jQuery is being loaded twice (default: off)', 'mfbfw' ); ?></span>
174
- <div class="cf"></div>
175
- </fieldset>
176
- </td>
177
- </tr>
178
- </tbody>
179
- </table>
180
- <h3><?php _e( 'Uninstall', 'mfbfw' ); ?></h3>
181
- <p><?php _e( 'Like many other plugins, FancyBox for WordPress stores its settings on your WordPress\' options database table. Actually, these settings are not using more than a couple of kilobytes of space, but if you want to completely uninstall this plugin, check the option below, then save changes, and <strong>when you deactivate the plugin</strong>, all its settings will be removed from the database.', 'mfbfw' ); ?></p>
182
- <table class="form-table fancy-table" style="clear:none;">
183
- <tbody>
184
- <tr valign="top">
185
- <th scope="row"><?php _e( 'Remove settings', 'mfbfw' ); ?></th>
186
- <td>
187
- <fieldset>
188
- <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[uninstall]"
189
- id="uninstall"<?php if ( isset( $settings['uninstall'] ) && $settings['uninstall'] ) {
190
- echo ' checked="yes"';
191
- } ?> />
192
- <label for="uninstall" class="onoffswitch-label"></label>
193
- <span class="switch-text"><?php _e( 'Remove Settings when plugin is deactivated from the "Manage Plugins" page. (default: off)', 'mfbfw' ); ?></span>
194
- <div class="cf"></div>
195
- </fieldset>
196
- </td>
197
- </tr>
198
- </tbody>
199
  </table>
1
+ <h3><?php _e( 'Other Settings <span style="color:red">(advanced)</span>', 'mfbfw' ); ?></h3>
2
+ <p><?php _e( 'These are additional settings for advanced users.', 'mfbfw' ); ?></p>
3
+ <table class="form-table fancy-table" style="clear:none;">
4
+ <tbody>
5
+ <tr valign="top">
6
+ <th scope="row"><?php _e( 'Dimensions', 'mfbfw' ); ?></th>
7
+ <td>
8
+ <fieldset>
9
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[autoDimensions]"
10
+ id="autoDimensions"<?php if ( isset( $settings['autoDimensions'] ) && $settings['autoDimensions'] ) {
11
+ echo ' checked="yes"';
12
+ } ?> />
13
+ <label for="autoDimensions" class="onoffswitch-label"></label>
14
+ <span class="switch-text"><?php _e( 'Auto detect dimensions (default: on)', 'mfbfw' ); ?></span>
15
+ <div class="cf"></div>
16
+ <p class="description">
17
+ <em><?php _e( 'Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! Flash dimensions won\'t be autodetected so specify them below if necessary. If you want to insert several pieces of flash content with different dimensions you will have to use the <strong>Additional FancyBox Calls</strong> option.', 'mfbfw' ); ?></em>
18
+ </p>
19
+ <div class="line-spacer"></div>
20
+ <label for="frameWidth">
21
+ <input type="text" name="mfbfw[frameWidth]" id="frameWidth"
22
+ value="<?php echo $settings['frameWidth']; ?>" size="4" maxlength="4"/>
23
+ <?php _e( 'Width for iframe and swf content. Also set for inline content if <em>autoDimensions</em> is disabled (default: 560)', 'mfbfw' ); ?>
24
+ </label>
25
+ <label for="frameHeight">
26
+ <input type="text" name="mfbfw[frameHeight]" id="frameHeight"
27
+ value="<?php echo $settings['frameHeight']; ?>" size="4" maxlength="4"/>
28
+ <?php _e( 'Height for iframe and swf content. Also set for inline content if <em>autoDimensions</em> is disabled (default: 340)', 'mfbfw' ); ?>
29
+ </label>
30
+ </fieldset>
31
+ </td>
32
+ </tr>
33
+ <tr valign="top">
34
+ <th scope="row"><?php _e( 'Load JavaScript in Footer', 'mfbfw' ); ?></th>
35
+ <td>
36
+ <fieldset>
37
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[loadAtFooter]"
38
+ id="loadAtFooter"<?php if ( isset( $settings['loadAtFooter'] ) && $settings['loadAtFooter'] ) {
39
+ echo ' checked="yes"';
40
+ } ?> />
41
+ <label for="loadAtFooter" class="onoffswitch-label"></label>
42
+ <span class="switch-text"><?php _e( 'Loads JavaScript at the end of the blog\'s HTML (experimental) (default: off)', 'mfbfw' ); ?></span>
43
+ <div class="cf"></div>
44
+ <p class="description">
45
+ <em><?php _e( 'This option won\'t be recognized if you use <strong>Parallel Load</strong> plugin. In that case, you can do this from Parallel Load\'s options.', 'mfbfw' ); ?></em>
46
+ </p>
47
+ </fieldset>
48
+ </td>
49
+ </tr>
50
+ <tr valign="top">
51
+ <th scope="row"><?php _e( 'Callbacks', 'mfbfw' ); ?></th>
52
+ <td>
53
+ <fieldset>
54
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[callbackEnable]"
55
+ id="callbackEnable"<?php if ( isset( $settings['callbackEnable'] ) && $settings['callbackEnable'] ) {
56
+ echo ' checked="yes"';
57
+ } ?> />
58
+ <label for="callbackEnable" class="onoffswitch-label"></label>
59
+ <span class="switch-text"><?php _e( 'Enable callbacks (default: off)', 'mfbfw' ); ?></span>
60
+ <div class="cf"></div>
61
+ <p class="description"><em><?php _e( 'Enabling this will show additional settings.', 'mfbfw' ); ?></em>
62
+ </p>
63
+ <div class="line-spacer"></div>
64
+ <div id="callbackBlock">
65
+ <?php _e( 'Callback on <strong>Start</strong> event: Will be called right before attempting to load the content', 'mfbfw' ); ?>
66
+ <div class="line-spacer"></div>
67
+ <label for="callbackOnStart">
68
+ <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
69
+ <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnStart]"
70
+ wrap="physical"
71
+ id="callbackOnStart"><?php echo( $settings['callbackOnStart'] ); ?></textarea>
72
+ </label>
73
+ <?php _e( 'Callback on <strong>Cancel</strong> event: Will be called after loading is canceled', 'mfbfw' ); ?>
74
+ <div class="line-spacer"></div>
75
+ <label for="callbackOnCancel">
76
+ <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
77
+ <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnCancel]"
78
+ wrap="physical"
79
+ id="callbackOnCancel"><?php echo( $settings['callbackOnCancel'] ); ?></textarea>
80
+ </label>
81
+ <?php _e( 'Callback on <strong>Complete</strong> event: Will be called once the content is displayed', 'mfbfw' ); ?>
82
+ <div class="line-spacer"></div>
83
+ <label for="callbackOnComplete">
84
+ <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
85
+ <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnComplete]"
86
+ wrap="physical"
87
+ id="callbackOnComplete"><?php echo( $settings['callbackOnComplete'] ); ?></textarea>
88
+ </label>
89
+ <?php _e( 'Callback on <strong>CleanUp</strong> event: Will be called just before closing', 'mfbfw' ); ?>
90
+ <div class="line-spacer"></div>
91
+ <label for="callbackOnCleanup">
92
+ <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
93
+ <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnCleanup]"
94
+ wrap="physical"
95
+ id="callbackOnCleanup"><?php echo( $settings['callbackOnCleanup'] ); ?></textarea>
96
+ </label>
97
+ <?php _e( 'Callback on <strong>Closed</strong> event: Will be called once FancyBox is closed', 'mfbfw' ); ?>
98
+ <div class="line-spacer"></div>
99
+ <label for="callbackOnClosed">
100
+ <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
101
+ <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnClose]"
102
+ wrap="physical"
103
+ id="callbackOnClosed"><?php echo( $settings['callbackOnClose'] ); ?></textarea>
104
+ </label>
105
+ <p class="description"><strong><em><?php _e( 'Example:', 'mfbfw' ); ?></em></strong></p>
106
+ <p class="description"><em><code>function() { alert('Hello world!'); }</code></em></p>
107
+ <p class="description">
108
+ <em><?php _e( 'Leave empty any speciic callbacks you don\'t need to use.', 'mfbfw' ); ?></em>
109
+ </p>
110
+ </div>
111
+ </fieldset>
112
+ </td>
113
+ </tr>
114
+ </tbody>
115
+ </table>
116
+ <h3><?php _e( 'Extra FancyBox Calls <span style="color:red">(advanced)</span>', 'mfbfw' ); ?></h3>
117
+ <p><?php _e( 'Here you can add as many additional calls to fancybox as you want, with different settings. For example, if you want to use fancybox with iframes or ajax on any specific link, you can configure those calls here without affecting the settings for images.', 'mfbfw' ); ?></p>
118
+ <p><?php _e( 'For information on the options available you can use here see <a href="http://fancyapps.com/fancybox/3/">FancyBox\'s API & Options page</a>.', 'mfbfw' ); ?></p>
119
+ <table class="form-table fancy-table" style="clear:none;">
120
+ <tbody>
121
+ <tr valign="top">
122
+ <th scope="row"><?php _e( 'Additional FancyBox Calls', 'mfbfw' ); ?></th>
123
+ <td>
124
+ <fieldset>
125
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[extraCallsEnable]"
126
+ id="extraCallsEnable"<?php if ( isset( $settings['extraCallsEnable'] ) && $settings['extraCallsEnable'] ) {
127
+ echo ' checked="yes"';
128
+ } ?> />
129
+ <label for="extraCallsEnable" class="onoffswitch-label"></label>
130
+ <span class="switch-text"><?php _e( 'Additional FancyBox Calls (default: off)', 'mfbfw' ); ?></span>
131
+ <div class="cf"></div>
132
+ <div class="line-spacer"></div>
133
+ <div id="extraCallsBlock">
134
+ <label for="extraCalls">
135
+ <div class="start-editing"><p><?php _e( 'Click to start editing', 'mfbfw' ); ?></p></div>
136
+ <textarea rows="20" cols="50" class="large-text code" name="mfbfw[extraCallsData]"
137
+ wrap="physical"
138
+ id="extraCalls"><?php echo( $settings['extraCallsData'] ); ?></textarea>
139
+ </label>
140
+ <p class="description"><strong><em><?php _e( 'Example:', 'mfbfw' ); ?></em></strong></p><br/>
141
+ <p class="description"><em><code>
142
+ jQuery("#login a").fancybox({<br/>
143
+ &nbsp;&nbsp;'transitionIn': 'elastic',<br/>
144
+ &nbsp;&nbsp;'speedIn': 600,<br/>
145
+ &nbsp;&nbsp;'speedOut': 200,<br/>
146
+ &nbsp;&nbsp;'type': 'iframe'<br/>
147
+ });
148
+ </code></em></p>
149
+ </div>
150
+ </fieldset>
151
+ </td>
152
+ </tr>
153
+ </tbody>
154
+ </table>
155
+ <h3><?php _e( 'Troubleshooting Settings', 'mfbfw' ); ?></h3>
156
+ <p>
157
+ <span style="font-weight:bold;color:red;"><?php _e( 'Settings in this section should only be changed if you are having problems with the plugin!', 'mfbfw' ); ?></span>
158
+ </p>
159
+ <p><?php _e( 'If the plugin doesn\'t seem to work, first you should check for other plugins that may be conflicting with this one, especially other Lightbox, Slimbox, etc. Make sure all your plugins and WordPress itself are up to date (this plugin has only been tested in WordPress 2.7 and above).', 'mfbfw' ); ?></p>
160
+ <p><?php _e( 'Change them one at a time and test to see if they help. Remember that having a cache plugin may prevent changes from taking effect immidiately, so clear cache after saving changes here or deactivate cache until you finish editing these options.', 'mfbfw' ); ?></p>
161
+ <br/>
162
+ <table class="form-table fancy-table" style="clear:none;">
163
+ <tbody>
164
+ <tr valign="top">
165
+ <th scope="row"><?php _e( 'Do not call jQuery', 'mfbfw' ); ?></th>
166
+ <td>
167
+ <fieldset>
168
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[nojQuery]"
169
+ id="nojQuery"<?php if ( isset( $settings['nojQuery'] ) && $settings['nojQuery'] ) {
170
+ echo ' checked="yes"';
171
+ } ?> />
172
+ <label for="nojQuery" class="onoffswitch-label"></label>
173
+ <span class="switch-text"><?php _e( 'Skip jQuery call. Use this only if jQuery is being loaded twice (default: off)', 'mfbfw' ); ?></span>
174
+ <div class="cf"></div>
175
+ </fieldset>
176
+ </td>
177
+ </tr>
178
+ </tbody>
179
+ </table>
180
+ <h3><?php _e( 'Uninstall', 'mfbfw' ); ?></h3>
181
+ <p><?php _e( 'Like many other plugins, FancyBox for WordPress stores its settings on your WordPress\' options database table. Actually, these settings are not using more than a couple of kilobytes of space, but if you want to completely uninstall this plugin, check the option below, then save changes, and <strong>when you deactivate the plugin</strong>, all its settings will be removed from the database.', 'mfbfw' ); ?></p>
182
+ <table class="form-table fancy-table" style="clear:none;">
183
+ <tbody>
184
+ <tr valign="top">
185
+ <th scope="row"><?php _e( 'Remove settings', 'mfbfw' ); ?></th>
186
+ <td>
187
+ <fieldset>
188
+ <input type="checkbox" class="onoffswitch-checkbox" name="mfbfw[uninstall]"
189
+ id="uninstall"<?php if ( isset( $settings['uninstall'] ) && $settings['uninstall'] ) {
190
+ echo ' checked="yes"';
191
+ } ?> />
192
+ <label for="uninstall" class="onoffswitch-label"></label>
193
+ <span class="switch-text"><?php _e( 'Remove Settings when plugin is deactivated from the "Manage Plugins" page. (default: off)', 'mfbfw' ); ?></span>
194
+ <div class="cf"></div>
195
+ </fieldset>
196
+ </td>
197
+ </tr>
198
+ </tbody>
199
  </table>
lib/admin-tab-support.php CHANGED
@@ -1,13 +1,13 @@
1
- <h3><?php _e( 'Help with Fancybox' ); ?></h3>
2
- <ul style="list-style-type:disc;padding-left:15px;">
3
- <li><?php _e( 'If you have problems or questions about FancyBox itself (and not this WordPress plugin), please start with these links: <a target="_blank" href="http://fancyapps.com/fancybox/3/">How-To</a> & <a target="_blank" href="http://fancyapps.com/fancybox/3/docs/">Documentation</a>.<br />If that does not help, go to <a target="_blank" href="http://groups.google.com/group/fancybox">the FancyBox Google Group</a>, use the <strong>Search</strong> option, and if necesary, post your question.', 'mfbfw' ); ?></li>
4
- </ul>
5
-
6
- <h3><?php _e( 'Help with Fancybox for WordPress plugin' ); ?></h3>
7
- <ul style="list-style-type:disc;padding-left:15px;">
8
- <li><?php _e( 'Try to localize the problem (switch your theme and deactivate plugins until you find the source of the problem). You can also try the Troubleshooting settings of this plugin if necesary.', 'mfbfw' ); ?></li>
9
- <li><?php _e( "Try reverting the plugin's settings to their defaults with the button below.", 'mfbfw' ); ?></li>
10
- <li><?php _e( 'If you still can not get the plugin to work, <a target="_blank" href="http://wordpress.org/support/plugin/fancybox-for-wordpress#postform">write a post in the WordPress Support forums</a> explaining the problem or take a look and the <a target="_blank" href="http://wordpress.org/support/plugin/fancybox-for-wordpress">already posted messages</a>.', 'mfbfw' ); ?></li>
11
- </ul>
12
-
13
  <p style="font-weight:bold;color:red"><span style="color:#333"><?php _e( 'IMPORTANT:' ); ?></span> <?php _e( 'When posting your problem please provide a link to your blog and the page where the error is found, and all relevant information you can, especially your theme, plugins, etc.' ); ?></p>
1
+ <h3><?php _e( 'Help with Fancybox' ); ?></h3>
2
+ <ul style="list-style-type:disc;padding-left:15px;">
3
+ <li><?php _e( 'If you have problems or questions about FancyBox itself (and not this WordPress plugin), please start with these links: <a target="_blank" href="http://fancyapps.com/fancybox/3/">How-To</a> & <a target="_blank" href="http://fancyapps.com/fancybox/3/docs/">Documentation</a>.<br />If that does not help, go to <a target="_blank" href="http://groups.google.com/group/fancybox">the FancyBox Google Group</a>, use the <strong>Search</strong> option, and if necesary, post your question.', 'mfbfw' ); ?></li>
4
+ </ul>
5
+
6
+ <h3><?php _e( 'Help with Fancybox for WordPress plugin' ); ?></h3>
7
+ <ul style="list-style-type:disc;padding-left:15px;">
8
+ <li><?php _e( 'Try to localize the problem (switch your theme and deactivate plugins until you find the source of the problem). You can also try the Troubleshooting settings of this plugin if necesary.', 'mfbfw' ); ?></li>
9
+ <li><?php _e( "Try reverting the plugin's settings to their defaults with the button below.", 'mfbfw' ); ?></li>
10
+ <li><?php _e( 'If you still can not get the plugin to work, <a target="_blank" href="http://wordpress.org/support/plugin/fancybox-for-wordpress#postform">write a post in the WordPress Support forums</a> explaining the problem or take a look and the <a target="_blank" href="http://wordpress.org/support/plugin/fancybox-for-wordpress">already posted messages</a>.', 'mfbfw' ); ?></li>
11
+ </ul>
12
+
13
  <p style="font-weight:bold;color:red"><span style="color:#333"><?php _e( 'IMPORTANT:' ); ?></span> <?php _e( 'When posting your problem please provide a link to your blog and the page where the error is found, and all relevant information you can, especially your theme, plugins, etc.' ); ?></p>
lib/class-fbfw-plugin-rollback.php CHANGED
@@ -1,71 +1,71 @@
1
- <?php
2
-
3
- class FBFW_Plugin_RollBack {
4
-
5
- public function __construct() {
6
-
7
- /**
8
- * $_POST action hook
9
- *
10
- * @see: https://codex.wordpress.org/Plugin_API/Action_Reference/admin_post_(action)
11
- *
12
- */
13
- add_action( 'admin_post_fbfw_rollback', array( $this, 'post_fbfw_rollback' ) );
14
-
15
- /**
16
- * Hook responsible for loading our Rollback JS script
17
- */
18
- add_action( 'admin_enqueue_scripts', array( $this, 'rollback_scripts' ) );
19
-
20
- }
21
-
22
- /**
23
- * FBFW version rollback.
24
- *
25
- * Rollback to previous {plugin} version.
26
- *
27
- * Fired by `admin_post_epfw_rollback` action.
28
- *
29
- * @since 1.5.0
30
- * @access public
31
- */
32
- public function post_fbfw_rollback() {
33
-
34
- check_admin_referer( 'fbfw_rollback' );
35
-
36
- $plugin_slug = basename( FBFW_FILE_, '.php' );
37
-
38
- // check for const defines
39
- if ( ! defined( 'FBFW_PREVIOUS_PLUGIN_VERSION' ) || ! defined( 'FBFW_PLUGIN_BASE' ) ) {
40
- wp_die(
41
- new WP_Error( 'broke', esc_html__( 'Previous plugin version or plugin basename CONST aren\'t defined.', 'epfw' ) )
42
- );
43
- }
44
-
45
- if ( class_exists( 'FBFW_Rollback' ) ) {
46
- $rollback = new FBFW_Rollback(
47
- array(
48
- 'version' => FBFW_PREVIOUS_PLUGIN_VERSION,
49
- 'plugin_name' => FBFW_PLUGIN_BASE,
50
- 'plugin_slug' => $plugin_slug,
51
- 'package_url' => sprintf( 'https://downloads.wordpress.org/plugin/%s.%s.zip', PLUGIN_NAME, FBFW_PREVIOUS_PLUGIN_VERSION ),
52
- )
53
- );
54
- $rollback->run();
55
- }
56
-
57
- wp_die(
58
- '', __( 'Rollback to Previous Version', 'mfbfw' ), array(
59
- 'response' => 200,
60
- )
61
- );
62
- }
63
-
64
- public function rollback_scripts() {
65
- wp_enqueue_script('rollback-script', FBFW_URL . 'assets/js/rollback.js', FBFW_VERSION); // Load Rollback script
66
- wp_enqueue_script( 'rollback-script' );
67
- }
68
-
69
- }
70
-
71
- new FBFW_Plugin_Rollback();
1
+ <?php
2
+
3
+ class FBFW_Plugin_RollBack {
4
+
5
+ public function __construct() {
6
+
7
+ /**
8
+ * $_POST action hook
9
+ *
10
+ * @see: https://codex.wordpress.org/Plugin_API/Action_Reference/admin_post_(action)
11
+ *
12
+ */
13
+ add_action( 'admin_post_fbfw_rollback', array( $this, 'post_fbfw_rollback' ) );
14
+
15
+ /**
16
+ * Hook responsible for loading our Rollback JS script
17
+ */
18
+ add_action( 'admin_enqueue_scripts', array( $this, 'rollback_scripts' ) );
19
+
20
+ }
21
+
22
+ /**
23
+ * FBFW version rollback.
24
+ *
25
+ * Rollback to previous {plugin} version.
26
+ *
27
+ * Fired by `admin_post_epfw_rollback` action.
28
+ *
29
+ * @since 1.5.0
30
+ * @access public
31
+ */
32
+ public function post_fbfw_rollback() {
33
+
34
+ check_admin_referer( 'fbfw_rollback' );
35
+
36
+ $plugin_slug = basename( FBFW_FILE_, '.php' );
37
+
38
+ // check for const defines
39
+ if ( ! defined( 'FBFW_PREVIOUS_PLUGIN_VERSION' ) || ! defined( 'FBFW_PLUGIN_BASE' ) ) {
40
+ wp_die(
41
+ new WP_Error( 'broke', esc_html__( 'Previous plugin version or plugin basename CONST aren\'t defined.', 'epfw' ) )
42
+ );
43
+ }
44
+
45
+ if ( class_exists( 'FBFW_Rollback' ) ) {
46
+ $rollback = new FBFW_Rollback(
47
+ array(
48
+ 'version' => FBFW_PREVIOUS_PLUGIN_VERSION,
49
+ 'plugin_name' => FBFW_PLUGIN_BASE,
50
+ 'plugin_slug' => $plugin_slug,
51
+ 'package_url' => sprintf( 'https://downloads.wordpress.org/plugin/%s.%s.zip', PLUGIN_NAME, FBFW_PREVIOUS_PLUGIN_VERSION ),
52
+ )
53
+ );
54
+ $rollback->run();
55
+ }
56
+
57
+ wp_die(
58
+ '', __( 'Rollback to Previous Version', 'mfbfw' ), array(
59
+ 'response' => 200,
60
+ )
61
+ );
62
+ }
63
+
64
+ public function rollback_scripts() {
65
+ wp_enqueue_script('rollback-script', FBFW_URL . 'assets/js/rollback.js', FBFW_VERSION); // Load Rollback script
66
+ wp_enqueue_script( 'rollback-script' );
67
+ }
68
+
69
+ }
70
+
71
+ new FBFW_Plugin_Rollback();
lib/class-fbfw-rollback.php CHANGED
@@ -1,178 +1,178 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit; // Exit if accessed directly.
5
- }
6
-
7
- /**
8
- * EPFW rollback class.
9
- *
10
- * EPFW rollback handler class is responsible for rolling back EPFW to
11
- * previous version.
12
- *
13
- * @since 1.0.0
14
- */
15
- class FBFW_Rollback {
16
-
17
- /**
18
- * Package URL.
19
- *
20
- * Holds the package URL.
21
- *
22
- * @since 1.0.0
23
- * @access protected
24
- *
25
- * @var string Package URL.
26
- */
27
- protected $package_url;
28
-
29
- /**
30
- * Version.
31
- *
32
- * Holds the version.
33
- *
34
- * @since 1.0.0
35
- * @access protected
36
- *
37
- * @var string Package URL.
38
- */
39
- protected $version;
40
-
41
- /**
42
- * Plugin name.
43
- *
44
- * Holds the plugin name.
45
- *
46
- * @since 1.0.0
47
- * @access protected
48
- *
49
- * @var string Plugin name.
50
- */
51
- protected $plugin_name;
52
-
53
- /**
54
- * Plugin slug.
55
- *
56
- * Holds the plugin slug.
57
- *
58
- * @since 1.0.0
59
- * @access protected
60
- *
61
- * @var string Plugin slug.
62
- */
63
- protected $plugin_slug;
64
-
65
- /**
66
- * Rollback constructor.
67
- *
68
- * Initializing EPFW rollback.
69
- *
70
- * @since 1.0.0
71
- * @access public
72
- *
73
- * @param array $args Optional. Rollback arguments. Default is an empty array.
74
- */
75
- public function __construct( $args = array() ) {
76
- foreach ( $args as $key => $value ) {
77
- $this->{$key} = $value;
78
- }
79
- }
80
-
81
- /**
82
- * Print inline style.
83
- *
84
- * Add an inline CSS to the rollback page.
85
- *
86
- * @since 1.0.0
87
- * @access private
88
- */
89
- private function print_inline_style() {
90
- ?>
91
- <style>
92
- .wrap {
93
- overflow: hidden;
94
- }
95
-
96
- h1 {
97
- background: #9b0a46;
98
- text-align: center;
99
- color: #fff !important;
100
- padding: 70px !important;
101
- text-transform: uppercase;
102
- letter-spacing: 1px;
103
- }
104
-
105
- h1 img {
106
- max-width: 300px;
107
- display: block;
108
- margin: auto auto 50px;
109
- }
110
- </style>
111
- <?php
112
- }
113
-
114
- /**
115
- * Apply package.
116
- *
117
- * Change the plugin data when WordPress checks for updates. This method
118
- * modifies package data to update the plugin from a specific URL containing
119
- * the version package.
120
- *
121
- * @since 1.0.0
122
- * @access protected
123
- */
124
- protected function apply_package() {
125
- $update_plugins = get_site_transient( 'update_plugins' );
126
- if ( ! is_object( $update_plugins ) ) {
127
- $update_plugins = new \stdClass();
128
- }
129
-
130
- $plugin_info = new \stdClass();
131
- $plugin_info->new_version = $this->version;
132
- $plugin_info->slug = $this->plugin_slug;
133
- $plugin_info->package = $this->package_url;
134
-
135
- $update_plugins->response[ $this->plugin_name ] = $plugin_info;
136
-
137
- set_site_transient( 'update_plugins', $update_plugins );
138
- }
139
-
140
- /**
141
- * Upgrade.
142
- *
143
- * Run WordPress upgrade to rollback EPFW to previous version.
144
- *
145
- * @since 1.0.0
146
- * @access protected
147
- */
148
- protected function upgrade() {
149
- require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
150
-
151
- $logo_url = FBFW_URL . 'assets/images/icon.jpg';
152
-
153
- $upgrader_args = array(
154
- 'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
155
- 'plugin' => $this->plugin_name,
156
- 'nonce' => 'upgrade-plugin_' . $this->plugin_name,
157
- 'title' => '<img src="' . $logo_url . '" alt="FBFW logo">' . __( 'Rollback to Previous Version', 'epfw' ),
158
- );
159
-
160
- $this->print_inline_style();
161
-
162
- $upgrader = new \Plugin_Upgrader( new \Plugin_Upgrader_Skin( $upgrader_args ) );
163
- $upgrader->upgrade( $this->plugin_name );
164
- }
165
-
166
- /**
167
- * Run.
168
- *
169
- * Rollback EPFW to previous versions.
170
- *
171
- * @since 1.0.0
172
- * @access public
173
- */
174
- public function run() {
175
- $this->apply_package();
176
- $this->upgrade();
177
- }
178
- }
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit; // Exit if accessed directly.
5
+ }
6
+
7
+ /**
8
+ * EPFW rollback class.
9
+ *
10
+ * EPFW rollback handler class is responsible for rolling back EPFW to
11
+ * previous version.
12
+ *
13
+ * @since 1.0.0
14
+ */
15
+ class FBFW_Rollback {
16
+
17
+ /**
18
+ * Package URL.
19
+ *
20
+ * Holds the package URL.
21
+ *
22
+ * @since 1.0.0
23
+ * @access protected
24
+ *
25
+ * @var string Package URL.
26
+ */
27
+ protected $package_url;
28
+
29
+ /**
30
+ * Version.
31
+ *
32
+ * Holds the version.
33
+ *
34
+ * @since 1.0.0
35
+ * @access protected
36
+ *
37
+ * @var string Package URL.
38
+ */
39
+ protected $version;
40
+
41
+ /**
42
+ * Plugin name.
43
+ *
44
+ * Holds the plugin name.
45
+ *
46
+ * @since 1.0.0
47
+ * @access protected
48
+ *
49
+ * @var string Plugin name.
50
+ */
51
+ protected $plugin_name;
52
+
53
+ /**
54
+ * Plugin slug.
55
+ *
56
+ * Holds the plugin slug.
57
+ *
58
+ * @since 1.0.0
59
+ * @access protected
60
+ *
61
+ * @var string Plugin slug.
62
+ */
63
+ protected $plugin_slug;
64
+
65
+ /**
66
+ * Rollback constructor.
67
+ *
68
+ * Initializing EPFW rollback.
69
+ *
70
+ * @since 1.0.0
71
+ * @access public
72
+ *
73
+ * @param array $args Optional. Rollback arguments. Default is an empty array.
74
+ */
75
+ public function __construct( $args = array() ) {
76
+ foreach ( $args as $key => $value ) {
77
+ $this->{$key} = $value;
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Print inline style.
83
+ *
84
+ * Add an inline CSS to the rollback page.
85
+ *
86
+ * @since 1.0.0
87
+ * @access private
88
+ */
89
+ private function print_inline_style() {
90
+ ?>
91
+ <style>
92
+ .wrap {
93
+ overflow: hidden;
94
+ }
95
+
96
+ h1 {
97
+ background: #9b0a46;
98
+ text-align: center;
99
+ color: #fff !important;
100
+ padding: 70px !important;
101
+ text-transform: uppercase;
102
+ letter-spacing: 1px;
103
+ }
104
+
105
+ h1 img {
106
+ max-width: 300px;
107
+ display: block;
108
+ margin: auto auto 50px;
109
+ }
110
+ </style>
111
+ <?php
112
+ }
113
+
114
+ /**
115
+ * Apply package.
116
+ *
117
+ * Change the plugin data when WordPress checks for updates. This method
118
+ * modifies package data to update the plugin from a specific URL containing
119
+ * the version package.
120
+ *
121
+ * @since 1.0.0
122
+ * @access protected
123
+ */
124
+ protected function apply_package() {
125
+ $update_plugins = get_site_transient( 'update_plugins' );
126
+ if ( ! is_object( $update_plugins ) ) {
127
+ $update_plugins = new \stdClass();
128
+ }
129
+
130
+ $plugin_info = new \stdClass();
131
+ $plugin_info->new_version = $this->version;
132
+ $plugin_info->slug = $this->plugin_slug;
133
+ $plugin_info->package = $this->package_url;
134
+
135
+ $update_plugins->response[ $this->plugin_name ] = $plugin_info;
136
+
137
+ set_site_transient( 'update_plugins', $update_plugins );
138
+ }
139
+
140
+ /**
141
+ * Upgrade.
142
+ *
143
+ * Run WordPress upgrade to rollback EPFW to previous version.
144
+ *
145
+ * @since 1.0.0
146
+ * @access protected
147
+ */
148
+ protected function upgrade() {
149
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
150
+
151
+ $logo_url = FBFW_URL . 'assets/images/icon.jpg';
152
+
153
+ $upgrader_args = array(
154
+ 'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
155
+ 'plugin' => $this->plugin_name,
156
+ 'nonce' => 'upgrade-plugin_' . $this->plugin_name,
157
+ 'title' => '<img src="' . $logo_url . '" alt="FBFW logo">' . __( 'Rollback to Previous Version', 'epfw' ),
158
+ );
159
+
160
+ $this->print_inline_style();
161
+
162
+ $upgrader = new \Plugin_Upgrader( new \Plugin_Upgrader_Skin( $upgrader_args ) );
163
+ $upgrader->upgrade( $this->plugin_name );
164
+ }
165
+
166
+ /**
167
+ * Run.
168
+ *
169
+ * Rollback EPFW to previous versions.
170
+ *
171
+ * @since 1.0.0
172
+ * @access public
173
+ */
174
+ public function run() {
175
+ $this->apply_package();
176
+ $this->upgrade();
177
+ }
178
+ }
readme.txt CHANGED
@@ -1,257 +1,260 @@
1
- === FancyBox for WordPress ===
2
- Contributors: silkalns
3
- Tags: fancybox, lightbox, jquery, gallery, image, images, photo, photos, picture, pictures, zoom
4
- Requires at least: 3.4
5
- Tested up to: 4.9
6
- Stable tag: 3.1.4
7
- License: GPL/MIT
8
-
9
- Seamlessly integrates FancyBox lightbox into your WordPress blog: Upload, activate, and you're done. Additional configuration optional.
10
-
11
-
12
- == Description ==
13
-
14
- Seamlessly integrates FancyBox into your blog: Upload, activate, and you're done. Additional configuration optional.
15
-
16
- You can easily customize almost anything you can think about fancybox lightbox: the border, margin width and color, zoom speed, animation type, close button position, overlay color and opacity and even more advanced option like several options to group images into galleries, and more...
17
-
18
- By default, the plugin will use jQuery to apply FancyBox to ANY thumbnails that link directly to an image. This includes posts, the sidebar, etc, so you can activate it and it will be applied automatically.
19
-
20
- = Demo =
21
-
22
- You can see the plugin working on a <a href="http://blog.moskis.net/2012/01/20/teclado-apple-en-windows-7/" target="_blank">this blog</a> although there's nothing amazing to see, just a FancyBox simple implementation, that's the point ;) You can take a look at the code if you're curious, though.
23
-
24
- = Further Reading =
25
-
26
- This plugin is developed and maintained by Colorlib. Which is well know for their free <a href="https://colorlib.com/wp/themes/" target="_blank"></a>WordPress themes. However, now they are looking to extend their presence in plugin development and believe that FancyBox lightbox is a great way to start.
27
-
28
- If you are new to WordPress and want to lear more we have got you covered. Colorlib will teach you have to <a href="https://colorlib.com/">start a blog</a> or <a href="https://colorlib.com/wp/how-to-make-a-website/">create a website</a> and much more. If you are already familiar with WordPress you likely want to learn how to make it faster and more reliable. That's when you want to look into hosting and more specifically <a href="http://colorlib.com/wp/wordpress-hosting">WordPress hosting</a>.
29
-
30
- If you enjoy using FancyBox lightbox for WordPress please leave a [positive feedback](https://wordpress.org/support/plugin/fancybox-for-wordpress/reviews/?filter=5). We are committed to make it the best lightbox plugin for WordPress.
31
-
32
- == Changelog ==
33
-
34
- = 3.1.4 =
35
- * Made it work with query string and without query strings.
36
-
37
- = 3.1.3 =
38
- * Fixed "Parse error" - https://wordpress.org/support/topic/no-backend-after-fancybox-update/
39
- * Fixed "Breaks on query strings" - https://wordpress.org/support/topic/url-with-ssl1-fancybox-doesnt-open/
40
- * Fixed "Caption problems" - https://wordpress.org/support/topic/border-not-fitting-and-strange-white-line/
41
-
42
- = 3.1.2 =
43
- * Fixed "All links get the fancybox class"
44
-
45
- = 3.1.1 =
46
- * Removed print_r from fancybox.php
47
-
48
- = 3.1.0 =
49
- * Updated FancyBox library to the latest version
50
- * Changed Admin UI
51
-
52
- = 3.0.12 =
53
-
54
- Fixed errors causes by WordPress SVN.
55
-
56
- = 3.0.7 =
57
-
58
- * Updated Fancybox library
59
- * Updated other libraries this plugins depends on such as jQuery easing and jQuery Mousewheel
60
- * Tested plugin with WordPress 4.6
61
-
62
- = 3.0.6 =
63
- * Fixes to JavaScript code for showing and hiding elements as they are needed in Settings page. (Thanks to jono55 for reporting)
64
-
65
- = 3.0.5 =
66
- * Fixed the Revert Options button.
67
- * Fixed wrong version number being shown on the plugin's settings page.
68
- * Updated plugin and author links in readme and settings page.
69
- * Updated localization catalog (POT file).
70
- * Updated Spanish translation with minor updates.
71
- * Updated Frequently Asked Questions in readme file.
72
- * Removed version number from printed html source code.
73
- * Removed outdated/incomplete translation binaries.
74
-
75
- = 3.0.4 =
76
- * Renamed the setting affected by the security issue mentioned in 3.0.3. This should stop the malicious code from appearing on sites where the plugin is updated without removing the malicious code.
77
-
78
- = 3.0.3 =
79
- * Fixed a security issue. (Thanks to mickaelb for reporting and Konstantin Kovshenin for providing the fix)
80
-
81
- = 3.0.2 =
82
- * Added support for disabling fancybox on individual hyperlinked images by adding class='nolightbox'. (Thanks to Artem Russakovskii)
83
- * Added a link to the github project page in the info tab in the settings page.
84
- * Fixed and cleaned the installation code, new installations of the plugin should work now without need to go to the settings page.
85
- * Fixed false positives in filenames. (Thanks to Artem Russakovskii)
86
- * Fixed incompatibility with wordpress installations where the wp-content directory had been renamed.
87
- * Fixed an issue that could cause the version of the plugin to be removed from settings when deactivating the plugin.
88
- * Improved HTTPS support by using better code to retrieve the plugin url and load files.
89
- * Removed legacy code to suport upgrading settings from 2.x versions of the plugin. This was done to avoid possible issues with clean installations of the plugin.
90
- * Updated some CSS rules in jQuery UI
91
- * Some minor reformatting and cleanup of code (PHP comments, empty lines, )
92
-
93
- = 3.0.1 =
94
- * Updated: Localization catalog updated.
95
- * Updated: Spanish localization.
96
- * Fixed: Minor change in settings page that may fix options page being invisible in some cases.
97
-
98
- = 3.0.0 =
99
- * New: Fancybox v1.3.4 support This includes many new options, like title position.
100
- * New: Additional FancyBox Calls option that lets the user write their own additional code to use FancyBox on specific areas of the blog, like email subscription buttons, login, etc.
101
- * New: Revert settings button added to options page. When pressed, a confirmation dialog will appear.
102
- * New: Improvements in options page, irrelevant settings (settings that depend on a disabled setting) will hide on real time, meaning a cleaner look in the options page.
103
- * Updated: New cleaner code to select thumbnails on which to apply the fancbox script.
104
- * Updated: Many parts of plugins rewriten with many improvements in code.
105
- * Updated: Options are now serialized into a single row in the database.
106
- * Fixed: Plugin should be SSL friendly from now on.
107
- * Fixed: Do not call jQuery option in troubleshooting section didn't work if easing was enabled.
108
- * Fixed: Load at footer options should work better now.
109
- * Fixed: CSS external files now addded with wp_enqueue_style().
110
- * Fixed: has_cap error: User level value for options page removed, using role now instead. Thanks to [vonkanehoffen](http://wordpress.org/support/topic/plugin-fancybox-for-wordpress-has_cap-fix).
111
- * Removed: jQuery "noConflict" Mode option removed bacause jQuery bundled with WordPress always used noConflict.
112
- * Removed: Base64 data ("data:image/gif;base64,AAAA") in left and right fancybox link's backgrounds: It didn't seem to be working and it is usually regarded as suspicious code, so it has been removed.
113
-
114
- = 2.7.5 =
115
- * Fixed: Callback arguments are no longer added as "null" when they are not set in options page.
116
-
117
- = 2.7.4 =
118
- * Fixed: Little error tagging 2.7.3, a file didn't upload and broke options page.
119
- * Update: Language POT file
120
-
121
- = 2.7.3 =
122
- * Fixed: Settings not saving in some browsers. Thanks to [supertomate](http://wordpress.org/support/topic/plugin-fancybox-for-wordpress-save-changes-button-doesnt-submit-form?replies=7#post-1765041)
123
- * Fixed: JS being added to other plugins' configuration pages. Thanks to [Brandon Dove](http://wordpress.org/support/topic/plugin-fancybox-for-wordpress-theres-a-problem-with-is_plugin_page?replies=1#post-1888828)
124
- * Added: Support section in options page with better information
125
-
126
- = 2.7.2 =
127
- * Fixed: Layout problem in options page in WordPress 2.9
128
-
129
- = 2.7.1 =
130
- * Fixed: Z-index issue was left out in previus release
131
- * Fixed: Setting to close fancybox when clicking on the overlay wasn't available in the menu
132
- * Fixed: Frame width and height options are now in the "Other" tab
133
- * Fixed: Tabs now translated in Spanish localization
134
-
135
- = 2.7.0 =
136
- * New: Fancybox v1.2.6 support
137
- * New: New Admin page with tabs for better organization of all the options
138
- * Added: Setting to change the speed of the animation when changing gallery items
139
- * Added: Setting to enable or disable Escape key to close Fancybox
140
- * Added: Setting to show or hide close button
141
- * Added: Setting to close fancybox when clicking on the overlay
142
- * Added: Setting to enable or disable callback function on start, show and close events
143
- * Added: Italian translation
144
- * Added: Russian translation
145
- * Added: "Load JS at Footer" option
146
- * Added: New Changelog tab in Wordpress Plugin Directory
147
- * Fixed: Some typos in Spanish translation
148
- * Fixed: FancyBox not showing above some elements (those with zindex higher than 90)
149
- * Fixed: JavaScript code being included in all admin pages instead of just the plugin's options page.
150
- * Fixed: noClonflict preventing frames to work in Fancybox
151
- * Fixed: Custom frame width and height not being applied
152
- * Updated: Japanese translation
153
- * Updated: JS is now Minified instead of Packed
154
-
155
- = 2.6.0 =
156
- * Optimized the JavaScript code used to apply FancyBox
157
- * Updated Custom Expression section in Options Page
158
- * Fixed uppercase image extensions not being recognized
159
- * CSS is now loaded before the JavaScript for better parallelization
160
- * jquery.easing.1.3.js compressed (from 8,10kb to 3,47kb) and renamed to jquery.easing.1.3.pack.js
161
- * Added Turkish translation (some strings missing)
162
- * Added Japanese translation (some strings missing)
163
- * Updated Spanish translation
164
- * Updated to use new Plugin API in WP2.7 for better forward compatibility
165
- * Removed /wp-content/ reference in fancybox.php for better WP2.8 support
166
- * Optimized some code readability
167
-
168
- = 2.5.1 =
169
- * Fixed the plugin not working when selecting Gallery Type "By Post"
170
- * Fixed a bug that would prevent the title in the IMG tag from being copied to the A tag in some cases
171
- * Fixed the Custom Expression showing in the Admin panel when other gallery types are selected
172
-
173
- = 2.5 =
174
- * Support for localizations (Spanish and German localizations included)
175
- * Some parts of the code completely rewritten
176
- * Fixed fancybox files being loaded on the admin pages
177
- * New options for close button position, custom jquery expressions, iframe content
178
- * Options page mostly rewritten, better organized
179
- * Medium/advanced, troubleshooting/uninstall options collapsable, hidden by default
180
- * Better support guidelines and links on options page
181
- * Settings link on the Manage plugins page
182
- * Custom expression hidden when not used
183
- * Title atribute on IMG tags is now copied to its parent A tag for better caption support
184
- * New uninstall options and better handling of new options when installing/updating
185
- * Cleans any old options no longer needed when plugin is activated/updated
186
-
187
- = 2.2 =
188
- * Updated to FancyBox 1.2.1
189
- * Added new settings to Options Page: Easing, padding size, border color
190
- * Tweaked CSS to prevent some themes from adding unwanted styles to fancybox (especially background colors and link outlines)
191
- * Options Page reorganized in three sections: Appearance, Behaviour and Troubleshooting Settings, to make settings easier to find
192
-
193
- = 2.1.1 =
194
- * Fixed a new bug introduced in 2.1 that prevented options from being saved. Sorry about the mess :(
195
-
196
- = 2.1 =
197
- * Fixed a major bug in 2.0 that prevented it from working until plugin's options page was visited
198
- * Added two options for troubleshooting that might help in some cases if the plugin doesn't work: disable jQuery noConflict and skip jQuery call
199
- * Additional fixes to caption CSS: Captions should look better now in Hybrid theme, child themes, and other situations where general table elements are improperly styled
200
-
201
- = 2.0 =
202
- * Brand new Options Page in Admin Panel lets you easely customize many options: fancybox auto apply, image resize to fit, opacity fade while zooming, zoom speed, overlay on/off, overlay color, overlay opacity, close fancybox on image click, keep fancybox centered while scrolling
203
- * CSS completely updated for FancyBox 1.2.0
204
- * Captions fixed in IE
205
-
206
- = 1.3 =
207
- * Shadows and Close button should be fixed now
208
-
209
- = 1.2 =
210
- * Updated to FancyBox 1.2.0
211
- * Uses packed version of the JavaScript file (8kb instead of 14kb)
212
-
213
- = 1.1 =
214
- * Fixed FancyBox not being applied to .jpeg files
215
- * Fixed "Click to close" overlay text
216
- * Moved images to /img/ folder
217
-
218
-
219
- == Upgrade Notice ==
220
-
221
- = 3.0.5 =
222
- Fixes the Revert options button and wrong version number on settings page. Also updates links in settings page and readme file.
223
-
224
-
225
- == Installation ==
226
-
227
- 1. Upload the `fancybox-for-wordpress` folder to the `/wp-content/plugins/` directory
228
- 2. Activate the plugin through the 'Plugins' menu in WordPress
229
- 3. That's it, FancyBox will be automatically applied to all your image links and galleries.
230
- 4. If you want to customize a bit the look and feel of FancyBox, go to the Options Page under General Options in the WordPress Admin panel
231
-
232
-
233
- == Screenshots ==
234
-
235
- 1. Simple example of fancybox on a post. [Live demo here](http://blog.moskis.net/2012/01/20/teclado-apple-en-windows-7/)
236
- 2. Basic settings on Options Page in the Admin Panel. This makes it very easy to customize the plugin to your needs
237
-
238
-
239
- == Frequently Asked Questions ==
240
-
241
- **- There was a vulnerability detected in versions 3.0.2 and lower, is my site in danger?**
242
-
243
- This vulnerability was patched in version 3.0.3.
244
-
245
- An additional change was introduced in version 3.0.4 to make sure that the malicious code can't be printed to visitors even if it still remains in the database.
246
-
247
- If you think your site might still be using a vulnerable version of the plugin please log in to your WordPress admin panel, disable the plugin and clear any cache if your site uses a cache system.
248
-
249
- If you wish to continue using the plugin, check that the plugin is updated to the latest version from your admin panel and enable it. Then check the plugin's settings page and make sure there's no abnormal code in any of the fields, especially on the Extra Calls tab. If you are not sure about the code you see in the settings please use the Revert to Defaults button at the bottom of the settings page.
250
-
251
- If you think your site might be compromised in any other way check this guide: [WordPress Codex - FAQ My site was hacked](http://codex.wordpress.org/FAQ_My_site_was_hacked).
252
-
253
- **- Is the FancyBox script vulnerable or unsafe?**
254
-
255
- No, there's nothing wrong with the actual FancyBox script that i know of.
256
-
257
- The vulnerability detected in versions 3.0.2 and lower of the "FancyBox for WordPress" plugin was limited to the plugin itself. Other FancyBox plugins or manual implementations of FancyBox are unrelated to this issue.
 
 
 
1
+ === FancyBox for WordPress ===
2
+ Contributors: silkalns
3
+ Tags: fancybox, lightbox, jquery, gallery, image, images, photo, photos, picture, pictures, zoom
4
+ Requires at least: 3.4
5
+ Tested up to: 4.9
6
+ Stable tag: 3.1.5
7
+ License: GPL/MIT
8
+
9
+ Seamlessly integrates FancyBox lightbox into your WordPress blog: Upload, activate, and you're done. Additional configuration optional.
10
+
11
+
12
+ == Description ==
13
+
14
+ Seamlessly integrates FancyBox into your blog: Upload, activate, and you're done. Additional configuration optional.
15
+
16
+ You can easily customize almost anything you can think about fancybox lightbox: the border, margin width and color, zoom speed, animation type, close button position, overlay color and opacity and even more advanced option like several options to group images into galleries, and more...
17
+
18
+ By default, the plugin will use jQuery to apply FancyBox to ANY thumbnails that link directly to an image. This includes posts, the sidebar, etc, so you can activate it and it will be applied automatically.
19
+
20
+ = Demo =
21
+
22
+ You can see the plugin working on a <a href="http://blog.moskis.net/2012/01/20/teclado-apple-en-windows-7/" target="_blank">this blog</a> although there's nothing amazing to see, just a FancyBox simple implementation, that's the point ;) You can take a look at the code if you're curious, though.
23
+
24
+ = Further Reading =
25
+
26
+ This plugin is developed and maintained by Colorlib. Which is well know for their free <a href="https://colorlib.com/wp/themes/" target="_blank"></a>WordPress themes. However, now they are looking to extend their presence in plugin development and believe that FancyBox lightbox is a great way to start.
27
+
28
+ If you are new to WordPress and want to lear more we have got you covered. Colorlib will teach you have to <a href="https://colorlib.com/">start a blog</a> or <a href="https://colorlib.com/wp/how-to-make-a-website/">create a website</a> and much more. If you are already familiar with WordPress you likely want to learn how to make it faster and more reliable. That's when you want to look into hosting and more specifically <a href="http://colorlib.com/wp/wordpress-hosting">WordPress hosting</a>.
29
+
30
+ If you enjoy using FancyBox lightbox for WordPress please leave a [positive feedback](https://wordpress.org/support/plugin/fancybox-for-wordpress/reviews/?filter=5). We are committed to make it the best lightbox plugin for WordPress.
31
+
32
+ == Changelog ==
33
+
34
+ = 3.1.5 =
35
+ * Added support for mp4 and webp files
36
+
37
+ = 3.1.4 =
38
+ * Made it work with query string and without query strings.
39
+
40
+ = 3.1.3 =
41
+ * Fixed "Parse error" - https://wordpress.org/support/topic/no-backend-after-fancybox-update/
42
+ * Fixed "Breaks on query strings" - https://wordpress.org/support/topic/url-with-ssl1-fancybox-doesnt-open/
43
+ * Fixed "Caption problems" - https://wordpress.org/support/topic/border-not-fitting-and-strange-white-line/
44
+
45
+ = 3.1.2 =
46
+ * Fixed "All links get the fancybox class"
47
+
48
+ = 3.1.1 =
49
+ * Removed print_r from fancybox.php
50
+
51
+ = 3.1.0 =
52
+ * Updated FancyBox library to the latest version
53
+ * Changed Admin UI
54
+
55
+ = 3.0.12 =
56
+
57
+ Fixed errors causes by WordPress SVN.
58
+
59
+ = 3.0.7 =
60
+
61
+ * Updated Fancybox library
62
+ * Updated other libraries this plugins depends on such as jQuery easing and jQuery Mousewheel
63
+ * Tested plugin with WordPress 4.6
64
+
65
+ = 3.0.6 =
66
+ * Fixes to JavaScript code for showing and hiding elements as they are needed in Settings page. (Thanks to jono55 for reporting)
67
+
68
+ = 3.0.5 =
69
+ * Fixed the Revert Options button.
70
+ * Fixed wrong version number being shown on the plugin's settings page.
71
+ * Updated plugin and author links in readme and settings page.
72
+ * Updated localization catalog (POT file).
73
+ * Updated Spanish translation with minor updates.
74
+ * Updated Frequently Asked Questions in readme file.
75
+ * Removed version number from printed html source code.
76
+ * Removed outdated/incomplete translation binaries.
77
+
78
+ = 3.0.4 =
79
+ * Renamed the setting affected by the security issue mentioned in 3.0.3. This should stop the malicious code from appearing on sites where the plugin is updated without removing the malicious code.
80
+
81
+ = 3.0.3 =
82
+ * Fixed a security issue. (Thanks to mickaelb for reporting and Konstantin Kovshenin for providing the fix)
83
+
84
+ = 3.0.2 =
85
+ * Added support for disabling fancybox on individual hyperlinked images by adding class='nolightbox'. (Thanks to Artem Russakovskii)
86
+ * Added a link to the github project page in the info tab in the settings page.
87
+ * Fixed and cleaned the installation code, new installations of the plugin should work now without need to go to the settings page.
88
+ * Fixed false positives in filenames. (Thanks to Artem Russakovskii)
89
+ * Fixed incompatibility with wordpress installations where the wp-content directory had been renamed.
90
+ * Fixed an issue that could cause the version of the plugin to be removed from settings when deactivating the plugin.
91
+ * Improved HTTPS support by using better code to retrieve the plugin url and load files.
92
+ * Removed legacy code to suport upgrading settings from 2.x versions of the plugin. This was done to avoid possible issues with clean installations of the plugin.
93
+ * Updated some CSS rules in jQuery UI
94
+ * Some minor reformatting and cleanup of code (PHP comments, empty lines, )
95
+
96
+ = 3.0.1 =
97
+ * Updated: Localization catalog updated.
98
+ * Updated: Spanish localization.
99
+ * Fixed: Minor change in settings page that may fix options page being invisible in some cases.
100
+
101
+ = 3.0.0 =
102
+ * New: Fancybox v1.3.4 support This includes many new options, like title position.
103
+ * New: Additional FancyBox Calls option that lets the user write their own additional code to use FancyBox on specific areas of the blog, like email subscription buttons, login, etc.
104
+ * New: Revert settings button added to options page. When pressed, a confirmation dialog will appear.
105
+ * New: Improvements in options page, irrelevant settings (settings that depend on a disabled setting) will hide on real time, meaning a cleaner look in the options page.
106
+ * Updated: New cleaner code to select thumbnails on which to apply the fancbox script.
107
+ * Updated: Many parts of plugins rewriten with many improvements in code.
108
+ * Updated: Options are now serialized into a single row in the database.
109
+ * Fixed: Plugin should be SSL friendly from now on.
110
+ * Fixed: Do not call jQuery option in troubleshooting section didn't work if easing was enabled.
111
+ * Fixed: Load at footer options should work better now.
112
+ * Fixed: CSS external files now addded with wp_enqueue_style().
113
+ * Fixed: has_cap error: User level value for options page removed, using role now instead. Thanks to [vonkanehoffen](http://wordpress.org/support/topic/plugin-fancybox-for-wordpress-has_cap-fix).
114
+ * Removed: jQuery "noConflict" Mode option removed bacause jQuery bundled with WordPress always used noConflict.
115
+ * Removed: Base64 data ("data:image/gif;base64,AAAA") in left and right fancybox link's backgrounds: It didn't seem to be working and it is usually regarded as suspicious code, so it has been removed.
116
+
117
+ = 2.7.5 =
118
+ * Fixed: Callback arguments are no longer added as "null" when they are not set in options page.
119
+
120
+ = 2.7.4 =
121
+ * Fixed: Little error tagging 2.7.3, a file didn't upload and broke options page.
122
+ * Update: Language POT file
123
+
124
+ = 2.7.3 =
125
+ * Fixed: Settings not saving in some browsers. Thanks to [supertomate](http://wordpress.org/support/topic/plugin-fancybox-for-wordpress-save-changes-button-doesnt-submit-form?replies=7#post-1765041)
126
+ * Fixed: JS being added to other plugins' configuration pages. Thanks to [Brandon Dove](http://wordpress.org/support/topic/plugin-fancybox-for-wordpress-theres-a-problem-with-is_plugin_page?replies=1#post-1888828)
127
+ * Added: Support section in options page with better information
128
+
129
+ = 2.7.2 =
130
+ * Fixed: Layout problem in options page in WordPress 2.9
131
+
132
+ = 2.7.1 =
133
+ * Fixed: Z-index issue was left out in previus release
134
+ * Fixed: Setting to close fancybox when clicking on the overlay wasn't available in the menu
135
+ * Fixed: Frame width and height options are now in the "Other" tab
136
+ * Fixed: Tabs now translated in Spanish localization
137
+
138
+ = 2.7.0 =
139
+ * New: Fancybox v1.2.6 support
140
+ * New: New Admin page with tabs for better organization of all the options
141
+ * Added: Setting to change the speed of the animation when changing gallery items
142
+ * Added: Setting to enable or disable Escape key to close Fancybox
143
+ * Added: Setting to show or hide close button
144
+ * Added: Setting to close fancybox when clicking on the overlay
145
+ * Added: Setting to enable or disable callback function on start, show and close events
146
+ * Added: Italian translation
147
+ * Added: Russian translation
148
+ * Added: "Load JS at Footer" option
149
+ * Added: New Changelog tab in Wordpress Plugin Directory
150
+ * Fixed: Some typos in Spanish translation
151
+ * Fixed: FancyBox not showing above some elements (those with zindex higher than 90)
152
+ * Fixed: JavaScript code being included in all admin pages instead of just the plugin's options page.
153
+ * Fixed: noClonflict preventing frames to work in Fancybox
154
+ * Fixed: Custom frame width and height not being applied
155
+ * Updated: Japanese translation
156
+ * Updated: JS is now Minified instead of Packed
157
+
158
+ = 2.6.0 =
159
+ * Optimized the JavaScript code used to apply FancyBox
160
+ * Updated Custom Expression section in Options Page
161
+ * Fixed uppercase image extensions not being recognized
162
+ * CSS is now loaded before the JavaScript for better parallelization
163
+ * jquery.easing.1.3.js compressed (from 8,10kb to 3,47kb) and renamed to jquery.easing.1.3.pack.js
164
+ * Added Turkish translation (some strings missing)
165
+ * Added Japanese translation (some strings missing)
166
+ * Updated Spanish translation
167
+ * Updated to use new Plugin API in WP2.7 for better forward compatibility
168
+ * Removed /wp-content/ reference in fancybox.php for better WP2.8 support
169
+ * Optimized some code readability
170
+
171
+ = 2.5.1 =
172
+ * Fixed the plugin not working when selecting Gallery Type "By Post"
173
+ * Fixed a bug that would prevent the title in the IMG tag from being copied to the A tag in some cases
174
+ * Fixed the Custom Expression showing in the Admin panel when other gallery types are selected
175
+
176
+ = 2.5 =
177
+ * Support for localizations (Spanish and German localizations included)
178
+ * Some parts of the code completely rewritten
179
+ * Fixed fancybox files being loaded on the admin pages
180
+ * New options for close button position, custom jquery expressions, iframe content
181
+ * Options page mostly rewritten, better organized
182
+ * Medium/advanced, troubleshooting/uninstall options collapsable, hidden by default
183
+ * Better support guidelines and links on options page
184
+ * Settings link on the Manage plugins page
185
+ * Custom expression hidden when not used
186
+ * Title atribute on IMG tags is now copied to its parent A tag for better caption support
187
+ * New uninstall options and better handling of new options when installing/updating
188
+ * Cleans any old options no longer needed when plugin is activated/updated
189
+
190
+ = 2.2 =
191
+ * Updated to FancyBox 1.2.1
192
+ * Added new settings to Options Page: Easing, padding size, border color
193
+ * Tweaked CSS to prevent some themes from adding unwanted styles to fancybox (especially background colors and link outlines)
194
+ * Options Page reorganized in three sections: Appearance, Behaviour and Troubleshooting Settings, to make settings easier to find
195
+
196
+ = 2.1.1 =
197
+ * Fixed a new bug introduced in 2.1 that prevented options from being saved. Sorry about the mess :(
198
+
199
+ = 2.1 =
200
+ * Fixed a major bug in 2.0 that prevented it from working until plugin's options page was visited
201
+ * Added two options for troubleshooting that might help in some cases if the plugin doesn't work: disable jQuery noConflict and skip jQuery call
202
+ * Additional fixes to caption CSS: Captions should look better now in Hybrid theme, child themes, and other situations where general table elements are improperly styled
203
+
204
+ = 2.0 =
205
+ * Brand new Options Page in Admin Panel lets you easely customize many options: fancybox auto apply, image resize to fit, opacity fade while zooming, zoom speed, overlay on/off, overlay color, overlay opacity, close fancybox on image click, keep fancybox centered while scrolling
206
+ * CSS completely updated for FancyBox 1.2.0
207
+ * Captions fixed in IE
208
+
209
+ = 1.3 =
210
+ * Shadows and Close button should be fixed now
211
+
212
+ = 1.2 =
213
+ * Updated to FancyBox 1.2.0
214
+ * Uses packed version of the JavaScript file (8kb instead of 14kb)
215
+
216
+ = 1.1 =
217
+ * Fixed FancyBox not being applied to .jpeg files
218
+ * Fixed "Click to close" overlay text
219
+ * Moved images to /img/ folder
220
+
221
+
222
+ == Upgrade Notice ==
223
+
224
+ = 3.0.5 =
225
+ Fixes the Revert options button and wrong version number on settings page. Also updates links in settings page and readme file.
226
+
227
+
228
+ == Installation ==
229
+
230
+ 1. Upload the `fancybox-for-wordpress` folder to the `/wp-content/plugins/` directory
231
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
232
+ 3. That's it, FancyBox will be automatically applied to all your image links and galleries.
233
+ 4. If you want to customize a bit the look and feel of FancyBox, go to the Options Page under General Options in the WordPress Admin panel
234
+
235
+
236
+ == Screenshots ==
237
+
238
+ 1. Simple example of fancybox on a post. [Live demo here](http://blog.moskis.net/2012/01/20/teclado-apple-en-windows-7/)
239
+ 2. Basic settings on Options Page in the Admin Panel. This makes it very easy to customize the plugin to your needs
240
+
241
+
242
+ == Frequently Asked Questions ==
243
+
244
+ **- There was a vulnerability detected in versions 3.0.2 and lower, is my site in danger?**
245
+
246
+ This vulnerability was patched in version 3.0.3.
247
+
248
+ An additional change was introduced in version 3.0.4 to make sure that the malicious code can't be printed to visitors even if it still remains in the database.
249
+
250
+ If you think your site might still be using a vulnerable version of the plugin please log in to your WordPress admin panel, disable the plugin and clear any cache if your site uses a cache system.
251
+
252
+ If you wish to continue using the plugin, check that the plugin is updated to the latest version from your admin panel and enable it. Then check the plugin's settings page and make sure there's no abnormal code in any of the fields, especially on the Extra Calls tab. If you are not sure about the code you see in the settings please use the Revert to Defaults button at the bottom of the settings page.
253
+
254
+ If you think your site might be compromised in any other way check this guide: [WordPress Codex - FAQ My site was hacked](http://codex.wordpress.org/FAQ_My_site_was_hacked).
255
+
256
+ **- Is the FancyBox script vulnerable or unsafe?**
257
+
258
+ No, there's nothing wrong with the actual FancyBox script that i know of.
259
+
260
+ The vulnerability detected in versions 3.0.2 and lower of the "FancyBox for WordPress" plugin was limited to the plugin itself. Other FancyBox plugins or manual implementations of FancyBox are unrelated to this issue.