FancyBox for WordPress - Version 3.1.0

Version Description

  • Updated FancyBox library to the latest version
  • Changed Admin UI
Download this release

Release Info

Developer colorlibplugins
Plugin Icon wp plugin FancyBox for WordPress
Version 3.1.0
Comparing to
See all releases

Code changes from version 3.0.10 to 3.1.0

Files changed (64) hide show
  1. admin.php +140 -92
  2. assets/css/fancybox-admin.css +376 -0
  3. assets/css/fancybox.css +898 -0
  4. {css → assets/css}/jquery-ui.css +0 -0
  5. {fancybox → assets/images}/blank.gif +0 -0
  6. {fancybox → assets/images}/fancy_close.png +0 -0
  7. {fancybox → assets/images}/fancy_loading.png +0 -0
  8. {fancybox → assets/images}/fancy_nav_left.png +0 -0
  9. {fancybox → assets/images}/fancy_nav_right.png +0 -0
  10. {fancybox → assets/images}/fancy_shadow_e.png +0 -0
  11. {fancybox → assets/images}/fancy_shadow_n.png +0 -0
  12. {fancybox → assets/images}/fancy_shadow_ne.png +0 -0
  13. {fancybox → assets/images}/fancy_shadow_nw.png +0 -0
  14. {fancybox → assets/images}/fancy_shadow_s.png +0 -0
  15. {fancybox → assets/images}/fancy_shadow_se.png +0 -0
  16. {fancybox → assets/images}/fancy_shadow_sw.png +0 -0
  17. {fancybox → assets/images}/fancy_shadow_w.png +0 -0
  18. {fancybox → assets/images}/fancy_title_left.png +0 -0
  19. {fancybox → assets/images}/fancy_title_main.png +0 -0
  20. {fancybox → assets/images}/fancy_title_over.png +0 -0
  21. {fancybox → assets/images}/fancy_title_right.png +0 -0
  22. {fancybox → assets/images}/fancybox-x.png +0 -0
  23. {fancybox → assets/images}/fancybox-y.png +0 -0
  24. {fancybox → assets/images}/fancybox.png +0 -0
  25. assets/images/icon.jpg +0 -0
  26. assets/images/modula-300x300.jpg +0 -0
  27. assets/js/admin.js +173 -0
  28. assets/js/jquery.fancybox.js +5613 -0
  29. assets/js/rollback.js +11 -0
  30. css/fancybox-admin.css +0 -45
  31. css/img/extra_donate.png +0 -0
  32. css/img/extra_twitter.png +0 -0
  33. css/img/ui-bg_flat_75_ffffff_40x100.png +0 -0
  34. css/img/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. css/img/ui-bg_glass_75_dadada_1x400.png +0 -0
  36. css/img/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  37. css/img/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  38. fancybox.php +398 -253
  39. fancybox/fancybox.css +0 -357
  40. fancybox/jquery.fancybox.js +0 -46
  41. js/admin.js +0 -86
  42. js/jquery.easing.1.3.min.js +0 -2
  43. js/jquery.mousewheel.3.0.4.pack.js +0 -14
  44. languages/mfbfw-de_DE.mo +0 -0
  45. languages/mfbfw-es_ES.po +1050 -1050
  46. languages/mfbfw-ja.mo +0 -0
  47. languages/mfbfw-pl_PL.mo +0 -0
  48. languages/mfbfw-pl_PL.po +1066 -0
  49. languages/mfbfw-tr_TR.mo +0 -0
  50. languages/mfbfw.pot +644 -741
  51. lib/admin-head.php +2 -5
  52. lib/admin-tab-animations.php +78 -159
  53. lib/admin-tab-appearance.php +179 -186
  54. lib/admin-tab-behaviour.php +102 -111
  55. lib/admin-tab-calls.php +0 -43
  56. lib/admin-tab-galleries.php +54 -66
  57. lib/admin-tab-info.php +0 -9
  58. lib/admin-tab-other.php +199 -100
  59. lib/admin-tab-support.php +11 -13
  60. lib/admin-tab-troubleshooting.php +0 -27
  61. lib/admin-tab-uninstall.php +0 -23
  62. lib/class-fbfw-plugin-rollback.php +72 -0
  63. lib/class-fbfw-rollback.php +178 -0
  64. readme.txt +12 -4
admin.php CHANGED
@@ -1,102 +1,150 @@
1
  <?php
2
 
3
  function mfbfw_options_page() {
4
-
5
  require_once( FBFW_PATH . 'lib/admin-head.php' );
6
 
7
  ?>
8
 
9
- <div class="wrap">
10
-
11
- <div id="icon-plugins" class="icon32"></div><h2><?php printf( __('Fancybox for WordPress (version %s)', 'mfbfw'), FBFW_VERSION ); ?></h2>
12
-
13
- <br />
14
-
15
- <form method="post" action="options.php" id="options">
16
-
17
- <?php settings_fields( 'mfbfw-options' ); ?>
18
-
19
- <div id="fbfwTabs">
20
-
21
- <ul>
22
- <li><a href="#fbfw-info"><?php _e( 'Info', 'mfbfw' ); ?></a></li>
23
- <li><a href="#fbfw-appearance"><?php _e( 'Appearance', 'mfbfw' ); ?></a></li>
24
- <li><a href="#fbfw-animations"><?php _e( 'Animations', 'mfbfw' ); ?></a></li>
25
- <li><a href="#fbfw-behaviour"><?php _e( 'Behaviour', 'mfbfw' ); ?></a></li>
26
- <li><a href="#fbfw-galleries"><?php _e( 'Galleries', 'mfbfw' ); ?></a></li>
27
- <li><a href="#fbfw-other"><?php _e( 'Miscellaneous', 'mfbfw' ); ?></a></li>
28
- <li><a href="#fbfw-calls"><?php _e( 'Extra Calls', 'mfbfw' ); ?></a></li>
29
- <li><a href="#fbfw-troubleshooting"><?php _e( 'Troubleshooting', 'mfbfw' ); ?></a></li>
30
- <li><a href="#fbfw-support" style="color:green;"><?php _e( 'Support', 'mfbfw' ); ?></a></li>
31
- <li><a href="#fbfw-uninstall" style="color:red;"><?php _e ('Uninstall', 'mfbfw' ); ?></a></li>
32
- </ul>
33
-
34
- <div id="fbfw-info">
35
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-info.php' ); ?>
36
- </div>
37
-
38
- <div id="fbfw-appearance">
39
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-appearance.php' ); ?>
40
- </div>
41
-
42
- <div id="fbfw-animations">
43
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-animations.php' ); ?>
44
- </div>
45
-
46
- <div id="fbfw-behaviour">
47
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-behaviour.php' ); ?>
48
- </div>
49
-
50
- <div id="fbfw-galleries">
51
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-galleries.php' ); ?>
52
- </div>
53
-
54
- <div id="fbfw-other">
55
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-other.php' ); ?>
56
- </div>
57
-
58
- <div id="fbfw-calls">
59
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-calls.php' ); ?>
60
- </div>
61
-
62
- <div id="fbfw-troubleshooting">
63
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-troubleshooting.php' ); ?>
64
- </div>
65
-
66
- <div id="fbfw-support">
67
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-support.php' ); ?>
68
- </div>
69
-
70
- <div id="fbfw-uninstall">
71
- <?php require_once ( FBFW_PATH . 'lib/admin-tab-uninstall.php' ); ?>
72
- </div>
73
-
74
- </div>
75
-
76
- <p class="submit" style="text-align:center;">
77
- <input type="submit" name="mfbfw_update" class="button-primary" value="<?php esc_attr_e( 'Save Changes', 'mfbfw' ); ?>" />
78
- </p>
79
-
80
- </form>
81
-
82
- <form method="post" action="">
83
- <div style="text-align:center;padding:0 0 1.5em;margin:-15px 0 5px;">
84
- <?php wp_nonce_field( 'mfbfw-options-reset' ); ?>
85
- <input type="submit" name="mfbfw_update" id="reset" onClick="return confirmDefaults();" class="button-secondary" value="<?php esc_attr_e( 'Revert to defaults', 'mfbfw' ); ?>" />
86
- <input type="hidden" name="action" value="reset" />
87
- </div>
88
- </form>
89
-
90
- <div id="mfbfwd" style="border-top:1px dashed #DDDDDD;margin:20px 0 40px;overflow:hidden;padding-top:25px;width:100%;float:left">
91
-
92
- Plugin developer and supported by <a href="https://colorlib.com">Colorlib</a>
93
-
94
- </div>
95
-
96
- </div>
97
-
98
- <?php
99
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  }
101
 
102
  ?>
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 ADDED
@@ -0,0 +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
+ }
assets/css/fancybox.css ADDED
@@ -0,0 +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
+ }
{css → assets/css}/jquery-ui.css RENAMED
File without changes
{fancybox → assets/images}/blank.gif RENAMED
File without changes
{fancybox → assets/images}/fancy_close.png RENAMED
File without changes
{fancybox → assets/images}/fancy_loading.png RENAMED
File without changes
{fancybox → assets/images}/fancy_nav_left.png RENAMED
File without changes
{fancybox → assets/images}/fancy_nav_right.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_e.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_n.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_ne.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_nw.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_s.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_se.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_sw.png RENAMED
File without changes
{fancybox → assets/images}/fancy_shadow_w.png RENAMED
File without changes
{fancybox → assets/images}/fancy_title_left.png RENAMED
File without changes
{fancybox → assets/images}/fancy_title_main.png RENAMED
File without changes
{fancybox → assets/images}/fancy_title_over.png RENAMED
File without changes
{fancybox → assets/images}/fancy_title_right.png RENAMED
File without changes
{fancybox → assets/images}/fancybox-x.png RENAMED
File without changes
{fancybox → assets/images}/fancybox-y.png RENAMED
File without changes
{fancybox → assets/images}/fancybox.png RENAMED
File without changes
assets/images/icon.jpg ADDED
Binary file
assets/images/modula-300x300.jpg ADDED
Binary file
assets/js/admin.js ADDED
@@ -0,0 +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
+ });
assets/js/jquery.fancybox.js ADDED
@@ -0,0 +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);
assets/js/rollback.js ADDED
@@ -0,0 +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
+ });
css/fancybox-admin.css DELETED
@@ -1,45 +0,0 @@
1
- #mfbfwd {
2
- border-top:1px dashed #DDDDDD;
3
- margin:20px auto 40px;
4
- overflow:hidden;
5
- padding-top:25px;
6
- width:726px;
7
- }
8
-
9
- .mfbfw_box {
10
- border-radius:3px;
11
- float:left;
12
- font-weight:bold;
13
- height:90px;
14
- margin:5px 5px 3px;
15
- opacity:0.7;
16
- padding:0 5px;
17
- text-align:center;
18
- width:220px;
19
- }
20
-
21
- .mfbfw_box:hover {
22
- opacity:0.9;
23
- }
24
-
25
- .mfbfw_blue {
26
- background:#fdca57;
27
- border:1px solid #d7922d;
28
- color:#975c25;
29
- -webkit-box-shadow: inset 0px 0px 20px 5px #fb9822, inset 0px 1px 0px #fff, 0 0 0 2px rgba(0,0,0,0.05), 0 0 2px rgba(0,0,0,0.5);
30
- -moz-box-shadow: inset 0px 0px 20px 5px #fb9822, inset 0px 1px 0px #fff, 0 0 0 2px rgba(0,0,0,0.05), 0 0 2px rgba(0,0,0,0.5);
31
- box-shadow: inset 0px 0px 20px 5px #fb9822, inset 0px 1px 0px #fff, 0 0 0 2px rgba(0,0,0,0.05), 0 0 2px rgba(0,0,0,0.5);
32
- text-shadow: 0px 1px 0px #fee27d;
33
- filter: dropshadow(color=#ffd21f, offx=0, offy=1);
34
- }
35
-
36
- .mfbfw_yellow {
37
- background:#fdca57;
38
- border:1px solid #d7922d;
39
- color:#975c25;
40
- -webkit-box-shadow: inset 0px 0px 20px 5px #fb9822, inset 0px 1px 0px #fff, 0 0 0 2px rgba(0,0,0,0.05), 0 0 2px rgba(0,0,0,0.5);
41
- -moz-box-shadow: inset 0px 0px 20px 5px #fb9822, inset 0px 1px 0px #fff, 0 0 0 2px rgba(0,0,0,0.05), 0 0 2px rgba(0,0,0,0.5);
42
- box-shadow: inset 0px 0px 20px 5px #fb9822, inset 0px 1px 0px #fff, 0 0 0 2px rgba(0,0,0,0.05), 0 0 2px rgba(0,0,0,0.5);
43
- text-shadow: 0px 1px 0px #fee27d;
44
- filter: dropshadow(color=#ffd21f, offx=0, offy=1);
45
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
css/img/extra_donate.png DELETED
Binary file
css/img/extra_twitter.png DELETED
Binary file
css/img/ui-bg_flat_75_ffffff_40x100.png DELETED
Binary file
css/img/ui-bg_glass_65_ffffff_1x400.png DELETED
Binary file
css/img/ui-bg_glass_75_dadada_1x400.png DELETED
Binary file
css/img/ui-bg_glass_75_e6e6e6_1x400.png DELETED
Binary file
css/img/ui-bg_highlight-soft_75_cccccc_1x100.png DELETED
Binary file
fancybox.php CHANGED
@@ -1,366 +1,441 @@
1
  <?php
 
2
  /*
3
  Plugin Name: FancyBox for WordPress
4
  Plugin URI: https://wordpress.org/plugins/fancybox-for-wordpress/
5
- Description: Integrates FancyBox by Janis Skarnelis into WordPress.
6
- Version: 3.0.10
7
  Author: Colorlib
8
- Author URI: https://colorlib.com/
9
 
10
  * FancyBox is Copyright (c) 2008 - 2010 Janis Skarnelis
11
  * Dual licensed under the MIT and GPL licenses:
12
  * http://www.opensource.org/licenses/mit-license.php
13
  * http://www.gnu.org/licenses/gpl.html
14
 
15
- */
16
-
17
-
18
 
19
  /**
20
- * Constants
21
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
- define( 'FBFW_VERSION', '3.0.10' );
24
- define( 'FBFW_PATH', plugin_dir_path(__FILE__) );
25
- define( 'FBFW_URL', plugin_dir_url(__FILE__) );
26
-
27
-
28
 
29
  /**
30
  * Store default settings in an array
31
  */
32
-
33
  function mfbfw_defaults() {
34
 
35
- $defaults_array = array(
36
-
37
  // Appearance
38
- 'border' => '',
39
- 'borderColor' => '#BBBBBB',
40
- 'showCloseButton' => 'on',
41
- 'closeHorPos' => 'right',
42
- 'closeVerPos' => 'top',
43
- 'paddingColor' => '#FFFFFF',
44
- 'padding' => '10',
45
- 'overlayShow' => 'on',
46
- 'overlayColor' => '#666666',
47
- 'overlayOpacity' => '0.3',
48
- 'titleShow' => 'on',
49
- 'titlePosition' => 'inside',
50
- 'titleColor' => '#333333',
51
- 'showNavArrows' => 'on',
52
-
53
  // Animations
54
- 'zoomOpacity' => 'on',
55
- 'zoomSpeedIn' => '500',
56
- 'zoomSpeedOut' => '500',
57
- 'zoomSpeedChange' => '300',
58
- 'transitionIn' => 'fade',
59
- 'transitionOut' => 'fade',
60
- 'easing' => '',
61
- 'easingIn' => 'easeOutBack',
62
- 'easingOut' => 'easeInBack',
63
- 'easingChange' => 'easeInOutQuart',
64
-
65
  // Behaviour
66
- 'imageScale' => 'on',
67
- 'centerOnScroll' => 'on',
68
- 'hideOnContentClick' => '',
69
- 'hideOnOverlayClick' => 'on',
70
- 'enableEscapeButton' => 'on',
71
- 'cyclic' => '',
72
- 'mouseWheel' => '',
73
-
 
74
  // Gallery Type
75
- 'galleryType' => 'all',
76
- 'customExpression' => 'jQuery(thumbnails).addClass("fancybox").attr("rel","fancybox").getTitle();',
77
-
78
- // Other
79
- 'autoDimensions' => 'on',
80
- 'frameWidth' => '560',
81
- 'frameHeight' => '340',
82
- 'loadAtFooter' => '',
83
- 'callbackEnable' => '',
84
- 'callbackOnStart' => 'function() { alert("Start!"); }',
85
- 'callbackOnCancel' => 'function() { alert("Cancel!"); }',
86
- 'callbackOnComplete' => 'function() { alert("Complete!"); }',
87
- 'callbackOnCleanup' => 'function() { alert("CleanUp!"); }',
88
- 'callbackOnClose' => 'function() { alert("Close!"); }',
89
-
90
- // Troubleshooting
91
- 'nojQuery' => '',
92
-
93
- // Extra Calls
94
- 'extraCallsEnable' => '',
95
- 'extraCallsData' => '',
96
-
97
- // Uninstall
98
- 'uninstall' => ''
99
-
100
  );
101
 
102
- return $defaults_array;
103
- }
104
-
105
-
106
-
107
- /**
108
- * When plugin is installed, write default settings and update version
109
- */
110
-
111
- function mfbfw_install() {
112
-
113
- $defaults_array = mfbfw_defaults();
114
- add_option( 'mfbfw', $defaults_array );
115
- update_option( 'mfbfw_active_version', FBFW_VERSION );
116
-
117
  }
118
- register_activation_hook( __FILE__, 'mfbfw_install' );
119
-
120
-
121
 
122
  /**
123
  * If requested, when plugin is deactivated, remove settings
124
  */
 
125
 
126
- function mfbfw_uninstall() {
127
- $settings = get_option( 'mfbfw' );
128
- if ( isset($settings['uninstall']) && $settings['uninstall'] ) {
129
  delete_option( 'mfbfw' );
130
  delete_option( 'mfbfw_active_version' );
131
  }
132
  }
133
- register_deactivation_hook( __FILE__, 'mfbfw_uninstall' );
134
-
135
 
 
136
 
137
  /**
138
- * Here we load FancyBox JS with jQuery and jQuery.easing if necessary
139
  */
 
140
 
141
- function mfbfw_register_scripts() {
142
-
143
- $settings = get_option( 'mfbfw' );
144
 
145
  // Check if script should be loaded in footer
146
- if ( isset($settings['loadAtFooter']) && $settings['loadAtFooter'] ) {
147
  $footer = true;
148
  } else {
149
  $footer = false;
150
  }
151
 
152
  // Check if plugin should not call jQuery script (for troubleshooting only)
153
- if ( isset($settings['nojQuery']) && $settings['nojQuery'] ) {
154
  $jquery = false;
155
  } else {
156
- $jquery = array('jquery');
157
  }
158
 
159
- // Register scripts
160
- wp_register_script('fancybox', FBFW_URL . 'fancybox/jquery.fancybox.js', $jquery, '1.3.8', $footer ); // Main Fancybox script
161
- wp_register_script('jqueryeasing', FBFW_URL . 'js/jquery.easing.min.js', false, '1.4', $footer ); // Easing animations script
162
- wp_register_script('jquerymousewheel', FBFW_URL . 'js/jquery.mousewheel.pack.js', false, '3.1.13', $footer ); // Mouse wheel support script
163
-
164
-
165
- }
166
- add_action( 'init', 'mfbfw_register_scripts' );
167
-
168
- function mfbfw_scripts() {
169
-
170
- $settings = get_option( 'mfbfw' );
171
-
172
  wp_enqueue_script( 'fancybox' ); // Load fancybox
173
 
174
- if ( isset($settings['easing']) && $settings['easing'] ) {
175
  wp_enqueue_script( 'jqueryeasing' ); // Load easing javascript file if required
176
  }
177
 
178
- if ( isset($settings['mouseWheel']) && $settings['mouseWheel'] ) {
179
  wp_enqueue_script( 'jquerymousewheel' ); // Load mouse wheel javascript file if required
180
  }
181
 
182
- }
183
- add_action( 'wp_enqueue_scripts', 'mfbfw_scripts' ); // Load Scripts
 
 
 
 
184
 
 
 
 
185
 
 
186
 
187
  /**
188
- * Link to FancyBox stylesheet and apply some custom styles
189
  */
 
190
 
191
- function mfbfw_styles() {
192
-
193
- $settings = get_option( 'mfbfw' );
194
- wp_enqueue_style( 'fancybox', FBFW_URL . 'fancybox/fancybox.css' );
195
-
196
- ?>
197
-
198
- <style type="text/css">
199
- #fancybox-close{<?php echo $settings['closeHorPos']; ?>:-15px;<?php echo $settings['closeVerPos']; ?>:-15px}
200
- <?php if ( isset($settings['paddingColor']) && $settings['paddingColor'] ) { echo "div#fancybox-content{border-color:" . $settings['paddingColor'] . "}\n"; } ?>
201
- <?php if ( isset($settings['paddingColor']) && $settings['paddingColor'] && $settings['titlePosition'] == "inside" ) { echo "div#fancybox-title{background-color:" . $settings['paddingColor'] . "}\n"; } ?>
202
- div#fancybox-outer{background-color:<?php echo $settings['paddingColor']; if ( isset($settings['border']) && $settings['border'] ) { echo "; border:1px solid " . $settings['borderColor']; } echo "}\n"; ?>
203
- <?php if ( isset($settings['titleColor']) && $settings['titleColor'] && $settings['titlePosition'] == "inside" ) { echo "div#fancybox-title-inside{color:" . $settings['titleColor'] . "}\n"; } ?>
204
- </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
 
206
- <?php
207
 
208
- }
209
- add_action( 'wp_enqueue_scripts', 'mfbfw_styles' );
 
 
 
 
210
 
211
 
 
212
 
213
- /**
214
- * Load FancyBox with the settings set
215
- */
 
 
 
 
 
 
 
216
 
217
- function mfbfw_init() {
218
 
219
- $settings = get_option( 'mfbfw' );
220
 
221
- echo "\n<!-- Fancybox for WordPress -->"; ?>
222
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
  <script type="text/javascript">
224
- jQuery(function(){
225
-
226
- jQuery.fn.getTitle = function() { // Copy the title of every IMG tag and add it to its parent A so that fancybox can show titles
227
- var arr = jQuery("a.fancybox");
228
- jQuery.each(arr, function() {
229
- var title = jQuery(this).children("img").attr("title");
230
- jQuery(this).attr('title',title);
231
- })
232
- }
233
-
234
- // Supported file extensions
235
- var thumbnails = jQuery("a:has(img)").not(".nolightbox").filter( function() { return /\.(jpe?g|png|gif|bmp)$/i.test(jQuery(this).attr('href')) });
236
 
237
- <?php if ( $settings['galleryType'] == 'post' ) {
238
-
239
- // Gallery type BY POST and we are on post or page (so only one post or page is visible)
240
- if ( is_single() | is_page() ) {
241
- echo 'thumbnails.addClass("fancybox").attr("rel","fancybox").getTitle();';
242
  }
243
 
244
- // Gallery type BY POST, but we are neither on post or page, so we make a different rel attribute on each post
245
- else {
246
- echo 'var posts = jQuery(".post");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247
 
248
- posts.each(function() {
249
- jQuery(this).find(thumbnails).addClass("fancybox").attr("rel","fancybox"+posts.index(this)).getTitle()
250
- });';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
251
  }
252
 
 
 
 
 
 
253
  }
 
254
 
255
- // Gallery type ALL
256
- elseif ( $settings['galleryType'] == 'all' ) {
257
- echo 'thumbnails.addClass("fancybox").attr("rel","fancybox").getTitle();';
258
- }
 
 
259
 
260
- // Gallery type NONE
261
- elseif ( $settings['galleryType'] == 'none' ) {
262
- echo 'thumbnails.addClass("fancybox").getTitle();';
263
- }
264
 
265
- // Else, gallery type is custom, so we just print the custom expression
266
- else {
267
- echo $settings['customExpression'];
268
  }
269
-
270
- // Now we call fancybox and apply it on any link with a rel atribute that starts with "fancybox", with the options set on the admin panel
271
- ?>
272
-
273
- jQuery("a.fancybox").fancybox({
274
- 'cyclic': <?php if ( isset($settings['cyclic']) && $settings['cyclic'] ) { echo "true"; } else { echo "false"; } ?>,
275
- 'autoScale': <?php if ( isset($settings['imageScale']) && $settings['imageScale'] ) { echo "true"; } else { echo "false"; } ?>,
276
- 'padding': <?php echo $settings['padding']; ?>,
277
- 'opacity': <?php if ( isset($settings['zoomOpacity']) && $settings['zoomOpacity'] ) { echo "true"; } else { echo "false"; } ?>,
278
- 'speedIn': <?php echo $settings['zoomSpeedIn']; ?>,
279
- 'speedOut': <?php echo $settings['zoomSpeedOut']; ?>,
280
- 'changeSpeed': <?php echo $settings['zoomSpeedChange']; ?>,
281
- 'overlayShow': <?php if ( isset($settings['overlayShow']) && $settings['overlayShow'] ) { echo "true"; } else { echo "false"; } ?>,
282
- 'overlayOpacity': <?php echo '"' . $settings['overlayOpacity'] . '"'; ?>,
283
- 'overlayColor': <?php echo '"' . $settings['overlayColor'] . '"'; ?>,
284
- 'titleShow': <?php if ( isset($settings['titleShow']) && $settings['titleShow'] ) { echo "true"; } else { echo "false"; } ?>,
285
- 'titlePosition': '<?php echo $settings['titlePosition']; ?>',
286
- 'enableEscapeButton': <?php if ( isset($settings['enableEscapeButton']) && $settings['enableEscapeButton'] ) { echo "true"; } else { echo "false"; } ?>,
287
- 'showCloseButton': <?php if ( isset($settings['showCloseButton']) && $settings['showCloseButton'] ) { echo "true"; } else { echo "false"; } ?>,
288
- 'showNavArrows': <?php if ( isset($settings['showNavArrows']) && $settings['showNavArrows'] ) { echo "true"; } else { echo "false"; } ?>,
289
- 'hideOnOverlayClick': <?php if ( isset($settings['hideOnOverlayClick']) && $settings['hideOnOverlayClick'] ) { echo "true"; } else { echo "false"; } ?>,
290
- 'hideOnContentClick': <?php if ( isset($settings['hideOnContentClick']) && $settings['hideOnContentClick'] ) { echo "true"; } else { echo "false"; } ?>,
291
- 'width': <?php echo $settings['frameWidth']; ?>,
292
- 'height': <?php echo $settings['frameHeight']; ?>,
293
- 'transitionIn': <?php echo '"' . $settings['transitionIn'] . '"'; ?>,
294
- 'transitionOut': <?php echo '"' . $settings['transitionOut'] . '"'; ?>,
295
- <?php if ( isset($settings['callbackEnable'], $settings['callbackOnStart']) && $settings['callbackEnable'] && $settings['callbackOnStart'] ) echo "\t'onStart': ". $settings['callbackOnStart'] .","."\n"; ?>
296
- <?php if ( isset($settings['callbackEnable'], $settings['callbackOnCancel']) && $settings['callbackEnable'] && $settings['callbackOnCancel'] ) echo "\t'onCancel': ". $settings['callbackOnCancel'] .","."\n"; ?>
297
- <?php if ( isset($settings['callbackEnable'], $settings['callbackOnCleanup']) && $settings['callbackEnable'] && $settings['callbackOnCleanup'] ) echo "\t'onCleanup': ". $settings['callbackOnCleanup'] .","."\n"; ?>
298
- <?php if ( isset($settings['callbackEnable'], $settings['callbackOnComplete']) && $settings['callbackEnable'] && $settings['callbackOnComplete'] ) echo "\t'onComplete': ". $settings['callbackOnComplete'] .","."\n"; ?>
299
- <?php if ( isset($settings['callbackEnable'], $settings['callbackOnClose']) && $settings['callbackEnable'] && $settings['callbackOnClose'] ) echo "\t'onClosed': ". $settings['callbackOnClose'] .","."\n"; ?>
300
- 'centerOnScroll': <?php if ( isset($settings['centerOnScroll']) && $settings['centerOnScroll'] ) { echo "true"; } else { echo "false"; } ?><?php if ( isset($settings['easing']) && $settings['easing'] ) { ?>,
301
- 'easingIn': <?php echo '"' . $settings['easingIn'] . '"'; ?>,
302
- 'easingOut': <?php echo '"' . $settings['easingOut'] . '"'; ?>,
303
- 'easingChange': <?php echo '"' . $settings['easingChange'] . '"';
304
- } ?>
305
-
306
- });
307
-
308
- <?php if ( isset($settings['extraCallsEnable']) && $settings['extraCallsEnable'] ) { echo $settings['extraCallsData']; echo "\n"; } ?>
309
-
310
- })
311
- </script>
312
- <?php echo "<!-- END Fancybox for WordPress -->\n";
313
  }
314
- add_action( 'wp_head', 'mfbfw_init' );
315
 
 
316
 
317
 
318
  /**
319
- * Load text domain
320
  */
321
 
322
- function mfbfw_textdomain() {
323
 
324
- if ( function_exists('load_plugin_textdomain') ) {
325
- load_plugin_textdomain( 'mfbfw', FBFW_URL . 'languages', 'fancybox-for-wordpress/languages' );
326
  }
327
 
 
328
  }
329
- add_action( 'init', 'mfbfw_textdomain' );
330
 
 
331
 
332
 
333
  /**
334
- * Register Options
335
  */
336
-
337
  function mfbfw_admin_options() {
338
 
339
  $settings = get_option( 'mfbfw' );
340
 
341
- if ( isset($_GET['page']) && $_GET['page'] == 'fancybox-for-wordpress' ) {
342
 
343
- if ( isset($_REQUEST['action']) && 'reset' == $_REQUEST['action'] && check_admin_referer( 'mfbfw-options-reset' ) ) {
344
 
345
  $defaults_array = mfbfw_defaults(); // Store defaults in an array
346
  update_option( 'mfbfw', $defaults_array ); // Write defaults to database
347
- wp_safe_redirect( add_query_arg('reset', 'true') );
348
  die;
349
-
350
  }
351
  }
352
 
353
  register_setting( 'mfbfw-options', 'mfbfw' );
354
-
355
  }
356
- add_action( 'admin_init', 'mfbfw_admin_options' );
357
-
358
 
 
359
 
360
  /**
361
  * Admin options page
362
  */
363
-
364
  function mfbfw_admin_menu() {
365
 
366
  require FBFW_PATH . 'admin.php';
@@ -369,43 +444,113 @@ function mfbfw_admin_menu() {
369
 
370
  add_action( 'admin_print_styles-' . $mfbfwadmin, 'mfbfw_admin_styles' );
371
  add_action( 'admin_print_scripts-' . $mfbfwadmin, 'mfbfw_admin_scripts' );
372
-
373
  }
374
- add_action('admin_menu', 'mfbfw_admin_menu');
375
-
376
 
 
377
 
378
  /**
379
  * Load Admin CSS & JS (called in mfbfw_admin_menu())
380
  */
381
-
382
  function mfbfw_admin_styles() {
383
- wp_enqueue_style( 'fancybox-admin', FBFW_URL . 'css/fancybox-admin.css' ); // Load custom CSS for Admin Page
384
- wp_enqueue_style( 'jquery-ui', FBFW_URL . 'css/jquery-ui.css' ); // Load jQuery UI Tabs CSS for Admin Page
 
385
  }
386
 
387
  function mfbfw_admin_scripts() {
388
- wp_enqueue_script( 'jquery-ui-tabs', array('jquery-ui-core') ); // Load jQuery UI Tabs JS for Admin Page
389
- wp_enqueue_script( 'fancybox-admin', FBFW_URL . 'js/admin.js', array('jquery') ); // Load specific JS for Admin Page
390
- }
391
-
392
 
 
 
 
393
 
394
  /**
395
  * Settings Button on Plugins Panel
396
  */
397
 
398
- function mfbfw_plugin_action_links($links, $file) {
 
 
 
 
 
 
 
399
 
400
  static $this_plugin;
401
- if ( ! $this_plugin ) $this_plugin = plugin_basename( __FILE__ );
 
 
402
 
403
- if ( $file == $this_plugin ){
404
  $settings_link = '<a href="options-general.php?page=fancybox-for-wordpress">' . __( 'Settings', 'mfbfw' ) . '</a>';
405
  array_unshift( $links, $settings_link );
406
  }
407
 
408
  return $links;
409
-
410
  }
 
411
  add_filter( 'plugin_action_links', 'mfbfw_plugin_action_links', 10, 2 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.0
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.0' );
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);}console.log(caption);
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;background:#fff;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;background:#fff;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;}' . '
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
+ echo '
271
  <script type="text/javascript">
272
+ jQuery(function(){
 
 
 
 
 
 
 
 
 
 
 
273
 
274
+ jQuery.fn.getTitle = function() { // Copy the title of every IMG tag and add it to its parent A so that fancybox can show titles
275
+ ' . $mfbfw['copyTitleFunction'] . '
 
 
 
276
  }
277
 
278
+ // Supported file extensions
279
+ var thumbnails = jQuery("a:has(img)").not(".nolightbox, .nofancybox, a:has(img.nolightbox, img.nofancybox)").filter( function() { return /\.(jpe?g|png|gif|bmp|mp4)?.+$/i.test(jQuery(this).attr("href")) });';
280
+ if ( $mfbfw['galleryType'] == 'post' ) {
281
+
282
+ // Gallery type BY POST and on post or page (so only one post or page is visible)
283
+ if ( is_singular() ) {
284
+ echo '
285
+ // Gallery by post
286
+ thumbnails.addClass("fancybox").attr("data-fancybox","gallery").getTitle();
287
+ ';
288
+
289
+ // Gallery type BY POST, but neither on post or page, so make a different rel attribute on each post
290
+ } else {
291
+ echo '
292
+ // Gallery by post
293
+ var posts = jQuery(".post");
294
+ posts.each(function() {
295
+ jQuery(this).find(thumbnails).addClass("fancybox").attr("data-fancybox","gallery"+posts.index(this)).attr("rel","fancybox"+posts.index(this)).getTitle()
296
+ });
297
+ ';
298
+ }
299
+
300
+ // Gallery type ALL
301
+ } elseif ( $mfbfw['galleryType'] == 'all' ) {
302
+ echo '
303
+ // Gallery All
304
+ thumbnails.addClass("fancybox").attr("data-fancybox","gallery").getTitle();
305
+ ';
306
+
307
+ // Gallery type NONE
308
+ } elseif ( $mfbfw['galleryType'] == 'none' ) {
309
+ echo '
310
+ // No Galleries
311
+ thumbnails.each(function(){
312
+ var rel = jQuery(this).attr("rel");
313
+ var imgTitle = jQuery(this).children("img").attr("title");
314
+ jQuery(this).addClass("fancybox").attr("data-fancybox",rel);
315
+ jQuery(this).attr("title",imgTitle);
316
+ })
317
+ ';
318
+
319
+ // Else, gallery type is custom, so just print the custom expression
320
+ } else {
321
+ echo '
322
+ // Custom Expression
323
+ ' . $mfbfw['customExpression'] . '
324
+ ';
325
+ }
326
 
327
+ // Call fancybox and apply it on any link with a rel atribute that starts with "fancybox", with the options set on the admin panel
328
+ echo '
329
+ jQuery("a.fancybox").fancybox({
330
+ "loop": ' . ( isset( $mfbfw['cyclic'] ) && $mfbfw['cyclic'] ? 'true' : 'false' ) . ',
331
+ "smallBtn": ' . ( isset( $mfbfw['showCloseButton'] ) && $mfbfw['showCloseButton'] ? 'true' : 'false' ) . ',
332
+ "zoomOpacity": "' . ( isset( $mfbfw['zoomOpacity'] ) && $mfbfw['zoomOpacity'] ? 'auto' : 'false' ) . '",
333
+ "animationEffect": "' . $mfbfw['transitionIn'] . '",
334
+ "animationDuration": ' . $mfbfw['zoomSpeedIn'] . ',
335
+ "transitionEffect": "' . $mfbfw['transitionEffect'] . '",
336
+ "transitionDuration" : "' . $mfbfw['zoomSpeedChange'] . '",
337
+ "overlayShow": ' . ( isset( $mfbfw['overlayShow'] ) && $mfbfw['overlayShow'] ? 'true' : 'false' ) . ',
338
+ "overlayOpacity": "' . $mfbfw['overlayOpacity'] . '",
339
+ "titleShow": ' . ( isset( $mfbfw['titleShow'] ) && $mfbfw['titleShow'] ? 'true' : 'false' ) . ',
340
+ "titlePosition": "' . $mfbfw['titlePosition'] . '",
341
+ "keyboard": ' . ( isset( $mfbfw['enableEscapeButton'] ) && $mfbfw['enableEscapeButton'] ? 'true' : 'false' ) . ',
342
+ "showCloseButton": ' . ( isset( $mfbfw['showCloseButton'] ) && $mfbfw['showCloseButton'] ? 'true' : 'false' ) . ',
343
+ "arrows": ' . ( isset( $mfbfw['showNavArrows'] ) && $mfbfw['showNavArrows'] ? 'true' : 'false' ) . ',
344
+ "clickContent": ' . ( isset( $mfbfw['hideOnContentClick'] ) && $mfbfw['hideOnContentClick'] ? '"close"' : 'false' ) . ',
345
+ "clickSlide": ' . ( isset( $mfbfw['hideOnOverlayClick'] ) && $mfbfw['hideOnOverlayClick'] ? 'function(current, event) {
346
+ return current.type === "image" ? "close" : false;
347
+ }' : 'false' ) . ',
348
+ "wheel": ' . ( isset( $mfbfw['mouseWheel'] ) && $mfbfw['mouseWheel'] ? 'true' : 'false' ) . ',
349
+ ' . $frameSize . '
350
+ "onInit": ' . ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnStart'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnStart'] ? $mfbfw['callbackOnStart'] . ',' : 'function() { },' ) . '
351
+ "onDeactivate": ' . ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnCancel'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnCancel'] ? $mfbfw['callbackOnCancel'] . ',' : 'function() { },' ) . '
352
+ "beforeClose": ' . ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnCleanup'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnCleanup'] ? $mfbfw['callbackOnCleanup'] . ',' : 'function() { },' ) . '
353
+ "afterShow": ' . ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnComplete'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnComplete'] ? $mfbfw['callbackOnComplete'] . ',' : 'function() { },' ) . '
354
+ "afterClose": ' . ( isset( $mfbfw['callbackEnable'], $mfbfw['callbackOnClose'] ) && $mfbfw['callbackEnable'] && $mfbfw['callbackOnClose'] ? $mfbfw['callbackOnClose'] . ',' : 'function() { },' ) . '
355
+ "toolbar":' . ( isset( $mfbfw['showToolbar'] ) && $mfbfw['showToolbar'] ? 'true' : 'false' ) . ',
356
+ "preventCaptionOverlap": true,
357
+ "caption" : ' . $caption . ',
358
+ "afterLoad" : ' . $afterLoad . ',
359
+ });
360
+ ';
361
+
362
+ if ( isset( $mfbfw['extraCallsEnable'] ) && $mfbfw['extraCallsEnable'] ) {
363
+ echo '
364
+ // Extra Calls
365
+ ' . $mfbfw['extraCallsData'] . '
366
+ ';
367
  }
368
 
369
+ echo '
370
+ })
371
+ </script>
372
+ <!-- END Fancybox for WordPress -->
373
+ ';
374
  }
375
+ }
376
 
377
+ // Check if inline script should be loaded in footer
378
+ if ( isset( $mfbfw['loadAtFooter'] ) && $mfbfw['loadAtFooter'] ) {
379
+ add_action( 'wp_footer', 'mfbfw_init' );
380
+ } else {
381
+ add_action( 'wp_head', 'mfbfw_init' );
382
+ }
383
 
384
+ /**
385
+ * Load text domain
386
+ */
387
+ function mfbfw_textdomain() {
388
 
389
+ if ( function_exists( 'load_plugin_textdomain' ) ) {
390
+ load_plugin_textdomain( 'mfbfw', FBFW_URL . 'languages', 'fancybox-for-wordpress/languages' );
 
391
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
392
  }
 
393
 
394
+ add_action( 'init', 'mfbfw_textdomain' );
395
 
396
 
397
  /**
398
+ * Insert Rollback link for plugin in plugins page
399
  */
400
 
401
+ function extra_settings_links( $links ) {
402
 
403
+ if ( apply_filters( 'fbfw_show_rollback_link', true ) ) {
404
+ $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' ) );
405
  }
406
 
407
+ return $links;
408
  }
 
409
 
410
+ add_action( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'extra_settings_links' );
411
 
412
 
413
  /**
414
+ * Register options
415
  */
 
416
  function mfbfw_admin_options() {
417
 
418
  $settings = get_option( 'mfbfw' );
419
 
420
+ if ( isset( $_GET['page'] ) && $_GET['page'] == 'fancybox-for-wordpress' ) {
421
 
422
+ if ( isset( $_REQUEST['action'] ) && 'reset' == $_REQUEST['action'] && check_admin_referer( 'mfbfw-options-reset' ) ) {
423
 
424
  $defaults_array = mfbfw_defaults(); // Store defaults in an array
425
  update_option( 'mfbfw', $defaults_array ); // Write defaults to database
426
+ wp_safe_redirect( add_query_arg( 'reset', 'true' ) );
427
  die;
 
428
  }
429
  }
430
 
431
  register_setting( 'mfbfw-options', 'mfbfw' );
 
432
  }
 
 
433
 
434
+ add_action( 'admin_init', 'mfbfw_admin_options' );
435
 
436
  /**
437
  * Admin options page
438
  */
 
439
  function mfbfw_admin_menu() {
440
 
441
  require FBFW_PATH . 'admin.php';
444
 
445
  add_action( 'admin_print_styles-' . $mfbfwadmin, 'mfbfw_admin_styles' );
446
  add_action( 'admin_print_scripts-' . $mfbfwadmin, 'mfbfw_admin_scripts' );
 
447
  }
 
 
448
 
449
+ add_action( 'admin_menu', 'mfbfw_admin_menu' );
450
 
451
  /**
452
  * Load Admin CSS & JS (called in mfbfw_admin_menu())
453
  */
 
454
  function mfbfw_admin_styles() {
455
+ wp_enqueue_style( 'fancybox-admin', FBFW_URL . 'assets/css/fancybox-admin.css', false, FBFW_VERSION ); // Load custom CSS for Admin Page
456
+ wp_enqueue_style( 'wp-color-picker' );
457
+ 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
458
  }
459
 
460
  function mfbfw_admin_scripts() {
461
+ print_r( $hook );
462
+ wp_enqueue_script( 'jquery-ui-tabs', array( 'jquery-ui-core' ), true ); // Load jQuery UI Tabs JS for Admin Page
463
+ 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
 
464
 
465
+ /* Load codemirror editor */
466
+ $settings = wp_enqueue_code_editor( array( 'type' => 'text/javascript' ) );
467
+ }
468
 
469
  /**
470
  * Settings Button on Plugins Panel
471
  */
472
 
473
+
474
+ require FBFW_PATH . '/lib/class-fbfw-plugin-rollback.php';
475
+ require FBFW_PATH . '/lib/class-fbfw-rollback.php';
476
+
477
+ function mfbfw_plugin_action_links(
478
+ $links,
479
+ $file
480
+ ) {
481
 
482
  static $this_plugin;
483
+ if ( ! $this_plugin ) {
484
+ $this_plugin = plugin_basename( __FILE__ );
485
+ }
486
 
487
+ if ( $file == $this_plugin ) {
488
  $settings_link = '<a href="options-general.php?page=fancybox-for-wordpress">' . __( 'Settings', 'mfbfw' ) . '</a>';
489
  array_unshift( $links, $settings_link );
490
  }
491
 
492
  return $links;
 
493
  }
494
+
495
  add_filter( 'plugin_action_links', 'mfbfw_plugin_action_links', 10, 2 );
496
+
497
+ /*
498
+ * Transform from Hex to rgb or rgba
499
+ */
500
+
501
+ function hexTorgba( $hexColor, $opacity ) {
502
+ list( $r, $g, $b ) = sscanf( $hexColor, "#%02x%02x%02x" );
503
+ if ( $opacity ) {
504
+ $rgb = 'rgba(' . $r . ',' . $g . ',' . $b . ',' . $opacity . ')';
505
+ } else {
506
+ $rgb = 'rgba(' . $r . ',' . $g . ',' . $b . ')';
507
+ }
508
+
509
+ return $rgb;
510
+ }
511
+
512
+ /*
513
+ *
514
+ * Check if WooCommerce Product post
515
+ *
516
+ */
517
+ function fancy_check_if_woocommerce() {
518
+ if ( class_exists( 'WooCommerce' ) ) {
519
+ if ( is_shop() ) {
520
+ return 'shop_page';
521
+ } else if ( get_post_type( get_the_id() ) == 'product' ) {
522
+ return 'product';
523
+ } else {
524
+ return 'true';
525
+ }
526
+ } else {
527
+ return 'true';
528
+ }
529
+ }
530
+
531
+ // Ajax request for activate link
532
+ add_action( 'wp_ajax_mfbfw_activate_link', 'mfbfw_get_activate_link' );
533
+ function mfbfw_get_activate_link() {
534
+
535
+ $plugin_path = 'modula-best-grid-gallery/Modula.php';
536
+ $link = add_query_arg(
537
+ array(
538
+ 'action' => 'activate',
539
+ 'plugin' => rawurlencode( $plugin_path ),
540
+ 'plugin_status' => 'all',
541
+ 'paged' => '1',
542
+ '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin_path ),
543
+ ),
544
+ admin_url( 'plugins.php' )
545
+ );
546
+
547
+ wp_die(
548
+ wp_json_encode(
549
+ array(
550
+ 'status' => 'succes',
551
+ 'link' => $link,
552
+ )
553
+ )
554
+ );
555
+
556
+ }
fancybox/fancybox.css DELETED
@@ -1,357 +0,0 @@
1
- /*
2
- * FancyBox - jQuery Plugin
3
- * Simple and fancy lightbox alternative
4
- *
5
- * Examples and documentation at: http://fancybox.net
6
- *
7
- * Copyright (c) 2008 - 2010 Janis Skarnelis
8
- * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
9
- *
10
- * Version: 1.3.4 (11/11/2010)
11
- * Requires: jQuery v1.3+
12
- *
13
- * Dual licensed under the MIT and GPL licenses:
14
- * http://www.opensource.org/licenses/mit-license.php
15
- * http://www.gnu.org/licenses/gpl.html
16
- */
17
-
18
- #fancybox-loading {
19
- position: fixed;
20
- top: 50%;
21
- left: 50%;
22
- width: 40px;
23
- height: 40px;
24
- margin-top: -20px;
25
- margin-left: -20px;
26
- cursor: pointer;
27
- overflow: hidden;
28
- z-index: 110004;
29
- display: none;
30
- }
31
-
32
- #fancybox-loading div {
33
- position: absolute;
34
- top: 0;
35
- left: 0;
36
- width: 40px;
37
- height: 480px;
38
- background-image: url('fancybox.png');
39
- }
40
-
41
- #fancybox-overlay {
42
- position: absolute;
43
- top: 0;
44
- left: 0;
45
- width: 100%;
46
- z-index: 110000;
47
- display: none;
48
- }
49
-
50
- #fancybox-tmp {
51
- padding: 0;
52
- margin: 0;
53
- border: 0;
54
- overflow: auto;
55
- display: none;
56
- }
57
-
58
- #fancybox-wrap {
59
- position: absolute;
60
- top: 0;
61
- left: 0;
62
- padding: 20px;
63
- z-index: 110001;
64
- outline: none;
65
- display: none;
66
- }
67
-
68
- #fancybox-outer {
69
- position: relative;
70
- width: 100%;
71
- height: 100%;
72
- background: #fff;
73
- }
74
-
75
- #fancybox-content {
76
- width: 0;
77
- height: 0;
78
- padding: 0;
79
- outline: none;
80
- position: relative;
81
- overflow: hidden;
82
- z-index: 110002;
83
- border: 0px solid #fff;
84
- }
85
-
86
- #fancybox-hide-sel-frame {
87
- position: absolute;
88
- top: 0;
89
- left: 0;
90
- width: 100%;
91
- height: 100%;
92
- background: transparent;
93
- z-index: 110001;
94
- }
95
-
96
- #fancybox-close {
97
- position: absolute;
98
- width: 30px;
99
- height: 30px;
100
- background: transparent url('fancybox.png') -40px 0px;
101
- cursor: pointer;
102
- z-index: 110003;
103
- display: none;
104
- }
105
-
106
- #fancybox-error {
107
- color: #444;
108
- font: normal 12px/20px Arial;
109
- padding: 14px;
110
- margin: 0;
111
- }
112
-
113
- #fancybox-img {
114
- width: 100%;
115
- height: 100%;
116
- padding: 0;
117
- margin: 0;
118
- border: none;
119
- outline: none;
120
- line-height: 0;
121
- vertical-align: top;
122
- }
123
-
124
- #fancybox-frame {
125
- width: 100%;
126
- height: 100%;
127
- border: none;
128
- display: block;
129
- }
130
-
131
- #fancybox-left, #fancybox-right {
132
- position: absolute;
133
- bottom: 0px;
134
- height: 100%;
135
- width: 35%;
136
- cursor: pointer;
137
- outline: none;
138
- background: transparent url('blank.gif');
139
- z-index: 110002;
140
- display: none;
141
- }
142
-
143
- #fancybox-left {
144
- left: 0px;
145
- }
146
-
147
- #fancybox-right {
148
- right: 0px;
149
- }
150
-
151
- #fancybox-left-ico, #fancybox-right-ico {
152
- position: absolute;
153
- top: 50%;
154
- left: -9999px;
155
- width: 30px;
156
- height: 30px;
157
- margin-top: -15px;
158
- cursor: pointer;
159
- z-index: 110002;
160
- display: block;
161
- }
162
-
163
- #fancybox-left-ico {
164
- background-image: url('fancybox.png');
165
- background-position: -40px -30px;
166
- }
167
-
168
- #fancybox-right-ico {
169
- background-image: url('fancybox.png');
170
- background-position: -40px -60px;
171
- }
172
-
173
- #fancybox-left:hover, #fancybox-right:hover {
174
- visibility: visible; /* IE6 */
175
- }
176
-
177
- #fancybox-left:hover span {
178
- left: 20px;
179
- }
180
-
181
- #fancybox-right:hover span {
182
- left: auto;
183
- right: 20px;
184
- }
185
-
186
- .fancybox-bg {
187
- position: absolute;
188
- padding: 0;
189
- margin: 0;
190
- border: 0;
191
- width: 20px;
192
- height: 20px;
193
- z-index: 100001;
194
- }
195
-
196
- #fancybox-bg-n {
197
- top: -20px;
198
- left: 0;
199
- width: 100%;
200
- background-image: url('fancybox-x.png');
201
- }
202
-
203
- #fancybox-bg-ne {
204
- top: -20px;
205
- right: -20px;
206
- background-image: url('fancybox.png');
207
- background-position: -40px -162px;
208
- }
209
-
210
- #fancybox-bg-e {
211
- top: 0;
212
- right: -20px;
213
- height: 100%;
214
- background-image: url('fancybox-y.png');
215
- background-position: -20px 0px;
216
- }
217
-
218
- #fancybox-bg-se {
219
- bottom: -20px;
220
- right: -20px;
221
- background-image: url('fancybox.png');
222
- background-position: -40px -182px;
223
- }
224
-
225
- #fancybox-bg-s {
226
- bottom: -20px;
227
- left: 0;
228
- width: 100%;
229
- background-image: url('fancybox-x.png');
230
- background-position: 0px -20px;
231
- }
232
-
233
- #fancybox-bg-sw {
234
- bottom: -20px;
235
- left: -20px;
236
- background-image: url('fancybox.png');
237
- background-position: -40px -142px;
238
- }
239
-
240
- #fancybox-bg-w {
241
- top: 0;
242
- left: -20px;
243
- height: 100%;
244
- background-image: url('fancybox-y.png');
245
- }
246
-
247
- #fancybox-bg-nw {
248
- top: -20px;
249
- left: -20px;
250
- background-image: url('fancybox.png');
251
- background-position: -40px -122px;
252
- }
253
-
254
- #fancybox-title {
255
- font-family: Helvetica;
256
- font-size: 12px;
257
- z-index: 110002;
258
- }
259
-
260
- .fancybox-title-inside {
261
- padding-bottom: 10px;
262
- text-align: center;
263
- color: #333;
264
- background: #fff;
265
- position: relative;
266
- }
267
-
268
- .fancybox-title-outside {
269
- padding-top: 10px;
270
- color: #fff;
271
- }
272
-
273
- .fancybox-title-over {
274
- position: absolute;
275
- bottom: 0;
276
- left: 0;
277
- color: #FFF;
278
- text-align: left;
279
- }
280
-
281
- #fancybox-title-over {
282
- padding: 10px;
283
- background-image: url('fancy_title_over.png');
284
- display: block;
285
- }
286
-
287
- .fancybox-title-float {
288
- position: absolute;
289
- left: 0;
290
- bottom: -20px;
291
- height: 32px;
292
- }
293
-
294
- #fancybox-title-float-wrap {
295
- border: none;
296
- border-collapse: collapse;
297
- width: auto;
298
- }
299
-
300
- #fancybox-title-float-wrap td {
301
- border: none;
302
- white-space: nowrap;
303
- }
304
-
305
- #fancybox-title-float-left {
306
- padding: 0 0 0 15px;
307
- background: url('fancybox.png') -40px -90px no-repeat;
308
- }
309
-
310
- #fancybox-title-float-main {
311
- color: #FFF;
312
- line-height: 29px;
313
- font-weight: bold;
314
- padding: 0 0 3px 0;
315
- background: url('fancybox-x.png') 0px -40px;
316
- }
317
-
318
- #fancybox-title-float-right {
319
- padding: 0 0 0 15px;
320
- background: url('fancybox.png') -55px -90px no-repeat;
321
- }
322
-
323
- /* IE6 */
324
-
325
- .fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }
326
-
327
- .fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
328
- .fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }
329
-
330
- .fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
331
- .fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
332
- .fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
333
- .fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }
334
-
335
- .fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame {
336
- height: expression(this.parentNode.clientHeight + "px");
337
- }
338
-
339
- #fancybox-loading.fancybox-ie6 {
340
- position: absolute; margin-top: 0;
341
- top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px');
342
- }
343
-
344
- #fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }
345
-
346
- /* IE6, IE7, IE8 */
347
-
348
- .fancybox-ie .fancybox-bg { background: transparent !important; }
349
-
350
- .fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
351
- .fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
352
- .fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
353
- .fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
354
- .fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
355
- .fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
356
- .fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
357
- .fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fancybox/jquery.fancybox.js DELETED
@@ -1,46 +0,0 @@
1
- /*
2
- * FancyBox - jQuery Plugin
3
- * Simple and fancy lightbox alternative
4
- *
5
- * Examples and documentation at: http://fancybox.net
6
- *
7
- * Copyright (c) 2008 - 2010 Janis Skarnelis
8
- * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
9
- *
10
- * Version: 1.3.4 (11/11/2010)
11
- * Requires: jQuery v1.3+
12
- *
13
- * Dual licensed under the MIT and GPL licenses:
14
- * http://www.opensource.org/licenses/mit-license.php
15
- * http://www.gnu.org/licenses/gpl.html
16
- */
17
-
18
- ;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("<div/>")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
19
- F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)||
20
- c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=
21
- false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel",
22
- function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("<img />").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+e.width+'" height="'+e.height+'"><param name="movie" value="'+c+
23
- '"></param>';P="";b.each(e.swf,function(x,H){C+='<param name="'+x+'" value="'+H+'"></param>';P+=" "+x+'="'+H+'"'});C+='<embed src="'+c+'" type="application/x-shockwave-flash" width="'+e.width+'" height="'+e.height+'"'+P+"></embed></object>";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win==
24
- "function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('<div style="width:'+a+";height:"+c+
25
- ";overflow: "+(e.scrolling=="auto"?"auto":e.scrolling=="yes"?"scroll":"hidden")+';position:relative;"></div>');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor,
26
- opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length?
27
- d.titlePosition=="float"?'<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">'+s+'</td><td id="fancybox-title-float-right"></td></tr></table>':'<div id="fancybox-title-'+d.titlePosition+'">'+s+"</div>":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding});
28
- y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height==
29
- i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents());
30
- f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode==
31
- 37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto");
32
- s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" '+(b.browser.msie?'allowtransparency="true""':"")+' scrolling="'+e.scrolling+'" src="'+d.href+'"></iframe>').appendTo(j);
33
- f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c);
34
- j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type==
35
- "image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"),
36
- 10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)};
37
- b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k=
38
- 0,C=a.length;k<C;k++)if(typeof a[k]=="object")b(a[k]).data("fancybox",b.extend({},g,a[k]));else a[k]=b({}).data("fancybox",b.extend({content:a[k]},g));o=jQuery.merge(o,a)}else{if(typeof a=="object")b(a).data("fancybox",b.extend({},g,a));else a=b({}).data("fancybox",b.extend({content:a},g));o.push(a)}if(q>o.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+
39
- 1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a<l.length){q=a;I()}else if(d.cyclic&&l.length>1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h=
40
- true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1;
41
- b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5-
42
- d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('<div id="fancybox-tmp"></div>'),t=b('<div id="fancybox-loading"><div></div></div>'),u=b('<div id="fancybox-overlay"></div>'),f=b('<div id="fancybox-wrap"></div>'));D=b('<div id="fancybox-outer"></div>').append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>').appendTo(f);
43
- D.append(j=b('<div id="fancybox-content"></div>'),E=b('<a id="fancybox-close"></a>'),n=b('<div id="fancybox-title"></div>'),z=b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),A=b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()});
44
- b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('<iframe id="fancybox-hide-sel-frame" src="'+(/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank")+'" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(D)}}};
45
- b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",
46
- easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/admin.js DELETED
@@ -1,86 +0,0 @@
1
-
2
- jQuery(function() {
3
-
4
- // Tabs
5
- jQuery("#fbfwTabs").tabs();
6
-
7
- // Hide Donation and twitter stuff on tabs other than Info
8
- jQuery("#fbfwTabs li a").click(function() {
9
- if ( jQuery(this).is("#ui-id-1") ) {
10
- jQuery("#mfbfwd").show();
11
- } else {
12
- jQuery("#mfbfwd").hide();
13
- }
14
- });
15
-
16
-
17
- // Hide form fields when not needed (swithed by checkbox)
18
- function switchBlock(block,button) {
19
- var buttonValue = jQuery(button + ":checked").val();
20
- if ( buttonValue == "on" ) {
21
- jQuery(block).css("display", "inline");
22
- } else {
23
- jQuery(block).css("display", "none");
24
- }
25
-
26
- jQuery(button).click(function() {
27
- jQuery(block).animate({opacity: "toggle", height: "toggle"}, 500);
28
- });
29
- }
30
-
31
- switchBlock("#borderColorBlock","#border");
32
- switchBlock("#closeButtonBlock","#showCloseButton");
33
- switchBlock("#overlayBlock","#overlayShow");
34
- switchBlock("#titleBlock","#titleShow");
35
- switchBlock("#callbackBlock","#callbackEnable");
36
- switchBlock("#extraCallsBlock","#extraCallsEnable");
37
- switchBlock("#easingBlock","#easing");
38
-
39
-
40
- // Hide Title Color if not needed
41
- var titlePosition = jQuery("input:radio[class=titlePosition]:checked").val();
42
-
43
- switch (titlePosition) {
44
- case "float":
45
- case "outside":
46
- case "over":
47
- jQuery("#titleColorBlock").css("display", "none");
48
- }
49
-
50
- jQuery("#titlePositionFloat, #titlePositionOutside, #titlePositionOver").click(function() {
51
- jQuery("#titleColorBlock").hide("slow");
52
- });
53
-
54
- jQuery("#titlePositionInside").click(function() {
55
- jQuery("#titleColorBlock").show("slow");
56
- });
57
-
58
-
59
- // Gallery Type
60
- var galleryType = jQuery("input:radio[class=galleryType]:checked").val();
61
-
62
- switch (galleryType) {
63
- case "all":
64
- case "none":
65
- case "post":
66
- jQuery("#customExpressionBlock").css("display", "none");
67
- }
68
-
69
- jQuery("#galleryTypeAll, #galleryTypeNone, #galleryTypePost").click(function() {
70
- jQuery("#customExpressionBlock").hide("slow");
71
- });
72
-
73
- jQuery("#galleryTypeCustom").click(function() {
74
- jQuery("#customExpressionBlock").show("slow");
75
- });
76
-
77
- })
78
-
79
- function confirmDefaults() {
80
- if ( confirm(defaults_prompt) == true )
81
- return true;
82
- else
83
- return false;
84
- }
85
-
86
- var defaults_prompt = "Are you sure you want to restore FancyBox for WordPress to default settings?";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/jquery.easing.1.3.min.js DELETED
@@ -1,2 +0,0 @@
1
- /*jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ */
2
- jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def: 'easeOutQuad',swing: function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d);},easeInQuad: function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad: function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad: function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic: function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic: function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic: function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart: function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart: function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart: function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint: function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint: function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint: function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine: function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine: function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine: function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo: function(x,t,b,c,d){return(t==0)?b : c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo: function(x,t,b,c,d){return(t==d)?b+c : c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo: function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc: function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc: function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc: function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic: function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic: function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic: function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack: function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack: function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},easeInOutBack: function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce: function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b;},easeOutBounce: function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOutBounce: function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;}});jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d)},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b}});
 
 
js/jquery.mousewheel.3.0.4.pack.js DELETED
@@ -1,14 +0,0 @@
1
- /*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
2
- * Licensed under the MIT License (LICENSE.txt).
3
- *
4
- * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
5
- * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
6
- * Thanks to: Seamus Leahy for adding deltaX and deltaY
7
- *
8
- * Version: 3.0.4
9
- *
10
- * Requires: 1.2.2+
11
- */
12
-
13
- (function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=
14
- f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/mfbfw-de_DE.mo ADDED
Binary file
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 "Cyclic Galleries"
376
- msgstr "Galerías Cíclicas"
377
-
378
- #: lib/admin-tab-behaviour.php:87
379
- msgid ""
380
- "This will make galleries cyclic, 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.mo ADDED
Binary file
languages/mfbfw-pl_PL.mo ADDED
Binary file
languages/mfbfw-pl_PL.po ADDED
@@ -0,0 +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)"
languages/mfbfw-tr_TR.mo ADDED
Binary file
languages/mfbfw.pot CHANGED
@@ -1,741 +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:11
17
- msgid "Fancybox for WordPress (version %s)"
18
- msgstr ""
19
-
20
- #: admin.php:22
21
- msgid "Info"
22
- msgstr ""
23
-
24
- #: admin.php:23
25
- msgid "Appearance"
26
- msgstr ""
27
-
28
- #: admin.php:24
29
- msgid "Animations"
30
- msgstr ""
31
-
32
- #: admin.php:25
33
- msgid "Behaviour"
34
- msgstr ""
35
-
36
- #: admin.php:26
37
- msgid "Galleries"
38
- msgstr ""
39
-
40
- #: admin.php:27
41
- msgid "Miscellaneous"
42
- msgstr ""
43
-
44
- #: admin.php:28
45
- msgid "Extra Calls"
46
- msgstr ""
47
-
48
- #: admin.php:29
49
- msgid "Troubleshooting"
50
- msgstr ""
51
-
52
- #: admin.php:30 lib/admin-tab-support.php:1
53
- msgid "Support"
54
- msgstr ""
55
-
56
- #: admin.php:31 lib/admin-tab-uninstall.php:1
57
- msgid "Uninstall"
58
- msgstr ""
59
-
60
- #: admin.php:77
61
- msgid "Save Changes"
62
- msgstr ""
63
-
64
- #: admin.php:85
65
- msgid "Revert to defaults"
66
- msgstr ""
67
-
68
- #: admin.php:93
69
- msgid "If you use FancyBox and like it, buy the author a beer!"
70
- msgstr ""
71
-
72
- #: admin.php:110
73
- msgid "The author of this WordPress Plugin also likes beer :P"
74
- msgstr ""
75
-
76
- #: admin.php:120
77
- msgid "Follow me on Twitter for more WordPress Plugins and Themes"
78
- msgstr ""
79
-
80
- #: fancybox.php:404
81
- msgid "Settings"
82
- msgstr ""
83
-
84
- #: lib/admin-tab-animations.php:1
85
- msgid "Animation Settings <span style=\"color:green\">(basic)</span>"
86
- msgstr ""
87
-
88
- #: lib/admin-tab-animations.php:3
89
- msgid ""
90
- "These settings control the animations when opening and closing Fancybox, and "
91
- "the optional easing effects."
92
- msgstr ""
93
-
94
- #: lib/admin-tab-animations.php:9
95
- msgid "Zoom Options"
96
- msgstr ""
97
-
98
- #: lib/admin-tab-animations.php:15
99
- msgid "Change content transparency during zoom animations (default: on)"
100
- msgstr ""
101
-
102
- #: lib/admin-tab-animations.php:27
103
- msgid "Speed in miliseconds of the zooming-in animation (default: 500)"
104
- msgstr ""
105
-
106
- #: lib/admin-tab-animations.php:39
107
- msgid "Speed in miliseconds of the zooming-out animation (default: 500)"
108
- msgstr ""
109
-
110
- #: lib/admin-tab-animations.php:51
111
- msgid ""
112
- "Speed in miliseconds of the animation when navigating thorugh gallery items "
113
- "(default: 300)"
114
- msgstr ""
115
-
116
- #: lib/admin-tab-animations.php:59
117
- msgid "Transition Type"
118
- msgstr ""
119
-
120
- #: lib/admin-tab-animations.php:73
121
- msgid "Transition type when opening FancyBox. (default: fade)"
122
- msgstr ""
123
-
124
- #: lib/admin-tab-animations.php:86
125
- msgid "Transition type when closing FancyBox. (default: fade)"
126
- msgstr ""
127
-
128
- #: lib/admin-tab-animations.php:94
129
- msgid "Easing"
130
- msgstr ""
131
-
132
- #: lib/admin-tab-animations.php:100
133
- msgid "Activate easing (default: off)"
134
- msgstr ""
135
-
136
- #: lib/admin-tab-animations.php:103
137
- msgid "(Will load one additional javascript file, 8KB)"
138
- msgstr ""
139
-
140
- #: lib/admin-tab-animations.php:117
141
- msgid "Easing method when opening FancyBox. (default: easeOutBack)"
142
- msgstr ""
143
-
144
- #: lib/admin-tab-animations.php:120
145
- msgid "(Requires opening transition type to be set to elastic)"
146
- msgstr ""
147
-
148
- #: lib/admin-tab-animations.php:132
149
- msgid "Easing method when closing FancyBox. (default: easeInBack)"
150
- msgstr ""
151
-
152
- #: lib/admin-tab-animations.php:135
153
- msgid "(Requires closing transition type to be set to elastic)"
154
- msgstr ""
155
-
156
- #: lib/admin-tab-animations.php:147
157
- msgid ""
158
- "Easing method when navigating through gallery items. (default: "
159
- "easeInOutQuart)"
160
- msgstr ""
161
-
162
- #: lib/admin-tab-animations.php:150
163
- msgid ""
164
- "(There are 30 different easing methods, the first ones are the most boring. "
165
- "You can test them <a href=\"http://commadot.com/jquery/easing.php\" target="
166
- "\"_blank\">here</a> or <a href=\"http://hosted.zeh.com.br/mctween/"
167
- "animationtypes.html\" target=\"_blank\">here</a>)"
168
- msgstr ""
169
-
170
- #: lib/admin-tab-appearance.php:1
171
- msgid "Appearance Settings <span style=\"color:green\">(basic)</span>"
172
- msgstr ""
173
-
174
- #: lib/admin-tab-appearance.php:3
175
- msgid ""
176
- "These setting control how Fancybox looks, they let you tweak color, borders "
177
- "and position of elements, like the image title and closing buttons."
178
- msgstr ""
179
-
180
- #: lib/admin-tab-appearance.php:9
181
- msgid "Border"
182
- msgstr ""
183
-
184
- #: lib/admin-tab-appearance.php:15
185
- msgid "Show Border (default: off)"
186
- msgstr ""
187
-
188
- #: lib/admin-tab-appearance.php:22
189
- msgid "HTML color of the border (default: #BBBBBB)"
190
- msgstr ""
191
-
192
- #: lib/admin-tab-appearance.php:32
193
- msgid "Close Button"
194
- msgstr ""
195
-
196
- #: lib/admin-tab-appearance.php:38
197
- msgid "Show Close button (default: on)"
198
- msgstr ""
199
-
200
- #: lib/admin-tab-appearance.php:43
201
- msgid "Close button position:"
202
- msgstr ""
203
-
204
- #: lib/admin-tab-appearance.php:46
205
- msgid "Left"
206
- msgstr ""
207
-
208
- #: lib/admin-tab-appearance.php:51
209
- msgid "Right (default)"
210
- msgstr ""
211
-
212
- #: lib/admin-tab-appearance.php:56
213
- msgid "Bottom"
214
- msgstr ""
215
-
216
- #: lib/admin-tab-appearance.php:61
217
- msgid "Top (default)"
218
- msgstr ""
219
-
220
- #: lib/admin-tab-appearance.php:71
221
- msgid "Padding"
222
- msgstr ""
223
-
224
- #: lib/admin-tab-appearance.php:77
225
- msgid "HTML color of the padding (default: #FFFFFF)"
226
- msgstr ""
227
-
228
- #: lib/admin-tab-appearance.php:80
229
- msgid ""
230
- "(This should be left on #FFFFFF (white) if you want to display anything "
231
- "other than images, like inline or framed content)"
232
- msgstr ""
233
-
234
- #: lib/admin-tab-appearance.php:84
235
- msgid "Padding size in pixels (default: 10)"
236
- msgstr ""
237
-
238
- #: lib/admin-tab-appearance.php:92
239
- msgid "Overlay Options"
240
- msgstr ""
241
-
242
- #: lib/admin-tab-appearance.php:98
243
- msgid "Add overlay (default: on)"
244
- msgstr ""
245
-
246
- #: lib/admin-tab-appearance.php:105
247
- msgid "HTML color of the overlay (default: #666666)"
248
- msgstr ""
249
-
250
- #: lib/admin-tab-appearance.php:118
251
- msgid "Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)"
252
- msgstr ""
253
-
254
- #: lib/admin-tab-appearance.php:128
255
- msgid "Title"
256
- msgstr ""
257
-
258
- #: lib/admin-tab-appearance.php:134
259
- msgid "Show the title (default: on)"
260
- msgstr ""
261
-
262
- #: lib/admin-tab-appearance.php:141
263
- msgid "Inside (default)"
264
- msgstr ""
265
-
266
- #: lib/admin-tab-appearance.php:146
267
- msgid "Outside"
268
- msgstr ""
269
-
270
- #: lib/admin-tab-appearance.php:151
271
- msgid "Over"
272
- msgstr ""
273
-
274
- #: lib/admin-tab-appearance.php:158
275
- msgid "Title text color (default: #333333)"
276
- msgstr ""
277
-
278
- #: lib/admin-tab-appearance.php:161
279
- msgid "(Should contrast with the padding color set above)"
280
- msgstr ""
281
-
282
- #: lib/admin-tab-appearance.php:172
283
- msgid "Navigation Arrows"
284
- msgstr ""
285
-
286
- #: lib/admin-tab-appearance.php:178
287
- msgid "Show the navigation arrows (default: on)"
288
- msgstr ""
289
-
290
- #: lib/admin-tab-behaviour.php:1
291
- msgid "Behavior Settings <span style=\"color:orange\">(medium)</span>"
292
- msgstr ""
293
-
294
- #: lib/admin-tab-behaviour.php:3
295
- msgid ""
296
- "The following settings should be left alone unless you know what you are "
297
- "doing."
298
- msgstr ""
299
-
300
- #: lib/admin-tab-behaviour.php:9
301
- msgid "Auto Resize to Fit"
302
- msgstr ""
303
-
304
- #: lib/admin-tab-behaviour.php:15
305
- msgid "Scale images to fit in viewport (default: on)"
306
- msgstr ""
307
-
308
- #: lib/admin-tab-behaviour.php:23
309
- msgid "Center on Scroll"
310
- msgstr ""
311
-
312
- #: lib/admin-tab-behaviour.php:29
313
- msgid ""
314
- "Keep image in the center of the browser window when scrolling (default: on)"
315
- msgstr ""
316
-
317
- #: lib/admin-tab-behaviour.php:37
318
- msgid "Close on Content Click"
319
- msgstr ""
320
-
321
- #: lib/admin-tab-behaviour.php:43
322
- msgid "Close FancyBox by clicking on the image (default: off)"
323
- msgstr ""
324
-
325
- #: lib/admin-tab-behaviour.php:46
326
- msgid ""
327
- "(You may want to leave this off if you display iframed or inline content "
328
- "that containts clickable elements - for example: play buttons for movies, "
329
- "links to other pages)"
330
- msgstr ""
331
-
332
- #: lib/admin-tab-behaviour.php:53
333
- msgid "Close on Overlay Click"
334
- msgstr ""
335
-
336
- #: lib/admin-tab-behaviour.php:59
337
- msgid "Close FancyBox by clicking on the overlay sorrounding it (default: on)"
338
- msgstr ""
339
-
340
- #: lib/admin-tab-behaviour.php:67
341
- msgid "Close with &quot;Esc&quot;"
342
- msgstr ""
343
-
344
- #: lib/admin-tab-behaviour.php:73
345
- msgid "Close FancyBox when &quot;Escape&quot; key is pressed (default: on)"
346
- msgstr ""
347
-
348
- #: lib/admin-tab-behaviour.php:81
349
- msgid "Cyclic Galleries"
350
- msgstr ""
351
-
352
- #: lib/admin-tab-behaviour.php:87
353
- msgid ""
354
- "This will make galleries cyclic, allowing you to keep pressing next/back "
355
- "(default: off)"
356
- msgstr ""
357
-
358
- #: lib/admin-tab-behaviour.php:95
359
- msgid "Mouse Wheel Navigation"
360
- msgstr ""
361
-
362
- #: lib/admin-tab-behaviour.php:101
363
- msgid "Lets visitors navigate galleries with the mouse wheel (default: off)"
364
- msgstr ""
365
-
366
- #: lib/admin-tab-behaviour.php:104
367
- msgid "(Will load one additional javascript file, 3KB)"
368
- msgstr ""
369
-
370
- #: lib/admin-tab-calls.php:1
371
- msgid "Extra FancyBox Calls <span style=\"color:red\">(advanced)</span>"
372
- msgstr ""
373
-
374
- #: lib/admin-tab-calls.php:3
375
- msgid ""
376
- "Here you can add as many additional calls to fancybox as you want, with "
377
- "different settings. For example, if you want to use fancybox with iframes or "
378
- "ajax on any specific link, you can configure those calls here without "
379
- "affecting the settings for images."
380
- msgstr ""
381
-
382
- #: lib/admin-tab-calls.php:5
383
- msgid ""
384
- "For information on the options available you can use here see <a href="
385
- "\"http://fancybox.net/api\">FancyBox's API & Options page</a>."
386
- msgstr ""
387
-
388
- #: lib/admin-tab-calls.php:11
389
- msgid "Additional FancyBox Calls"
390
- msgstr ""
391
-
392
- #: lib/admin-tab-calls.php:17
393
- msgid "Additional FancyBox Calls (default: off)"
394
- msgstr ""
395
-
396
- #: lib/admin-tab-calls.php:26 lib/admin-tab-other.php:89
397
- msgid "Example:"
398
- msgstr ""
399
-
400
- #: lib/admin-tab-galleries.php:1
401
- msgid "Gallery Settings <span style=\"color:red\">(advanced)</span>"
402
- msgstr ""
403
-
404
- #: lib/admin-tab-galleries.php:3
405
- msgid ""
406
- "Here you can choose if you want the plugin to group all images into a "
407
- "gallery, or make a gallery for each post. You can also define you own jQuery "
408
- "expression if you like."
409
- msgstr ""
410
-
411
- #: lib/admin-tab-galleries.php:9
412
- msgid "Gallery Type"
413
- msgstr ""
414
-
415
- #: lib/admin-tab-galleries.php:15
416
- msgid "Make a gallery for all images on the page (default)"
417
- msgstr ""
418
-
419
- #: lib/admin-tab-galleries.php:20
420
- msgid ""
421
- "Do not group images in gallery automatically (use this if you want to make "
422
- "galleries manually with the <code>REL</code> attribute)"
423
- msgstr ""
424
-
425
- #: lib/admin-tab-galleries.php:25
426
- msgid ""
427
- "Make a gallery for each post (will only work if your theme uses <code>class="
428
- "\"post\"</code> on each post, which is common in WordPress"
429
- msgstr ""
430
-
431
- #: lib/admin-tab-galleries.php:30
432
- msgid "Use a custom expression to apply FancyBox"
433
- msgstr ""
434
-
435
- #: lib/admin-tab-galleries.php:39
436
- msgid "Custom expression guidelines:"
437
- msgstr ""
438
-
439
- #: lib/admin-tab-galleries.php:41
440
- msgid ""
441
- "&middot; The custom expression has to apply <code>class=\"fancybox\"</code> "
442
- "to the links where you want to use FancyBox. Do not call the <code>fancybox()"
443
- "</code> function here, the plugin does this for you."
444
- msgstr ""
445
-
446
- #: lib/admin-tab-galleries.php:43
447
- msgid ""
448
- "&middot; The jQuery <code>addClass()</code> function is a good way to add "
449
- "the class to the desired links conserving any existing class."
450
- msgstr ""
451
-
452
- #: lib/admin-tab-galleries.php:45
453
- msgid ""
454
- "&middot; You can use <code>getTitle()</code> in your expression to copy the "
455
- "title attribute from the <code>IMG</code> tag to the <code>A</code> tag, so "
456
- "that FancyBox can show captions."
457
- msgstr ""
458
-
459
- #: lib/admin-tab-galleries.php:47
460
- msgid ""
461
- "&middot; You can use <code>jQuery(thumbnails)</code> like in the example "
462
- "expression to apply FancyBox to thumbnails that link to these extensions: "
463
- "BMP, GIF, JPG, JPEG, PNG (both lowercase and uppercase)."
464
- msgstr ""
465
-
466
- #: lib/admin-tab-galleries.php:49
467
- msgid ""
468
- "&middot; If you want to do it manually you can use something like "
469
- "<code>jQuery(\"a:has(img)[href$='.jpg']\")</code> or whatever works for you."
470
- msgstr ""
471
-
472
- #: lib/admin-tab-galleries.php:51
473
- msgid ""
474
- "See the <a href=\"http://docs.jquery.com/\" target=\"_blank\">jQuery "
475
- "Documentation</a> for more help."
476
- msgstr ""
477
-
478
- #: lib/admin-tab-galleries.php:53
479
- msgid "Examples:"
480
- msgstr ""
481
-
482
- #: lib/admin-tab-info.php:1
483
- msgid "Information"
484
- msgstr ""
485
-
486
- #: lib/admin-tab-info.php:3
487
- msgid ""
488
- "<a target=\"_blank\" href=\"http://fancybox.net\">FancyBox</a> developed by "
489
- "<a target=\"_blank\" href=\"http://fancybox.net\">Janis Skarnelis</a>, "
490
- "ported to WordPress by <a target=\"_blank\" href=\"http://twitter.com/moskis"
491
- "\">Jos&eacute; Pardilla</a>. Licensed under the <a target=\"_blank\" href="
492
- "\"http://en.wikipedia.org/wiki/MIT_License\">MIT License</a>."
493
- msgstr ""
494
-
495
- #: lib/admin-tab-info.php:5
496
- msgid ""
497
- "As you can see, this plugin has many options you can edit, but have no fear, "
498
- "you can leave everything as it is if you don't want to get your hands dirty, "
499
- "since the default options should be a good start... :)"
500
- msgstr ""
501
-
502
- #: lib/admin-tab-info.php:7
503
- msgid ""
504
- "If you are an advanced user you can <a target=\"_blank\" href=\"https://"
505
- "github.com/moskis/fancybox-for-wordpress\">follow the plugin in Github</a>, "
506
- "fork it or help submitting fixes!"
507
- msgstr ""
508
-
509
- #: lib/admin-tab-info.php:9
510
- msgid ""
511
- "<strong>Note:</strong> Having a cache plugin may prevent changes from taking "
512
- "effect immidiately, if this happens clear cache after saving changes here or "
513
- "deactivate cache until you finish editing these options."
514
- msgstr ""
515
-
516
- #: lib/admin-tab-other.php:1
517
- msgid "Other Settings <span style=\"color:red\">(advanced)</span>"
518
- msgstr ""
519
-
520
- #: lib/admin-tab-other.php:3
521
- msgid "These are additional settings for advanced users."
522
- msgstr ""
523
-
524
- #: lib/admin-tab-other.php:9
525
- msgid "Dimensions"
526
- msgstr ""
527
-
528
- #: lib/admin-tab-other.php:15
529
- msgid "Auto detect dimensions (default: on)"
530
- msgstr ""
531
-
532
- #: lib/admin-tab-other.php:18
533
- msgid ""
534
- "Only works with <strong>Ajax</strong> and <strong>Inline</strong> content! "
535
- "Flash dimensions won't be autodetected so specify them below if necessary. "
536
- "If you want to insert several pieces of flash content with different "
537
- "dimensions you will have to use the <strong>Additional FancyBox Calls</"
538
- "strong> option."
539
- msgstr ""
540
-
541
- #: lib/admin-tab-other.php:22
542
- msgid ""
543
- "Width for iframe and swf content. Also set for inline content if "
544
- "<em>autoDimensions</em> is disabled (default: 560)"
545
- msgstr ""
546
-
547
- #: lib/admin-tab-other.php:27
548
- msgid ""
549
- "Height for iframe and swf content. Also set for inline content if "
550
- "<em>autoDimensions</em> is disabled (default: 340)"
551
- msgstr ""
552
-
553
- #: lib/admin-tab-other.php:35
554
- msgid "Load JavaScript in Footer"
555
- msgstr ""
556
-
557
- #: lib/admin-tab-other.php:41
558
- msgid ""
559
- "Loads JavaScript at the end of the blog's HTML (experimental) (default: off)"
560
- msgstr ""
561
-
562
- #: lib/admin-tab-other.php:44
563
- msgid ""
564
- "This option won't be recognized if you use <strong>Parallel Load</strong> "
565
- "plugin. In that case, you can do this from Parallel Load's options."
566
- msgstr ""
567
-
568
- #: lib/admin-tab-other.php:51
569
- msgid "Callbacks"
570
- msgstr ""
571
-
572
- #: lib/admin-tab-other.php:57
573
- msgid "Enable callbacks (default: off)"
574
- msgstr ""
575
-
576
- #: lib/admin-tab-other.php:60
577
- msgid "Enabling this will show additional settings."
578
- msgstr ""
579
-
580
- #: lib/admin-tab-other.php:65
581
- msgid ""
582
- "Callback on <strong>Start</strong> event: Will be called right before "
583
- "attempting to load the content"
584
- msgstr ""
585
-
586
- #: lib/admin-tab-other.php:70
587
- msgid ""
588
- "Callback on <strong>Cancel</strong> event: Will be called after loading is "
589
- "canceled"
590
- msgstr ""
591
-
592
- #: lib/admin-tab-other.php:75
593
- msgid ""
594
- "Callback on <strong>Complete</strong> event: Will be called once the content "
595
- "is displayed"
596
- msgstr ""
597
-
598
- #: lib/admin-tab-other.php:80
599
- msgid ""
600
- "Callback on <strong>CleanUp</strong> event: Will be called just before "
601
- "closing"
602
- msgstr ""
603
-
604
- #: lib/admin-tab-other.php:85
605
- msgid ""
606
- "Callback on <strong>Closed</strong> event: Will be called once FancyBox is "
607
- "closed"
608
- msgstr ""
609
-
610
- #: lib/admin-tab-other.php:91
611
- msgid "Leave empty any speciic callbacks you don't need to use."
612
- msgstr ""
613
-
614
- #: lib/admin-tab-support.php:3
615
- msgid "Help with Fancybox"
616
- msgstr ""
617
-
618
- #: lib/admin-tab-support.php:5
619
- msgid ""
620
- "If you have problems or questions about FancyBox itself (and not this "
621
- "WordPress plugin), please start with these links: <a target=\"_blank\" href="
622
- "\"http://fancybox.net/howto\">How-To</a> & <a target=\"_blank\" href="
623
- "\"http://fancybox.net/faq\">FAQ</a>.<br />If that does not help, go to <a "
624
- "href=\"http://groups.google.com/group/fancybox\">the FancyBox Google Group</"
625
- "a>, use the <strong>Search</strong> option, and if necesary, post your "
626
- "question."
627
- msgstr ""
628
-
629
- #: lib/admin-tab-support.php:8
630
- msgid "Help with Fancybox for WordPress plugin"
631
- msgstr ""
632
-
633
- #: lib/admin-tab-support.php:10
634
- msgid ""
635
- "Try to localize the problem (switch your theme and deactivate plugins until "
636
- "you find the source of the problem). You can also try the Troubleshooting "
637
- "settings of this plugin if necesary."
638
- msgstr ""
639
-
640
- #: lib/admin-tab-support.php:11
641
- msgid ""
642
- "Try reverting the plugin's settings to their defaults with the button below."
643
- msgstr ""
644
-
645
- #: lib/admin-tab-support.php:12
646
- msgid ""
647
- "If you still can not get the plugin to work, <a target=\"_blank\" href="
648
- "\"http://wordpress.org/support/plugin/fancybox-for-wordpress#postform"
649
- "\">write a post in the WordPress Support forums</a> explaining the problem "
650
- "or take a look and the <a target=\"_blank\" href=\"http://wordpress.org/"
651
- "support/plugin/fancybox-for-wordpress\">already posted messages</a>."
652
- msgstr ""
653
-
654
- #: lib/admin-tab-support.php:15
655
- msgid "IMPORTANT:"
656
- msgstr ""
657
-
658
- #: lib/admin-tab-support.php:15
659
- msgid ""
660
- "When posting your problem please provide a link to your blog and the page "
661
- "where the error is found, and all relevant information you can, especially "
662
- "your theme, plugins, etc."
663
- msgstr ""
664
-
665
- #: lib/admin-tab-troubleshooting.php:1
666
- msgid "Troubleshooting Settings"
667
- msgstr ""
668
-
669
- #: lib/admin-tab-troubleshooting.php:3
670
- msgid ""
671
- "Settings in this section should only be changed if you are having problems "
672
- "with the plugin!"
673
- msgstr ""
674
-
675
- #: lib/admin-tab-troubleshooting.php:5
676
- msgid ""
677
- "If the plugin doesn't seem to work, first you should check for other plugins "
678
- "that may be conflicting with this one, especially other Lightbox, Slimbox, "
679
- "etc. Make sure all your plugins and WordPress itself are up to date (this "
680
- "plugin has only been tested in WordPress 2.7 and above)."
681
- msgstr ""
682
-
683
- #: lib/admin-tab-troubleshooting.php:7
684
- msgid ""
685
- "Change them one at a time and test to see if they help. Remember that having "
686
- "a cache plugin may prevent changes from taking effect immidiately, so clear "
687
- "cache after saving changes here or deactivate cache until you finish editing "
688
- "these options."
689
- msgstr ""
690
-
691
- #: lib/admin-tab-troubleshooting.php:13
692
- msgid "Do not call jQuery"
693
- msgstr ""
694
-
695
- #: lib/admin-tab-troubleshooting.php:19
696
- msgid ""
697
- "Skip jQuery call. Use this only if jQuery is being loaded twice (default: "
698
- "off)"
699
- msgstr ""
700
-
701
- #: lib/admin-tab-uninstall.php:3
702
- msgid ""
703
- "Like many other plugins, FancyBox for WordPress stores its settings on your "
704
- "WordPress' options database table. Actually, these settings are not using "
705
- "more than a couple of kilobytes of space, but if you want to completely "
706
- "uninstall this plugin, check the option below, then save changes, and "
707
- "<strong>when you deactivate the plugin</strong>, all its settings will be "
708
- "removed from the database."
709
- msgstr ""
710
-
711
- #: lib/admin-tab-uninstall.php:9
712
- msgid "Remove settings"
713
- msgstr ""
714
-
715
- #: lib/admin-tab-uninstall.php:15
716
- msgid ""
717
- "Remove Settings when plugin is deactivated from the \"Manage Plugins\" page. "
718
- "(default: off)"
719
- msgstr ""
720
-
721
- #. Plugin Name of the plugin/theme
722
- msgid "FancyBox for WordPress"
723
- msgstr ""
724
-
725
- #. Plugin URI of the plugin/theme
726
- msgid "https://wordpress.org/plugins/fancybox-for-wordpress/"
727
- msgstr ""
728
-
729
- #. Description of the plugin/theme
730
- msgid ""
731
- "Integrates <a href=\"http://fancybox.net/\">FancyBox</a> by <a href=\"http://"
732
- "klade.lv/\">Janis Skarnelis</a> into WordPress."
733
- msgstr ""
734
-
735
- #. Author of the plugin/theme
736
- msgid "Jos&eacute; Pardilla"
737
- msgstr ""
738
-
739
- #. Author URI of the plugin/theme
740
- msgid "http://twitter.com/moskis"
741
- 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
@@ -11,10 +11,7 @@ $settings = get_option( 'mfbfw' );
11
  $version = get_option('mfbfw_active_version');
12
 
13
  // Make selects data
14
- $transitionTypeArray = array( 'fade', 'elastic', '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
- $easingArray = array( 'easeInQuad', 'easeOutQuad', 'easeInOutQuad', 'easeInCubic', 'easeOutCubic', 'easeInOutCubic', 'easeInQuart', 'easeOutQuart',
18
- 'easeInOutQuart', 'easeInQuint', 'easeOutQuint', 'easeInOutQuint', 'easeInSine', 'easeOutSine', 'easeInOutSine', 'easeInExpo',
19
- 'easeOutExpo', 'easeInOutExpo', 'easeInCirc', 'easeOutCirc', 'easeInOutCirc', 'easeInElastic', 'easeOutElastic', 'easeInOutElastic',
20
- 'easeInBack', 'easeOutBack', 'easeInOutBack', 'easeInBounce', 'easeOutBounce', 'easeInOutBounce' );
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,159 +1,78 @@
1
- <h2><?php _e('Animation Settings <span style="color:green">(basic)</span>', 'mfbfw'); ?></h2>
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" style="clear:none;">
6
- <tbody>
7
-
8
- <tr valign="top">
9
- <th scope="row"><?php _e('Zoom Options', 'mfbfw'); ?></th>
10
- <td>
11
- <fieldset>
12
-
13
- <label for="zoomOpacity">
14
- <input type="checkbox" name="mfbfw[zoomOpacity]" id="zoomOpacity"<?php if ( isset($settings['zoomOpacity']) && $settings['zoomOpacity'] ) echo ' checked="yes"';?> />
15
- <?php _e('Change content transparency during zoom animations (default: on)', 'mfbfw'); ?>
16
- </label><br /><br />
17
-
18
- <label for="zoomSpeedIn">
19
- <select name="mfbfw[zoomSpeedIn]" id="zoomSpeedIn">
20
- <?php
21
- foreach($msArray as $key=> $ms) {
22
- if($settings['zoomSpeedIn'] != $ms) $selected = '';
23
- else $selected = ' selected';
24
- echo "<option value='$ms'$selected>$ms</option>\n";
25
- } ?>
26
- </select>
27
- <?php _e('Speed in miliseconds of the zooming-in animation (default: 500)', 'mfbfw'); ?>
28
- </label><br /><br />
29
-
30
- <label for="zoomSpeedOut">
31
- <select name="mfbfw[zoomSpeedOut]" id="zoomSpeedOut">
32
- <?php
33
- foreach($msArray as $key=> $ms) {
34
- if($settings['zoomSpeedOut'] != $ms) $selected = '';
35
- else $selected = ' selected';
36
- echo "<option value='$ms'$selected>$ms</option>\n";
37
- } ?>
38
- </select>
39
- <?php _e('Speed in miliseconds of the zooming-out animation (default: 500)', 'mfbfw'); ?>
40
- </label><br /><br />
41
-
42
- <label for="zoomSpeedChange">
43
- <select name="mfbfw[zoomSpeedChange]" id="zoomSpeedChange">
44
- <?php
45
- foreach($msArray as $key=> $ms) {
46
- if($settings['zoomSpeedChange'] != $ms) $selected = '';
47
- else $selected = ' selected';
48
- echo "<option value='$ms'$selected>$ms</option>\n";
49
- } ?>
50
- </select>
51
- <?php _e('Speed in miliseconds of the animation when navigating thorugh gallery items (default: 300)', 'mfbfw'); ?>
52
- </label><br /><br />
53
-
54
- </fieldset>
55
- </td>
56
- </tr>
57
-
58
- <tr valign="top">
59
- <th scope="row"><?php _e('Transition Type', 'mfbfw'); ?></th>
60
- <td>
61
- <fieldset>
62
-
63
- <label for="transitionIn">
64
- <select name="mfbfw[transitionIn]" id="transitionIn">
65
- <?php
66
- foreach($transitionTypeArray as $key=> $transitionIn) {
67
- if($settings['transitionIn'] != $transitionIn) $selected = '';
68
- else $selected = ' selected';
69
- echo "<option value='$transitionIn'$selected>$transitionIn</option>\n";
70
- }
71
- ?>
72
- </select>
73
- <?php _e('Transition type when opening FancyBox. (default: fade)', 'mfbfw'); ?>
74
- </label><br /><br />
75
-
76
- <label for="transitionOut">
77
- <select name="mfbfw[transitionOut]" id="transitionOut">
78
- <?php
79
- foreach($transitionTypeArray as $key=> $transitionOut) {
80
- if($settings['transitionOut'] != $transitionOut) $selected = '';
81
- else $selected = ' selected';
82
- echo "<option value='$transitionOut'$selected>$transitionOut</option>\n";
83
- }
84
- ?>
85
- </select>
86
- <?php _e('Transition type when closing FancyBox. (default: fade)', 'mfbfw'); ?>
87
- </label><br /><br />
88
-
89
- </fieldset>
90
- </td>
91
- </tr>
92
-
93
- <tr valign="top">
94
- <th scope="row"><?php _e('Easing', 'mfbfw'); ?></th>
95
- <td>
96
- <fieldset>
97
-
98
- <label for="easing">
99
- <input type="checkbox" name="mfbfw[easing]" id="easing"<?php if ( isset($settings['easing']) && $settings['easing'] ) echo ' checked="yes"';?> />
100
- <?php _e('Activate easing (default: off)', 'mfbfw'); ?>
101
- </label><br />
102
-
103
- <small><em><?php _e('(Will load one additional javascript file, 8KB)', 'mfbfw'); ?></em></small><br /><br />
104
-
105
- <div id="easingBlock">
106
-
107
- <label for="easingIn">
108
- <select name="mfbfw[easingIn]" id="easingIn">
109
- <?php
110
- foreach($easingArray as $key=> $easingIn) {
111
- if( $settings['easingIn'] != $easingIn ) $selected = '';
112
- else $selected = ' selected';
113
- echo "<option value='$easingIn'$selected>$easingIn</option>\n";
114
- }
115
- ?>
116
- </select>
117
- <?php _e('Easing method when opening FancyBox. (default: easeOutBack)', 'mfbfw'); ?>
118
- </label><br />
119
-
120
- <small><em><?php _e('(Requires opening transition type to be set to elastic)', 'mfbfw'); ?></em></small><br /><br />
121
-
122
- <label for="easingOut">
123
- <select name="mfbfw[easingOut]" id="easingOut">
124
- <?php
125
- foreach($easingArray as $key=> $easingOut) {
126
- if( $settings['easingOut'] != $easingOut ) $selected = '';
127
- else $selected = ' selected';
128
- echo "<option value='$easingOut'$selected>$easingOut</option>\n";
129
- }
130
- ?>
131
- </select>
132
- <?php _e('Easing method when closing FancyBox. (default: easeInBack)', 'mfbfw'); ?>
133
- </label><br />
134
-
135
- <small><em><?php _e('(Requires closing transition type to be set to elastic)', 'mfbfw'); ?></em></small><br /><br />
136
-
137
- <label for="easingChange">
138
- <select name="mfbfw[easingChange]" id="easingChange">
139
- <?php
140
- foreach($easingArray as $key=> $easingChange) {
141
- if( isset($settings['easingChange']) && $settings['easingChange'] != $easingChange ) $selected = '';
142
- else $selected = ' selected';
143
- echo "<option value='$easingChange'$selected>$easingChange</option>\n";
144
- }
145
- ?>
146
- </select>
147
- <?php _e('Easing method when navigating through gallery items. (default: easeInOutQuart)', 'mfbfw'); ?>
148
- </label><br />
149
-
150
- <small><em><?php _e('(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>)', 'mfbfw'); ?></em></small><br /><br />
151
-
152
- </div>
153
-
154
- </fieldset>
155
- </td>
156
- </tr>
157
-
158
- </tbody>
159
- </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,186 +1,179 @@
1
- <h2><?php _e('Appearance Settings <span style="color:green">(basic)</span>', 'mfbfw'); ?></h2>
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" style="clear:none;">
6
- <tbody>
7
-
8
- <tr valign="top">
9
- <th scope="row"><?php _e('Border', 'mfbfw'); ?></th>
10
- <td>
11
- <fieldset>
12
-
13
- <label for="border">
14
- <input type="checkbox" name="mfbfw[border]" id="border"<?php if ( isset($settings['border']) && $settings['border'] ) echo ' checked="yes"';?> />
15
- <?php _e('Show Border (default: off)', 'mfbfw'); ?>
16
- </label><br /><br />
17
-
18
- <div id="borderColorBlock">
19
-
20
- <label for="borderColor">
21
- <input type="text" name="mfbfw[borderColor]" id="borderColor" value="<?php echo $settings['borderColor'] ?>" size="7" maxlength="7" />
22
- <?php _e('HTML color of the border (default: #BBBBBB)', 'mfbfw'); ?>
23
- </label><br /><br />
24
-
25
- </div>
26
-
27
- </fieldset>
28
- </td>
29
- </tr>
30
-
31
- <tr valign="top">
32
- <th scope="row"><?php _e('Close Button', 'mfbfw'); ?></th>
33
- <td>
34
- <fieldset>
35
-
36
- <label for="showCloseButton">
37
- <input type="checkbox" name="mfbfw[showCloseButton]" id="showCloseButton"<?php if ( isset($settings['showCloseButton']) && $settings['showCloseButton'] ) echo ' checked="yes"';?> />
38
- <?php _e('Show Close button (default: on)', 'mfbfw'); ?>
39
- </label><br /><br />
40
-
41
- <div id="closeButtonBlock">
42
-
43
- <?php _e('Close button position:', 'mfbfw'); ?><br />
44
- <input name="mfbfw[closeHorPos]" type="radio" value="left" id="closePosLeft"<?php if ( isset($settings['closeHorPos']) && $settings['closeHorPos'] == 'left' ) echo ' checked="yes"';?> />
45
- <label for="closePosLeft" style="padding-right:15px">
46
- <?php _e('Left', 'mfbfw'); ?>
47
- </label>
48
-
49
- <input name="mfbfw[closeHorPos]" type="radio" value="right" id="closePosRight"<?php if ( isset($settings['closeHorPos']) && $settings['closeHorPos'] == 'right' ) echo ' checked="yes"';?> />
50
- <label for="closePosRight">
51
- <?php _e('Right (default)', 'mfbfw'); ?>
52
- </label><br />
53
-
54
- <input name="mfbfw[closeVerPos]" type="radio" value="bottom" id="closePosBottom"<?php if ( isset($settings['closeVerPos']) && $settings['closeVerPos'] == 'bottom' ) echo ' checked="yes"';?> />
55
- <label for="closePosBottom" style="padding-right:15px">
56
- <?php _e('Bottom', 'mfbfw'); ?>
57
- </label>
58
-
59
- <input name="mfbfw[closeVerPos]" type="radio" value="top" id="closePosTop"<?php if ( isset($settings['closeVerPos']) && $settings['closeVerPos'] == 'top' ) echo ' checked="yes"';?> />
60
- <label for="closePosTop">
61
- <?php _e('Top (default)', 'mfbfw'); ?>
62
- </label><br /><br />
63
-
64
- </div>
65
-
66
- </fieldset>
67
- </td>
68
- </tr>
69
-
70
- <tr valign="top">
71
- <th scope="row"><?php _e('Padding', 'mfbfw'); ?></th>
72
- <td>
73
- <fieldset>
74
-
75
- <label for="paddingColor">
76
- <input type="text" name="mfbfw[paddingColor]" id="paddingColor" value="<?php echo $settings['paddingColor'] ?>" size="7" maxlength="7" />
77
- <?php _e('HTML color of the padding (default: #FFFFFF)', 'mfbfw'); ?>
78
- </label><br />
79
-
80
- <small><em><?php _e('(This should be left on #FFFFFF (white) if you want to display anything other than images, like inline or framed content)', 'mfbfw'); ?></em></small><br /><br />
81
-
82
- <label for="padding">
83
- <input type="text" name="mfbfw[padding]" id="padding" value="<?php echo $settings['padding']; ?>" size="7" maxlength="7" />
84
- <?php _e('Padding size in pixels (default: 10)', 'mfbfw'); ?>
85
- </label><br /><br />
86
-
87
- </fieldset>
88
- </td>
89
- </tr>
90
-
91
- <tr valign="top">
92
- <th scope="row"><?php _e('Overlay Options', 'mfbfw'); ?></th>
93
- <td>
94
- <fieldset>
95
-
96
- <label for="overlayShow">
97
- <input type="checkbox" name="mfbfw[overlayShow]" id="overlayShow"<?php if ( isset($settings['overlayShow']) && $settings['overlayShow'] ) echo ' checked="yes"';?> />
98
- <?php _e('Add overlay (default: on)', 'mfbfw'); ?>
99
- </label><br /><br />
100
-
101
- <div id="overlayBlock">
102
-
103
- <label for="overlayColor">
104
- <input type="text" name="mfbfw[overlayColor]" id="overlayColor" value="<?php echo $settings['overlayColor']; ?>" size="7" maxlength="7" />
105
- <?php _e('HTML color of the overlay (default: #666666)', 'mfbfw'); ?>
106
- </label><br /><br />
107
-
108
- <label for="overlayOpacity">
109
- <select name="mfbfw[overlayOpacity]" id="overlayOpacity">
110
- <?php
111
- foreach($overlayArray as $key=> $opacity) {
112
- if($settings['overlayOpacity'] != $opacity) $selected = '';
113
- else $selected = ' selected';
114
- echo "<option value='$opacity'$selected>$opacity</option>\n";
115
- }
116
- ?>
117
- </select>
118
- <?php _e('Opacity of overlay. 0 is transparent, 1 is opaque (default: 0.3)', 'mfbfw'); ?>
119
- </label><br /><br />
120
-
121
- </div>
122
-
123
- </fieldset>
124
- </td>
125
- </tr>
126
-
127
- <tr valign="top">
128
- <th scope="row"><?php _e('Title', 'mfbfw'); ?></th>
129
- <td>
130
- <fieldset>
131
-
132
- <label for="titleShow">
133
- <input type="checkbox" name="mfbfw[titleShow]" id="titleShow"<?php if ( isset($settings['titleShow']) && $settings['titleShow'] ) echo ' checked="yes"';?> />
134
- <?php _e('Show the title (default: on)', 'mfbfw'); ?>
135
- </label><br /><br />
136
-
137
- <div id="titleBlock">
138
-
139
- <input id="titlePositionInside" class="titlePosition" type="radio" value="inside" name="mfbfw[titlePosition]"<?php if ($settings['titlePosition'] == 'inside') echo ' checked="yes"';?> />
140
- <label for="titlePositionInside">
141
- <?php _e('Inside (default)', 'mfbfw'); ?>
142
- </label><br />
143
-
144
- <input id="titlePositionOutside" class="titlePosition" type="radio" value="float" name="mfbfw[titlePosition]"<?php if ($settings['titlePosition'] == 'float') echo ' checked="yes"';?> />
145
- <label for="titlePositionOutside">
146
- <?php _e('Outside', 'mfbfw'); ?>
147
- </label><br />
148
-
149
- <input id="titlePositionOver" class="titlePosition" type="radio" value="over" name="mfbfw[titlePosition]"<?php if ($settings['titlePosition'] == 'over') echo ' checked="yes"';?> />
150
- <label for="titlePositionOver">
151
- <?php _e('Over', 'mfbfw'); ?>
152
- </label><br /><br />
153
-
154
- <div id="titleColorBlock">
155
-
156
- <label for="titleColor">
157
- <input type="text" name="mfbfw[titleColor]" id="titleColor" class="colorpick" value="<?php echo $settings['titleColor']; ?>" size="7" maxlength="7" />
158
- <?php _e('Title text color (default: #333333)', 'mfbfw'); ?>
159
- </label><br />
160
-
161
- <small><em><?php _e('(Should contrast with the padding color set above)', 'mfbfw'); ?></em></small><br /><br />
162
-
163
- </div>
164
-
165
- </div>
166
-
167
- </fieldset>
168
- </td>
169
- </tr>
170
-
171
- <tr valign="top">
172
- <th scope="row"><?php _e('Navigation Arrows', 'mfbfw'); ?></th>
173
- <td>
174
- <fieldset>
175
-
176
- <label for="showNavArrows">
177
- <input type="checkbox" name="mfbfw[showNavArrows]" id="showNavArrows"<?php if ( isset($settings['showNavArrows']) && $settings['showNavArrows'] ) echo ' checked="yes"';?> />
178
- <?php _e('Show the navigation arrows (default: on)', 'mfbfw'); ?>
179
- </label><br /><br />
180
-
181
- </fieldset>
182
- </td>
183
- </tr>
184
-
185
- </tbody>
186
- </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,111 +1,102 @@
1
- <h2><?php _e('Behavior Settings <span style="color:orange">(medium)</span>', 'mfbfw'); ?></h2>
2
-
3
- <p><?php _e('The following settings should be left alone unless you know what you are doing.', 'mfbfw'); ?></p>
4
-
5
- <table class="form-table" style="clear:none;">
6
- <tbody>
7
-
8
- <tr valign="top">
9
- <th scope="row"><?php _e('Auto Resize to Fit', 'mfbfw'); ?></th>
10
- <td>
11
- <fieldset>
12
-
13
- <label for="imageScale">
14
- <input type="checkbox" name="mfbfw[imageScale]" id="imageScale"<?php if ( isset($settings['imageScale']) && $settings['imageScale'] ) echo ' checked="yes"';?> />
15
- <?php _e('Scale images to fit in viewport (default: on)', 'mfbfw'); ?>
16
- </label><br /><br />
17
-
18
- </fieldset>
19
- </td>
20
- </tr>
21
-
22
- <tr valign="top">
23
- <th scope="row"><?php _e('Center on Scroll', 'mfbfw'); ?></th>
24
- <td>
25
- <fieldset>
26
-
27
- <label for="centerOnScroll">
28
- <input type="checkbox" name="mfbfw[centerOnScroll]" id="centerOnScroll"<?php if ( isset($settings['centerOnScroll']) && $settings['centerOnScroll'] ) echo ' checked="yes"';?> />
29
- <?php _e('Keep image in the center of the browser window when scrolling (default: on)', 'mfbfw'); ?>
30
- </label><br /><br />
31
-
32
- </fieldset>
33
- </td>
34
- </tr>
35
-
36
- <tr valign="top">
37
- <th scope="row"><?php _e('Close on Content Click', 'mfbfw'); ?></th>
38
- <td>
39
- <fieldset>
40
-
41
- <label for="hideOnContentClick">
42
- <input type="checkbox" name="mfbfw[hideOnContentClick]" id="hideOnContentClick"<?php if ( isset($settings['hideOnContentClick']) && $settings['hideOnContentClick'] ) echo ' checked="yes"';?> />
43
- <?php _e('Close FancyBox by clicking on the image (default: off)', 'mfbfw'); ?>
44
- </label><br />
45
-
46
- <small><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'); ?></em></small><br /><br />
47
-
48
- </fieldset>
49
- </td>
50
- </tr>
51
-
52
- <tr valign="top">
53
- <th scope="row"><?php _e('Close on Overlay Click', 'mfbfw'); ?></th>
54
- <td>
55
- <fieldset>
56
-
57
- <label for="hideOnOverlayClick">
58
- <input type="checkbox" name="mfbfw[hideOnOverlayClick]" id="hideOnOverlayClick"<?php if ( isset($settings['hideOnOverlayClick']) && $settings['hideOnOverlayClick'] ) echo ' checked="yes"';?> />
59
- <?php _e('Close FancyBox by clicking on the overlay sorrounding it (default: on)', 'mfbfw'); ?>
60
- </label><br /><br />
61
-
62
- </fieldset>
63
- </td>
64
- </tr>
65
-
66
- <tr valign="top">
67
- <th scope="row"><?php _e('Close with &quot;Esc&quot;', 'mfbfw'); ?></th>
68
- <td>
69
- <fieldset>
70
-
71
- <label for="enableEscapeButton">
72
- <input type="checkbox" name="mfbfw[enableEscapeButton]" id="enableEscapeButton"<?php if ( isset($settings['enableEscapeButton']) && $settings['enableEscapeButton'] ) echo ' checked="yes"';?> />
73
- <?php _e('Close FancyBox when &quot;Escape&quot; key is pressed (default: on)', 'mfbfw'); ?>
74
- </label><br /><br />
75
-
76
- </fieldset>
77
- </td>
78
- </tr>
79
-
80
- <tr valign="top">
81
- <th scope="row"><?php _e('Cyclic Galleries', 'mfbfw'); ?></th>
82
- <td>
83
- <fieldset>
84
-
85
- <label for="cyclic">
86
- <input type="checkbox" name="mfbfw[cyclic]" id="cyclic"<?php if ( isset($settings['cyclic']) && $settings['cyclic'] ) echo ' checked="yes"';?> />
87
- <?php _e('This will make galleries cyclic, allowing you to keep pressing next/back (default: off)', 'mfbfw'); ?>
88
- </label><br /><br />
89
-
90
- </fieldset>
91
- </td>
92
- </tr>
93
-
94
- <tr valign="top">
95
- <th scope="row"><?php _e('Mouse Wheel Navigation', 'mfbfw'); ?></th>
96
- <td>
97
- <fieldset>
98
-
99
- <label for="mouseWheel">
100
- <input type="checkbox" name="mfbfw[mouseWheel]" id="mouseWheel"<?php if ( isset($settings['mouseWheel']) && $settings['mouseWheel'] ) echo ' checked="yes"';?> />
101
- <?php _e('Lets visitors navigate galleries with the mouse wheel (default: off)', 'mfbfw'); ?>
102
- </label><br />
103
-
104
- <small><em><?php _e('(Will load one additional javascript file, 3KB)', 'mfbfw'); ?></em></small><br /><br />
105
-
106
- </fieldset>
107
- </td>
108
- </tr>
109
-
110
- </tbody>
111
- </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-calls.php DELETED
@@ -1,43 +0,0 @@
1
- <h2><?php _e('Extra FancyBox Calls <span style="color:red">(advanced)</span>', 'mfbfw'); ?></h2>
2
-
3
- <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>
4
-
5
- <p><?php _e('For information on the options available you can use here see <a href="http://fancybox.net/api">FancyBox\'s API & Options page</a>.', 'mfbfw'); ?></p>
6
-
7
- <table class="form-table" style="clear:none;">
8
- <tbody>
9
-
10
- <tr valign="top">
11
- <th scope="row"><?php _e('Additional FancyBox Calls', 'mfbfw'); ?></th>
12
- <td>
13
- <fieldset>
14
-
15
- <label for="extraCallsEnable">
16
- <input type="checkbox" name="mfbfw[extraCallsEnable]" id="extraCallsEnable"<?php if ( isset($settings['extraCallsEnable']) && $settings['extraCallsEnable'] ) echo ' checked="yes"';?> />
17
- <?php _e('Additional FancyBox Calls (default: off)', 'mfbfw'); ?>
18
- </label><br /><br />
19
-
20
- <div id="extraCallsBlock">
21
-
22
- <label for="extraCalls">
23
- <textarea rows="20" cols="50" class="large-text code" name="mfbfw[extraCallsData]" wrap="physical" id="extraCalls"><?php echo ($settings['extraCallsData']); ?></textarea>
24
- </label><br /><br />
25
-
26
- <small><strong><em><?php _e('Example:', 'mfbfw'); ?></em></strong></small><br />
27
- <small><em><code>
28
- jQuery("#login a").fancybox({<br />
29
- &nbsp;&nbsp;'transitionIn': 'elastic',<br />
30
- &nbsp;&nbsp;'transitionOut': 'elastic',<br />
31
- &nbsp;&nbsp;'speedIn': 600,<br />
32
- &nbsp;&nbsp;'speedOut': 200,<br />
33
- &nbsp;&nbsp;'type': 'iframe'<br />
34
- });
35
- </code></em></small><br /><br />
36
- </div>
37
-
38
- </fieldset>
39
- </td>
40
- </tr>
41
-
42
- </tbody>
43
- </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lib/admin-tab-galleries.php CHANGED
@@ -1,66 +1,54 @@
1
- <h2><?php _e('Gallery Settings <span style="color:red">(advanced)</span>', 'mfbfw'); ?></h2>
2
-
3
- <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>
4
-
5
- <table class="form-table" style="clear:none;">
6
- <tbody>
7
-
8
- <tr valign="top">
9
- <th scope="row"><?php _e('Gallery Type', 'mfbfw'); ?></th>
10
- <td>
11
- <fieldset>
12
-
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 />
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 />
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 />
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
-
33
- <div id="customExpressionBlock">
34
-
35
- <label for="mfbfw[customExpression]">
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
-
39
- <small><strong><em><?php _e('Custom expression guidelines:', 'mfbfw'); ?></em></strong></small><br />
40
-
41
- <small><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></small><br />
42
-
43
- <small><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></small><br />
44
-
45
- <small><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></small><br />
46
-
47
- <small><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></small><br />
48
-
49
- <small><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></small><br />
50
-
51
- <small><em><?php _e('See the <a href="http://docs.jquery.com/" target="_blank">jQuery Documentation</a> for more help.', 'mfbfw'); ?></em></small><br /><br />
52
-
53
- <small><strong><em><?php _e('Examples:', 'mfbfw'); ?></em></strong></small><br />
54
-
55
- <small><em><code>jQuery(thumbnails).addClass(&quot;fancybox&quot;).attr(&quot;rel&quot;,&quot;fancybox&quot;).getTitle();</code></em></small><br />
56
-
57
- <small><em><code>jQuery&quot;a:has(img)[href$='.jpg']&quot;).addClass&quot;fancybox&quot;).attr(&quot;rel&quot;,&quot;fancybox&quot;).getTitle();</code></em></small><br /><br />
58
-
59
- </div>
60
-
61
- </fieldset>
62
- </td>
63
- </tr>
64
-
65
- </tbody>
66
- </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-info.php DELETED
@@ -1,9 +0,0 @@
1
- <h2><?php _e('Information', 'mfbfw'); ?></h2>
2
-
3
- <p><?php _e('<a target="_blank" href="http://fancybox.net">FancyBox</a> developed by <a target="_blank" href="http://fancybox.net">Janis Skarnelis</a>, ported to WordPress by <a target="_blank" href="http://twitter.com/moskis">Jos&eacute; Pardilla</a>. Licensed under the <a target="_blank" href="http://en.wikipedia.org/wiki/MIT_License">MIT License</a>.', 'mfbfw'); ?></p>
4
-
5
- <p><?php _e('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 don\'t want to get your hands dirty, since the default options should be a good start... :)', 'mfbfw'); ?></p>
6
-
7
- <p><?php _e('If you are an advanced user you can <a target="_blank" href="https://github.com/moskis/fancybox-for-wordpress">follow the plugin in Github</a>, fork it or help submitting fixes!', 'mfbfw'); ?></p>
8
-
9
- <small><em><?php _e('<strong>Note:</strong> Having a cache plugin may prevent changes from taking effect immidiately, if this happens clear cache after saving changes here or deactivate cache until you finish editing these options.', 'mfbfw'); ?></em></small><br /><br />
 
 
 
 
 
 
 
 
 
lib/admin-tab-other.php CHANGED
@@ -1,100 +1,199 @@
1
- <h2><?php _e('Other Settings <span style="color:red">(advanced)</span>', 'mfbfw'); ?></h2>
2
-
3
- <p><?php _e('These are additional settings for advanced users.', 'mfbfw'); ?></p>
4
-
5
- <table class="form-table" style="clear:none;">
6
- <tbody>
7
-
8
- <tr valign="top">
9
- <th scope="row"><?php _e('Dimensions', 'mfbfw'); ?></th>
10
- <td>
11
- <fieldset>
12
-
13
- <label for="autoDimensions">
14
- <input type="checkbox" name="mfbfw[autoDimensions]" id="autoDimensions"<?php if ( isset($settings['autoDimensions']) && $settings['autoDimensions'] ) echo ' checked="yes"';?> />
15
- <?php _e('Auto detect dimensions (default: on)', 'mfbfw'); ?>
16
- </label><br />
17
-
18
- <small><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></small><br /><br />
19
-
20
- <label for="frameWidth">
21
- <input type="text" name="mfbfw[frameWidth]" id="frameWidth" value="<?php echo $settings['frameWidth']; ?>" size="4" maxlength="4" />
22
- <?php _e('Width for iframe and swf content. Also set for inline content if <em>autoDimensions</em> is disabled (default: 560)', 'mfbfw'); ?>
23
- </label><br /><br />
24
-
25
- <label for="frameHeight">
26
- <input type="text" name="mfbfw[frameHeight]" id="frameHeight" value="<?php echo $settings['frameHeight']; ?>" size="4" maxlength="4" />
27
- <?php _e('Height for iframe and swf content. Also set for inline content if <em>autoDimensions</em> is disabled (default: 340)', 'mfbfw'); ?>
28
- </label><br /><br />
29
-
30
- </fieldset>
31
- </td>
32
- </tr>
33
-
34
- <tr valign="top">
35
- <th scope="row"><?php _e('Load JavaScript in Footer', 'mfbfw'); ?></th>
36
- <td>
37
- <fieldset>
38
-
39
- <label for="loadAtFooter">
40
- <input type="checkbox" name="mfbfw[loadAtFooter]" id="loadAtFooter"<?php if ( isset($settings['loadAtFooter']) && $settings['loadAtFooter'] ) echo ' checked="yes"';?> />
41
- <?php _e('Loads JavaScript at the end of the blog\'s HTML (experimental) (default: off)', 'mfbfw'); ?>
42
- </label><br />
43
-
44
- <small><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></small><br /><br />
45
-
46
- </fieldset>
47
- </td>
48
- </tr>
49
-
50
- <tr valign="top">
51
- <th scope="row"><?php _e('Callbacks', 'mfbfw'); ?></th>
52
- <td>
53
- <fieldset>
54
-
55
- <label for="callbackEnable">
56
- <input type="checkbox" name="mfbfw[callbackEnable]" id="callbackEnable"<?php if ( isset($settings['callbackEnable']) && $settings['callbackEnable'] ) echo ' checked="yes"';?> />
57
- <?php _e('Enable callbacks (default: off)', 'mfbfw'); ?>
58
- </label><br />
59
-
60
- <small><em><?php _e('Enabling this will show additional settings.', 'mfbfw'); ?></em></small><br /><br />
61
-
62
- <div id="callbackBlock">
63
-
64
- <label for="callbackOnStart">
65
- <?php _e('Callback on <strong>Start</strong> event: Will be called right before attempting to load the content', 'mfbfw'); ?>
66
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnStart]" wrap="physical" id="callbackOnStart"><?php echo ($settings['callbackOnStart']); ?></textarea>
67
- </label><br /><br />
68
-
69
- <label for="callbackOnCancel">
70
- <?php _e('Callback on <strong>Cancel</strong> event: Will be called after loading is canceled', 'mfbfw'); ?>
71
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnCancel]" wrap="physical" id="callbackOnCancel"><?php echo ($settings['callbackOnCancel']); ?></textarea>
72
- </label><br /><br />
73
-
74
- <label for="callbackOnComplete">
75
- <?php _e('Callback on <strong>Complete</strong> event: Will be called once the content is displayed', 'mfbfw'); ?>
76
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnComplete]" wrap="physical" id="callbackOnComplete"><?php echo ($settings['callbackOnComplete']); ?></textarea>
77
- </label><br /><br />
78
-
79
- <label for="callbackOnCleanup">
80
- <?php _e('Callback on <strong>CleanUp</strong> event: Will be called just before closing', 'mfbfw'); ?>
81
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnCleanup]" wrap="physical" id="callbackOnCleanup"><?php echo ($settings['callbackOnCleanup']); ?></textarea>
82
- </label><br /><br />
83
-
84
- <label for="callbackOnClosed">
85
- <?php _e('Callback on <strong>Closed</strong> event: Will be called once FancyBox is closed', 'mfbfw'); ?>
86
- <textarea rows="10" cols="50" class="large-text code" name="mfbfw[callbackOnClose]" wrap="physical" id="callbackOnClosed"><?php echo ($settings['callbackOnClose']); ?></textarea>
87
- </label><br /><br/>
88
-
89
- <small><strong><em><?php _e('Example:', 'mfbfw'); ?></em></strong></small><br />
90
- <small><em><code>function() { alert('Hello world!'); }</code></em></small><br />
91
- <small><em><?php _e('Leave empty any speciic callbacks you don\'t need to use.', 'mfbfw'); ?></em></small><br /><br />
92
-
93
- </div>
94
-
95
- </fieldset>
96
- </td>
97
- </tr>
98
-
99
- </tbody>
100
- </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,15 +1,13 @@
1
- <h2><?php _e('Support', 'mfbfw'); ?></h2>
 
 
 
2
 
3
- <h3><?php _e('Help with Fancybox'); ?></h3>
4
- <ul style="list-style-type:disc;padding-left:15px;">
5
- <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://fancybox.net/howto">How-To</a> & <a target="_blank" href="http://fancybox.net/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.', 'mfbfw'); ?></li>
6
- </ul>
 
 
7
 
8
- <h3><?php _e('Help with Fancybox for WordPress plugin'); ?></h3>
9
- <ul style="list-style-type:disc;padding-left:15px;">
10
- <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>
11
- <li><?php _e("Try reverting the plugin's settings to their defaults with the button below.", 'mfbfw'); ?></li>
12
- <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>
13
- </ul>
14
-
15
- <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/admin-tab-troubleshooting.php DELETED
@@ -1,27 +0,0 @@
1
- <h2><?php _e('Troubleshooting Settings', 'mfbfw'); ?></h2>
2
-
3
- <p><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></p>
4
-
5
- <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>
6
-
7
- <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><br />
8
-
9
- <table class="form-table" style="clear:none;">
10
- <tbody>
11
-
12
- <tr valign="top">
13
- <th scope="row"><?php _e('Do not call jQuery', 'mfbfw'); ?></th>
14
- <td>
15
- <fieldset>
16
-
17
- <label for="nojQuery">
18
- <input type="checkbox" name="mfbfw[nojQuery]" id="nojQuery"<?php if ( isset($settings['nojQuery']) && $settings['nojQuery'] ) echo ' checked="yes"';?> />
19
- <?php _e('Skip jQuery call. Use this only if jQuery is being loaded twice (default: off)', 'mfbfw'); ?>
20
- </label><br />
21
-
22
- </fieldset>
23
- </td>
24
- </tr>
25
-
26
- </tbody>
27
- </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lib/admin-tab-uninstall.php DELETED
@@ -1,23 +0,0 @@
1
- <h2><?php _e('Uninstall', 'mfbfw'); ?></h2>
2
-
3
- <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>
4
-
5
- <table class="form-table" style="clear:none;">
6
- <tbody>
7
-
8
- <tr valign="top">
9
- <th scope="row"><?php _e('Remove settings', 'mfbfw'); ?></th>
10
- <td>
11
- <fieldset>
12
-
13
- <label for="uninstall">
14
- <input type="checkbox" name="mfbfw[uninstall]" id="uninstall"<?php if ( isset($settings['uninstall']) && $settings['uninstall'] ) echo ' checked="yes"';?> />
15
- <?php _e('Remove Settings when plugin is deactivated from the "Manage Plugins" page. (default: off)', 'mfbfw'); ?>
16
- </label><br /><br />
17
-
18
- </fieldset>
19
- </td>
20
- </tr>
21
-
22
- </tbody>
23
- </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lib/class-fbfw-plugin-rollback.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ [
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' ), [
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
+
72
+ new FBFW_Plugin_Rollback();
lib/class-fbfw-rollback.php ADDED
@@ -0,0 +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 = [] ) {
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 = [
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
@@ -2,8 +2,8 @@
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.6
6
- Stable tag: 3.0.10
7
  License: GPL/MIT
8
 
9
  Seamlessly integrates FancyBox lightbox into your WordPress blog: Upload, activate, and you're done. Additional configuration optional.
@@ -23,14 +23,22 @@ You can see the plugin working on a <a href="http://blog.moskis.net/2012/01/20/t
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/" rel="friend" 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/" rel="friend">start a blog</a> or <a href="https://colorlib.com/wp/how-to-make-a-website/" rel="friend">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" rel="friend">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.0.7 =
35
 
36
  * Updated Fancybox library
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.0
7
  License: GPL/MIT
8
 
9
  Seamlessly integrates FancyBox lightbox into your WordPress blog: Upload, activate, and you're done. Additional configuration optional.
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.0 =
35
+ * Updated FancyBox library to the latest version
36
+ * Changed Admin UI
37
+
38
+ = 3.0.12 =
39
+
40
+ Fixed errors causes by WordPress SVN.
41
+
42
  = 3.0.7 =
43
 
44
  * Updated Fancybox library