YITH WooCommerce Zoom Magnifier - Version 2.0.2

Version Description

Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Zoom Magnifier
Version 2.0.2
Comparing to
See all releases

Code changes from version 2.0.1 to 2.0.2

Files changed (35) hide show
  1. assets/css/admin.css +131 -131
  2. assets/css/frontend.css +103 -103
  3. assets/css/yith_magnifier.css +90 -85
  4. assets/icons/lightbox.svg +17 -17
  5. assets/icons/zoom.svg +18 -18
  6. assets/js/init.prettyPhoto.js +935 -935
  7. assets/js/jquery.carouFredSel.js +3822 -3822
  8. assets/js/jquery.carouFredSel.min.js +1 -1
  9. assets/js/jquery.min.js +1 -1
  10. assets/js/yith_magnifier.js +1041 -1041
  11. assets/js/ywzm_backend.js +88 -88
  12. assets/js/ywzm_frontend.js +285 -285
  13. changelog.txt +190 -190
  14. init.php +155 -154
  15. languages/yith-woocommerce-zoom-magnifier-es_ES.po +410 -200
  16. languages/yith-woocommerce-zoom-magnifier-it_IT.po +476 -223
  17. languages/yith-woocommerce-zoom-magnifier.pot +2 -2
  18. lib/class.yith-wcmg-admin.php +97 -97
  19. lib/class.yith-wcmg-frontend.php +370 -370
  20. lib/class.yith-woocommerce-zoom-magnifier.php +177 -177
  21. lib/class.yith-ywzm-plugin-fw-loader.php +266 -266
  22. lib/compatibility/class-yith-wczm-compatibility.php +113 -113
  23. lib/compatibility/class-yith-wczm-elementor-compatibility.php +102 -102
  24. lib/compatibility/elementor/class-yith-wczm-product-images-widget.php +80 -80
  25. lib/functions.yith-ywzm.php +41 -0
  26. plugin-fw/LICENSE.txt +695 -695
  27. plugin-fw/assets/css/admin.css +333 -333
  28. plugin-fw/assets/css/codemirror/codemirror.css +260 -260
  29. plugin-fw/assets/css/colorbox.css +65 -65
  30. plugin-fw/assets/css/elementor.css +35 -35
  31. plugin-fw/assets/css/metaboxes.css +751 -751
  32. plugin-fw/assets/css/yit-plugin-panel.css +1087 -1087
  33. plugin-fw/assets/css/yit-upgrade-to-pro.css +82 -82
  34. plugin-fw/assets/css/yit-upgrader.css +21 -21
  35. plugin-fw/assets/css/yith-fields.css +0 -1395
assets/css/admin.css CHANGED
@@ -1,131 +1,131 @@
1
- .yith_woocommerce_slider {
2
- width: 300px;
3
- float: left
4
- }
5
-
6
- .yith_woocommerce_slider_value {
7
- margin-top: -5px;
8
- margin-left: 10px;
9
- width: 50px;
10
- float: left;
11
- text-align: center;
12
- font-weight: bold;
13
- }
14
-
15
- #eg-wrap .select_fake { /* solve back-end conflict with Essential Grid */
16
- height: 24px;
17
- }
18
-
19
- .yith-plugins_page_yith_woocommerce_zoom-magnifier_panel .yith-plugin-fw-dimensions__dimensions{
20
- max-width: 250px;
21
- }
22
-
23
- #yith_wcmg_slider_sizes .yith-plugin-fw-dimensions__linked{
24
- display: none;
25
- }
26
-
27
- #yith_wcmg_slider_radius, #ywzm_zoom_icon_size, #ywzm_lightbox_icon_size, #yith_wcmg_zoom_radius, #yith_wcmg_lightbox_radius{
28
- max-width: 75px;
29
- }
30
-
31
-
32
- .ywzm-admin-wrap-content{
33
- background: white;
34
- padding: 20px;
35
- }
36
-
37
- .yith-plugin-ui .ywzm-admin-wrap-content h2 {
38
- border: 0;
39
- border-top-color: currentcolor;
40
- border-top-style: none;
41
- border-top-width: 0px;
42
- padding: 0;
43
- }
44
-
45
-
46
- .ywzm-admin-no-posts {
47
- text-align: center;
48
- padding: 50px;
49
- }
50
-
51
- .ywzm-admin-no-posts-logo {
52
- padding-bottom: 10px;
53
- }
54
-
55
- .ywzm-admin-no-posts-text {
56
- font-size: 16px;
57
- line-height: 30px;
58
- margin-top: 20px;
59
- }
60
-
61
- .ywzm-admin-no-posts a.page-title-action {
62
- padding: 5px 30px !important;
63
- }
64
-
65
- .ywzm-admin-no-posts-text p {
66
- font-size: 14px;
67
- line-height: 1em;
68
- }
69
-
70
- .wrap-title {
71
- display: flex;
72
- align-items: center;
73
- }
74
-
75
- .yith-plugins_page_yith_woocommerce_zoom-magnifier_panel .ui-dialog-buttonpane .ui-button {
76
- box-shadow: none;
77
- background: #007694;
78
- color: #fff;
79
- border: 0;
80
- }
81
-
82
-
83
- table.excluded_categories td,
84
- table.excluded_categories th,
85
- table.excluded_products td,
86
- table.excluded_products th {
87
- vertical-align: middle;
88
- }
89
-
90
- table.excluded_categories .column-image,
91
- table.excluded_products .column-image {
92
- width: 52px;
93
- text-align: center;
94
- white-space: nowrap;
95
- }
96
-
97
- table.excluded_categories .column-image img,
98
- table.excluded_products .column-image img {
99
- margin: 0;
100
- width: auto;
101
- height: auto;
102
- max-width: 40px;
103
- max-height: 40px;
104
- }
105
-
106
- table.excluded_categories .column-slug,
107
- table.excluded_categories .column-name {
108
- width: 25%;
109
- }
110
-
111
- table.excluded_categories .column-count {
112
- width: 74px;
113
- }
114
-
115
- table.excluded_categories .column-actions,
116
- table.excluded_products .column-actions {
117
- width: 100px;
118
- }
119
-
120
- .wp-core-ui .yith-plugin-ui .ywzm-admin-wrap-content .button-secondary,
121
- .wp-core-ui .yith-plugin-ui .ywzm-admin-wrap-content .button-primary {
122
- line-height: 30px;
123
- }
124
- .ywzm-admin-wrap-content {
125
- background: white;
126
- padding: 20px;
127
- }
128
-
129
- .ywzm-admin-wrap-content input#add {
130
- margin-top: 7px;
131
- }
1
+ .yith_woocommerce_slider {
2
+ width: 300px;
3
+ float: left
4
+ }
5
+
6
+ .yith_woocommerce_slider_value {
7
+ margin-top: -5px;
8
+ margin-left: 10px;
9
+ width: 50px;
10
+ float: left;
11
+ text-align: center;
12
+ font-weight: bold;
13
+ }
14
+
15
+ #eg-wrap .select_fake { /* solve back-end conflict with Essential Grid */
16
+ height: 24px;
17
+ }
18
+
19
+ .yith-plugins_page_yith_woocommerce_zoom-magnifier_panel .yith-plugin-fw-dimensions__dimensions{
20
+ max-width: 250px;
21
+ }
22
+
23
+ #yith_wcmg_slider_sizes .yith-plugin-fw-dimensions__linked{
24
+ display: none;
25
+ }
26
+
27
+ #yith_wcmg_slider_radius, #ywzm_zoom_icon_size, #ywzm_lightbox_icon_size, #yith_wcmg_zoom_radius, #yith_wcmg_lightbox_radius{
28
+ max-width: 75px;
29
+ }
30
+
31
+
32
+ .ywzm-admin-wrap-content{
33
+ background: white;
34
+ padding: 20px;
35
+ }
36
+
37
+ .yith-plugin-ui .ywzm-admin-wrap-content h2 {
38
+ border: 0;
39
+ border-top-color: currentcolor;
40
+ border-top-style: none;
41
+ border-top-width: 0px;
42
+ padding: 0;
43
+ }
44
+
45
+
46
+ .ywzm-admin-no-posts {
47
+ text-align: center;
48
+ padding: 50px;
49
+ }
50
+
51
+ .ywzm-admin-no-posts-logo {
52
+ padding-bottom: 10px;
53
+ }
54
+
55
+ .ywzm-admin-no-posts-text {
56
+ font-size: 16px;
57
+ line-height: 30px;
58
+ margin-top: 20px;
59
+ }
60
+
61
+ .ywzm-admin-no-posts a.page-title-action {
62
+ padding: 5px 30px !important;
63
+ }
64
+
65
+ .ywzm-admin-no-posts-text p {
66
+ font-size: 14px;
67
+ line-height: 1em;
68
+ }
69
+
70
+ .wrap-title {
71
+ display: flex;
72
+ align-items: center;
73
+ }
74
+
75
+ .yith-plugins_page_yith_woocommerce_zoom-magnifier_panel .ui-dialog-buttonpane .ui-button {
76
+ box-shadow: none;
77
+ background: #007694;
78
+ color: #fff;
79
+ border: 0;
80
+ }
81
+
82
+
83
+ table.excluded_categories td,
84
+ table.excluded_categories th,
85
+ table.excluded_products td,
86
+ table.excluded_products th {
87
+ vertical-align: middle;
88
+ }
89
+
90
+ table.excluded_categories .column-image,
91
+ table.excluded_products .column-image {
92
+ width: 52px;
93
+ text-align: center;
94
+ white-space: nowrap;
95
+ }
96
+
97
+ table.excluded_categories .column-image img,
98
+ table.excluded_products .column-image img {
99
+ margin: 0;
100
+ width: auto;
101
+ height: auto;
102
+ max-width: 40px;
103
+ max-height: 40px;
104
+ }
105
+
106
+ table.excluded_categories .column-slug,
107
+ table.excluded_categories .column-name {
108
+ width: 25%;
109
+ }
110
+
111
+ table.excluded_categories .column-count {
112
+ width: 74px;
113
+ }
114
+
115
+ table.excluded_categories .column-actions,
116
+ table.excluded_products .column-actions {
117
+ width: 100px;
118
+ }
119
+
120
+ .wp-core-ui .yith-plugin-ui .ywzm-admin-wrap-content .button-secondary,
121
+ .wp-core-ui .yith-plugin-ui .ywzm-admin-wrap-content .button-primary {
122
+ line-height: 30px;
123
+ }
124
+ .ywzm-admin-wrap-content {
125
+ background: white;
126
+ padding: 20px;
127
+ }
128
+
129
+ .ywzm-admin-wrap-content input#add {
130
+ margin-top: 7px;
131
+ }
assets/css/frontend.css CHANGED
@@ -1,103 +1,103 @@
1
- /* gallery */
2
- .yith_magnifier_gallery {
3
- margin: 0;
4
- padding: 0;
5
- text-align: center;
6
- }
7
-
8
- .yith_magnifier_gallery li {
9
- position: relative;
10
- display: inline-block;
11
- vertical-align: center;
12
- top: 0;
13
- }
14
-
15
- /* .yith_magnifier_gallery li.last {
16
- margin-right: 0;
17
- } */
18
-
19
- .yith_magnifier_gallery li a {
20
- width: 100% !important;
21
- display: block;
22
- margin-top: 10px;
23
- height: auto !important;
24
- overflow: hidden;
25
- }
26
-
27
- /* next/prev */
28
- .single-product.woocommerce .thumbnails {
29
- position: relative;
30
- overflow: hidden;
31
- }
32
-
33
- .single-product.woocommerce .thumbnails .dashicons{
34
- display: table-cell;
35
- text-align: center;
36
- vertical-align: middle;
37
- padding-bottom: 2px;
38
- }
39
-
40
-
41
- .single-product.woocommerce .thumbnails #slider-prev,
42
- .single-product.woocommerce .thumbnails #slider-next {
43
- display: none;
44
- cursor: pointer;
45
- width: 25px;
46
- height: 25px;
47
- position: absolute;
48
- top: 50%;
49
- transform: translateY( -50% );
50
- }
51
-
52
- .single-product.woocommerce .thumbnails #slider-prev {
53
- background-position: left center;
54
- left: 1px;
55
- }
56
-
57
- .single-product.woocommerce .thumbnails #slider-next {
58
- background-position: right center;
59
- right: 0px;
60
- }
61
-
62
- .single-product.woocommerce .thumbnails:hover #slider-prev,
63
- .single-product.woocommerce .thumbnails:hover #slider-next {
64
- display: block !important;
65
- }
66
-
67
- span.onsale {
68
- z-index: 10000
69
- }
70
-
71
- div.pp_woocommerce a.yith_expand {
72
- /*background: url("../icons/lightbox.svg") no-repeat center center;*/
73
- display: inline;
74
- cursor: pointer;
75
- font-size: 25px;
76
- position: absolute;
77
- text-decoration: none;
78
- text-indent: -10000px;
79
- z-index: 20000;
80
- height: 25px;
81
- width: 25px;
82
- line-height: 1em;
83
- }
84
-
85
- .expand-button-hidden svg{
86
- display: block;
87
- padding: 2px;
88
- }
89
-
90
- .zoom-button-hidden svg{
91
- display: block;
92
- padding: 5px;
93
- }
94
-
95
- .expand-button-hidden svg {
96
- display: block;
97
- padding: 5px;
98
- }
99
-
100
-
101
- .elementor-widget-wrap .yith_magnifier_zoom.woocommerce-main-image img{
102
- width: 100%;
103
- }
1
+ /* gallery */
2
+ .yith_magnifier_gallery {
3
+ margin: 0;
4
+ padding: 0;
5
+ text-align: center;
6
+ }
7
+
8
+ .yith_magnifier_gallery li {
9
+ position: relative;
10
+ display: inline-block;
11
+ vertical-align: center;
12
+ top: 0;
13
+ }
14
+
15
+ /* .yith_magnifier_gallery li.last {
16
+ margin-right: 0;
17
+ } */
18
+
19
+ .yith_magnifier_gallery li a {
20
+ width: 100% !important;
21
+ display: block;
22
+ margin-top: 10px;
23
+ height: auto !important;
24
+ overflow: hidden;
25
+ }
26
+
27
+ /* next/prev */
28
+ .single-product.woocommerce .thumbnails {
29
+ position: relative;
30
+ overflow: hidden;
31
+ }
32
+
33
+ .single-product.woocommerce .thumbnails .dashicons{
34
+ display: table-cell;
35
+ text-align: center;
36
+ vertical-align: middle;
37
+ padding-bottom: 2px;
38
+ }
39
+
40
+
41
+ .single-product.woocommerce .thumbnails #slider-prev,
42
+ .single-product.woocommerce .thumbnails #slider-next {
43
+ display: none;
44
+ cursor: pointer;
45
+ width: 25px;
46
+ height: 25px;
47
+ position: absolute;
48
+ top: 50%;
49
+ transform: translateY( -50% );
50
+ }
51
+
52
+ .single-product.woocommerce .thumbnails #slider-prev {
53
+ background-position: left center;
54
+ left: 1px;
55
+ }
56
+
57
+ .single-product.woocommerce .thumbnails #slider-next {
58
+ background-position: right center;
59
+ right: 0px;
60
+ }
61
+
62
+ .single-product.woocommerce .thumbnails:hover #slider-prev,
63
+ .single-product.woocommerce .thumbnails:hover #slider-next {
64
+ display: block !important;
65
+ }
66
+
67
+ span.onsale {
68
+ z-index: 10000
69
+ }
70
+
71
+ div.pp_woocommerce a.yith_expand {
72
+ /*background: url("../icons/lightbox.svg") no-repeat center center;*/
73
+ display: inline;
74
+ cursor: pointer;
75
+ font-size: 25px;
76
+ position: absolute;
77
+ text-decoration: none;
78
+ text-indent: -10000px;
79
+ z-index: 20000;
80
+ height: 25px;
81
+ width: 25px;
82
+ line-height: 1em;
83
+ }
84
+
85
+ .expand-button-hidden svg{
86
+ display: block;
87
+ padding: 2px;
88
+ }
89
+
90
+ .zoom-button-hidden svg{
91
+ display: block;
92
+ padding: 5px;
93
+ }
94
+
95
+ .expand-button-hidden svg {
96
+ display: block;
97
+ padding: 5px;
98
+ }
99
+
100
+
101
+ .elementor-widget-wrap .yith_magnifier_zoom.woocommerce-main-image img{
102
+ width: 100%;
103
+ }
assets/css/yith_magnifier.css CHANGED
@@ -1,85 +1,90 @@
1
- .yith_magnifier_zoom_wrap {
2
- top: 0;
3
- position: relative;
4
- }
5
-
6
- .yith_magnifier_loading {
7
- color:white;
8
- background:#222;
9
- padding:3px;
10
- border:1px solid #000;
11
- position: absolute;
12
- text-align: center;
13
- top: 10%;
14
- z-index: 9999;
15
- }
16
-
17
- .yith_magnifier_zoom {
18
- position: relative;
19
- display: block;
20
- }
21
-
22
- .yith_magnifier_zoom img {
23
- display: block;
24
- }
25
-
26
- .yith_magnifier_mousetrap {
27
- z-index: 999;
28
- position: absolute;
29
- width: 0px;
30
- height :0px;
31
- left: 0;
32
- top: 0;
33
- }
34
-
35
- /* ie fix */
36
- .ie .yith_magnifier_mousetrap {
37
- background-image: url(".");
38
- }
39
-
40
- .yith_magnifier_lens {
41
- display: none;
42
- z-index:98;
43
- position:absolute;
44
- overflow: hidden;
45
-
46
- border: 1px solid #ccc;
47
- }
48
-
49
- .yith_magnifier_lens img {
50
- width: auto !important;
51
- max-width: none !important;
52
-
53
- -webkit-transition: all ease-in-out 0s !important;
54
- -moz-transition: all ease-in-out 0s !important;
55
- -o-transition: all ease-in-out 0s !important;
56
- transition: all ease-in-out 0s !important;
57
- }
58
-
59
- .yith_magnifier_zoom_magnifier {
60
- display:none;
61
- position:absolute;
62
- z-index: 99;
63
-
64
- border:4px solid #ccc;
65
- overflow:hidden;
66
- }
67
-
68
- .yith_magnifier_gallery {
69
- list-style: none;
70
- }
71
-
72
-
73
- /* ul.yith_magnifier_gallery li {
74
- margin-right: 10px;
75
- text-align: center;
76
- overflow: hidden;
77
- }
78
-
79
- ul.yith_magnifier_gallery li:last-child {
80
- margin-right: 0px;
81
- } */
82
-
83
- .yith_magnifier_thumbnail {
84
- margin-right: 1px;
85
- }
 
 
 
 
 
1
+ .yith_magnifier_zoom_wrap {
2
+ top: 0;
3
+ position: relative;
4
+ }
5
+
6
+ .yith_magnifier_loading {
7
+ color:white;
8
+ background:#222;
9
+ padding:3px;
10
+ border:1px solid #000;
11
+ position: absolute;
12
+ text-align: center;
13
+ top: 10%;
14
+ z-index: 9999;
15
+ }
16
+
17
+ .yith_magnifier_zoom {
18
+ position: relative;
19
+ display: block;
20
+ }
21
+
22
+ .yith_magnifier_zoom img {
23
+ display: block;
24
+ }
25
+
26
+ .yith_magnifier_mousetrap {
27
+ z-index: 999;
28
+ position: absolute;
29
+ width: 0px;
30
+ height :0px;
31
+ left: 0;
32
+ top: 0;
33
+ }
34
+
35
+ /* ie fix */
36
+ .ie .yith_magnifier_mousetrap {
37
+ background-image: url(".");
38
+ }
39
+
40
+ .yith_magnifier_lens {
41
+ display: none;
42
+ z-index:98;
43
+ position:absolute;
44
+ overflow: hidden;
45
+
46
+ border: 1px solid #ccc;
47
+ }
48
+
49
+ .yith_magnifier_lens img {
50
+ width: auto !important;
51
+ max-width: none !important;
52
+
53
+ -webkit-transition: all ease-in-out 0s !important;
54
+ -moz-transition: all ease-in-out 0s !important;
55
+ -o-transition: all ease-in-out 0s !important;
56
+ transition: all ease-in-out 0s !important;
57
+ }
58
+
59
+ .yith_magnifier_zoom_magnifier {
60
+ display:none;
61
+ position:absolute;
62
+ z-index: 99;
63
+
64
+ border:4px solid #ccc;
65
+ overflow:hidden;
66
+ }
67
+
68
+ .yith_magnifier_gallery {
69
+ list-style: none;
70
+ }
71
+
72
+
73
+ /* ul.yith_magnifier_gallery li {
74
+ margin-right: 10px;
75
+ text-align: center;
76
+ overflow: hidden;
77
+ }
78
+
79
+ ul.yith_magnifier_gallery li:last-child {
80
+ margin-right: 0px;
81
+ } */
82
+
83
+ .yith_magnifier_thumbnail {
84
+ margin-right: 1px;
85
+ }
86
+
87
+ /* Fix the blocked zoom box */
88
+ .woocommerce-product-gallery__image > .yith_magnifier_zoom_magnifier{
89
+ display: none !important;
90
+ }
assets/icons/lightbox.svg CHANGED
@@ -1,18 +1,18 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <title>arrow / expand</title>
4
- <defs>
5
- <rect id="path-1" x="0" y="0" width="30" height="30"></rect>
6
- </defs>
7
- <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
- <g id="Product-page---example-1" transform="translate(-940.000000, -1014.000000)">
9
- <g id="arrow-/-expand" transform="translate(934.500000, 1008.500000)">
10
- <mask id="mask-2" fill="white">
11
- <use xlink:href="#path-1"></use>
12
- </mask>
13
- <g id="arrow-/-expand-(Background/Mask)"></g>
14
- <path d="M21.25,8.75 L15,8.75 L15,6.25 L23.75,6.25 L23.740468,15.0000006 L21.25,15.0000006 L21.25,8.75 Z M8.75,21.25 L15,21.25 L15,23.75 L6.25,23.75 L6.25953334,14.9999988 L8.75,14.9999988 L8.75,21.25 Z" fill="#000000" mask="url(#mask-2)"></path>
15
- </g>
16
- </g>
17
- </g>
18
  </svg>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>arrow / expand</title>
4
+ <defs>
5
+ <rect id="path-1" x="0" y="0" width="30" height="30"></rect>
6
+ </defs>
7
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="Product-page---example-1" transform="translate(-940.000000, -1014.000000)">
9
+ <g id="arrow-/-expand" transform="translate(934.500000, 1008.500000)">
10
+ <mask id="mask-2" fill="white">
11
+ <use xlink:href="#path-1"></use>
12
+ </mask>
13
+ <g id="arrow-/-expand-(Background/Mask)"></g>
14
+ <path d="M21.25,8.75 L15,8.75 L15,6.25 L23.75,6.25 L23.740468,15.0000006 L21.25,15.0000006 L21.25,8.75 Z M8.75,21.25 L15,21.25 L15,23.75 L6.25,23.75 L6.25953334,14.9999988 L8.75,14.9999988 L8.75,21.25 Z" fill="#000000" mask="url(#mask-2)"></path>
15
+ </g>
16
+ </g>
17
+ </g>
18
  </svg>
assets/icons/zoom.svg CHANGED
@@ -1,18 +1,18 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <title>edit / search</title>
4
- <defs>
5
- <rect id="path-1" x="0" y="0" width="30" height="30"></rect>
6
- </defs>
7
- <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
- <g id="Product-page---example-1" transform="translate(-990.000000, -1013.000000)">
9
- <g id="edit-/-search" transform="translate(986.000000, 1010.000000)">
10
- <mask id="mask-2" fill="white">
11
- <use xlink:href="#path-1"></use>
12
- </mask>
13
- <g id="edit-/-search-(Background/Mask)"></g>
14
- <path d="M17.9704714,15.5960917 C20.0578816,12.6670864 19.7876957,8.57448101 17.1599138,5.94669908 C14.2309815,3.01776677 9.4822444,3.01776707 6.55331239,5.94669908 C3.62438008,8.87563139 3.62438008,13.6243683 6.55331239,16.5533006 C9.18109432,19.1810825 13.2736993,19.4512688 16.2027049,17.3638582 L23.3470976,24.5082521 L25.1148653,22.7404845 L17.9704714,15.5960917 C19.3620782,13.6434215 19.3620782,13.6434215 17.9704714,15.5960917 Z M15.3921473,7.71446586 C17.3447686,9.6670872 17.3447686,12.8329128 15.3921473,14.7855341 C13.4395258,16.7381556 10.273701,16.7381555 8.32107961,14.7855341 C6.36845812,12.8329127 6.36845812,9.66708735 8.32107961,7.71446586 C10.273701,5.76184452 13.4395258,5.76184437 15.3921473,7.71446586 C16.6938949,9.01621342 16.6938949,9.01621342 15.3921473,7.71446586 Z" fill="#000000" mask="url(#mask-2)"></path>
15
- </g>
16
- </g>
17
- </g>
18
- </svg>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>edit / search</title>
4
+ <defs>
5
+ <rect id="path-1" x="0" y="0" width="30" height="30"></rect>
6
+ </defs>
7
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="Product-page---example-1" transform="translate(-990.000000, -1013.000000)">
9
+ <g id="edit-/-search" transform="translate(986.000000, 1010.000000)">
10
+ <mask id="mask-2" fill="white">
11
+ <use xlink:href="#path-1"></use>
12
+ </mask>
13
+ <g id="edit-/-search-(Background/Mask)"></g>
14
+ <path d="M17.9704714,15.5960917 C20.0578816,12.6670864 19.7876957,8.57448101 17.1599138,5.94669908 C14.2309815,3.01776677 9.4822444,3.01776707 6.55331239,5.94669908 C3.62438008,8.87563139 3.62438008,13.6243683 6.55331239,16.5533006 C9.18109432,19.1810825 13.2736993,19.4512688 16.2027049,17.3638582 L23.3470976,24.5082521 L25.1148653,22.7404845 L17.9704714,15.5960917 C19.3620782,13.6434215 19.3620782,13.6434215 17.9704714,15.5960917 Z M15.3921473,7.71446586 C17.3447686,9.6670872 17.3447686,12.8329128 15.3921473,14.7855341 C13.4395258,16.7381556 10.273701,16.7381555 8.32107961,14.7855341 C6.36845812,12.8329127 6.36845812,9.66708735 8.32107961,7.71446586 C10.273701,5.76184452 13.4395258,5.76184437 15.3921473,7.71446586 C16.6938949,9.01621342 16.6938949,9.01621342 15.3921473,7.71446586 Z" fill="#000000" mask="url(#mask-2)"></path>
15
+ </g>
16
+ </g>
17
+ </g>
18
+ </svg>
assets/js/init.prettyPhoto.js CHANGED
@@ -1,935 +1,935 @@
1
- /* ------------------------------------------------------------------------
2
- Class: prettyPhoto
3
- Use: Lightbox clone for jQuery
4
- Author: Stephane Caron (http://www.no-margin-for-errors.com)
5
- Version: 3.1.6
6
- ------------------------------------------------------------------------- */
7
- (function($) {
8
- $.prettyPhoto = {version: '3.1.6'};
9
-
10
- $.fn.prettyPhoto = function(pp_settings) {
11
- pp_settings = jQuery.extend({
12
- hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */
13
- animation_speed: 'fast', /* fast/slow/normal */
14
- ajaxcallback: function() {},
15
- slideshow: 5000, /* false OR interval time in ms */
16
- autoplay_slideshow: false, /* true/false */
17
- opacity: 0.80, /* Value between 0 and 1 */
18
- show_title: true, /* true/false */
19
- allow_resize: true, /* Resize the photos bigger than viewport. true/false */
20
- allow_expand: true, /* Allow the user to expand a resized image. true/false */
21
- default_width: 500,
22
- default_height: 344,
23
- counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
24
- theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
25
- horizontal_padding: 20, /* The padding on each side of the picture */
26
- hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
27
- wmode: 'opaque', /* Set the flash wmode attribute */
28
- autoplay: true, /* Automatically start videos: True/False */
29
- modal: false, /* If set to true, only the close button will close the window */
30
- deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */
31
- overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
32
- overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */
33
- keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */
34
- changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
35
- callback: function(){}, /* Called when prettyPhoto is closed */
36
- ie6_fallback: true,
37
- markup: '<div class="pp_pic_holder"> \
38
- <div class="ppt">&nbsp;</div> \
39
- <div class="pp_top"> \
40
- <div class="pp_left"></div> \
41
- <div class="pp_middle"></div> \
42
- <div class="pp_right"></div> \
43
- </div> \
44
- <div class="pp_content_container"> \
45
- <div class="pp_left"> \
46
- <div class="pp_right"> \
47
- <div class="pp_content"> \
48
- <div class="pp_loaderIcon"></div> \
49
- <div class="pp_fade"> \
50
- <a href="#" class="pp_expand" title="Expand the image">\
51
- <div class="expand-button-hidden">\
52
- \t<svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\
53
- \t\t<defs>\
54
- \t\t\t<rect id="path-1" x="0" y="0" width="30" height="30"></rect>\
55
- \t\t</defs>\
56
- \t\t<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\
57
- \t\t\t<g id="Product-page---example-1" transform="translate(-940.000000, -1014.000000)">\
58
- \t\t\t\t<g id="arrow-/-expand" transform="translate(934.500000, 1008.500000)">\
59
- \t\t\t\t\t<mask id="mask-2" fill="white">\
60
- \t\t\t\t\t\t<use xlink:href="#path-1"></use>\
61
- \t\t\t\t\t</mask>\
62
- \t\t\t\t\t<g id="arrow-/-expand-(Background/Mask)"></g>\
63
- \t\t\t\t\t<path d="M21.25,8.75 L15,8.75 L15,6.25 L23.75,6.25 L23.740468,15.0000006 L21.25,15.0000006 L21.25,8.75 Z M8.75,21.25 L15,21.25 L15,23.75 L6.25,23.75 L6.25953334,14.9999988 L8.75,14.9999988 L8.75,21.25 Z" fill="#000000" mask="url(#mask-2)"></path>\
64
- \t\t\t\t</g>\
65
- \t\t\t</g>\
66
- \t\t</g>\
67
- \t</svg>\
68
- \t</div></a> \
69
- <div class="pp_hoverContainer"> \
70
- <a class="pp_next" href="#">next</a> \
71
- <a class="pp_previous" href="#">previous</a> \
72
- </div> \
73
- <div id="pp_full_res"></div> \
74
- <div class="pp_details"> \
75
- <div class="pp_nav"> \
76
- <a href="#" class="pp_arrow_previous">Previous</a> \
77
- <p class="currentTextHolder">0/0</p> \
78
- <a href="#" class="pp_arrow_next">Next</a> \
79
- </div> \
80
- <p class="pp_description"></p> \
81
- <div class="pp_social">{pp_social}</div> \
82
- <a class="pp_close" href="#">Close</a> \
83
- </div> \
84
- </div> \
85
- </div> \
86
- </div> \
87
- </div> \
88
- </div> \
89
- <div class="pp_bottom"> \
90
- <div class="pp_left"></div> \
91
- <div class="pp_middle"></div> \
92
- <div class="pp_right"></div> \
93
- </div> \
94
- </div> \
95
- <div class="pp_overlay"></div>',
96
- gallery_markup: '<div class="pp_gallery"> \
97
- <a href="#" class="pp_arrow_previous">Previous</a> \
98
- <div> \
99
- <ul> \
100
- {gallery} \
101
- </ul> \
102
- </div> \
103
- <a href="#" class="pp_arrow_next">Next</a> \
104
- </div>',
105
- image_markup: '<img id="fullResImage" src="{path}" />',
106
- flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',
107
- quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="https://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="https://www.apple.com/quicktime/download/"></embed></object>',
108
- iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',
109
- inline_markup: '<div class="pp_inline">{content}</div>',
110
- custom_markup: '',
111
- social_tools: '<div class="twitter"><a href="//twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&href={location_href}&amp;layout=button_count&amp;show_faces=true&amp;width=500&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div>' /* html or false to disable */
112
- }, pp_settings);
113
-
114
- // Global variables accessible only by prettyPhoto
115
- var matchedObjects = this, percentBased = false, pp_dimensions, pp_open,
116
-
117
- // prettyPhoto container specific
118
- pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth,
119
-
120
- // Window size
121
- windowHeight = $(window).height(), windowWidth = $(window).width(),
122
-
123
- // Global elements
124
- pp_slideshow;
125
-
126
- doresize = true, scroll_pos = _get_scroll();
127
-
128
- // Window/Keyboard events
129
- $(window).off('resize.prettyphoto').on('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); });
130
-
131
-
132
- if(pp_settings.keyboard_shortcuts) {
133
- $(document).off('keydown.prettyphoto').on('keydown.prettyphoto',function(e){
134
- if(typeof $pp_pic_holder != 'undefined'){
135
- if($pp_pic_holder.is(':visible')){
136
- switch(e.keyCode){
137
- case 37:
138
- $.prettyPhoto.changePage('previous');
139
- e.preventDefault();
140
- break;
141
- case 39:
142
- $.prettyPhoto.changePage('next');
143
- e.preventDefault();
144
- break;
145
- case 27:
146
- if(!settings.modal)
147
- $.prettyPhoto.close();
148
- e.preventDefault();
149
- break;
150
- };
151
- // return false;
152
- };
153
- };
154
- });
155
- };
156
-
157
- /**
158
- * Initialize prettyPhoto.
159
- */
160
- $.prettyPhoto.initialize = function() {
161
-
162
- settings = pp_settings;
163
-
164
- if(settings.theme == 'pp_default') settings.horizontal_padding = 16;
165
-
166
- // Find out if the picture is part of a set
167
- theRel = $(this).attr(settings.hook);
168
- galleryRegExp = /\[(?:.*)\]/;
169
- isSet = (galleryRegExp.exec(theRel)) ? true : false;
170
-
171
- // Put the SRCs, TITLEs, ALTs into an array.
172
- pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href'));
173
- pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt'));
174
- pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title'));
175
-
176
- if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false;
177
-
178
- set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned
179
- rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this));
180
-
181
- _build_overlay(this); // Build the overlay {this} being the caller
182
-
183
- if(settings.allow_resize)
184
- $(window).on('scroll.prettyphoto',function(){ _center_overlay(); });
185
-
186
-
187
- $.prettyPhoto.open();
188
-
189
-
190
- return false;
191
- }
192
-
193
-
194
- /**
195
- * Opens the prettyPhoto modal box.
196
- * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths.
197
- * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles.
198
- * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions.
199
- */
200
- $.prettyPhoto.open = function(event) {
201
- if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables
202
- settings = pp_settings;
203
- pp_images = $.makeArray(arguments[0]);
204
- pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray("");
205
- pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray("");
206
- isSet = (pp_images.length > 1) ? true : false;
207
- set_position = (arguments[3])? arguments[3]: 0;
208
- _build_overlay(event.target); // Build the overlay {this} being the caller
209
- }
210
-
211
- if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash
212
-
213
- _checkPosition($(pp_images).length); // Hide the next/previous links if on first or last images.
214
-
215
- $('.pp_loaderIcon').show();
216
-
217
- if(settings.deeplinking)
218
- setHashtag();
219
-
220
- // Rebuild Facebook Like Button with updated href
221
- if(settings.social_tools){
222
- facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href));
223
- $pp_pic_holder.find('.pp_social').html(facebook_like_link);
224
- }
225
-
226
- // Fade the content in
227
- if($ppt.is(':hidden')) $ppt.css('opacity',0).show();
228
- $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);
229
-
230
- // Display the current position
231
- $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).length);
232
-
233
- // Set the description
234
- if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){
235
- $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));
236
- }else{
237
- $pp_pic_holder.find('.pp_description').hide();
238
- }
239
-
240
- // Get the dimensions
241
- movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString();
242
- movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString();
243
-
244
- // If the size is % based, calculate according to window dimensions
245
- percentBased=false;
246
- if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; }
247
- if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; }
248
-
249
- // Fade the holder
250
- $pp_pic_holder.fadeIn(function(){
251
- // Set the title
252
- (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html('&nbsp;');
253
-
254
- imgPreloader = "";
255
- skipInjection = false;
256
-
257
- // Inject the proper content
258
- switch(_getFileType(pp_images[set_position])){
259
- case 'image':
260
- imgPreloader = new Image();
261
-
262
- // Preload the neighbour images
263
- nextImage = new Image();
264
- if(isSet && set_position < $(pp_images).length -1) nextImage.src = pp_images[set_position + 1];
265
- prevImage = new Image();
266
- if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1];
267
-
268
- $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]);
269
-
270
- imgPreloader.onload = function(){
271
- // Fit item to viewport
272
- pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height);
273
-
274
- _showContent();
275
- };
276
-
277
- imgPreloader.onerror = function(){
278
- alert('Image cannot be loaded. Make sure the path is correct and image exist.');
279
- $.prettyPhoto.close();
280
- };
281
-
282
- imgPreloader.src = pp_images[set_position];
283
- break;
284
-
285
- case 'youtube':
286
- pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
287
-
288
- // Regular youtube link
289
- movie_id = getParam('v',pp_images[set_position]);
290
-
291
- // youtu.be link
292
- if(movie_id == ""){
293
- movie_id = pp_images[set_position].split('youtu.be/');
294
- movie_id = movie_id[1];
295
- if(movie_id.indexOf('?') > 0)
296
- movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ?
297
-
298
- if(movie_id.indexOf('&') > 0)
299
- movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the &
300
- }
301
-
302
- movie = '//www.youtube.com/embed/'+movie_id;
303
- (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1";
304
-
305
- if(settings.autoplay) movie += "&autoplay=1";
306
-
307
- toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
308
- break;
309
-
310
- case 'vimeo':
311
- pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
312
-
313
- movie_id = pp_images[set_position];
314
- var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/;
315
- var match = movie_id.match(regExp);
316
-
317
- movie = '//player.vimeo.com/video/'+ match[3] +'?title=0&amp;byline=0&amp;portrait=0';
318
- if(settings.autoplay) movie += "&autoplay=1;";
319
-
320
- vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width'];
321
-
322
- toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie);
323
- break;
324
-
325
- case 'quicktime':
326
- pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
327
- pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar
328
-
329
- toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);
330
- break;
331
-
332
- case 'flash':
333
- pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
334
-
335
- flash_vars = pp_images[set_position];
336
- flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length);
337
-
338
- filename = pp_images[set_position];
339
- filename = filename.substring(0,filename.indexOf('?'));
340
-
341
- toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);
342
- break;
343
-
344
- case 'iframe':
345
- pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
346
-
347
- frame_url = pp_images[set_position];
348
- frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1);
349
-
350
- toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url);
351
- break;
352
-
353
- case 'ajax':
354
- doresize = false; // Make sure the dimensions are not resized.
355
- pp_dimensions = _fitToViewport(movie_width,movie_height);
356
- doresize = true; // Reset the dimensions
357
-
358
- skipInjection = true;
359
- $.get(pp_images[set_position],function(responseHTML){
360
- toInject = settings.inline_markup.replace(/{content}/g,responseHTML);
361
- $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
362
- _showContent();
363
- });
364
-
365
- break;
366
-
367
- case 'custom':
368
- pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
369
-
370
- toInject = settings.custom_markup;
371
- break;
372
-
373
- case 'inline':
374
- // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete
375
- myClone = $(pp_images[set_position]).clone().append('<br clear="all" />').css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo($('body')).show();
376
- doresize = false; // Make sure the dimensions are not resized.
377
- pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height());
378
- doresize = true; // Reset the dimensions
379
- $(myClone).remove();
380
- toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());
381
- break;
382
- };
383
-
384
- if(!imgPreloader && !skipInjection){
385
- $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
386
-
387
- // Show content
388
- _showContent();
389
-
390
-
391
- };
392
- });
393
-
394
- return false;
395
- };
396
-
397
-
398
- /**
399
- * Change page in the prettyPhoto modal box
400
- * @param direction {String} Direction of the paging, previous or next.
401
- */
402
- $.prettyPhoto.changePage = function(direction){
403
- currentGalleryPage = 0;
404
-
405
- if(direction == 'previous') {
406
- set_position--;
407
- if (set_position < 0) set_position = $(pp_images).length-1;
408
- }else if(direction == 'next'){
409
- set_position++;
410
- if(set_position > $(pp_images).length-1) set_position = 0;
411
- }else{
412
- set_position=direction;
413
- };
414
-
415
- rel_index = set_position;
416
-
417
- if(!doresize) doresize = true; // Allow the resizing of the images
418
- if(settings.allow_expand) {
419
- $('.pp_contract').removeClass('pp_contract').addClass('pp_expand');
420
- }
421
-
422
- _hideContent(function(){ $.prettyPhoto.open(); });
423
- };
424
-
425
-
426
- /**
427
- * Change gallery page in the prettyPhoto modal box
428
- * @param direction {String} Direction of the paging, previous or next.
429
- */
430
- $.prettyPhoto.changeGalleryPage = function(direction){
431
- if(direction=='next'){
432
- currentGalleryPage ++;
433
-
434
- if(currentGalleryPage > totalPage) currentGalleryPage = 0;
435
- }else if(direction=='previous'){
436
- currentGalleryPage --;
437
-
438
- if(currentGalleryPage < 0) currentGalleryPage = totalPage;
439
- }else{
440
- currentGalleryPage = direction;
441
- };
442
-
443
- slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0;
444
-
445
- slide_to = currentGalleryPage * (itemsPerPage * itemWidth);
446
-
447
- $pp_gallery.find('ul').animate({left:-slide_to},slide_speed);
448
- };
449
-
450
-
451
- /**
452
- * Start the slideshow...
453
- */
454
- $.prettyPhoto.startSlideshow = function(){
455
- if(typeof pp_slideshow == 'undefined'){
456
- $pp_pic_holder.find('.pp_play').off('click').removeClass('pp_play').addClass('pp_pause').on( 'click', function(){
457
- $.prettyPhoto.stopSlideshow();
458
- return false;
459
- });
460
- pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow);
461
- }else{
462
- $.prettyPhoto.changePage('next');
463
- };
464
- }
465
-
466
-
467
- /**
468
- * Stop the slideshow...
469
- */
470
- $.prettyPhoto.stopSlideshow = function(){
471
- $pp_pic_holder.find('.pp_pause').off('click').removeClass('pp_pause').addClass('pp_play').on( 'click', function(){
472
- $.prettyPhoto.startSlideshow();
473
- return false;
474
- });
475
- clearInterval(pp_slideshow);
476
- pp_slideshow=undefined;
477
- }
478
-
479
-
480
- /**
481
- * Closes prettyPhoto.
482
- */
483
- $.prettyPhoto.close = function(){
484
- if($pp_overlay.is(":animated")) return;
485
-
486
- $.prettyPhoto.stopSlideshow();
487
-
488
- $pp_pic_holder.stop().find('object,embed').css('visibility','hidden');
489
-
490
- $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); });
491
-
492
- $pp_overlay.fadeOut(settings.animation_speed, function(){
493
-
494
- if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash
495
-
496
- $(this).remove(); // No more need for the prettyPhoto markup
497
-
498
- $(window).off('scroll.prettyphoto');
499
-
500
- clearHashtag();
501
-
502
- settings.callback();
503
-
504
- doresize = true;
505
-
506
- pp_open = false;
507
-
508
- delete settings;
509
- });
510
- };
511
-
512
- /**
513
- * Set the proper sizes on the containers and animate the content in.
514
- */
515
- function _showContent(){
516
- $('.pp_loaderIcon').hide();
517
-
518
- // Calculate the opened top position of the pic holder
519
- projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2));
520
- if(projectedTop < 0) projectedTop = 0;
521
-
522
- $ppt.fadeTo(settings.animation_speed,1);
523
-
524
- // Resize the content holder
525
- $pp_pic_holder.find('.pp_content')
526
- .animate({
527
- height:pp_dimensions['contentHeight'],
528
- width:pp_dimensions['contentWidth']
529
- },settings.animation_speed);
530
-
531
- // Resize picture the holder
532
- $pp_pic_holder.animate({
533
- 'top': projectedTop,
534
- 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2),
535
- width:pp_dimensions['containerWidth']
536
- },settings.animation_speed,function(){
537
- $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']);
538
-
539
- $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content
540
-
541
- // Show the nav
542
- if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); }
543
-
544
- if(settings.allow_expand) {
545
- if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized
546
- $('a.pp_expand,a.pp_contract').show();
547
- }else{
548
- $('a.pp_expand').hide();
549
- }
550
- }
551
-
552
- if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow();
553
-
554
- settings.changepicturecallback(); // Callback!
555
-
556
- pp_open = true;
557
- });
558
-
559
- _insert_gallery();
560
- pp_settings.ajaxcallback();
561
-
562
- };
563
-
564
- /**
565
- * Hide the content...DUH!
566
- */
567
- function _hideContent(callback){
568
- // Fade out the current picture
569
- $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');
570
- $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){
571
- $('.pp_loaderIcon').show();
572
-
573
- callback();
574
- });
575
- };
576
-
577
- /**
578
- * Check the item position in the gallery array, hide or show the navigation links
579
- * @param setCount {integer} The total number of items in the set
580
- */
581
- function _checkPosition(setCount){
582
- (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set.
583
- };
584
-
585
- /**
586
- * Resize the item dimensions if it's bigger than the viewport
587
- * @param width {integer} Width of the item to be opened
588
- * @param height {integer} Height of the item to be opened
589
- * @return An array containin the "fitted" dimensions
590
- */
591
- function _fitToViewport(width,height){
592
- resized = false;
593
-
594
- _getDimensions(width,height);
595
-
596
- // Define them in case there's no resize needed
597
- imageWidth = width, imageHeight = height;
598
-
599
- if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) {
600
- resized = true, fitting = false;
601
-
602
- while (!fitting){
603
- if((pp_containerWidth > windowWidth)){
604
- imageWidth = (windowWidth - 200);
605
- imageHeight = (height/width) * imageWidth;
606
- }else if((pp_containerHeight > windowHeight)){
607
- imageHeight = (windowHeight - 200);
608
- imageWidth = (width/height) * imageHeight;
609
- }else{
610
- fitting = true;
611
- };
612
-
613
- pp_containerHeight = imageHeight, pp_containerWidth = imageWidth;
614
- };
615
-
616
-
617
-
618
- if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){
619
- _fitToViewport(pp_containerWidth,pp_containerHeight)
620
- };
621
-
622
- _getDimensions(imageWidth,imageHeight);
623
- };
624
-
625
- return {
626
- width:Math.floor(imageWidth),
627
- height:Math.floor(imageHeight),
628
- containerHeight:Math.floor(pp_containerHeight),
629
- containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2),
630
- contentHeight:Math.floor(pp_contentHeight),
631
- contentWidth:Math.floor(pp_contentWidth),
632
- resized:resized
633
- };
634
- };
635
-
636
- /**
637
- * Get the containers dimensions according to the item size
638
- * @param width {integer} Width of the item to be opened
639
- * @param height {integer} Height of the item to be opened
640
- */
641
- function _getDimensions(width,height){
642
- width = parseFloat(width);
643
- height = parseFloat(height);
644
-
645
- // Get the details height, to do so, I need to clone it since it's invisible
646
- $pp_details = $pp_pic_holder.find('.pp_details');
647
- $pp_details.width(width);
648
- detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom'));
649
-
650
- $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({
651
- 'position':'absolute',
652
- 'top':-10000
653
- });
654
- detailsHeight += $pp_details.height();
655
- detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details
656
- $pp_details.remove();
657
-
658
- // Get the titles height, to do so, I need to clone it since it's invisible
659
- $pp_title = $pp_pic_holder.find('.ppt');
660
- $pp_title.width(width);
661
- titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom'));
662
- $pp_title = $pp_title.clone().appendTo($('body')).css({
663
- 'position':'absolute',
664
- 'top':-10000
665
- });
666
- titleHeight += $pp_title.height();
667
- $pp_title.remove();
668
-
669
- // Get the container size, to resize the holder to the right dimensions
670
- pp_contentHeight = height + detailsHeight;
671
- pp_contentWidth = width;
672
- pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height();
673
- pp_containerWidth = width;
674
- }
675
-
676
- function _getFileType(itemSrc){
677
- if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) {
678
- return 'youtube';
679
- }else if (itemSrc.match(/vimeo\.com/i)) {
680
- return 'vimeo';
681
- }else if(itemSrc.match(/\b.mov\b/i)){
682
- return 'quicktime';
683
- }else if(itemSrc.match(/\b.swf\b/i)){
684
- return 'flash';
685
- }else if(itemSrc.match(/\biframe=true\b/i)){
686
- return 'iframe';
687
- }else if(itemSrc.match(/\bajax=true\b/i)){
688
- return 'ajax';
689
- }else if(itemSrc.match(/\bcustom=true\b/i)){
690
- return 'custom';
691
- }else if(itemSrc.substr(0,1) == '#'){
692
- return 'inline';
693
- }else{
694
- return 'image';
695
- };
696
- };
697
-
698
- function _center_overlay(){
699
- if(doresize && typeof $pp_pic_holder != 'undefined') {
700
- scroll_pos = _get_scroll();
701
- contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width();
702
-
703
- projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2);
704
- if(projectedTop < 0) projectedTop = 0;
705
-
706
- if(contentHeight > windowHeight)
707
- return;
708
-
709
- $pp_pic_holder.css({
710
- 'top': projectedTop,
711
- 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2)
712
- });
713
- };
714
- };
715
-
716
- function _get_scroll(){
717
- if (self.pageYOffset) {
718
- return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};
719
- } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
720
- return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};
721
- } else if (document.body) {// all other Explorers
722
- return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};
723
- };
724
- };
725
-
726
- function _resize_overlay() {
727
- windowHeight = $(window).height(), windowWidth = $(window).width();
728
-
729
- if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth);
730
- };
731
-
732
- function _insert_gallery(){
733
- if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") {
734
- itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
735
- navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme
736
-
737
- itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth);
738
- itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length;
739
- totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1;
740
-
741
- // Hide the nav in the case there's no need for links
742
- if(totalPage == 0){
743
- navWidth = 0; // No nav means no width!
744
- $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide();
745
- }else{
746
- $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show();
747
- };
748
-
749
- galleryWidth = itemsPerPage * itemWidth;
750
- fullGalleryWidth = pp_images.length * itemWidth;
751
-
752
- // Set the proper width to the gallery items
753
- $pp_gallery
754
- .css('margin-left',-((galleryWidth/2) + (navWidth/2)))
755
- .find('div:first').width(galleryWidth+5)
756
- .find('ul').width(fullGalleryWidth)
757
- .find('li.selected').removeClass('selected');
758
-
759
- goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage;
760
-
761
- $.prettyPhoto.changeGalleryPage(goToPage);
762
-
763
- $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected');
764
- }else{
765
- $pp_pic_holder.find('.pp_content').off('mouseenter mouseleave');
766
- // $pp_gallery.hide();
767
- }
768
- }
769
-
770
- function _build_overlay(caller){
771
- // Inject Social Tool markup into General markup
772
- if(settings.social_tools)
773
- facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href));
774
-
775
- settings.markup = settings.markup.replace('{pp_social}','');
776
-
777
- $('body').append(settings.markup); // Inject the markup
778
-
779
- $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors
780
-
781
- // Inject the inline gallery!
782
- if(isSet && settings.overlay_gallery) {
783
- currentGalleryPage = 0;
784
- toInject = "";
785
- for (var i=0; i < pp_images.length; i++) {
786
- if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){
787
- classname = 'default';
788
- img_src = '';
789
- }else{
790
- classname = '';
791
- img_src = pp_images[i];
792
- }
793
- toInject += "<li class='"+classname+"'><a href='#'><img src='" + img_src + "' width='50' alt='' /></a></li>";
794
- };
795
-
796
- toInject = settings.gallery_markup.replace(/{gallery}/g,toInject);
797
-
798
- $pp_pic_holder.find('#pp_full_res').after(toInject);
799
-
800
- $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors
801
-
802
- $pp_gallery.find('.pp_arrow_next').on( 'click', function(){
803
- $.prettyPhoto.changeGalleryPage('next');
804
- $.prettyPhoto.stopSlideshow();
805
- return false;
806
- });
807
-
808
- $pp_gallery.find('.pp_arrow_previous').on( 'click', function(){
809
- $.prettyPhoto.changeGalleryPage('previous');
810
- $.prettyPhoto.stopSlideshow();
811
- return false;
812
- });
813
-
814
- $pp_pic_holder.find('.pp_content').on( 'mouseenter',
815
- function(){
816
- $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();
817
- } ).on( 'mouseleave',
818
- function(){
819
- $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();
820
- });
821
-
822
- itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
823
- $pp_gallery_li.each(function(i){
824
- $(this)
825
- .find('a')
826
- .on( 'click', function(){
827
- $.prettyPhoto.changePage(i);
828
- $.prettyPhoto.stopSlideshow();
829
- return false;
830
- });
831
- });
832
- };
833
-
834
-
835
- // Inject the play/pause if it's a slideshow
836
- if(settings.slideshow){
837
- $pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>')
838
- $pp_pic_holder.find('.pp_nav .pp_play').on( 'click', function(){
839
- $.prettyPhoto.startSlideshow();
840
- return false;
841
- });
842
- }
843
-
844
- $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme
845
-
846
- $pp_overlay
847
- .css({
848
- 'opacity':0,
849
- 'height':$(document).height(),
850
- 'width':$(window).width()
851
- })
852
- .on('click',function(){
853
- if(!settings.modal) $.prettyPhoto.close();
854
- });
855
-
856
- $('a.pp_close').on('click',function(){ $.prettyPhoto.close(); return false; });
857
-
858
-
859
- if(settings.allow_expand) {
860
- $('a.pp_expand').on('click',function(e){
861
- // Expand the image
862
- if($(this).hasClass('pp_expand')){
863
- $(this).removeClass('pp_expand').addClass('pp_contract');
864
- doresize = false;
865
- }else{
866
- $(this).removeClass('pp_contract').addClass('pp_expand');
867
- doresize = true;
868
- };
869
-
870
- _hideContent(function(){ $.prettyPhoto.open(); });
871
-
872
- return false;
873
- });
874
- }
875
-
876
- $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').on('click',function(){
877
- $.prettyPhoto.changePage('previous');
878
- $.prettyPhoto.stopSlideshow();
879
- return false;
880
- });
881
-
882
- $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').on('click',function(){
883
- $.prettyPhoto.changePage('next');
884
- $.prettyPhoto.stopSlideshow();
885
- return false;
886
- });
887
-
888
- _center_overlay(); // Center it
889
- };
890
-
891
- if(!pp_alreadyInitialized && getHashtag()){
892
- pp_alreadyInitialized = true;
893
-
894
- // Grab the rel index to trigger the click on the correct element
895
- hashIndex = getHashtag();
896
- hashRel = hashIndex;
897
- hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1);
898
- hashRel = hashRel.substring(0,hashRel.indexOf('/'));
899
-
900
- // Little timeout to make sure all the prettyPhoto initialize scripts has been run.
901
- // Useful in the event the page contain several init scripts.
902
- setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50);
903
- }
904
-
905
- return this.off('click.prettyphoto').on('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
906
- };
907
-
908
- function getHashtag(){
909
- var url = location.href;
910
- hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false;
911
- if(hashtag){ hashtag = hashtag.replace(/<|>/g,''); }
912
- return hashtag;
913
- };
914
-
915
- function setHashtag(){
916
- if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API
917
- location.hash = theRel + '/'+rel_index+'/';
918
- };
919
-
920
- function clearHashtag(){
921
- if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto";
922
- }
923
-
924
- function getParam(name,url){
925
- name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
926
- var regexS = "[\\?&]"+name+"=([^&#]*)";
927
- var regex = new RegExp( regexS );
928
- var results = regex.exec( url );
929
- return ( results == null ) ? "" : results[1];
930
- }
931
-
932
-
933
- })(jQuery);
934
-
935
- var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times.
1
+ /* ------------------------------------------------------------------------
2
+ Class: prettyPhoto
3
+ Use: Lightbox clone for jQuery
4
+ Author: Stephane Caron (http://www.no-margin-for-errors.com)
5
+ Version: 3.1.6
6
+ ------------------------------------------------------------------------- */
7
+ (function($) {
8
+ $.prettyPhoto = {version: '3.1.6'};
9
+
10
+ $.fn.prettyPhoto = function(pp_settings) {
11
+ pp_settings = jQuery.extend({
12
+ hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */
13
+ animation_speed: 'fast', /* fast/slow/normal */
14
+ ajaxcallback: function() {},
15
+ slideshow: 5000, /* false OR interval time in ms */
16
+ autoplay_slideshow: false, /* true/false */
17
+ opacity: 0.80, /* Value between 0 and 1 */
18
+ show_title: true, /* true/false */
19
+ allow_resize: true, /* Resize the photos bigger than viewport. true/false */
20
+ allow_expand: true, /* Allow the user to expand a resized image. true/false */
21
+ default_width: 500,
22
+ default_height: 344,
23
+ counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
24
+ theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
25
+ horizontal_padding: 20, /* The padding on each side of the picture */
26
+ hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
27
+ wmode: 'opaque', /* Set the flash wmode attribute */
28
+ autoplay: true, /* Automatically start videos: True/False */
29
+ modal: false, /* If set to true, only the close button will close the window */
30
+ deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */
31
+ overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
32
+ overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */
33
+ keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */
34
+ changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
35
+ callback: function(){}, /* Called when prettyPhoto is closed */
36
+ ie6_fallback: true,
37
+ markup: '<div class="pp_pic_holder"> \
38
+ <div class="ppt">&nbsp;</div> \
39
+ <div class="pp_top"> \
40
+ <div class="pp_left"></div> \
41
+ <div class="pp_middle"></div> \
42
+ <div class="pp_right"></div> \
43
+ </div> \
44
+ <div class="pp_content_container"> \
45
+ <div class="pp_left"> \
46
+ <div class="pp_right"> \
47
+ <div class="pp_content"> \
48
+ <div class="pp_loaderIcon"></div> \
49
+ <div class="pp_fade"> \
50
+ <a href="#" class="pp_expand" title="Expand the image">\
51
+ <div class="expand-button-hidden">\
52
+ \t<svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\
53
+ \t\t<defs>\
54
+ \t\t\t<rect id="path-1" x="0" y="0" width="30" height="30"></rect>\
55
+ \t\t</defs>\
56
+ \t\t<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\
57
+ \t\t\t<g id="Product-page---example-1" transform="translate(-940.000000, -1014.000000)">\
58
+ \t\t\t\t<g id="arrow-/-expand" transform="translate(934.500000, 1008.500000)">\
59
+ \t\t\t\t\t<mask id="mask-2" fill="white">\
60
+ \t\t\t\t\t\t<use xlink:href="#path-1"></use>\
61
+ \t\t\t\t\t</mask>\
62
+ \t\t\t\t\t<g id="arrow-/-expand-(Background/Mask)"></g>\
63
+ \t\t\t\t\t<path d="M21.25,8.75 L15,8.75 L15,6.25 L23.75,6.25 L23.740468,15.0000006 L21.25,15.0000006 L21.25,8.75 Z M8.75,21.25 L15,21.25 L15,23.75 L6.25,23.75 L6.25953334,14.9999988 L8.75,14.9999988 L8.75,21.25 Z" fill="#000000" mask="url(#mask-2)"></path>\
64
+ \t\t\t\t</g>\
65
+ \t\t\t</g>\
66
+ \t\t</g>\
67
+ \t</svg>\
68
+ \t</div></a> \
69
+ <div class="pp_hoverContainer"> \
70
+ <a class="pp_next" href="#">next</a> \
71
+ <a class="pp_previous" href="#">previous</a> \
72
+ </div> \
73
+ <div id="pp_full_res"></div> \
74
+ <div class="pp_details"> \
75
+ <div class="pp_nav"> \
76
+ <a href="#" class="pp_arrow_previous">Previous</a> \
77
+ <p class="currentTextHolder">0/0</p> \
78
+ <a href="#" class="pp_arrow_next">Next</a> \
79
+ </div> \
80
+ <p class="pp_description"></p> \
81
+ <div class="pp_social">{pp_social}</div> \
82
+ <a class="pp_close" href="#">Close</a> \
83
+ </div> \
84
+ </div> \
85
+ </div> \
86
+ </div> \
87
+ </div> \
88
+ </div> \
89
+ <div class="pp_bottom"> \
90
+ <div class="pp_left"></div> \
91
+ <div class="pp_middle"></div> \
92
+ <div class="pp_right"></div> \
93
+ </div> \
94
+ </div> \
95
+ <div class="pp_overlay"></div>',
96
+ gallery_markup: '<div class="pp_gallery"> \
97
+ <a href="#" class="pp_arrow_previous">Previous</a> \
98
+ <div> \
99
+ <ul> \
100
+ {gallery} \
101
+ </ul> \
102
+ </div> \
103
+ <a href="#" class="pp_arrow_next">Next</a> \
104
+ </div>',
105
+ image_markup: '<img id="fullResImage" src="{path}" />',
106
+ flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',
107
+ quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="https://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="https://www.apple.com/quicktime/download/"></embed></object>',
108
+ iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',
109
+ inline_markup: '<div class="pp_inline">{content}</div>',
110
+ custom_markup: '',
111
+ social_tools: '<div class="twitter"><a href="//twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&href={location_href}&amp;layout=button_count&amp;show_faces=true&amp;width=500&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div>' /* html or false to disable */
112
+ }, pp_settings);
113
+
114
+ // Global variables accessible only by prettyPhoto
115
+ var matchedObjects = this, percentBased = false, pp_dimensions, pp_open,
116
+
117
+ // prettyPhoto container specific
118
+ pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth,
119
+
120
+ // Window size
121
+ windowHeight = $(window).height(), windowWidth = $(window).width(),
122
+
123
+ // Global elements
124
+ pp_slideshow;
125
+
126
+ doresize = true, scroll_pos = _get_scroll();
127
+
128
+ // Window/Keyboard events
129
+ $(window).off('resize.prettyphoto').on('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); });
130
+
131
+
132
+ if(pp_settings.keyboard_shortcuts) {
133
+ $(document).off('keydown.prettyphoto').on('keydown.prettyphoto',function(e){
134
+ if(typeof $pp_pic_holder != 'undefined'){
135
+ if($pp_pic_holder.is(':visible')){
136
+ switch(e.keyCode){
137
+ case 37:
138
+ $.prettyPhoto.changePage('previous');
139
+ e.preventDefault();
140
+ break;
141
+ case 39:
142
+ $.prettyPhoto.changePage('next');
143
+ e.preventDefault();
144
+ break;
145
+ case 27:
146
+ if(!settings.modal)
147
+ $.prettyPhoto.close();
148
+ e.preventDefault();
149
+ break;
150
+ };
151
+ // return false;
152
+ };
153
+ };
154
+ });
155
+ };
156
+
157
+ /**
158
+ * Initialize prettyPhoto.
159
+ */
160
+ $.prettyPhoto.initialize = function() {
161
+
162
+ settings = pp_settings;
163
+
164
+ if(settings.theme == 'pp_default') settings.horizontal_padding = 16;
165
+
166
+ // Find out if the picture is part of a set
167
+ theRel = $(this).attr(settings.hook);
168
+ galleryRegExp = /\[(?:.*)\]/;
169
+ isSet = (galleryRegExp.exec(theRel)) ? true : false;
170
+
171
+ // Put the SRCs, TITLEs, ALTs into an array.
172
+ pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href'));
173
+ pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt'));
174
+ pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title'));
175
+
176
+ if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false;
177
+
178
+ set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned
179
+ rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this));
180
+
181
+ _build_overlay(this); // Build the overlay {this} being the caller
182
+
183
+ if(settings.allow_resize)
184
+ $(window).on('scroll.prettyphoto',function(){ _center_overlay(); });
185
+
186
+
187
+ $.prettyPhoto.open();
188
+
189
+
190
+ return false;
191
+ }
192
+
193
+
194
+ /**
195
+ * Opens the prettyPhoto modal box.
196
+ * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths.
197
+ * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles.
198
+ * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions.
199
+ */
200
+ $.prettyPhoto.open = function(event) {
201
+ if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables
202
+ settings = pp_settings;
203
+ pp_images = $.makeArray(arguments[0]);
204
+ pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray("");
205
+ pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray("");
206
+ isSet = (pp_images.length > 1) ? true : false;
207
+ set_position = (arguments[3])? arguments[3]: 0;
208
+ _build_overlay(event.target); // Build the overlay {this} being the caller
209
+ }
210
+
211
+ if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash
212
+
213
+ _checkPosition($(pp_images).length); // Hide the next/previous links if on first or last images.
214
+
215
+ $('.pp_loaderIcon').show();
216
+
217
+ if(settings.deeplinking)
218
+ setHashtag();
219
+
220
+ // Rebuild Facebook Like Button with updated href
221
+ if(settings.social_tools){
222
+ facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href));
223
+ $pp_pic_holder.find('.pp_social').html(facebook_like_link);
224
+ }
225
+
226
+ // Fade the content in
227
+ if($ppt.is(':hidden')) $ppt.css('opacity',0).show();
228
+ $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);
229
+
230
+ // Display the current position
231
+ $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).length);
232
+
233
+ // Set the description
234
+ if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){
235
+ $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));
236
+ }else{
237
+ $pp_pic_holder.find('.pp_description').hide();
238
+ }
239
+
240
+ // Get the dimensions
241
+ movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString();
242
+ movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString();
243
+
244
+ // If the size is % based, calculate according to window dimensions
245
+ percentBased=false;
246
+ if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; }
247
+ if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; }
248
+
249
+ // Fade the holder
250
+ $pp_pic_holder.fadeIn(function(){
251
+ // Set the title
252
+ (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html('&nbsp;');
253
+
254
+ imgPreloader = "";
255
+ skipInjection = false;
256
+
257
+ // Inject the proper content
258
+ switch(_getFileType(pp_images[set_position])){
259
+ case 'image':
260
+ imgPreloader = new Image();
261
+
262
+ // Preload the neighbour images
263
+ nextImage = new Image();
264
+ if(isSet && set_position < $(pp_images).length -1) nextImage.src = pp_images[set_position + 1];
265
+ prevImage = new Image();
266
+ if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1];
267
+
268
+ $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]);
269
+
270
+ imgPreloader.onload = function(){
271
+ // Fit item to viewport
272
+ pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height);
273
+
274
+ _showContent();
275
+ };
276
+
277
+ imgPreloader.onerror = function(){
278
+ alert('Image cannot be loaded. Make sure the path is correct and image exist.');
279
+ $.prettyPhoto.close();
280
+ };
281
+
282
+ imgPreloader.src = pp_images[set_position];
283
+ break;
284
+
285
+ case 'youtube':
286
+ pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
287
+
288
+ // Regular youtube link
289
+ movie_id = getParam('v',pp_images[set_position]);
290
+
291
+ // youtu.be link
292
+ if(movie_id == ""){
293
+ movie_id = pp_images[set_position].split('youtu.be/');
294
+ movie_id = movie_id[1];
295
+ if(movie_id.indexOf('?') > 0)
296
+ movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ?
297
+
298
+ if(movie_id.indexOf('&') > 0)
299
+ movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the &
300
+ }
301
+
302
+ movie = '//www.youtube.com/embed/'+movie_id;
303
+ (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1";
304
+
305
+ if(settings.autoplay) movie += "&autoplay=1";
306
+
307
+ toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
308
+ break;
309
+
310
+ case 'vimeo':
311
+ pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
312
+
313
+ movie_id = pp_images[set_position];
314
+ var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/;
315
+ var match = movie_id.match(regExp);
316
+
317
+ movie = '//player.vimeo.com/video/'+ match[3] +'?title=0&amp;byline=0&amp;portrait=0';
318
+ if(settings.autoplay) movie += "&autoplay=1;";
319
+
320
+ vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width'];
321
+
322
+ toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie);
323
+ break;
324
+
325
+ case 'quicktime':
326
+ pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
327
+ pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar
328
+
329
+ toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);
330
+ break;
331
+
332
+ case 'flash':
333
+ pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
334
+
335
+ flash_vars = pp_images[set_position];
336
+ flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length);
337
+
338
+ filename = pp_images[set_position];
339
+ filename = filename.substring(0,filename.indexOf('?'));
340
+
341
+ toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);
342
+ break;
343
+
344
+ case 'iframe':
345
+ pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
346
+
347
+ frame_url = pp_images[set_position];
348
+ frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1);
349
+
350
+ toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url);
351
+ break;
352
+
353
+ case 'ajax':
354
+ doresize = false; // Make sure the dimensions are not resized.
355
+ pp_dimensions = _fitToViewport(movie_width,movie_height);
356
+ doresize = true; // Reset the dimensions
357
+
358
+ skipInjection = true;
359
+ $.get(pp_images[set_position],function(responseHTML){
360
+ toInject = settings.inline_markup.replace(/{content}/g,responseHTML);
361
+ $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
362
+ _showContent();
363
+ });
364
+
365
+ break;
366
+
367
+ case 'custom':
368
+ pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport
369
+
370
+ toInject = settings.custom_markup;
371
+ break;
372
+
373
+ case 'inline':
374
+ // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete
375
+ myClone = $(pp_images[set_position]).clone().append('<br clear="all" />').css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo($('body')).show();
376
+ doresize = false; // Make sure the dimensions are not resized.
377
+ pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height());
378
+ doresize = true; // Reset the dimensions
379
+ $(myClone).remove();
380
+ toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());
381
+ break;
382
+ };
383
+
384
+ if(!imgPreloader && !skipInjection){
385
+ $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
386
+
387
+ // Show content
388
+ _showContent();
389
+
390
+
391
+ };
392
+ });
393
+
394
+ return false;
395
+ };
396
+
397
+
398
+ /**
399
+ * Change page in the prettyPhoto modal box
400
+ * @param direction {String} Direction of the paging, previous or next.
401
+ */
402
+ $.prettyPhoto.changePage = function(direction){
403
+ currentGalleryPage = 0;
404
+
405
+ if(direction == 'previous') {
406
+ set_position--;
407
+ if (set_position < 0) set_position = $(pp_images).length-1;
408
+ }else if(direction == 'next'){
409
+ set_position++;
410
+ if(set_position > $(pp_images).length-1) set_position = 0;
411
+ }else{
412
+ set_position=direction;
413
+ };
414
+
415
+ rel_index = set_position;
416
+
417
+ if(!doresize) doresize = true; // Allow the resizing of the images
418
+ if(settings.allow_expand) {
419
+ $('.pp_contract').removeClass('pp_contract').addClass('pp_expand');
420
+ }
421
+
422
+ _hideContent(function(){ $.prettyPhoto.open(); });
423
+ };
424
+
425
+
426
+ /**
427
+ * Change gallery page in the prettyPhoto modal box
428
+ * @param direction {String} Direction of the paging, previous or next.
429
+ */
430
+ $.prettyPhoto.changeGalleryPage = function(direction){
431
+ if(direction=='next'){
432
+ currentGalleryPage ++;
433
+
434
+ if(currentGalleryPage > totalPage) currentGalleryPage = 0;
435
+ }else if(direction=='previous'){
436
+ currentGalleryPage --;
437
+
438
+ if(currentGalleryPage < 0) currentGalleryPage = totalPage;
439
+ }else{
440
+ currentGalleryPage = direction;
441
+ };
442
+
443
+ slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0;
444
+
445
+ slide_to = currentGalleryPage * (itemsPerPage * itemWidth);
446
+
447
+ $pp_gallery.find('ul').animate({left:-slide_to},slide_speed);
448
+ };
449
+
450
+
451
+ /**
452
+ * Start the slideshow...
453
+ */
454
+ $.prettyPhoto.startSlideshow = function(){
455
+ if(typeof pp_slideshow == 'undefined'){
456
+ $pp_pic_holder.find('.pp_play').off('click').removeClass('pp_play').addClass('pp_pause').on( 'click', function(){
457
+ $.prettyPhoto.stopSlideshow();
458
+ return false;
459
+ });
460
+ pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow);
461
+ }else{
462
+ $.prettyPhoto.changePage('next');
463
+ };
464
+ }
465
+
466
+
467
+ /**
468
+ * Stop the slideshow...
469
+ */
470
+ $.prettyPhoto.stopSlideshow = function(){
471
+ $pp_pic_holder.find('.pp_pause').off('click').removeClass('pp_pause').addClass('pp_play').on( 'click', function(){
472
+ $.prettyPhoto.startSlideshow();
473
+ return false;
474
+ });
475
+ clearInterval(pp_slideshow);
476
+ pp_slideshow=undefined;
477
+ }
478
+
479
+
480
+ /**
481
+ * Closes prettyPhoto.
482
+ */
483
+ $.prettyPhoto.close = function(){
484
+ if($pp_overlay.is(":animated")) return;
485
+
486
+ $.prettyPhoto.stopSlideshow();
487
+
488
+ $pp_pic_holder.stop().find('object,embed').css('visibility','hidden');
489
+
490
+ $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); });
491
+
492
+ $pp_overlay.fadeOut(settings.animation_speed, function(){
493
+
494
+ if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash
495
+
496
+ $(this).remove(); // No more need for the prettyPhoto markup
497
+
498
+ $(window).off('scroll.prettyphoto');
499
+
500
+ clearHashtag();
501
+
502
+ settings.callback();
503
+
504
+ doresize = true;
505
+
506
+ pp_open = false;
507
+
508
+ delete settings;
509
+ });
510
+ };
511
+
512
+ /**
513
+ * Set the proper sizes on the containers and animate the content in.
514
+ */
515
+ function _showContent(){
516
+ $('.pp_loaderIcon').hide();
517
+
518
+ // Calculate the opened top position of the pic holder
519
+ projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2));
520
+ if(projectedTop < 0) projectedTop = 0;
521
+
522
+ $ppt.fadeTo(settings.animation_speed,1);
523
+
524
+ // Resize the content holder
525
+ $pp_pic_holder.find('.pp_content')
526
+ .animate({
527
+ height:pp_dimensions['contentHeight'],
528
+ width:pp_dimensions['contentWidth']
529
+ },settings.animation_speed);
530
+
531
+ // Resize picture the holder
532
+ $pp_pic_holder.animate({
533
+ 'top': projectedTop,
534
+ 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2),
535
+ width:pp_dimensions['containerWidth']
536
+ },settings.animation_speed,function(){
537
+ $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']);
538
+
539
+ $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content
540
+
541
+ // Show the nav
542
+ if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); }
543
+
544
+ if(settings.allow_expand) {
545
+ if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized
546
+ $('a.pp_expand,a.pp_contract').show();
547
+ }else{
548
+ $('a.pp_expand').hide();
549
+ }
550
+ }
551
+
552
+ if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow();
553
+
554
+ settings.changepicturecallback(); // Callback!
555
+
556
+ pp_open = true;
557
+ });
558
+
559
+ _insert_gallery();
560
+ pp_settings.ajaxcallback();
561
+
562
+ };
563
+
564
+ /**
565
+ * Hide the content...DUH!
566
+ */
567
+ function _hideContent(callback){
568
+ // Fade out the current picture
569
+ $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');
570
+ $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){
571
+ $('.pp_loaderIcon').show();
572
+
573
+ callback();
574
+ });
575
+ };
576
+
577
+ /**
578
+ * Check the item position in the gallery array, hide or show the navigation links
579
+ * @param setCount {integer} The total number of items in the set
580
+ */
581
+ function _checkPosition(setCount){
582
+ (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set.
583
+ };
584
+
585
+ /**
586
+ * Resize the item dimensions if it's bigger than the viewport
587
+ * @param width {integer} Width of the item to be opened
588
+ * @param height {integer} Height of the item to be opened
589
+ * @return An array containin the "fitted" dimensions
590
+ */
591
+ function _fitToViewport(width,height){
592
+ resized = false;
593
+
594
+ _getDimensions(width,height);
595
+
596
+ // Define them in case there's no resize needed
597
+ imageWidth = width, imageHeight = height;
598
+
599
+ if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) {
600
+ resized = true, fitting = false;
601
+
602
+ while (!fitting){
603
+ if((pp_containerWidth > windowWidth)){
604
+ imageWidth = (windowWidth - 200);
605
+ imageHeight = (height/width) * imageWidth;
606
+ }else if((pp_containerHeight > windowHeight)){
607
+ imageHeight = (windowHeight - 200);
608
+ imageWidth = (width/height) * imageHeight;
609
+ }else{
610
+ fitting = true;
611
+ };
612
+
613
+ pp_containerHeight = imageHeight, pp_containerWidth = imageWidth;
614
+ };
615
+
616
+
617
+
618
+ if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){
619
+ _fitToViewport(pp_containerWidth,pp_containerHeight)
620
+ };
621
+
622
+ _getDimensions(imageWidth,imageHeight);
623
+ };
624
+
625
+ return {
626
+ width:Math.floor(imageWidth),
627
+ height:Math.floor(imageHeight),
628
+ containerHeight:Math.floor(pp_containerHeight),
629
+ containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2),
630
+ contentHeight:Math.floor(pp_contentHeight),
631
+ contentWidth:Math.floor(pp_contentWidth),
632
+ resized:resized
633
+ };
634
+ };
635
+
636
+ /**
637
+ * Get the containers dimensions according to the item size
638
+ * @param width {integer} Width of the item to be opened
639
+ * @param height {integer} Height of the item to be opened
640
+ */
641
+ function _getDimensions(width,height){
642
+ width = parseFloat(width);
643
+ height = parseFloat(height);
644
+
645
+ // Get the details height, to do so, I need to clone it since it's invisible
646
+ $pp_details = $pp_pic_holder.find('.pp_details');
647
+ $pp_details.width(width);
648
+ detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom'));
649
+
650
+ $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({
651
+ 'position':'absolute',
652
+ 'top':-10000
653
+ });
654
+ detailsHeight += $pp_details.height();
655
+ detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details
656
+ $pp_details.remove();
657
+
658
+ // Get the titles height, to do so, I need to clone it since it's invisible
659
+ $pp_title = $pp_pic_holder.find('.ppt');
660
+ $pp_title.width(width);
661
+ titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom'));
662
+ $pp_title = $pp_title.clone().appendTo($('body')).css({
663
+ 'position':'absolute',
664
+ 'top':-10000
665
+ });
666
+ titleHeight += $pp_title.height();
667
+ $pp_title.remove();
668
+
669
+ // Get the container size, to resize the holder to the right dimensions
670
+ pp_contentHeight = height + detailsHeight;
671
+ pp_contentWidth = width;
672
+ pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height();
673
+ pp_containerWidth = width;
674
+ }
675
+
676
+ function _getFileType(itemSrc){
677
+ if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) {
678
+ return 'youtube';
679
+ }else if (itemSrc.match(/vimeo\.com/i)) {
680
+ return 'vimeo';
681
+ }else if(itemSrc.match(/\b.mov\b/i)){
682
+ return 'quicktime';
683
+ }else if(itemSrc.match(/\b.swf\b/i)){
684
+ return 'flash';
685
+ }else if(itemSrc.match(/\biframe=true\b/i)){
686
+ return 'iframe';
687
+ }else if(itemSrc.match(/\bajax=true\b/i)){
688
+ return 'ajax';
689
+ }else if(itemSrc.match(/\bcustom=true\b/i)){
690
+ return 'custom';
691
+ }else if(itemSrc.substr(0,1) == '#'){
692
+ return 'inline';
693
+ }else{
694
+ return 'image';
695
+ };
696
+ };
697
+
698
+ function _center_overlay(){
699
+ if(doresize && typeof $pp_pic_holder != 'undefined') {
700
+ scroll_pos = _get_scroll();
701
+ contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width();
702
+
703
+ projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2);
704
+ if(projectedTop < 0) projectedTop = 0;
705
+
706
+ if(contentHeight > windowHeight)
707
+ return;
708
+
709
+ $pp_pic_holder.css({
710
+ 'top': projectedTop,
711
+ 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2)
712
+ });
713
+ };
714
+ };
715
+
716
+ function _get_scroll(){
717
+ if (self.pageYOffset) {
718
+ return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};
719
+ } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
720
+ return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};
721
+ } else if (document.body) {// all other Explorers
722
+ return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};
723
+ };
724
+ };
725
+
726
+ function _resize_overlay() {
727
+ windowHeight = $(window).height(), windowWidth = $(window).width();
728
+
729
+ if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth);
730
+ };
731
+
732
+ function _insert_gallery(){
733
+ if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") {
734
+ itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
735
+ navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme
736
+
737
+ itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth);
738
+ itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length;
739
+ totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1;
740
+
741
+ // Hide the nav in the case there's no need for links
742
+ if(totalPage == 0){
743
+ navWidth = 0; // No nav means no width!
744
+ $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide();
745
+ }else{
746
+ $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show();
747
+ };
748
+
749
+ galleryWidth = itemsPerPage * itemWidth;
750
+ fullGalleryWidth = pp_images.length * itemWidth;
751
+
752
+ // Set the proper width to the gallery items
753
+ $pp_gallery
754
+ .css('margin-left',-((galleryWidth/2) + (navWidth/2)))
755
+ .find('div:first').width(galleryWidth+5)
756
+ .find('ul').width(fullGalleryWidth)
757
+ .find('li.selected').removeClass('selected');
758
+
759
+ goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage;
760
+
761
+ $.prettyPhoto.changeGalleryPage(goToPage);
762
+
763
+ $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected');
764
+ }else{
765
+ $pp_pic_holder.find('.pp_content').off('mouseenter mouseleave');
766
+ // $pp_gallery.hide();
767
+ }
768
+ }
769
+
770
+ function _build_overlay(caller){
771
+ // Inject Social Tool markup into General markup
772
+ if(settings.social_tools)
773
+ facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href));
774
+
775
+ settings.markup = settings.markup.replace('{pp_social}','');
776
+
777
+ $('body').append(settings.markup); // Inject the markup
778
+
779
+ $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors
780
+
781
+ // Inject the inline gallery!
782
+ if(isSet && settings.overlay_gallery) {
783
+ currentGalleryPage = 0;
784
+ toInject = "";
785
+ for (var i=0; i < pp_images.length; i++) {
786
+ if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){
787
+ classname = 'default';
788
+ img_src = '';
789
+ }else{
790
+ classname = '';
791
+ img_src = pp_images[i];
792
+ }
793
+ toInject += "<li class='"+classname+"'><a href='#'><img src='" + img_src + "' width='50' alt='' /></a></li>";
794
+ };
795
+
796
+ toInject = settings.gallery_markup.replace(/{gallery}/g,toInject);
797
+
798
+ $pp_pic_holder.find('#pp_full_res').after(toInject);
799
+
800
+ $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors
801
+
802
+ $pp_gallery.find('.pp_arrow_next').on( 'click', function(){
803
+ $.prettyPhoto.changeGalleryPage('next');
804
+ $.prettyPhoto.stopSlideshow();
805
+ return false;
806
+ });
807
+
808
+ $pp_gallery.find('.pp_arrow_previous').on( 'click', function(){
809
+ $.prettyPhoto.changeGalleryPage('previous');
810
+ $.prettyPhoto.stopSlideshow();
811
+ return false;
812
+ });
813
+
814
+ $pp_pic_holder.find('.pp_content').on( 'mouseenter',
815
+ function(){
816
+ $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();
817
+ } ).on( 'mouseleave',
818
+ function(){
819
+ $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();
820
+ });
821
+
822
+ itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
823
+ $pp_gallery_li.each(function(i){
824
+ $(this)
825
+ .find('a')
826
+ .on( 'click', function(){
827
+ $.prettyPhoto.changePage(i);
828
+ $.prettyPhoto.stopSlideshow();
829
+ return false;
830
+ });
831
+ });
832
+ };
833
+
834
+
835
+ // Inject the play/pause if it's a slideshow
836
+ if(settings.slideshow){
837
+ $pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>')
838
+ $pp_pic_holder.find('.pp_nav .pp_play').on( 'click', function(){
839
+ $.prettyPhoto.startSlideshow();
840
+ return false;
841
+ });
842
+ }
843
+
844
+ $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme
845
+
846
+ $pp_overlay
847
+ .css({
848
+ 'opacity':0,
849
+ 'height':$(document).height(),
850
+ 'width':$(window).width()
851
+ })
852
+ .on('click',function(){
853
+ if(!settings.modal) $.prettyPhoto.close();
854
+ });
855
+
856
+ $('a.pp_close').on('click',function(){ $.prettyPhoto.close(); return false; });
857
+
858
+
859
+ if(settings.allow_expand) {
860
+ $('a.pp_expand').on('click',function(e){
861
+ // Expand the image
862
+ if($(this).hasClass('pp_expand')){
863
+ $(this).removeClass('pp_expand').addClass('pp_contract');
864
+ doresize = false;
865
+ }else{
866
+ $(this).removeClass('pp_contract').addClass('pp_expand');
867
+ doresize = true;
868
+ };
869
+
870
+ _hideContent(function(){ $.prettyPhoto.open(); });
871
+
872
+ return false;
873
+ });
874
+ }
875
+
876
+ $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').on('click',function(){
877
+ $.prettyPhoto.changePage('previous');
878
+ $.prettyPhoto.stopSlideshow();
879
+ return false;
880
+ });
881
+
882
+ $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').on('click',function(){
883
+ $.prettyPhoto.changePage('next');
884
+ $.prettyPhoto.stopSlideshow();
885
+ return false;
886
+ });
887
+
888
+ _center_overlay(); // Center it
889
+ };
890
+
891
+ if(!pp_alreadyInitialized && getHashtag()){
892
+ pp_alreadyInitialized = true;
893
+
894
+ // Grab the rel index to trigger the click on the correct element
895
+ hashIndex = getHashtag();
896
+ hashRel = hashIndex;
897
+ hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1);
898
+ hashRel = hashRel.substring(0,hashRel.indexOf('/'));
899
+
900
+ // Little timeout to make sure all the prettyPhoto initialize scripts has been run.
901
+ // Useful in the event the page contain several init scripts.
902
+ setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50);
903
+ }
904
+
905
+ return this.off('click.prettyphoto').on('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
906
+ };
907
+
908
+ function getHashtag(){
909
+ var url = location.href;
910
+ hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false;
911
+ if(hashtag){ hashtag = hashtag.replace(/<|>/g,''); }
912
+ return hashtag;
913
+ };
914
+
915
+ function setHashtag(){
916
+ if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API
917
+ location.hash = theRel + '/'+rel_index+'/';
918
+ };
919
+
920
+ function clearHashtag(){
921
+ if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto";
922
+ }
923
+
924
+ function getParam(name,url){
925
+ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
926
+ var regexS = "[\\?&]"+name+"=([^&#]*)";
927
+ var regex = new RegExp( regexS );
928
+ var results = regex.exec( url );
929
+ return ( results == null ) ? "" : results[1];
930
+ }
931
+
932
+
933
+ })(jQuery);
934
+
935
+ var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times.
assets/js/jquery.carouFredSel.js CHANGED
@@ -1,3823 +1,3823 @@
1
- /*
2
- * jQuery carouFredSel 6.2.1
3
- * Demo's and documentation:
4
- * caroufredsel.dev7studios.com
5
- *
6
- * Copyright (c) 2013 Fred Heusschen
7
- * www.frebsite.nl
8
- *
9
- * Dual licensed under the MIT and GPL licenses.
10
- * http://en.wikipedia.org/wiki/MIT_License
11
- * http://en.wikipedia.org/wiki/GNU_General_Public_License
12
- */
13
-
14
-
15
- (function ($) {
16
-
17
-
18
- // LOCAL
19
-
20
- if ($.fn.carouFredSel) {
21
- return;
22
- }
23
-
24
- $.fn.caroufredsel = $.fn.carouFredSel = function (options, configs) {
25
-
26
- // no element
27
- if (this.length == 0) {
28
- debug(true, 'No element found for "' + this.selector + '".');
29
- return this;
30
- }
31
-
32
- // multiple elements
33
- if (this.length > 1) {
34
- return this.each(function () {
35
- $(this).carouFredSel(options, configs);
36
- });
37
- }
38
-
39
-
40
- var $cfs = this,
41
- $tt0 = this[0],
42
- starting_position = false;
43
-
44
- if ($cfs.data('_cfs_isCarousel')) {
45
- starting_position = $cfs.triggerHandler('_cfs_triggerEvent', 'currentPosition');
46
- $cfs.trigger('_cfs_triggerEvent', ['destroy', true]);
47
- }
48
-
49
- var FN = {};
50
-
51
- FN._init = function (o, setOrig, start) {
52
- o = go_getObject($tt0, o);
53
-
54
- o.items = go_getItemsObject($tt0, o.items);
55
- o.scroll = go_getScrollObject($tt0, o.scroll);
56
- o.auto = go_getAutoObject($tt0, o.auto);
57
- o.prev = go_getPrevNextObject($tt0, o.prev);
58
- o.next = go_getPrevNextObject($tt0, o.next);
59
- o.pagination = go_getPaginationObject($tt0, o.pagination);
60
- o.swipe = go_getSwipeObject($tt0, o.swipe);
61
- o.mousewheel = go_getMousewheelObject($tt0, o.mousewheel);
62
-
63
- if (setOrig) {
64
- opts_orig = $.extend(true, {}, $.fn.carouFredSel.defaults, o);
65
- }
66
-
67
- opts = $.extend(true, {}, $.fn.carouFredSel.defaults, o);
68
- opts.d = cf_getDimensions(opts);
69
-
70
- crsl.direction = (opts.direction == 'up' || opts.direction == 'left') ? 'next' : 'prev';
71
-
72
- var a_itm = $cfs.children(),
73
- avail_primary = ms_getParentSize($wrp, opts, 'width');
74
-
75
- if (is_true(opts.cookie)) {
76
- opts.cookie = 'caroufredsel_cookie_' + conf.serialNumber;
77
- }
78
-
79
- opts.maxDimension = ms_getMaxDimension(opts, avail_primary);
80
-
81
- // complement items and sizes
82
- opts.items = in_complementItems(opts.items, opts, a_itm, start);
83
- opts[opts.d['width']] = in_complementPrimarySize(opts[opts.d['width']], opts, a_itm);
84
- opts[opts.d['height']] = in_complementSecondarySize(opts[opts.d['height']], opts, a_itm);
85
-
86
- // primary size not set for a responsive carousel
87
- if (opts.responsive) {
88
- if (!is_percentage(opts[opts.d['width']])) {
89
- opts[opts.d['width']] = '100%';
90
- }
91
- }
92
-
93
- // primary size is percentage
94
- if (is_percentage(opts[opts.d['width']])) {
95
- crsl.upDateOnWindowResize = true;
96
- crsl.primarySizePercentage = opts[opts.d['width']];
97
- opts[opts.d['width']] = ms_getPercentage(avail_primary, crsl.primarySizePercentage);
98
- if (!opts.items.visible) {
99
- opts.items.visibleConf.variable = true;
100
- }
101
- }
102
-
103
- if (opts.responsive) {
104
- opts.usePadding = true;
105
- opts.padding = [5, 5, 5, 5];
106
- opts.align = false;
107
- opts.items.visibleConf.variable = false;
108
- }
109
- else {
110
- // visible-items not set
111
- if (!opts.items.visible) {
112
- opts = in_complementVisibleItems(opts, avail_primary);
113
- }
114
-
115
- // primary size not set -> calculate it or set to "variable"
116
- if (!opts[opts.d['width']]) {
117
- if (!opts.items.visibleConf.variable && is_number(opts.items[opts.d['width']]) && opts.items.filter == '*') {
118
- opts[opts.d['width']] = opts.items.visible * opts.items[opts.d['width']];
119
- opts.align = false;
120
- }
121
- else {
122
- opts[opts.d['width']] = 'variable';
123
- }
124
- }
125
- // align not set -> set to center if primary size is number
126
- if (is_undefined(opts.align)) {
127
- opts.align = (is_number(opts[opts.d['width']]))
128
- ? 'center'
129
- : false;
130
- }
131
- // set variabe visible-items
132
- if (opts.items.visibleConf.variable) {
133
- opts.items.visible = gn_getVisibleItemsNext(a_itm, opts, 0);
134
- }
135
- }
136
-
137
- // set visible items by filter
138
- if (opts.items.filter != '*' && !opts.items.visibleConf.variable) {
139
- opts.items.visibleConf.org = opts.items.visible;
140
- opts.items.visible = gn_getVisibleItemsNextFilter(a_itm, opts, 0);
141
- }
142
-
143
- opts.items.visible = cf_getItemsAdjust(opts.items.visible, opts, opts.items.visibleConf.adjust, $tt0);
144
- opts.items.visibleConf.old = opts.items.visible;
145
-
146
- if (opts.responsive) {
147
- if (!opts.items.visibleConf.min) {
148
- opts.items.visibleConf.min = opts.items.visible;
149
- }
150
- if (!opts.items.visibleConf.max) {
151
- opts.items.visibleConf.max = opts.items.visible;
152
- }
153
- opts = in_getResponsiveValues(opts, a_itm, avail_primary);
154
- }
155
- else {
156
- opts.padding = cf_getPadding(opts.padding);
157
-
158
- if (opts.align == 'top') {
159
- opts.align = 'left';
160
- }
161
- else if (opts.align == 'bottom') {
162
- opts.align = 'right';
163
- }
164
-
165
- switch (opts.align) {
166
- // align: center, left or right
167
- case 'center':
168
- case 'left':
169
- case 'right':
170
- if (opts[opts.d['width']] != 'variable') {
171
- opts = in_getAlignPadding(opts, a_itm);
172
- opts.usePadding = true;
173
- }
174
- break;
175
-
176
- // padding
177
- default:
178
- opts.align = false;
179
- opts.usePadding = (
180
- opts.padding[0] == 0 &&
181
- opts.padding[1] == 0 &&
182
- opts.padding[2] == 0 &&
183
- opts.padding[3] == 0
184
- ) ? false : true;
185
- break;
186
- }
187
- }
188
-
189
- if (!is_number(opts.scroll.duration)) {
190
- opts.scroll.duration = 500;
191
- }
192
- if (is_undefined(opts.scroll.items)) {
193
- opts.scroll.items = (opts.responsive || opts.items.visibleConf.variable || opts.items.filter != '*')
194
- ? 'visible'
195
- : opts.items.visible;
196
- }
197
-
198
- opts.auto = $.extend(true, {}, opts.scroll, opts.auto);
199
- opts.prev = $.extend(true, {}, opts.scroll, opts.prev);
200
- opts.next = $.extend(true, {}, opts.scroll, opts.next);
201
- opts.pagination = $.extend(true, {}, opts.scroll, opts.pagination);
202
- // swipe and mousewheel extend later on, per direction
203
-
204
- opts.auto = go_complementAutoObject($tt0, opts.auto);
205
- opts.prev = go_complementPrevNextObject($tt0, opts.prev);
206
- opts.next = go_complementPrevNextObject($tt0, opts.next);
207
- opts.pagination = go_complementPaginationObject($tt0, opts.pagination);
208
- opts.swipe = go_complementSwipeObject($tt0, opts.swipe);
209
- opts.mousewheel = go_complementMousewheelObject($tt0, opts.mousewheel);
210
-
211
- if (opts.synchronise) {
212
- opts.synchronise = cf_getSynchArr(opts.synchronise);
213
- }
214
-
215
-
216
- // DEPRECATED
217
- if (opts.auto.onPauseStart) {
218
- opts.auto.onTimeoutStart = opts.auto.onPauseStart;
219
- deprecated('auto.onPauseStart', 'auto.onTimeoutStart');
220
- }
221
- if (opts.auto.onPausePause) {
222
- opts.auto.onTimeoutPause = opts.auto.onPausePause;
223
- deprecated('auto.onPausePause', 'auto.onTimeoutPause');
224
- }
225
- if (opts.auto.onPauseEnd) {
226
- opts.auto.onTimeoutEnd = opts.auto.onPauseEnd;
227
- deprecated('auto.onPauseEnd', 'auto.onTimeoutEnd');
228
- }
229
- if (opts.auto.pauseDuration) {
230
- opts.auto.timeoutDuration = opts.auto.pauseDuration;
231
- deprecated('auto.pauseDuration', 'auto.timeoutDuration');
232
- }
233
- // /DEPRECATED
234
-
235
-
236
- }; // /init
237
-
238
-
239
- FN._build = function () {
240
- $cfs.data('_cfs_isCarousel', true);
241
-
242
- var a_itm = $cfs.children(),
243
- orgCSS = in_mapCss($cfs, ['textAlign', 'float', 'position', 'top', 'right', 'bottom', 'left', 'zIndex', 'width', 'height', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft']),
244
- newPosition = 'relative';
245
-
246
- switch (orgCSS.position) {
247
- case 'absolute':
248
- case 'fixed':
249
- newPosition = orgCSS.position;
250
- break;
251
- }
252
-
253
- if (conf.wrapper == 'parent') {
254
- sz_storeOrigCss($wrp);
255
- }
256
- else {
257
- $wrp.css(orgCSS);
258
- }
259
- $wrp.css({
260
- 'overflow': 'hidden',
261
- 'position': newPosition
262
- });
263
-
264
- sz_storeOrigCss($cfs);
265
- $cfs.data('_cfs_origCssZindex', orgCSS.zIndex);
266
- $cfs.css({
267
- 'textAlign': 'left',
268
- 'float': 'none',
269
- 'position': 'absolute',
270
- 'top': 0,
271
- 'right': 'auto',
272
- 'bottom': 'auto',
273
- 'left': 0,
274
- 'marginTop': 0,
275
- 'marginRight': 0,
276
- 'marginBottom': 0,
277
- 'marginLeft': 0
278
- });
279
-
280
- sz_storeMargin(a_itm, opts);
281
- sz_storeOrigCss(a_itm);
282
- if (opts.responsive) {
283
- sz_setResponsiveSizes(opts, a_itm);
284
- }
285
-
286
- }; // /build
287
-
288
-
289
- FN._bind_events = function () {
290
- FN._unbind_events();
291
-
292
-
293
- // stop event
294
- $cfs.bind(cf_e('stop', conf), function (e, imm) {
295
- e.stopPropagation();
296
-
297
- // button
298
- if (!crsl.isStopped) {
299
- if (opts.auto.button) {
300
- opts.auto.button.addClass(cf_c('stopped', conf));
301
- }
302
- }
303
-
304
- // set stopped
305
- crsl.isStopped = true;
306
-
307
- if (opts.auto.play) {
308
- opts.auto.play = false;
309
- $cfs.trigger(cf_e('pause', conf), imm);
310
- }
311
- return true;
312
- });
313
-
314
-
315
- // finish event
316
- $cfs.bind(cf_e('finish', conf), function (e) {
317
- e.stopPropagation();
318
- if (crsl.isScrolling) {
319
- sc_stopScroll(scrl);
320
- }
321
- return true;
322
- });
323
-
324
-
325
- // pause event
326
- $cfs.bind(cf_e('pause', conf), function (e, imm, res) {
327
- e.stopPropagation();
328
- tmrs = sc_clearTimers(tmrs);
329
-
330
- // immediately pause
331
- if (imm && crsl.isScrolling) {
332
- scrl.isStopped = true;
333
- var nst = getTime() - scrl.startTime;
334
- scrl.duration -= nst;
335
- if (scrl.pre) {
336
- scrl.pre.duration -= nst;
337
- }
338
- if (scrl.post) {
339
- scrl.post.duration -= nst;
340
- }
341
- sc_stopScroll(scrl, false);
342
- }
343
-
344
- // update remaining pause-time
345
- if (!crsl.isPaused && !crsl.isScrolling) {
346
- if (res) {
347
- tmrs.timePassed += getTime() - tmrs.startTime;
348
- }
349
- }
350
-
351
- // button
352
- if (!crsl.isPaused) {
353
- if (opts.auto.button) {
354
- opts.auto.button.addClass(cf_c('paused', conf));
355
- }
356
- }
357
-
358
- // set paused
359
- crsl.isPaused = true;
360
-
361
- // pause pause callback
362
- if (opts.auto.onTimeoutPause) {
363
- var dur1 = opts.auto.timeoutDuration - tmrs.timePassed,
364
- perc = 100 - Math.ceil(dur1 * 100 / opts.auto.timeoutDuration);
365
-
366
- opts.auto.onTimeoutPause.call($tt0, perc, dur1);
367
- }
368
- return true;
369
- });
370
-
371
-
372
- // play event
373
- $cfs.bind(cf_e('play', conf), function (e, dir, del, res) {
374
- e.stopPropagation();
375
- tmrs = sc_clearTimers(tmrs);
376
-
377
- // sort params
378
- var v = [dir, del, res],
379
- t = ['string', 'number', 'boolean'],
380
- a = cf_sortParams(v, t);
381
-
382
- dir = a[0];
383
- del = a[1];
384
- res = a[2];
385
-
386
- if (dir != 'prev' && dir != 'next') {
387
- dir = crsl.direction;
388
- }
389
- if (!is_number(del)) {
390
- del = 0;
391
- }
392
- if (!is_boolean(res)) {
393
- res = false;
394
- }
395
-
396
- // stopped?
397
- if (res) {
398
- crsl.isStopped = false;
399
- opts.auto.play = true;
400
- }
401
- if (!opts.auto.play) {
402
- e.stopImmediatePropagation();
403
- return debug(conf, 'Carousel stopped: Not scrolling.');
404
- }
405
-
406
- // button
407
- if (crsl.isPaused) {
408
- if (opts.auto.button) {
409
- opts.auto.button.removeClass(cf_c('stopped', conf));
410
- opts.auto.button.removeClass(cf_c('paused', conf));
411
- }
412
- }
413
-
414
- // set playing
415
- crsl.isPaused = false;
416
- tmrs.startTime = getTime();
417
-
418
- // timeout the scrolling
419
- var dur1 = opts.auto.timeoutDuration + del;
420
- dur2 = dur1 - tmrs.timePassed;
421
- perc = 100 - Math.ceil(dur2 * 100 / dur1);
422
-
423
- if (opts.auto.progress) {
424
- tmrs.progress = setInterval(function () {
425
- var pasd = getTime() - tmrs.startTime + tmrs.timePassed,
426
- perc = Math.ceil(pasd * 100 / dur1);
427
- opts.auto.progress.updater.call(opts.auto.progress.bar[0], perc);
428
- }, opts.auto.progress.interval);
429
- }
430
-
431
- tmrs.auto = setTimeout(function () {
432
- if (opts.auto.progress) {
433
- opts.auto.progress.updater.call(opts.auto.progress.bar[0], 100);
434
- }
435
- if (opts.auto.onTimeoutEnd) {
436
- opts.auto.onTimeoutEnd.call($tt0, perc, dur2);
437
- }
438
- if (crsl.isScrolling) {
439
- $cfs.trigger(cf_e('play', conf), dir);
440
- }
441
- else {
442
- $cfs.trigger(cf_e(dir, conf), opts.auto);
443
- }
444
- }, dur2);
445
-
446
- // pause start callback
447
- if (opts.auto.onTimeoutStart) {
448
- opts.auto.onTimeoutStart.call($tt0, perc, dur2);
449
- }
450
-
451
- return true;
452
- });
453
-
454
-
455
- // resume event
456
- $cfs.bind(cf_e('resume', conf), function (e) {
457
- e.stopPropagation();
458
- if (scrl.isStopped) {
459
- scrl.isStopped = false;
460
- crsl.isPaused = false;
461
- crsl.isScrolling = true;
462
- scrl.startTime = getTime();
463
- sc_startScroll(scrl, conf);
464
- }
465
- else {
466
- $cfs.trigger(cf_e('play', conf));
467
- }
468
- return true;
469
- });
470
-
471
-
472
- // prev + next events
473
- $cfs.bind(cf_e('prev', conf) + ' ' + cf_e('next', conf), function (e, obj, num, clb, que) {
474
- e.stopPropagation();
475
-
476
- // stopped or hidden carousel, don't scroll, don't queue
477
- if (crsl.isStopped || $cfs.is(':hidden')) {
478
- e.stopImmediatePropagation();
479
- return debug(conf, 'Carousel stopped or hidden: Not scrolling.');
480
- }
481
-
482
- // not enough items
483
- var minimum = (is_number(opts.items.minimum)) ? opts.items.minimum : opts.items.visible + 1;
484
- if (minimum > itms.total) {
485
- e.stopImmediatePropagation();
486
- return debug(conf, 'Not enough items (' + itms.total + ' total, ' + minimum + ' needed): Not scrolling.');
487
- }
488
-
489
- // get config
490
- var v = [obj, num, clb, que],
491
- t = ['object', 'number/string', 'function', 'boolean'],
492
- a = cf_sortParams(v, t);
493
-
494
- obj = a[0];
495
- num = a[1];
496
- clb = a[2];
497
- que = a[3];
498
-
499
- var eType = e.type.slice(conf.events.prefix.length);
500
-
501
- if (!is_object(obj)) {
502
- obj = {};
503
- }
504
- if (is_function(clb)) {
505
- obj.onAfter = clb;
506
- }
507
- if (is_boolean(que)) {
508
- obj.queue = que;
509
- }
510
- obj = $.extend(true, {}, opts[eType], obj);
511
-
512
- // test conditions callback
513
- if (obj.conditions && !obj.conditions.call($tt0, eType)) {
514
- e.stopImmediatePropagation();
515
- return debug(conf, 'Callback "conditions" returned false.');
516
- }
517
-
518
- if (!is_number(num)) {
519
- if (opts.items.filter != '*') {
520
- num = 'visible';
521
- }
522
- else {
523
- var arr = [num, obj.items, opts[eType].items];
524
- for (var a = 0, l = arr.length; a < l; a++) {
525
- if (is_number(arr[a]) || arr[a] == 'page' || arr[a] == 'visible') {
526
- num = arr[a];
527
- break;
528
- }
529
- }
530
- }
531
- switch (num) {
532
- case 'page':
533
- e.stopImmediatePropagation();
534
- return $cfs.triggerHandler(cf_e(eType + 'Page', conf), [obj, clb]);
535
- break;
536
-
537
- case 'visible':
538
- if (!opts.items.visibleConf.variable && opts.items.filter == '*') {
539
- num = opts.items.visible;
540
- }
541
- break;
542
- }
543
- }
544
-
545
- // resume animation, add current to queue
546
- if (scrl.isStopped) {
547
- $cfs.trigger(cf_e('resume', conf));
548
- $cfs.trigger(cf_e('queue', conf), [eType, [obj, num, clb]]);
549
- e.stopImmediatePropagation();
550
- return debug(conf, 'Carousel resumed scrolling.');
551
- }
552
-
553
- // queue if scrolling
554
- if (obj.duration > 0) {
555
- if (crsl.isScrolling) {
556
- if (obj.queue) {
557
- if (obj.queue == 'last') {
558
- queu = [];
559
- }
560
- if (obj.queue != 'first' || queu.length == 0) {
561
- $cfs.trigger(cf_e('queue', conf), [eType, [obj, num, clb]]);
562
- }
563
- }
564
- e.stopImmediatePropagation();
565
- return debug(conf, 'Carousel currently scrolling.');
566
- }
567
- }
568
-
569
- tmrs.timePassed = 0;
570
- $cfs.trigger(cf_e('slide_' + eType, conf), [obj, num]);
571
-
572
- // synchronise
573
- if (opts.synchronise) {
574
- var s = opts.synchronise,
575
- c = [obj, num];
576
-
577
- for (var j = 0, l = s.length; j < l; j++) {
578
- var d = eType;
579
- if (!s[j][2]) {
580
- d = (d == 'prev') ? 'next' : 'prev';
581
- }
582
- if (!s[j][1]) {
583
- c[0] = s[j][0].triggerHandler('_cfs_triggerEvent', ['configuration', d]);
584
- }
585
- c[1] = num + s[j][3];
586
- s[j][0].trigger('_cfs_triggerEvent', ['slide_' + d, c]);
587
- }
588
- }
589
- return true;
590
- });
591
-
592
-
593
- // prev event
594
- $cfs.bind(cf_e('slide_prev', conf), function (e, sO, nI) {
595
- e.stopPropagation();
596
- var a_itm = $cfs.children();
597
-
598
- // non-circular at start, scroll to end
599
- if (!opts.circular) {
600
- if (itms.first == 0) {
601
- if (opts.infinite) {
602
- $cfs.trigger(cf_e('next', conf), itms.total - 1);
603
- }
604
- return e.stopImmediatePropagation();
605
- }
606
- }
607
-
608
- sz_resetMargin(a_itm, opts);
609
-
610
- // find number of items to scroll
611
- if (!is_number(nI)) {
612
- if (opts.items.visibleConf.variable) {
613
- nI = gn_getVisibleItemsPrev(a_itm, opts, itms.total - 1);
614
- }
615
- else if (opts.items.filter != '*') {
616
- var xI = (is_number(sO.items)) ? sO.items : gn_getVisibleOrg($cfs, opts);
617
- nI = gn_getScrollItemsPrevFilter(a_itm, opts, itms.total - 1, xI);
618
- }
619
- else {
620
- nI = opts.items.visible;
621
- }
622
- nI = cf_getAdjust(nI, opts, sO.items, $tt0);
623
- }
624
-
625
- // prevent non-circular from scrolling to far
626
- if (!opts.circular) {
627
- if (itms.total - nI < itms.first) {
628
- nI = itms.total - itms.first;
629
- }
630
- }
631
-
632
- // set new number of visible items
633
- opts.items.visibleConf.old = opts.items.visible;
634
- if (opts.items.visibleConf.variable) {
635
- var vI = cf_getItemsAdjust(gn_getVisibleItemsNext(a_itm, opts, itms.total - nI), opts, opts.items.visibleConf.adjust, $tt0);
636
- if (opts.items.visible + nI <= vI && nI < itms.total) {
637
- nI++;
638
- vI = cf_getItemsAdjust(gn_getVisibleItemsNext(a_itm, opts, itms.total - nI), opts, opts.items.visibleConf.adjust, $tt0);
639
- }
640
- opts.items.visible = vI;
641
- }
642
- else if (opts.items.filter != '*') {
643
- var vI = gn_getVisibleItemsNextFilter(a_itm, opts, itms.total - nI);
644
- opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0);
645
- }
646
-
647
- sz_resetMargin(a_itm, opts, true);
648
-
649
- // scroll 0, don't scroll
650
- if (nI == 0) {
651
- e.stopImmediatePropagation();
652
- return debug(conf, '0 items to scroll: Not scrolling.');
653
- }
654
- debug(conf, 'Scrolling ' + nI + ' items backward.');
655
-
656
-
657
- // save new config
658
- itms.first += nI;
659
- while (itms.first >= itms.total) {
660
- itms.first -= itms.total;
661
- }
662
-
663
- // non-circular callback
664
- if (!opts.circular) {
665
- if (itms.first == 0 && sO.onEnd) {
666
- sO.onEnd.call($tt0, 'prev');
667
- }
668
- if (!opts.infinite) {
669
- nv_enableNavi(opts, itms.first, conf);
670
- }
671
- }
672
-
673
- // rearrange items
674
- $cfs.children().slice(itms.total - nI, itms.total).prependTo($cfs);
675
- if (itms.total < opts.items.visible + nI) {
676
- $cfs.children().slice(0, (opts.items.visible + nI) - itms.total).clone(true).appendTo($cfs);
677
- }
678
-
679
- // the needed items
680
- var a_itm = $cfs.children(),
681
- i_old = gi_getOldItemsPrev(a_itm, opts, nI),
682
- i_new = gi_getNewItemsPrev(a_itm, opts),
683
- i_cur_l = a_itm.eq(nI - 1),
684
- i_old_l = i_old.last(),
685
- i_new_l = i_new.last();
686
-
687
- sz_resetMargin(a_itm, opts);
688
-
689
- var pL = 0,
690
- pR = 0;
691
-
692
- if (opts.align) {
693
- var p = cf_getAlignPadding(i_new, opts);
694
- pL = p[0];
695
- pR = p[1];
696
- }
697
- var oL = (pL < 0) ? opts.padding[opts.d[3]] : 0;
698
-
699
- // hide items for fx directscroll
700
- var hiddenitems = false,
701
- i_skp = $();
702
- if (opts.items.visible < nI) {
703
- i_skp = a_itm.slice(opts.items.visibleConf.old, nI);
704
- if (sO.fx == 'directscroll') {
705
- var orgW = opts.items[opts.d['width']];
706
- hiddenitems = i_skp;
707
- i_cur_l = i_new_l;
708
- sc_hideHiddenItems(hiddenitems);
709
- opts.items[opts.d['width']] = 'variable';
710
- }
711
- }
712
- // save new sizes
713
- var $cf2 = false,
714
- i_siz = ms_getTotalSize(a_itm.slice(0, nI), opts, 'width'),
715
- w_siz = cf_mapWrapperSizes(ms_getSizes(i_new, opts, true), opts, !opts.usePadding),
716
- i_siz_vis = 0,
717
- a_cfs = {},
718
- a_wsz = {},
719
- a_cur = {},
720
- a_old = {},
721
- a_new = {},
722
- a_lef = {},
723
- a_lef_vis = {},
724
- a_dur = sc_getDuration(sO, opts, nI, i_siz);
725
-
726
- switch (sO.fx) {
727
- case 'cover':
728
- case 'cover-fade':
729
- i_siz_vis = ms_getTotalSize(a_itm.slice(0, opts.items.visible), opts, 'width');
730
- break;
731
- }
732
-
733
- if (hiddenitems) {
734
- opts.items[opts.d['width']] = orgW;
735
- }
736
-
737
- sz_resetMargin(a_itm, opts, true);
738
- if (pR >= 0) {
739
- sz_resetMargin(i_old_l, opts, opts.padding[opts.d[1]]);
740
- }
741
- if (pL >= 0) {
742
- sz_resetMargin(i_cur_l, opts, opts.padding[opts.d[3]]);
743
- }
744
-
745
- if (opts.align) {
746
- opts.padding[opts.d[1]] = pR;
747
- opts.padding[opts.d[3]] = pL;
748
- }
749
-
750
- a_lef[opts.d['left']] = -(i_siz - oL);
751
- a_lef_vis[opts.d['left']] = -(i_siz_vis - oL);
752
- a_wsz[opts.d['left']] = w_siz[opts.d['width']];
753
-
754
- // scrolling functions
755
- var _s_wrapper = function () {
756
- },
757
- _a_wrapper = function () {
758
- },
759
- _s_paddingold = function () {
760
- },
761
- _a_paddingold = function () {
762
- },
763
- _s_paddingnew = function () {
764
- },
765
- _a_paddingnew = function () {
766
- },
767
- _s_paddingcur = function () {
768
- },
769
- _a_paddingcur = function () {
770
- },
771
- _onafter = function () {
772
- },
773
- _moveitems = function () {
774
- },
775
- _position = function () {
776
- };
777
-
778
- // clone carousel
779
- switch (sO.fx) {
780
- case 'crossfade':
781
- case 'cover':
782
- case 'cover-fade':
783
- case 'uncover':
784
- case 'uncover-fade':
785
- $cf2 = $cfs.clone(true).appendTo($wrp);
786
- break;
787
- }
788
- switch (sO.fx) {
789
- case 'crossfade':
790
- case 'uncover':
791
- case 'uncover-fade':
792
- $cf2.children().slice(0, nI).remove();
793
- $cf2.children().slice(opts.items.visibleConf.old).remove();
794
- break;
795
-
796
- case 'cover':
797
- case 'cover-fade':
798
- $cf2.children().slice(opts.items.visible).remove();
799
- $cf2.css(a_lef_vis);
800
- break;
801
- }
802
-
803
- $cfs.css(a_lef);
804
-
805
- // reset all scrolls
806
- scrl = sc_setScroll(a_dur, sO.easing, conf);
807
-
808
- // animate / set carousel
809
- a_cfs[opts.d['left']] = (opts.usePadding) ? opts.padding[opts.d[3]] : 0;
810
-
811
- // animate / set wrapper
812
- if (opts[opts.d['width']] == 'variable' || opts[opts.d['height']] == 'variable') {
813
- _s_wrapper = function () {
814
- $wrp.css(w_siz);
815
- };
816
- _a_wrapper = function () {
817
- scrl.anims.push([$wrp, w_siz]);
818
- };
819
- }
820
-
821
- // animate / set items
822
- if (opts.usePadding) {
823
- if (i_new_l.not(i_cur_l).length) {
824
- a_cur[opts.d['marginRight']] = i_cur_l.data('_cfs_origCssMargin');
825
-
826
- if (pL < 0) {
827
- i_cur_l.css(a_cur);
828
- }
829
- else {
830
- _s_paddingcur = function () {
831
- i_cur_l.css(a_cur);
832
- };
833
- _a_paddingcur = function () {
834
- scrl.anims.push([i_cur_l, a_cur]);
835
- };
836
- }
837
- }
838
- switch (sO.fx) {
839
- case 'cover':
840
- case 'cover-fade':
841
- $cf2.children().eq(nI - 1).css(a_cur);
842
- break;
843
- }
844
-
845
- if (i_new_l.not(i_old_l).length) {
846
- a_old[opts.d['marginRight']] = i_old_l.data('_cfs_origCssMargin');
847
- _s_paddingold = function () {
848
- i_old_l.css(a_old);
849
- };
850
- _a_paddingold = function () {
851
- scrl.anims.push([i_old_l, a_old]);
852
- };
853
- }
854
-
855
- if (pR >= 0) {
856
- a_new[opts.d['marginRight']] = i_new_l.data('_cfs_origCssMargin') + opts.padding[opts.d[1]];
857
- _s_paddingnew = function () {
858
- i_new_l.css(a_new);
859
- };
860
- _a_paddingnew = function () {
861
- scrl.anims.push([i_new_l, a_new]);
862
- };
863
- }
864
- }
865
-
866
- // set position
867
- _position = function () {
868
- $cfs.css(a_cfs);
869
- };
870
-
871
-
872
- var overFill = opts.items.visible + nI - itms.total;
873
-
874
- // rearrange items
875
- _moveitems = function () {
876
- if (overFill > 0) {
877
- $cfs.children().slice(itms.total).remove();
878
- i_old = $($cfs.children().slice(itms.total - (opts.items.visible - overFill)).get().concat($cfs.children().slice(0, overFill).get()));
879
- }
880
- sc_showHiddenItems(hiddenitems);
881
-
882
- if (opts.usePadding) {
883
- var l_itm = $cfs.children().eq(opts.items.visible + nI - 1);
884
- l_itm.css(opts.d['marginRight'], l_itm.data('_cfs_origCssMargin'));
885
- }
886
- };
887
-
888
-
889
- var cb_arguments = sc_mapCallbackArguments(i_old, i_skp, i_new, nI, 'prev', a_dur, w_siz);
890
-
891
- // fire onAfter callbacks
892
- _onafter = function () {
893
- sc_afterScroll($cfs, $cf2, sO);
894
- crsl.isScrolling = false;
895
- clbk.onAfter = sc_fireCallbacks($tt0, sO, 'onAfter', cb_arguments, clbk);
896
- queu = sc_fireQueue($cfs, queu, conf);
897
-
898
- if (!crsl.isPaused) {
899
- $cfs.trigger(cf_e('play', conf));
900
- }
901
- };
902
-
903
- // fire onBefore callback
904
- crsl.isScrolling = true;
905
- tmrs = sc_clearTimers(tmrs);
906
- clbk.onBefore = sc_fireCallbacks($tt0, sO, 'onBefore', cb_arguments, clbk);
907
-
908
- switch (sO.fx) {
909
- case 'none':
910
- $cfs.css(a_cfs);
911
- _s_wrapper();
912
- _s_paddingold();
913
- _s_paddingnew();
914
- _s_paddingcur();
915
- _position();
916
- _moveitems();
917
- _onafter();
918
- break;
919
-
920
- case 'fade':
921
- scrl.anims.push([$cfs, {'opacity': 0}, function () {
922
- _s_wrapper();
923
- _s_paddingold();
924
- _s_paddingnew();
925
- _s_paddingcur();
926
- _position();
927
- _moveitems();
928
- scrl = sc_setScroll(a_dur, sO.easing, conf);
929
- scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
930
- sc_startScroll(scrl, conf);
931
- }]);
932
- break;
933
-
934
- case 'crossfade':
935
- $cfs.css({'opacity': 0});
936
- scrl.anims.push([$cf2, {'opacity': 0}]);
937
- scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
938
- _a_wrapper();
939
- _s_paddingold();
940
- _s_paddingnew();
941
- _s_paddingcur();
942
- _position();
943
- _moveitems();
944
- break;
945
-
946
- case 'cover':
947
- scrl.anims.push([$cf2, a_cfs, function () {
948
- _s_paddingold();
949
- _s_paddingnew();
950
- _s_paddingcur();
951
- _position();
952
- _moveitems();
953
- _onafter();
954
- }]);
955
- _a_wrapper();
956
- break;
957
-
958
- case 'cover-fade':
959
- scrl.anims.push([$cfs, {'opacity': 0}]);
960
- scrl.anims.push([$cf2, a_cfs, function () {
961
- _s_paddingold();
962
- _s_paddingnew();
963
- _s_paddingcur();
964
- _position();
965
- _moveitems();
966
- _onafter();
967
- }]);
968
- _a_wrapper();
969
- break;
970
-
971
- case 'uncover':
972
- scrl.anims.push([$cf2, a_wsz, _onafter]);
973
- _a_wrapper();
974
- _s_paddingold();
975
- _s_paddingnew();
976
- _s_paddingcur();
977
- _position();
978
- _moveitems();
979
- break;
980
-
981
- case 'uncover-fade':
982
- $cfs.css({'opacity': 0});
983
- scrl.anims.push([$cfs, {'opacity': 1}]);
984
- scrl.anims.push([$cf2, a_wsz, _onafter]);
985
- _a_wrapper();
986
- _s_paddingold();
987
- _s_paddingnew();
988
- _s_paddingcur();
989
- _position();
990
- _moveitems();
991
- break;
992
-
993
- default:
994
- scrl.anims.push([$cfs, a_cfs, function () {
995
- _moveitems();
996
- _onafter();
997
- }]);
998
- _a_wrapper();
999
- _a_paddingold();
1000
- _a_paddingnew();
1001
- _a_paddingcur();
1002
- break;
1003
- }
1004
-
1005
- sc_startScroll(scrl, conf);
1006
- cf_setCookie(opts.cookie, $cfs, conf);
1007
-
1008
- $cfs.trigger(cf_e('updatePageStatus', conf), [false, w_siz]);
1009
-
1010
- return true;
1011
- });
1012
-
1013
-
1014
- // next event
1015
- $cfs.bind(cf_e('slide_next', conf), function (e, sO, nI) {
1016
- e.stopPropagation();
1017
- var a_itm = $cfs.children();
1018
-
1019
- // non-circular at end, scroll to start
1020
- if (!opts.circular) {
1021
- if (itms.first == opts.items.visible) {
1022
- if (opts.infinite) {
1023
- $cfs.trigger(cf_e('prev', conf), itms.total - 1);
1024
- }
1025
- return e.stopImmediatePropagation();
1026
- }
1027
- }
1028
-
1029
- sz_resetMargin(a_itm, opts);
1030
-
1031
- // find number of items to scroll
1032
- if (!is_number(nI)) {
1033
- if (opts.items.filter != '*') {
1034
- var xI = (is_number(sO.items)) ? sO.items : gn_getVisibleOrg($cfs, opts);
1035
- nI = gn_getScrollItemsNextFilter(a_itm, opts, 0, xI);
1036
- }
1037
- else {
1038
- nI = opts.items.visible;
1039
- }
1040
- nI = cf_getAdjust(nI, opts, sO.items, $tt0);
1041
- }
1042
-
1043
- var lastItemNr = (itms.first == 0) ? itms.total : itms.first;
1044
-
1045
- // prevent non-circular from scrolling to far
1046
- if (!opts.circular) {
1047
- if (opts.items.visibleConf.variable) {
1048
- var vI = gn_getVisibleItemsNext(a_itm, opts, nI),
1049
- xI = gn_getVisibleItemsPrev(a_itm, opts, lastItemNr - 1);
1050
- }
1051
- else {
1052
- var vI = opts.items.visible,
1053
- xI = opts.items.visible;
1054
- }
1055
-
1056
- if (nI + vI > lastItemNr) {
1057
- nI = lastItemNr - xI;
1058
- }
1059
- }
1060
-
1061
- // set new number of visible items
1062
- opts.items.visibleConf.old = opts.items.visible;
1063
- if (opts.items.visibleConf.variable) {
1064
- var vI = cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(a_itm, opts, nI, lastItemNr), opts, opts.items.visibleConf.adjust, $tt0);
1065
- while (opts.items.visible - nI >= vI && nI < itms.total) {
1066
- nI++;
1067
- vI = cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(a_itm, opts, nI, lastItemNr), opts, opts.items.visibleConf.adjust, $tt0);
1068
- }
1069
- opts.items.visible = vI;
1070
- }
1071
- else if (opts.items.filter != '*') {
1072
- var vI = gn_getVisibleItemsNextFilter(a_itm, opts, nI);
1073
- opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0);
1074
- }
1075
-
1076
- sz_resetMargin(a_itm, opts, true);
1077
-
1078
- // scroll 0, don't scroll
1079
- if (nI == 0) {
1080
- e.stopImmediatePropagation();
1081
- return debug(conf, '0 items to scroll: Not scrolling.');
1082
- }
1083
- debug(conf, 'Scrolling ' + nI + ' items forward.');
1084
-
1085
-
1086
- // save new config
1087
- itms.first -= nI;
1088
- while (itms.first < 0) {
1089
- itms.first += itms.total;
1090
- }
1091
-
1092
- // non-circular callback
1093
- if (!opts.circular) {
1094
- if (itms.first == opts.items.visible && sO.onEnd) {
1095
- sO.onEnd.call($tt0, 'next');
1096
- }
1097
- if (!opts.infinite) {
1098
- nv_enableNavi(opts, itms.first, conf);
1099
- }
1100
- }
1101
-
1102
- // rearrange items
1103
- if (itms.total < opts.items.visible + nI) {
1104
- $cfs.children().slice(0, (opts.items.visible + nI) - itms.total).clone(true).appendTo($cfs);
1105
- }
1106
-
1107
- // the needed items
1108
- var a_itm = $cfs.children(),
1109
- i_old = gi_getOldItemsNext(a_itm, opts),
1110
- i_new = gi_getNewItemsNext(a_itm, opts, nI),
1111
- i_cur_l = a_itm.eq(nI - 1),
1112
- i_old_l = i_old.last(),
1113
- i_new_l = i_new.last();
1114
-
1115
- sz_resetMargin(a_itm, opts);
1116
-
1117
- var pL = 0,
1118
- pR = 0;
1119
-
1120
- if (opts.align) {
1121
- var p = cf_getAlignPadding(i_new, opts);
1122
- pL = p[0];
1123
- pR = p[1];
1124
- }
1125
-
1126
- // hide items for fx directscroll
1127
- var hiddenitems = false,
1128
- i_skp = $();
1129
- if (opts.items.visibleConf.old < nI) {
1130
- i_skp = a_itm.slice(opts.items.visibleConf.old, nI);
1131
- if (sO.fx == 'directscroll') {
1132
- var orgW = opts.items[opts.d['width']];
1133
- hiddenitems = i_skp;
1134
- i_cur_l = i_old_l;
1135
- sc_hideHiddenItems(hiddenitems);
1136
- opts.items[opts.d['width']] = 'variable';
1137
- }
1138
- }
1139
- // save new sizes
1140
- var $cf2 = false,
1141
- i_siz = ms_getTotalSize(a_itm.slice(0, nI), opts, 'width'),
1142
- w_siz = cf_mapWrapperSizes(ms_getSizes(i_new, opts, true), opts, !opts.usePadding),
1143
- i_siz_vis = 0,
1144
- a_cfs = {},
1145
- a_cfs_vis = {},
1146
- a_cur = {},
1147
- a_old = {},
1148
- a_lef = {},
1149
- a_dur = sc_getDuration(sO, opts, nI, i_siz);
1150
-
1151
- switch (sO.fx) {
1152
- case 'uncover':
1153
- case 'uncover-fade':
1154
- i_siz_vis = ms_getTotalSize(a_itm.slice(0, opts.items.visibleConf.old), opts, 'width');
1155
- break;
1156
- }
1157
-
1158
- if (hiddenitems) {
1159
- opts.items[opts.d['width']] = orgW;
1160
- }
1161
-
1162
- if (opts.align) {
1163
- if (opts.padding[opts.d[1]] < 0) {
1164
- opts.padding[opts.d[1]] = 0;
1165
- }
1166
- }
1167
- sz_resetMargin(a_itm, opts, true);
1168
- sz_resetMargin(i_old_l, opts, opts.padding[opts.d[1]]);
1169
-
1170
- if (opts.align) {
1171
- opts.padding[opts.d[1]] = pR;
1172
- opts.padding[opts.d[3]] = pL;
1173
- }
1174
-
1175
- a_lef[opts.d['left']] = (opts.usePadding) ? opts.padding[opts.d[3]] : 0;
1176
-
1177
- // scrolling functions
1178
- var _s_wrapper = function () {
1179
- },
1180
- _a_wrapper = function () {
1181
- },
1182
- _s_paddingold = function () {
1183
- },
1184
- _a_paddingold = function () {
1185
- },
1186
- _s_paddingcur = function () {
1187
- },
1188
- _a_paddingcur = function () {
1189
- },
1190
- _onafter = function () {
1191
- },
1192
- _moveitems = function () {
1193
- },
1194
- _position = function () {
1195
- };
1196
-
1197
- // clone carousel
1198
- switch (sO.fx) {
1199
- case 'crossfade':
1200
- case 'cover':
1201
- case 'cover-fade':
1202
- case 'uncover':
1203
- case 'uncover-fade':
1204
- $cf2 = $cfs.clone(true).appendTo($wrp);
1205
- $cf2.children().slice(opts.items.visibleConf.old).remove();
1206
- break;
1207
- }
1208
- switch (sO.fx) {
1209
- case 'crossfade':
1210
- case 'cover':
1211
- case 'cover-fade':
1212
- $cfs.css('zIndex', 1);
1213
- $cf2.css('zIndex', 0);
1214
- break;
1215
- }
1216
-
1217
- // reset all scrolls
1218
- scrl = sc_setScroll(a_dur, sO.easing, conf);
1219
-
1220
- // animate / set carousel
1221
- a_cfs[opts.d['left']] = -i_siz;
1222
- a_cfs_vis[opts.d['left']] = -i_siz_vis;
1223
-
1224
- if (pL < 0) {
1225
- a_cfs[opts.d['left']] += pL;
1226
- }
1227
-
1228
- // animate / set wrapper
1229
- if (opts[opts.d['width']] == 'variable' || opts[opts.d['height']] == 'variable') {
1230
- _s_wrapper = function () {
1231
- $wrp.css(w_siz);
1232
- };
1233
- _a_wrapper = function () {
1234
- scrl.anims.push([$wrp, w_siz]);
1235
- };
1236
- }
1237
-
1238
- // animate / set items
1239
- if (opts.usePadding) {
1240
- var i_new_l_m = i_new_l.data('_cfs_origCssMargin');
1241
-
1242
- if (pR >= 0) {
1243
- i_new_l_m += opts.padding[opts.d[1]];
1244
- }
1245
- i_new_l.css(opts.d['marginRight'], i_new_l_m);
1246
-
1247
- if (i_cur_l.not(i_old_l).length) {
1248
- a_old[opts.d['marginRight']] = i_old_l.data('_cfs_origCssMargin');
1249
- }
1250
- _s_paddingold = function () {
1251
- i_old_l.css(a_old);
1252
- };
1253
- _a_paddingold = function () {
1254
- scrl.anims.push([i_old_l, a_old]);
1255
- };
1256
-
1257
- var i_cur_l_m = i_cur_l.data('_cfs_origCssMargin');
1258
- if (pL > 0) {
1259
- i_cur_l_m += opts.padding[opts.d[3]];
1260
- }
1261
-
1262
- a_cur[opts.d['marginRight']] = i_cur_l_m;
1263
-
1264
- _s_paddingcur = function () {
1265
- i_cur_l.css(a_cur);
1266
- };
1267
- _a_paddingcur = function () {
1268
- scrl.anims.push([i_cur_l, a_cur]);
1269
- };
1270
- }
1271
-
1272
- // set position
1273
- _position = function () {
1274
- $cfs.css(a_lef);
1275
- };
1276
-
1277
-
1278
- var overFill = opts.items.visible + nI - itms.total;
1279
-
1280
- // rearrange items
1281
- _moveitems = function () {
1282
- if (overFill > 0) {
1283
- $cfs.children().slice(itms.total).remove();
1284
- }
1285
- var l_itm = $cfs.children().slice(0, nI).appendTo($cfs).last();
1286
- if (overFill > 0) {
1287
- i_new = gi_getCurrentItems(a_itm, opts);
1288
- }
1289
- sc_showHiddenItems(hiddenitems);
1290
-
1291
- if (opts.usePadding) {
1292
- if (itms.total < opts.items.visible + nI) {
1293
- var i_cur_l = $cfs.children().eq(opts.items.visible - 1);
1294
- i_cur_l.css(opts.d['marginRight'], i_cur_l.data('_cfs_origCssMargin') + opts.padding[opts.d[1]]);
1295
- }
1296
- l_itm.css(opts.d['marginRight'], l_itm.data('_cfs_origCssMargin'));
1297
- }
1298
- };
1299
-
1300
-
1301
- var cb_arguments = sc_mapCallbackArguments(i_old, i_skp, i_new, nI, 'next', a_dur, w_siz);
1302
-
1303
- // fire onAfter callbacks
1304
- _onafter = function () {
1305
- $cfs.css('zIndex', $cfs.data('_cfs_origCssZindex'));
1306
- sc_afterScroll($cfs, $cf2, sO);
1307
- crsl.isScrolling = false;
1308
- clbk.onAfter = sc_fireCallbacks($tt0, sO, 'onAfter', cb_arguments, clbk);
1309
- queu = sc_fireQueue($cfs, queu, conf);
1310
-
1311
- if (!crsl.isPaused) {
1312
- $cfs.trigger(cf_e('play', conf));
1313
- }
1314
- };
1315
-
1316
- // fire onBefore callbacks
1317
- crsl.isScrolling = true;
1318
- tmrs = sc_clearTimers(tmrs);
1319
- clbk.onBefore = sc_fireCallbacks($tt0, sO, 'onBefore', cb_arguments, clbk);
1320
-
1321
- switch (sO.fx) {
1322
- case 'none':
1323
- $cfs.css(a_cfs);
1324
- _s_wrapper();
1325
- _s_paddingold();
1326
- _s_paddingcur();
1327
- _position();
1328
- _moveitems();
1329
- _onafter();
1330
- break;
1331
-
1332
- case 'fade':
1333
- scrl.anims.push([$cfs, {'opacity': 0}, function () {
1334
- _s_wrapper();
1335
- _s_paddingold();
1336
- _s_paddingcur();
1337
- _position();
1338
- _moveitems();
1339
- scrl = sc_setScroll(a_dur, sO.easing, conf);
1340
- scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
1341
- sc_startScroll(scrl, conf);
1342
- }]);
1343
- break;
1344
-
1345
- case 'crossfade':
1346
- $cfs.css({'opacity': 0});
1347
- scrl.anims.push([$cf2, {'opacity': 0}]);
1348
- scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
1349
- _a_wrapper();
1350
- _s_paddingold();
1351
- _s_paddingcur();
1352
- _position();
1353
- _moveitems();
1354
- break;
1355
-
1356
- case 'cover':
1357
- $cfs.css(opts.d['left'], $wrp[opts.d['width']]());
1358
- scrl.anims.push([$cfs, a_lef, _onafter]);
1359
- _a_wrapper();
1360
- _s_paddingold();
1361
- _s_paddingcur();
1362
- _moveitems();
1363
- break;
1364
-
1365
- case 'cover-fade':
1366
- $cfs.css(opts.d['left'], $wrp[opts.d['width']]());
1367
- scrl.anims.push([$cf2, {'opacity': 0}]);
1368
- scrl.anims.push([$cfs, a_lef, _onafter]);
1369
- _a_wrapper();
1370
- _s_paddingold();
1371
- _s_paddingcur();
1372
- _moveitems();
1373
- break;
1374
-
1375
- case 'uncover':
1376
- scrl.anims.push([$cf2, a_cfs_vis, _onafter]);
1377
- _a_wrapper();
1378
- _s_paddingold();
1379
- _s_paddingcur();
1380
- _position();
1381
- _moveitems();
1382
- break;
1383
-
1384
- case 'uncover-fade':
1385
- $cfs.css({'opacity': 0});
1386
- scrl.anims.push([$cfs, {'opacity': 1}]);
1387
- scrl.anims.push([$cf2, a_cfs_vis, _onafter]);
1388
- _a_wrapper();
1389
- _s_paddingold();
1390
- _s_paddingcur();
1391
- _position();
1392
- _moveitems();
1393
- break;
1394
-
1395
- default:
1396
- scrl.anims.push([$cfs, a_cfs, function () {
1397
- _position();
1398
- _moveitems();
1399
- _onafter();
1400
- }]);
1401
- _a_wrapper();
1402
- _a_paddingold();
1403
- _a_paddingcur();
1404
- break;
1405
- }
1406
-
1407
- sc_startScroll(scrl, conf);
1408
- cf_setCookie(opts.cookie, $cfs, conf);
1409
-
1410
- $cfs.trigger(cf_e('updatePageStatus', conf), [false, w_siz]);
1411
-
1412
- return true;
1413
- });
1414
-
1415
-
1416
- // slideTo event
1417
- $cfs.bind(cf_e('slideTo', conf), function (e, num, dev, org, obj, dir, clb) {
1418
- e.stopPropagation();
1419
-
1420
- var v = [num, dev, org, obj, dir, clb],
1421
- t = ['string/number/object', 'number', 'boolean', 'object', 'string', 'function'],
1422
- a = cf_sortParams(v, t);
1423
-
1424
- obj = a[3];
1425
- dir = a[4];
1426
- clb = a[5];
1427
-
1428
- num = gn_getItemIndex(a[0], a[1], a[2], itms, $cfs);
1429
-
1430
- if (num == 0) {
1431
- return false;
1432
- }
1433
- if (!is_object(obj)) {
1434
- obj = false;
1435
- }
1436
-
1437
- if (dir != 'prev' && dir != 'next') {
1438
- if (opts.circular) {
1439
- dir = (num <= itms.total / 2) ? 'next' : 'prev';
1440
- }
1441
- else {
1442
- dir = (itms.first == 0 || itms.first > num) ? 'next' : 'prev';
1443
- }
1444
- }
1445
-
1446
- if (dir == 'prev') {
1447
- num = itms.total - num;
1448
- }
1449
- $cfs.trigger(cf_e(dir, conf), [obj, num, clb]);
1450
-
1451
- return true;
1452
- });
1453
-
1454
-
1455
- // prevPage event
1456
- $cfs.bind(cf_e('prevPage', conf), function (e, obj, clb) {
1457
- e.stopPropagation();
1458
- var cur = $cfs.triggerHandler(cf_e('currentPage', conf));
1459
- return $cfs.triggerHandler(cf_e('slideToPage', conf), [cur - 1, obj, 'prev', clb]);
1460
- });
1461
-
1462
-
1463
- // nextPage event
1464
- $cfs.bind(cf_e('nextPage', conf), function (e, obj, clb) {
1465
- e.stopPropagation();
1466
- var cur = $cfs.triggerHandler(cf_e('currentPage', conf));
1467
- return $cfs.triggerHandler(cf_e('slideToPage', conf), [cur + 1, obj, 'next', clb]);
1468
- });
1469
-
1470
-
1471
- // slideToPage event
1472
- $cfs.bind(cf_e('slideToPage', conf), function (e, pag, obj, dir, clb) {
1473
- e.stopPropagation();
1474
- if (!is_number(pag)) {
1475
- pag = $cfs.triggerHandler(cf_e('currentPage', conf));
1476
- }
1477
- var ipp = opts.pagination.items || opts.items.visible,
1478
- max = Math.ceil(itms.total / ipp) - 1;
1479
-
1480
- if (pag < 0) {
1481
- pag = max;
1482
- }
1483
- if (pag > max) {
1484
- pag = 0;
1485
- }
1486
- return $cfs.triggerHandler(cf_e('slideTo', conf), [pag * ipp, 0, true, obj, dir, clb]);
1487
- });
1488
-
1489
- // jumpToStart event
1490
- $cfs.bind(cf_e('jumpToStart', conf), function (e, s) {
1491
- e.stopPropagation();
1492
- if (s) {
1493
- s = gn_getItemIndex(s, 0, true, itms, $cfs);
1494
- }
1495
- else {
1496
- s = 0;
1497
- }
1498
-
1499
- s += itms.first;
1500
- if (s != 0) {
1501
- if (itms.total > 0) {
1502
- while (s > itms.total) {
1503
- s -= itms.total;
1504
- }
1505
- }
1506
- $cfs.prepend($cfs.children().slice(s, itms.total));
1507
- }
1508
- return true;
1509
- });
1510
-
1511
-
1512
- // synchronise event
1513
- $cfs.bind(cf_e('synchronise', conf), function (e, s) {
1514
- e.stopPropagation();
1515
- if (s) {
1516
- s = cf_getSynchArr(s);
1517
- }
1518
- else if (opts.synchronise) {
1519
- s = opts.synchronise;
1520
- }
1521
- else {
1522
- return debug(conf, 'No carousel to synchronise.');
1523
- }
1524
-
1525
- var n = $cfs.triggerHandler(cf_e('currentPosition', conf)),
1526
- x = true;
1527
-
1528
- for (var j = 0, l = s.length; j < l; j++) {
1529
- if (!s[j][0].triggerHandler(cf_e('slideTo', conf), [n, s[j][3], true])) {
1530
- x = false;
1531
- }
1532
- }
1533
- return x;
1534
- });
1535
-
1536
-
1537
- // queue event
1538
- $cfs.bind(cf_e('queue', conf), function (e, dir, opt) {
1539
- e.stopPropagation();
1540
- if (is_function(dir)) {
1541
- dir.call($tt0, queu);
1542
- }
1543
- else if (is_array(dir)) {
1544
- queu = dir;
1545
- }
1546
- else if (!is_undefined(dir)) {
1547
- queu.push([dir, opt]);
1548
- }
1549
- return queu;
1550
- });
1551
-
1552
-
1553
- // insertItem event
1554
- $cfs.bind(cf_e('insertItem', conf), function (e, itm, num, org, dev) {
1555
- e.stopPropagation();
1556
-
1557
- var v = [itm, num, org, dev],
1558
- t = ['string/object', 'string/number/object', 'boolean', 'number'],
1559
- a = cf_sortParams(v, t);
1560
-
1561
- itm = a[0];
1562
- num = a[1];
1563
- org = a[2];
1564
- dev = a[3];
1565
-
1566
- if (is_object(itm) && !is_jquery(itm)) {
1567
- itm = $(itm);
1568
- }
1569
- else if (is_string(itm)) {
1570
- itm = $(itm);
1571
- }
1572
- if (!is_jquery(itm) || itm.length == 0) {
1573
- return debug(conf, 'Not a valid object.');
1574
- }
1575
-
1576
- if (is_undefined(num)) {
1577
- num = 'end';
1578
- }
1579
-
1580
- sz_storeMargin(itm, opts);
1581
- sz_storeOrigCss(itm);
1582
-
1583
- var orgNum = num,
1584
- before = 'before';
1585
-
1586
- if (num == 'end') {
1587
- if (org) {
1588
- if (itms.first == 0) {
1589
- num = itms.total - 1;
1590
- before = 'after';
1591
- }
1592
- else {
1593
- num = itms.first;
1594
- itms.first += itm.length;
1595
- }
1596
- if (num < 0) {
1597
- num = 0;
1598
- }
1599
- }
1600
- else {
1601
- num = itms.total - 1;
1602
- before = 'after';
1603
- }
1604
- }
1605
- else {
1606
- num = gn_getItemIndex(num, dev, org, itms, $cfs);
1607
- }
1608
-
1609
- var $cit = $cfs.children().eq(num);
1610
- if ($cit.length) {
1611
- $cit[before](itm);
1612
- }
1613
- else {
1614
- debug(conf, 'Correct insert-position not found! Appending item to the end.');
1615
- $cfs.append(itm);
1616
- }
1617
-
1618
- if (orgNum != 'end' && !org) {
1619
- if (num < itms.first) {
1620
- itms.first += itm.length;
1621
- }
1622
- }
1623
- itms.total = $cfs.children().length;
1624
- if (itms.first >= itms.total) {
1625
- itms.first -= itms.total;
1626
- }
1627
-
1628
- $cfs.trigger(cf_e('updateSizes', conf));
1629
- $cfs.trigger(cf_e('linkAnchors', conf));
1630
-
1631
- return true;
1632
- });
1633
-
1634
-
1635
- // removeItem event
1636
- $cfs.bind(cf_e('removeItem', conf), function (e, num, org, dev) {
1637
- e.stopPropagation();
1638
-
1639
- var v = [num, org, dev],
1640
- t = ['string/number/object', 'boolean', 'number'],
1641
- a = cf_sortParams(v, t);
1642
-
1643
- num = a[0];
1644
- org = a[1];
1645
- dev = a[2];
1646
-
1647
- var removed = false;
1648
-
1649
- if (num instanceof $ && num.length > 1) {
1650
- $removed = $();
1651
- num.each(function (i, el) {
1652
- var $rem = $cfs.trigger(cf_e('removeItem', conf), [$(this), org, dev]);
1653
- if ($rem) {
1654
- $removed = $removed.add($rem);
1655
- }
1656
- });
1657
- return $removed;
1658
- }
1659
-
1660
- if (is_undefined(num) || num == 'end') {
1661
- $removed = $cfs.children().last();
1662
- }
1663
- else {
1664
- num = gn_getItemIndex(num, dev, org, itms, $cfs);
1665
- var $removed = $cfs.children().eq(num);
1666
- if ($removed.length) {
1667
- if (num < itms.first) {
1668
- itms.first -= $removed.length;
1669
- }
1670
- }
1671
- }
1672
- if ($removed && $removed.length) {
1673
- $removed.detach();
1674
- itms.total = $cfs.children().length;
1675
- $cfs.trigger(cf_e('updateSizes', conf));
1676
- }
1677
-
1678
- return $removed;
1679
- });
1680
-
1681
-
1682
- // onBefore and onAfter event
1683
- $cfs.bind(cf_e('onBefore', conf) + ' ' + cf_e('onAfter', conf), function (e, fn) {
1684
- e.stopPropagation();
1685
- var eType = e.type.slice(conf.events.prefix.length);
1686
- if (is_array(fn)) {
1687
- clbk[eType] = fn;
1688
- }
1689
- if (is_function(fn)) {
1690
- clbk[eType].push(fn);
1691
- }
1692
- return clbk[eType];
1693
- });
1694
-
1695
-
1696
- // currentPosition event
1697
- $cfs.bind(cf_e('currentPosition', conf), function (e, fn) {
1698
- e.stopPropagation();
1699
- if (itms.first == 0) {
1700
- var val = 0;
1701
- }
1702
- else {
1703
- var val = itms.total - itms.first;
1704
- }
1705
- if (is_function(fn)) {
1706
- fn.call($tt0, val);
1707
- }
1708
- return val;
1709
- });
1710
-
1711
-
1712
- // currentPage event
1713
- $cfs.bind(cf_e('currentPage', conf), function (e, fn) {
1714
- e.stopPropagation();
1715
- var ipp = opts.pagination.items || opts.items.visible,
1716
- max = Math.ceil(itms.total / ipp - 1),
1717
- nr;
1718
- if (itms.first == 0) {
1719
- nr = 0;
1720
- }
1721
- else if (itms.first < itms.total % ipp) {
1722
- nr = 0;
1723
- }
1724
- else if (itms.first == ipp && !opts.circular) {
1725
- nr = max;
1726
- }
1727
- else {
1728
- nr = Math.round((itms.total - itms.first) / ipp);
1729
- }
1730
- if (nr < 0) {
1731
- nr = 0;
1732
- }
1733
- if (nr > max) {
1734
- nr = max;
1735
- }
1736
- if (is_function(fn)) {
1737
- fn.call($tt0, nr);
1738
- }
1739
- return nr;
1740
- });
1741
-
1742
-
1743
- // currentVisible event
1744
- $cfs.bind(cf_e('currentVisible', conf), function (e, fn) {
1745
- e.stopPropagation();
1746
- var $i = gi_getCurrentItems($cfs.children(), opts);
1747
- if (is_function(fn)) {
1748
- fn.call($tt0, $i);
1749
- }
1750
- return $i;
1751
- });
1752
-
1753
-
1754
- // slice event
1755
- $cfs.bind(cf_e('slice', conf), function (e, f, l, fn) {
1756
- e.stopPropagation();
1757
-
1758
- if (itms.total == 0) {
1759
- return false;
1760
- }
1761
-
1762
- var v = [f, l, fn],
1763
- t = ['number', 'number', 'function'],
1764
- a = cf_sortParams(v, t);
1765
-
1766
- f = (is_number(a[0])) ? a[0] : 0;
1767
- l = (is_number(a[1])) ? a[1] : itms.total;
1768
- fn = a[2];
1769
-
1770
- f += itms.first;
1771
- l += itms.first;
1772
-
1773
- if (items.total > 0) {
1774
- while (f > itms.total) {
1775
- f -= itms.total;
1776
- }
1777
- while (l > itms.total) {
1778
- l -= itms.total;
1779
- }
1780
- while (f < 0) {
1781
- f += itms.total;
1782
- }
1783
- while (l < 0) {
1784
- l += itms.total;
1785
- }
1786
- }
1787
- var $iA = $cfs.children(),
1788
- $i;
1789
-
1790
- if (l > f) {
1791
- $i = $iA.slice(f, l);
1792
- }
1793
- else {
1794
- $i = $($iA.slice(f, itms.total).get().concat($iA.slice(0, l).get()));
1795
- }
1796
-
1797
- if (is_function(fn)) {
1798
- fn.call($tt0, $i);
1799
- }
1800
- return $i;
1801
- });
1802
-
1803
-
1804
- // isPaused, isStopped and isScrolling events
1805
- $cfs.bind(cf_e('isPaused', conf) + ' ' + cf_e('isStopped', conf) + ' ' + cf_e('isScrolling', conf), function (e, fn) {
1806
- e.stopPropagation();
1807
- var eType = e.type.slice(conf.events.prefix.length),
1808
- value = crsl[eType];
1809
- if (is_function(fn)) {
1810
- fn.call($tt0, value);
1811
- }
1812
- return value;
1813
- });
1814
-
1815
-
1816
- // configuration event
1817
- $cfs.bind(cf_e('configuration', conf), function (e, a, b, c) {
1818
- e.stopPropagation();
1819
- var reInit = false;
1820
-
1821
- // return entire configuration-object
1822
- if (is_function(a)) {
1823
- a.call($tt0, opts);
1824
- }
1825
- // set multiple options via object
1826
- else if (is_object(a)) {
1827
- opts_orig = $.extend(true, {}, opts_orig, a);
1828
- if (b !== false) reInit = true;
1829
- else opts = $.extend(true, {}, opts, a);
1830
-
1831
- }
1832
- else if (!is_undefined(a)) {
1833
-
1834
- // callback function for specific option
1835
- if (is_function(b)) {
1836
- var val = eval('opts.' + a);
1837
- if (is_undefined(val)) {
1838
- val = '';
1839
- }
1840
- b.call($tt0, val);
1841
- }
1842
- // set individual option
1843
- else if (!is_undefined(b)) {
1844
- if (typeof c !== 'boolean') c = true;
1845
- eval('opts_orig.' + a + ' = b');
1846
- if (c !== false) reInit = true;
1847
- else eval('opts.' + a + ' = b');
1848
- }
1849
- // return value for specific option
1850
- else {
1851
- return eval('opts.' + a);
1852
- }
1853
- }
1854
- if (reInit) {
1855
- sz_resetMargin($cfs.children(), opts);
1856
- FN._init(opts_orig);
1857
- FN._bind_buttons();
1858
- var sz = sz_setSizes($cfs, opts);
1859
- $cfs.trigger(cf_e('updatePageStatus', conf), [true, sz]);
1860
- }
1861
- return opts;
1862
- });
1863
-
1864
-
1865
- // linkAnchors event
1866
- $cfs.bind(cf_e('linkAnchors', conf), function (e, $con, sel) {
1867
- e.stopPropagation();
1868
-
1869
- if (is_undefined($con)) {
1870
- $con = $('body');
1871
- }
1872
- else if (is_string($con)) {
1873
- $con = $($con);
1874
- }
1875
- if (!is_jquery($con) || $con.length == 0) {
1876
- return debug(conf, 'Not a valid object.');
1877
- }
1878
- if (!is_string(sel)) {
1879
- sel = 'a.caroufredsel';
1880
- }
1881
-
1882
- $con.find(sel).each(function () {
1883
- var h = this.hash || '';
1884
- if (h.length > 0 && $cfs.children().index($(h)) != -1) {
1885
- $(this).unbind('click').click(function (e) {
1886
- e.preventDefault();
1887
- $cfs.trigger(cf_e('slideTo', conf), h);
1888
- });
1889
- }
1890
- });
1891
- return true;
1892
- });
1893
-
1894
-
1895
- // updatePageStatus event
1896
- $cfs.bind(cf_e('updatePageStatus', conf), function (e, build, sizes) {
1897
- e.stopPropagation();
1898
- if (!opts.pagination.container) {
1899
- return;
1900
- }
1901
-
1902
- var ipp = opts.pagination.items || opts.items.visible,
1903
- pgs = Math.ceil(itms.total / ipp);
1904
-
1905
- if (build) {
1906
- if (opts.pagination.anchorBuilder) {
1907
- opts.pagination.container.children().remove();
1908
- opts.pagination.container.each(function () {
1909
- for (var a = 0; a < pgs; a++) {
1910
- var i = $cfs.children().eq(gn_getItemIndex(a * ipp, 0, true, itms, $cfs));
1911
- $(this).append(opts.pagination.anchorBuilder.call(i[0], a + 1));
1912
- }
1913
- });
1914
- }
1915
- opts.pagination.container.each(function () {
1916
- $(this).children().unbind(opts.pagination.event).each(function (a) {
1917
- $(this).bind(opts.pagination.event, function (e) {
1918
- e.preventDefault();
1919
- $cfs.trigger(cf_e('slideTo', conf), [a * ipp, -opts.pagination.deviation, true, opts.pagination]);
1920
- });
1921
- });
1922
- });
1923
- }
1924
-
1925
- var selected = $cfs.triggerHandler(cf_e('currentPage', conf)) + opts.pagination.deviation;
1926
- if (selected >= pgs) {
1927
- selected = 0;
1928
- }
1929
- if (selected < 0) {
1930
- selected = pgs - 1;
1931
- }
1932
- opts.pagination.container.each(function () {
1933
- $(this).children().removeClass(cf_c('selected', conf)).eq(selected).addClass(cf_c('selected', conf));
1934
- });
1935
- return true;
1936
- });
1937
-
1938
-
1939
- // updateSizes event
1940
- $cfs.bind(cf_e('updateSizes', conf), function (e) {
1941
- var vI = opts.items.visible,
1942
- a_itm = $cfs.children(),
1943
- avail_primary = ms_getParentSize($wrp, opts, 'width');
1944
-
1945
- itms.total = a_itm.length;
1946
-
1947
- if (crsl.primarySizePercentage) {
1948
- opts.maxDimension = avail_primary;
1949
- opts[opts.d['width']] = ms_getPercentage(avail_primary, crsl.primarySizePercentage);
1950
- }
1951
- else {
1952
- opts.maxDimension = ms_getMaxDimension(opts, avail_primary);
1953
- }
1954
-
1955
- if (opts.responsive) {
1956
- opts.items.width = opts.items.sizesConf.width;
1957
- opts.items.height = opts.items.sizesConf.height;
1958
- opts = in_getResponsiveValues(opts, a_itm, avail_primary);
1959
- vI = opts.items.visible;
1960
- sz_setResponsiveSizes(opts, a_itm);
1961
- }
1962
- else if (opts.items.visibleConf.variable) {
1963
- vI = gn_getVisibleItemsNext(a_itm, opts, 0);
1964
- }
1965
- else if (opts.items.filter != '*') {
1966
- vI = gn_getVisibleItemsNextFilter(a_itm, opts, 0);
1967
- }
1968
-
1969
- if (!opts.circular && itms.first != 0 && vI > itms.first) {
1970
- if (opts.items.visibleConf.variable) {
1971
- var nI = gn_getVisibleItemsPrev(a_itm, opts, itms.first) - itms.first;
1972
- }
1973
- else if (opts.items.filter != '*') {
1974
- var nI = gn_getVisibleItemsPrevFilter(a_itm, opts, itms.first) - itms.first;
1975
- }
1976
- else {
1977
- var nI = opts.items.visible - itms.first;
1978
- }
1979
- debug(conf, 'Preventing non-circular: sliding ' + nI + ' items backward.');
1980
- $cfs.trigger(cf_e('prev', conf), nI);
1981
- }
1982
-
1983
- opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0);
1984
- opts.items.visibleConf.old = opts.items.visible;
1985
- opts = in_getAlignPadding(opts, a_itm);
1986
-
1987
- var sz = sz_setSizes($cfs, opts);
1988
- $cfs.trigger(cf_e('updatePageStatus', conf), [true, sz]);
1989
- nv_showNavi(opts, itms.total, conf);
1990
- nv_enableNavi(opts, itms.first, conf);
1991
-
1992
- return sz;
1993
- });
1994
-
1995
-
1996
- // destroy event
1997
- $cfs.bind(cf_e('destroy', conf), function (e, orgOrder) {
1998
- e.stopPropagation();
1999
- tmrs = sc_clearTimers(tmrs);
2000
-
2001
- $cfs.data('_cfs_isCarousel', false);
2002
- $cfs.trigger(cf_e('finish', conf));
2003
- if (orgOrder) {
2004
- $cfs.trigger(cf_e('jumpToStart', conf));
2005
- }
2006
- sz_restoreOrigCss($cfs.children());
2007
- sz_restoreOrigCss($cfs);
2008
- FN._unbind_events();
2009
- FN._unbind_buttons();
2010
- if (conf.wrapper == 'parent') {
2011
- sz_restoreOrigCss($wrp);
2012
- }
2013
- else {
2014
- $wrp.replaceWith($cfs);
2015
- }
2016
-
2017
- return true;
2018
- });
2019
-
2020
-
2021
- // debug event
2022
- $cfs.bind(cf_e('debug', conf), function (e) {
2023
- debug(conf, 'Carousel width: ' + opts.width);
2024
- debug(conf, 'Carousel height: ' + opts.height);
2025
- debug(conf, 'Item widths: ' + opts.items.width);
2026
- debug(conf, 'Item heights: ' + opts.items.height);
2027
- debug(conf, 'Number of items visible: ' + opts.items.visible);
2028
- if (opts.auto.play) {
2029
- debug(conf, 'Number of items scrolled automatically: ' + opts.auto.items);
2030
- }
2031
- if (opts.prev.button) {
2032
- debug(conf, 'Number of items scrolled backward: ' + opts.prev.items);
2033
- }
2034
- if (opts.next.button) {
2035
- debug(conf, 'Number of items scrolled forward: ' + opts.next.items);
2036
- }
2037
- return conf.debug;
2038
- });
2039
-
2040
-
2041
- // triggerEvent, making prefixed and namespaced events accessible from outside
2042
- $cfs.bind('_cfs_triggerEvent', function (e, n, o) {
2043
- e.stopPropagation();
2044
- return $cfs.triggerHandler(cf_e(n, conf), o);
2045
- });
2046
- }; // /bind_events
2047
-
2048
-
2049
- FN._unbind_events = function () {
2050
- $cfs.unbind(cf_e('', conf));
2051
- $cfs.unbind(cf_e('', conf, false));
2052
- $cfs.unbind('_cfs_triggerEvent');
2053
- }; // /unbind_events
2054
-
2055
-
2056
- FN._bind_buttons = function () {
2057
- FN._unbind_buttons();
2058
- nv_showNavi(opts, itms.total, conf);
2059
- nv_enableNavi(opts, itms.first, conf);
2060
-
2061
- if (opts.auto.pauseOnHover) {
2062
- var pC = bt_pauseOnHoverConfig(opts.auto.pauseOnHover);
2063
- $wrp.bind(cf_e('mouseenter', conf, false), function () {
2064
- $cfs.trigger(cf_e('pause', conf), pC);
2065
- })
2066
- .bind(cf_e('mouseleave', conf, false), function () {
2067
- $cfs.trigger(cf_e('resume', conf));
2068
- });
2069
- }
2070
-
2071
- // play button
2072
- if (opts.auto.button) {
2073
- opts.auto.button.bind(cf_e(opts.auto.event, conf, false), function (e) {
2074
- e.preventDefault();
2075
- var ev = false,
2076
- pC = null;
2077
-
2078
- if (crsl.isPaused) {
2079
- ev = 'play';
2080
- }
2081
- else if (opts.auto.pauseOnEvent) {
2082
- ev = 'pause';
2083
- pC = bt_pauseOnHoverConfig(opts.auto.pauseOnEvent);
2084
- }
2085
- if (ev) {
2086
- $cfs.trigger(cf_e(ev, conf), pC);
2087
- }
2088
- });
2089
- }
2090
-
2091
- // prev button
2092
- if (opts.prev.button) {
2093
- opts.prev.button.bind(cf_e(opts.prev.event, conf, false), function (e) {
2094
- e.preventDefault();
2095
- $cfs.trigger(cf_e('prev', conf));
2096
- });
2097
- if (opts.prev.pauseOnHover) {
2098
- var pC = bt_pauseOnHoverConfig(opts.prev.pauseOnHover);
2099
- opts.prev.button.bind(cf_e('mouseenter', conf, false), function () {
2100
- $cfs.trigger(cf_e('pause', conf), pC);
2101
- })
2102
- .bind(cf_e('mouseleave', conf, false), function () {
2103
- $cfs.trigger(cf_e('resume', conf));
2104
- });
2105
- }
2106
- }
2107
-
2108
- // next butotn
2109
- if (opts.next.button) {
2110
- opts.next.button.bind(cf_e(opts.next.event, conf, false), function (e) {
2111
- e.preventDefault();
2112
- $cfs.trigger(cf_e('next', conf));
2113
- });
2114
- if (opts.next.pauseOnHover) {
2115
- var pC = bt_pauseOnHoverConfig(opts.next.pauseOnHover);
2116
- opts.next.button.bind(cf_e('mouseenter', conf, false), function () {
2117
- $cfs.trigger(cf_e('pause', conf), pC);
2118
- })
2119
- .bind(cf_e('mouseleave', conf, false), function () {
2120
- $cfs.trigger(cf_e('resume', conf));
2121
- });
2122
- }
2123
- }
2124
-
2125
- // pagination
2126
- if (opts.pagination.container) {
2127
- if (opts.pagination.pauseOnHover) {
2128
- var pC = bt_pauseOnHoverConfig(opts.pagination.pauseOnHover);
2129
- opts.pagination.container.bind(cf_e('mouseenter', conf, false), function () {
2130
- $cfs.trigger(cf_e('pause', conf), pC);
2131
- })
2132
- .bind(cf_e('mouseleave', conf, false), function () {
2133
- $cfs.trigger(cf_e('resume', conf));
2134
- });
2135
- }
2136
- }
2137
-
2138
- // prev/next keys
2139
- if (opts.prev.key || opts.next.key) {
2140
- $(document).bind(cf_e('keyup', conf, false, true, true), function (e) {
2141
- var k = e.keyCode;
2142
- if (k == opts.next.key) {
2143
- e.preventDefault();
2144
- $cfs.trigger(cf_e('next', conf));
2145
- }
2146
- if (k == opts.prev.key) {
2147
- e.preventDefault();
2148
- $cfs.trigger(cf_e('prev', conf));
2149
- }
2150
- });
2151
- }
2152
-
2153
- // pagination keys
2154
- if (opts.pagination.keys) {
2155
- $(document).bind(cf_e('keyup', conf, false, true, true), function (e) {
2156
- var k = e.keyCode;
2157
- if (k >= 49 && k < 58) {
2158
- k = (k - 49) * opts.items.visible;
2159
- if (k <= itms.total) {
2160
- e.preventDefault();
2161
- $cfs.trigger(cf_e('slideTo', conf), [k, 0, true, opts.pagination]);
2162
- }
2163
- }
2164
- });
2165
- }
2166
-
2167
- // swipe
2168
- if ($.fn.swipe) {
2169
- var isTouch = 'ontouchstart' in window;
2170
- if ((isTouch && opts.swipe.onTouch) || (!isTouch && opts.swipe.onMouse)) {
2171
- var scP = $.extend(true, {}, opts.prev, opts.swipe),
2172
- scN = $.extend(true, {}, opts.next, opts.swipe),
2173
- swP = function () {
2174
- $cfs.trigger(cf_e('prev', conf), [scP])
2175
- },
2176
- swN = function () {
2177
- $cfs.trigger(cf_e('next', conf), [scN])
2178
- };
2179
-
2180
- switch (opts.direction) {
2181
- case 'up':
2182
- case 'down':
2183
- opts.swipe.options.swipeUp = swN;
2184
- opts.swipe.options.swipeDown = swP;
2185
- break;
2186
- default:
2187
- opts.swipe.options.swipeLeft = swN;
2188
- opts.swipe.options.swipeRight = swP;
2189
- }
2190
- if (crsl.swipe) {
2191
- $cfs.swipe('destroy');
2192
- }
2193
- $wrp.swipe(opts.swipe.options);
2194
- $wrp.css('cursor', 'move');
2195
- crsl.swipe = true;
2196
- }
2197
- }
2198
-
2199
- // mousewheel
2200
- if ($.fn.mousewheel) {
2201
-
2202
- if (opts.mousewheel) {
2203
- var mcP = $.extend(true, {}, opts.prev, opts.mousewheel),
2204
- mcN = $.extend(true, {}, opts.next, opts.mousewheel);
2205
-
2206
- if (crsl.mousewheel) {
2207
- $wrp.unbind(cf_e('mousewheel', conf, false));
2208
- }
2209
- $wrp.bind(cf_e('mousewheel', conf, false), function (e, delta) {
2210
- e.preventDefault();
2211
- if (delta > 0) {
2212
- $cfs.trigger(cf_e('prev', conf), [mcP]);
2213
- }
2214
- else {
2215
- $cfs.trigger(cf_e('next', conf), [mcN]);
2216
- }
2217
- });
2218
- crsl.mousewheel = true;
2219
- }
2220
- }
2221
-
2222
- if (opts.auto.play) {
2223
- $cfs.trigger(cf_e('play', conf), opts.auto.delay);
2224
- }
2225
-
2226
- if (crsl.upDateOnWindowResize) {
2227
- var resizeFn = function (e) {
2228
- $cfs.trigger(cf_e('finish', conf));
2229
- if (opts.auto.pauseOnResize && !crsl.isPaused) {
2230
- $cfs.trigger(cf_e('play', conf));
2231
- }
2232
- sz_resetMargin($cfs.children(), opts);
2233
- $cfs.trigger(cf_e('updateSizes', conf));
2234
- };
2235
-
2236
- var $w = $(window),
2237
- onResize = null;
2238
-
2239
- if ($.debounce && conf.onWindowResize == 'debounce') {
2240
- onResize = $.debounce(200, resizeFn);
2241
- }
2242
- else if ($.throttle && conf.onWindowResize == 'throttle') {
2243
- onResize = $.throttle(300, resizeFn);
2244
- }
2245
- else {
2246
- var _windowWidth = 0,
2247
- _windowHeight = 0;
2248
-
2249
- onResize = function () {
2250
- var nw = $w.width(),
2251
- nh = $w.height();
2252
-
2253
- if (nw != _windowWidth || nh != _windowHeight) {
2254
- resizeFn();
2255
- _windowWidth = nw;
2256
- _windowHeight = nh;
2257
- }
2258
- };
2259
- }
2260
- $w.bind(cf_e('resize', conf, false, true, true), onResize);
2261
- }
2262
- }; // /bind_buttons
2263
-
2264
-
2265
- FN._unbind_buttons = function () {
2266
- var ns1 = cf_e('', conf),
2267
- ns2 = cf_e('', conf, false);
2268
- ns3 = cf_e('', conf, false, true, true);
2269
-
2270
- $(document).unbind(ns3);
2271
- $(window).unbind(ns3);
2272
- $wrp.unbind(ns2);
2273
-
2274
- if (opts.auto.button) {
2275
- opts.auto.button.unbind(ns2);
2276
- }
2277
- if (opts.prev.button) {
2278
- opts.prev.button.unbind(ns2);
2279
- }
2280
- if (opts.next.button) {
2281
- opts.next.button.unbind(ns2);
2282
- }
2283
- if (opts.pagination.container) {
2284
- opts.pagination.container.unbind(ns2);
2285
- if (opts.pagination.anchorBuilder) {
2286
- opts.pagination.container.children().remove();
2287
- }
2288
- }
2289
- if (crsl.swipe) {
2290
- $cfs.swipe('destroy');
2291
- $wrp.css('cursor', 'default');
2292
- crsl.swipe = false;
2293
- }
2294
- if (crsl.mousewheel) {
2295
- crsl.mousewheel = false;
2296
- }
2297
-
2298
- nv_showNavi(opts, 'hide', conf);
2299
- nv_enableNavi(opts, 'removeClass', conf);
2300
-
2301
- }; // /unbind_buttons
2302
-
2303
-
2304
- // START
2305
-
2306
- if (is_boolean(configs)) {
2307
- configs = {
2308
- 'debug': configs
2309
- };
2310
- }
2311
-
2312
- // set vars
2313
- var crsl = {
2314
- 'direction': 'next',
2315
- 'isPaused': true,
2316
- 'isScrolling': false,
2317
- 'isStopped': false,
2318
- 'mousewheel': false,
2319
- 'swipe': false
2320
- },
2321
- itms = {
2322
- 'total': $cfs.children().length,
2323
- 'first': 0
2324
- },
2325
- tmrs = {
2326
- 'auto': null,
2327
- 'progress': null,
2328
- 'startTime': getTime(),
2329
- 'timePassed': 0
2330
- },
2331
- scrl = {
2332
- 'isStopped': false,
2333
- 'duration': 0,
2334
- 'startTime': 0,
2335
- 'easing': '',
2336
- 'anims': []
2337
- },
2338
- clbk = {
2339
- 'onBefore': [],
2340
- 'onAfter': []
2341
- },
2342
- queu = [],
2343
- conf = $.extend(true, {}, $.fn.carouFredSel.configs, configs),
2344
- opts = {},
2345
- opts_orig = $.extend(true, {}, options),
2346
- $wrp = (conf.wrapper == 'parent')
2347
- ? $cfs.parent()
2348
- : $cfs.wrap('<' + conf.wrapper.element + ' class="' + conf.wrapper.classname + '" />').parent();
2349
-
2350
-
2351
- conf.selector = $cfs.selector;
2352
- conf.serialNumber = $.fn.carouFredSel.serialNumber++;
2353
-
2354
- conf.transition = (conf.transition && $.fn.transition) ? 'transition' : 'animate';
2355
-
2356
- // create carousel
2357
- FN._init(opts_orig, true, starting_position);
2358
- FN._build();
2359
- FN._bind_events();
2360
- FN._bind_buttons();
2361
-
2362
- // find item to start
2363
- if (is_array(opts.items.start)) {
2364
- var start_arr = opts.items.start;
2365
- }
2366
- else {
2367
- var start_arr = [];
2368
- if (opts.items.start != 0) {
2369
- start_arr.push(opts.items.start);
2370
- }
2371
- }
2372
- if (opts.cookie) {
2373
- start_arr.unshift(parseInt(cf_getCookie(opts.cookie), 10));
2374
- }
2375
-
2376
- if (start_arr.length > 0) {
2377
- for (var a = 0, l = start_arr.length; a < l; a++) {
2378
- var s = start_arr[a];
2379
- if (s == 0) {
2380
- continue;
2381
- }
2382
- if (s === true) {
2383
- s = window.location.hash;
2384
- if (s.length < 1) {
2385
- continue;
2386
- }
2387
- }
2388
- else if (s === 'random') {
2389
- s = Math.floor(Math.random() * itms.total);
2390
- }
2391
- if ($cfs.triggerHandler(cf_e('slideTo', conf), [s, 0, true, {fx: 'none'}])) {
2392
- break;
2393
- }
2394
- }
2395
- }
2396
- var siz = sz_setSizes($cfs, opts),
2397
- itm = gi_getCurrentItems($cfs.children(), opts);
2398
-
2399
- if (opts.onCreate) {
2400
- opts.onCreate.call($tt0, {
2401
- 'width': siz.width,
2402
- 'height': siz.height,
2403
- 'items': itm
2404
- });
2405
- }
2406
-
2407
- $cfs.trigger(cf_e('updatePageStatus', conf), [true, siz]);
2408
- $cfs.trigger(cf_e('linkAnchors', conf));
2409
-
2410
- if (conf.debug) {
2411
- $cfs.trigger(cf_e('debug', conf));
2412
- }
2413
-
2414
- return $cfs;
2415
- };
2416
-
2417
-
2418
- // GLOBAL PUBLIC
2419
-
2420
- $.fn.carouFredSel.serialNumber = 1;
2421
- $.fn.carouFredSel.defaults = {
2422
- 'synchronise': false,
2423
- 'infinite': true,
2424
- 'circular': true,
2425
- 'responsive': true,
2426
- 'direction': 'left',
2427
- 'items': {
2428
- 'start': 0
2429
- },
2430
- 'scroll': {
2431
- 'easing': 'swing',
2432
- 'duration': 500,
2433
- 'pauseOnHover': false,
2434
- 'event': 'click',
2435
- 'queue': false
2436
- }
2437
- };
2438
- $.fn.carouFredSel.configs = {
2439
- 'padding': '5px',
2440
-
2441
- 'debug': false,
2442
- 'transition': false,
2443
- 'onWindowResize': 'throttle',
2444
- 'events': {
2445
- 'prefix': '',
2446
- 'namespace': 'cfs'
2447
- },
2448
- 'wrapper': {
2449
- 'element': 'div',
2450
- 'classname': 'caroufredsel_wrapper'
2451
- },
2452
- 'classnames': {}
2453
- };
2454
- $.fn.carouFredSel.pageAnchorBuilder = function (nr) {
2455
- return '<a href="#"><span>' + nr + '</span></a>';
2456
- };
2457
- $.fn.carouFredSel.progressbarUpdater = function (perc) {
2458
- $(this).css('width', perc + '%');
2459
- };
2460
-
2461
- $.fn.carouFredSel.cookie = {
2462
- get: function (n) {
2463
- n += '=';
2464
- var ca = document.cookie.split(';');
2465
- for (var a = 0, l = ca.length; a < l; a++) {
2466
- var c = ca[a];
2467
- while (c.charAt(0) == ' ') {
2468
- c = c.slice(1);
2469
- }
2470
- if (c.indexOf(n) == 0) {
2471
- return c.slice(n.length);
2472
- }
2473
- }
2474
- return 0;
2475
- },
2476
- set: function (n, v, d) {
2477
- var e = "";
2478
- if (d) {
2479
- var date = new Date();
2480
- date.setTime(date.getTime() + (d * 24 * 60 * 60 * 1000));
2481
- e = "; expires=" + date.toGMTString();
2482
- }
2483
- document.cookie = n + '=' + v + e + '; path=/';
2484
- },
2485
- remove: function (n) {
2486
- $.fn.carouFredSel.cookie.set(n, "", -1);
2487
- }
2488
- };
2489
-
2490
-
2491
- // GLOBAL PRIVATE
2492
-
2493
- // scrolling functions
2494
- function sc_setScroll(d, e, c) {
2495
- if (c.transition == 'transition') {
2496
- if (e == 'swing') {
2497
- e = 'ease';
2498
- }
2499
- }
2500
- return {
2501
- anims: [],
2502
- duration: d,
2503
- orgDuration: d,
2504
- easing: e,
2505
- startTime: getTime()
2506
- };
2507
- }
2508
-
2509
- function sc_startScroll(s, c) {
2510
- for (var a = 0, l = s.anims.length; a < l; a++) {
2511
- var b = s.anims[a];
2512
- if (!b) {
2513
- continue;
2514
- }
2515
- b[0][c.transition](b[1], s.duration, s.easing, b[2]);
2516
- }
2517
- }
2518
-
2519
- function sc_stopScroll(s, finish) {
2520
- if (!is_boolean(finish)) {
2521
- finish = true;
2522
- }
2523
- if (is_object(s.pre)) {
2524
- sc_stopScroll(s.pre, finish);
2525
- }
2526
- for (var a = 0, l = s.anims.length; a < l; a++) {
2527
- var b = s.anims[a];
2528
- b[0].stop(true);
2529
- if (finish) {
2530
- b[0].css(b[1]);
2531
- if (is_function(b[2])) {
2532
- b[2]();
2533
- }
2534
- }
2535
- }
2536
- if (is_object(s.post)) {
2537
- sc_stopScroll(s.post, finish);
2538
- }
2539
- }
2540
-
2541
- function sc_afterScroll($c, $c2, o) {
2542
- if ($c2) {
2543
- $c2.remove();
2544
- }
2545
-
2546
- switch (o.fx) {
2547
- case 'fade':
2548
- case 'crossfade':
2549
- case 'cover-fade':
2550
- case 'uncover-fade':
2551
- $c.css('opacity', 1);
2552
- $c.css('filter', '');
2553
- break;
2554
- }
2555
- }
2556
-
2557
- function sc_fireCallbacks($t, o, b, a, c) {
2558
- if (o[b]) {
2559
- o[b].call($t, a);
2560
- }
2561
- if (c[b].length) {
2562
- for (var i = 0, l = c[b].length; i < l; i++) {
2563
- c[b][i].call($t, a);
2564
- }
2565
- }
2566
- return [];
2567
- }
2568
-
2569
- function sc_fireQueue($c, q, c) {
2570
-
2571
- if (q.length) {
2572
- $c.trigger(cf_e(q[0][0], c), q[0][1]);
2573
- q.shift();
2574
- }
2575
- return q;
2576
- }
2577
-
2578
- function sc_hideHiddenItems(hiddenitems) {
2579
- hiddenitems.each(function () {
2580
- var hi = $(this);
2581
- hi.data('_cfs_isHidden', hi.is(':hidden')).hide();
2582
- });
2583
- }
2584
-
2585
- function sc_showHiddenItems(hiddenitems) {
2586
- if (hiddenitems) {
2587
- hiddenitems.each(function () {
2588
- var hi = $(this);
2589
- if (!hi.data('_cfs_isHidden')) {
2590
- hi.show();
2591
- }
2592
- });
2593
- }
2594
- }
2595
-
2596
- function sc_clearTimers(t) {
2597
- if (t.auto) {
2598
- clearTimeout(t.auto);
2599
- }
2600
- if (t.progress) {
2601
- clearInterval(t.progress);
2602
- }
2603
- return t;
2604
- }
2605
-
2606
- function sc_mapCallbackArguments(i_old, i_skp, i_new, s_itm, s_dir, s_dur, w_siz) {
2607
- return {
2608
- 'width': w_siz.width,
2609
- 'height': w_siz.height,
2610
- 'items': {
2611
- 'old': i_old,
2612
- 'skipped': i_skp,
2613
- 'visible': i_new
2614
- },
2615
- 'scroll': {
2616
- 'items': s_itm,
2617
- 'direction': s_dir,
2618
- 'duration': s_dur
2619
- }
2620
- };
2621
- }
2622
-
2623
- function sc_getDuration(sO, o, nI, siz) {
2624
- var dur = sO.duration;
2625
- if (sO.fx == 'none') {
2626
- return 0;
2627
- }
2628
- if (dur == 'auto') {
2629
- dur = o.scroll.duration / o.scroll.items * nI;
2630
- }
2631
- else if (dur < 10) {
2632
- dur = siz / dur;
2633
- }
2634
- if (dur < 1) {
2635
- return 0;
2636
- }
2637
- if (sO.fx == 'fade') {
2638
- dur = dur / 2;
2639
- }
2640
- return Math.round(dur);
2641
- }
2642
-
2643
- // navigation functions
2644
- function nv_showNavi(o, t, c) {
2645
- var minimum = (is_number(o.items.minimum)) ? o.items.minimum : o.items.visible + 1;
2646
- if (t == 'show' || t == 'hide') {
2647
- var f = t;
2648
- }
2649
- else if (minimum > t) {
2650
- debug(c, 'Not enough items (' + t + ' total, ' + minimum + ' needed): Hiding navigation.');
2651
- var f = 'hide';
2652
- }
2653
- else {
2654
- var f = 'show';
2655
- }
2656
- var s = (f == 'show') ? 'removeClass' : 'addClass',
2657
- h = cf_c('hidden', c);
2658
-
2659
- if (o.auto.button) {
2660
- o.auto.button[f]()[s](h);
2661
- }
2662
- if (o.prev.button) {
2663
- o.prev.button[f]()[s](h);
2664
- }
2665
- if (o.next.button) {
2666
- o.next.button[f]()[s](h);
2667
- }
2668
- if (o.pagination.container) {
2669
- o.pagination.container[f]()[s](h);
2670
- }
2671
- }
2672
-
2673
- function nv_enableNavi(o, f, c) {
2674
- if (o.circular || o.infinite) return;
2675
- var fx = (f == 'removeClass' || f == 'addClass') ? f : false,
2676
- di = cf_c('disabled', c);
2677
-
2678
- if (o.auto.button && fx) {
2679
- o.auto.button[fx](di);
2680
- }
2681
- if (o.prev.button) {
2682
- var fn = fx || (f == 0) ? 'addClass' : 'removeClass';
2683
- o.prev.button[fn](di);
2684
- }
2685
- if (o.next.button) {
2686
- var fn = fx || (f == o.items.visible) ? 'addClass' : 'removeClass';
2687
- o.next.button[fn](di);
2688
- }
2689
- }
2690
-
2691
- // get object functions
2692
- function go_getObject($tt, obj) {
2693
- if (is_function(obj)) {
2694
- obj = obj.call($tt);
2695
- }
2696
- else if (is_undefined(obj)) {
2697
- obj = {};
2698
- }
2699
- return obj;
2700
- }
2701
-
2702
- function go_getItemsObject($tt, obj) {
2703
- obj = go_getObject($tt, obj);
2704
- if (is_number(obj)) {
2705
- obj = {
2706
- 'visible': obj
2707
- };
2708
- }
2709
- else if (obj == 'variable') {
2710
- obj = {
2711
- 'visible': obj,
2712
- 'width': obj,
2713
- 'height': obj
2714
- };
2715
- }
2716
- else if (!is_object(obj)) {
2717
- obj = {};
2718
- }
2719
- return obj;
2720
- }
2721
-
2722
- function go_getScrollObject($tt, obj) {
2723
- obj = go_getObject($tt, obj);
2724
- if (is_number(obj)) {
2725
- if (obj <= 50) {
2726
- obj = {
2727
- 'items': obj
2728
- };
2729
- }
2730
- else {
2731
- obj = {
2732
- 'duration': obj
2733
- };
2734
- }
2735
- }
2736
- else if (is_string(obj)) {
2737
- obj = {
2738
- 'easing': obj
2739
- };
2740
- }
2741
- else if (!is_object(obj)) {
2742
- obj = {};
2743
- }
2744
- return obj;
2745
- }
2746
-
2747
- function go_getNaviObject($tt, obj) {
2748
- obj = go_getObject($tt, obj);
2749
- if (is_string(obj)) {
2750
- var temp = cf_getKeyCode(obj);
2751
- if (temp == -1) {
2752
- obj = $(obj);
2753
- }
2754
- else {
2755
- obj = temp;
2756
- }
2757
- }
2758
- return obj;
2759
- }
2760
-
2761
- function go_getAutoObject($tt, obj) {
2762
- obj = go_getNaviObject($tt, obj);
2763
- if (is_jquery(obj)) {
2764
- obj = {
2765
- 'button': obj
2766
- };
2767
- }
2768
- else if (is_boolean(obj)) {
2769
- obj = {
2770
- 'play': obj
2771
- };
2772
- }
2773
- else if (is_number(obj)) {
2774
- obj = {
2775
- 'timeoutDuration': obj
2776
- };
2777
- }
2778
- if (obj.progress) {
2779
- if (is_string(obj.progress) || is_jquery(obj.progress)) {
2780
- obj.progress = {
2781
- 'bar': obj.progress
2782
- };
2783
- }
2784
- }
2785
- return obj;
2786
- }
2787
-
2788
- function go_complementAutoObject($tt, obj) {
2789
- if (is_function(obj.button)) {
2790
- obj.button = obj.button.call($tt);
2791
- }
2792
- if (is_string(obj.button)) {
2793
- obj.button = $(obj.button);
2794
- }
2795
- if (!is_boolean(obj.play)) {
2796
- obj.play = true;
2797
- }
2798
- if (!is_number(obj.delay)) {
2799
- obj.delay = 0;
2800
- }
2801
- if (is_undefined(obj.pauseOnEvent)) {
2802
- obj.pauseOnEvent = true;
2803
- }
2804
- if (!is_boolean(obj.pauseOnResize)) {
2805
- obj.pauseOnResize = true;
2806
- }
2807
- if (!is_number(obj.timeoutDuration)) {
2808
- obj.timeoutDuration = (obj.duration < 10)
2809
- ? 2500
2810
- : obj.duration * 5;
2811
- }
2812
- if (obj.progress) {
2813
- if (is_function(obj.progress.bar)) {
2814
- obj.progress.bar = obj.progress.bar.call($tt);
2815
- }
2816
- if (is_string(obj.progress.bar)) {
2817
- obj.progress.bar = $(obj.progress.bar);
2818
- }
2819
- if (obj.progress.bar) {
2820
- if (!is_function(obj.progress.updater)) {
2821
- obj.progress.updater = $.fn.carouFredSel.progressbarUpdater;
2822
- }
2823
- if (!is_number(obj.progress.interval)) {
2824
- obj.progress.interval = 50;
2825
- }
2826
- }
2827
- else {
2828
- obj.progress = false;
2829
- }
2830
- }
2831
- return obj;
2832
- }
2833
-
2834
- function go_getPrevNextObject($tt, obj) {
2835
- obj = go_getNaviObject($tt, obj);
2836
- if (is_jquery(obj)) {
2837
- obj = {
2838
- 'button': obj
2839
- };
2840
- }
2841
- else if (is_number(obj)) {
2842
- obj = {
2843
- 'key': obj
2844
- };
2845
- }
2846
- return obj;
2847
- }
2848
-
2849
- function go_complementPrevNextObject($tt, obj) {
2850
- if (is_function(obj.button)) {
2851
- obj.button = obj.button.call($tt);
2852
- }
2853
- if (is_string(obj.button)) {
2854
- obj.button = $(obj.button);
2855
- }
2856
- if (is_string(obj.key)) {
2857
- obj.key = cf_getKeyCode(obj.key);
2858
- }
2859
- return obj;
2860
- }
2861
-
2862
- function go_getPaginationObject($tt, obj) {
2863
- obj = go_getNaviObject($tt, obj);
2864
- if (is_jquery(obj)) {
2865
- obj = {
2866
- 'container': obj
2867
- };
2868
- }
2869
- else if (is_boolean(obj)) {
2870
- obj = {
2871
- 'keys': obj
2872
- };
2873
- }
2874
- return obj;
2875
- }
2876
-
2877
- function go_complementPaginationObject($tt, obj) {
2878
- if (is_function(obj.container)) {
2879
- obj.container = obj.container.call($tt);
2880
- }
2881
- if (is_string(obj.container)) {
2882
- obj.container = $(obj.container);
2883
- }
2884
- if (!is_number(obj.items)) {
2885
- obj.items = false;
2886
- }
2887
- if (!is_boolean(obj.keys)) {
2888
- obj.keys = false;
2889
- }
2890
- if (!is_function(obj.anchorBuilder) && !is_false(obj.anchorBuilder)) {
2891
- obj.anchorBuilder = $.fn.carouFredSel.pageAnchorBuilder;
2892
- }
2893
- if (!is_number(obj.deviation)) {
2894
- obj.deviation = 0;
2895
- }
2896
- return obj;
2897
- }
2898
-
2899
- function go_getSwipeObject($tt, obj) {
2900
- if (is_function(obj)) {
2901
- obj = obj.call($tt);
2902
- }
2903
- if (is_undefined(obj)) {
2904
- obj = {
2905
- 'onTouch': false
2906
- };
2907
- }
2908
- if (is_true(obj)) {
2909
- obj = {
2910
- 'onTouch': obj
2911
- };
2912
- }
2913
- else if (is_number(obj)) {
2914
- obj = {
2915
- 'items': obj
2916
- };
2917
- }
2918
- return obj;
2919
- }
2920
-
2921
- function go_complementSwipeObject($tt, obj) {
2922
- if (!is_boolean(obj.onTouch)) {
2923
- obj.onTouch = true;
2924
- }
2925
- if (!is_boolean(obj.onMouse)) {
2926
- obj.onMouse = false;
2927
- }
2928
- if (!is_object(obj.options)) {
2929
- obj.options = {};
2930
- }
2931
- if (!is_boolean(obj.options.triggerOnTouchEnd)) {
2932
- obj.options.triggerOnTouchEnd = false;
2933
- }
2934
- return obj;
2935
- }
2936
-
2937
- function go_getMousewheelObject($tt, obj) {
2938
- if (is_function(obj)) {
2939
- obj = obj.call($tt);
2940
- }
2941
- if (is_true(obj)) {
2942
- obj = {};
2943
- }
2944
- else if (is_number(obj)) {
2945
- obj = {
2946
- 'items': obj
2947
- };
2948
- }
2949
- else if (is_undefined(obj)) {
2950
- obj = false;
2951
- }
2952
- return obj;
2953
- }
2954
-
2955
- function go_complementMousewheelObject($tt, obj) {
2956
- return obj;
2957
- }
2958
-
2959
- // get number functions
2960
- function gn_getItemIndex(num, dev, org, items, $cfs) {
2961
- if (is_string(num)) {
2962
- num = $(num, $cfs);
2963
- }
2964
-
2965
- if (is_object(num)) {
2966
- num = $(num, $cfs);
2967
- }
2968
- if (is_jquery(num)) {
2969
- num = $cfs.children().index(num);
2970
- if (!is_boolean(org)) {
2971
- org = false;
2972
- }
2973
- }
2974
- else {
2975
- if (!is_boolean(org)) {
2976
- org = true;
2977
- }
2978
- }
2979
- if (!is_number(num)) {
2980
- num = 0;
2981
- }
2982
- if (!is_number(dev)) {
2983
- dev = 0;
2984
- }
2985
-
2986
- if (org) {
2987
- num += items.first;
2988
- }
2989
- num += dev;
2990
- if (items.total > 0) {
2991
- while (num >= items.total) {
2992
- num -= items.total;
2993
- }
2994
- while (num < 0) {
2995
- num += items.total;
2996
- }
2997
- }
2998
- return num;
2999
- }
3000
-
3001
- // items prev
3002
- function gn_getVisibleItemsPrev(i, o, s) {
3003
- var t = 0,
3004
- x = 0;
3005
-
3006
- for (var a = s; a >= 0; a--) {
3007
- var j = i.eq(a);
3008
- t += (j.is(':visible')) ? j[o.d['outerWidth']](true) : 0;
3009
- if (t > o.maxDimension) {
3010
- return x;
3011
- }
3012
- if (a == 0) {
3013
- a = i.length;
3014
- }
3015
- x++;
3016
- }
3017
- }
3018
-
3019
- function gn_getVisibleItemsPrevFilter(i, o, s) {
3020
- return gn_getItemsPrevFilter(i, o.items.filter, o.items.visibleConf.org, s);
3021
- }
3022
-
3023
- function gn_getScrollItemsPrevFilter(i, o, s, m) {
3024
- return gn_getItemsPrevFilter(i, o.items.filter, m, s);
3025
- }
3026
-
3027
- function gn_getItemsPrevFilter(i, f, m, s) {
3028
- var t = 0,
3029
- x = 0;
3030
-
3031
- for (var a = s, l = i.length; a >= 0; a--) {
3032
- x++;
3033
- if (x == l) {
3034
- return x;
3035
- }
3036
-
3037
- var j = i.eq(a);
3038
- if (j.is(f)) {
3039
- t++;
3040
- if (t == m) {
3041
- return x;
3042
- }
3043
- }
3044
- if (a == 0) {
3045
- a = l;
3046
- }
3047
- }
3048
- }
3049
-
3050
- function gn_getVisibleOrg($c, o) {
3051
- return o.items.visibleConf.org || $c.children().slice(0, o.items.visible).filter(o.items.filter).length;
3052
- }
3053
-
3054
- // items next
3055
- function gn_getVisibleItemsNext(i, o, s) {
3056
- var t = 0,
3057
- x = 0;
3058
-
3059
- for (var a = s, l = i.length - 1; a <= l; a++) {
3060
- var j = i.eq(a);
3061
-
3062
- t += (j.is(':visible')) ? j[o.d['outerWidth']](true) : 0;
3063
- if (t > o.maxDimension) {
3064
- return x;
3065
- }
3066
-
3067
- x++;
3068
- if (x == l + 1) {
3069
- return x;
3070
- }
3071
- if (a == l) {
3072
- a = -1;
3073
- }
3074
- }
3075
- }
3076
-
3077
- function gn_getVisibleItemsNextTestCircular(i, o, s, l) {
3078
- var v = gn_getVisibleItemsNext(i, o, s);
3079
- if (!o.circular) {
3080
- if (s + v > l) {
3081
- v = l - s;
3082
- }
3083
- }
3084
- return v;
3085
- }
3086
-
3087
- function gn_getVisibleItemsNextFilter(i, o, s) {
3088
- return gn_getItemsNextFilter(i, o.items.filter, o.items.visibleConf.org, s, o.circular);
3089
- }
3090
-
3091
- function gn_getScrollItemsNextFilter(i, o, s, m) {
3092
- return gn_getItemsNextFilter(i, o.items.filter, m + 1, s, o.circular) - 1;
3093
- }
3094
-
3095
- function gn_getItemsNextFilter(i, f, m, s, c) {
3096
- var t = 0,
3097
- x = 0;
3098
-
3099
- for (var a = s, l = i.length - 1; a <= l; a++) {
3100
- x++;
3101
- if (x >= l) {
3102
- return x;
3103
- }
3104
-
3105
- var j = i.eq(a);
3106
- if (j.is(f)) {
3107
- t++;
3108
- if (t == m) {
3109
- return x;
3110
- }
3111
- }
3112
- if (a == l) {
3113
- a = -1;
3114
- }
3115
- }
3116
- }
3117
-
3118
- // get items functions
3119
- function gi_getCurrentItems(i, o) {
3120
- return i.slice(0, o.items.visible);
3121
- }
3122
-
3123
- function gi_getOldItemsPrev(i, o, n) {
3124
- return i.slice(n, o.items.visibleConf.old + n);
3125
- }
3126
-
3127
- function gi_getNewItemsPrev(i, o) {
3128
- return i.slice(0, o.items.visible);
3129
- }
3130
-
3131
- function gi_getOldItemsNext(i, o) {
3132
- return i.slice(0, o.items.visibleConf.old);
3133
- }
3134
-
3135
- function gi_getNewItemsNext(i, o, n) {
3136
- return i.slice(n, o.items.visible + n);
3137
- }
3138
-
3139
- // sizes functions
3140
- function sz_storeMargin(i, o, d) {
3141
- if (o.usePadding) {
3142
- if (!is_string(d)) {
3143
- d = '_cfs_origCssMargin';
3144
- }
3145
- i.each(function () {
3146
- var j = $(this),
3147
- m = parseInt(j.css(o.d['marginRight']), 10);
3148
- if (!is_number(m)) {
3149
- m = 0;
3150
- }
3151
- j.data(d, m);
3152
- });
3153
- }
3154
- }
3155
-
3156
- function sz_resetMargin(i, o, m) {
3157
- if (o.usePadding) {
3158
- var x = (is_boolean(m)) ? m : false;
3159
- if (!is_number(m)) {
3160
- m = 0;
3161
- }
3162
- sz_storeMargin(i, o, '_cfs_tempCssMargin');
3163
- i.each(function () {
3164
- var j = $(this);
3165
- j.css(o.d['marginRight'], ((x) ? j.data('_cfs_tempCssMargin') : m + j.data('_cfs_origCssMargin')));
3166
- });
3167
- }
3168
- }
3169
-
3170
- function sz_storeOrigCss(i) {
3171
- i.each(function () {
3172
- var j = $(this);
3173
- j.data('_cfs_origCss', j.attr('style') || '');
3174
- });
3175
- }
3176
-
3177
- function sz_restoreOrigCss(i) {
3178
- i.each(function () {
3179
- var j = $(this);
3180
- j.attr('style', j.data('_cfs_origCss') || '');
3181
- });
3182
- }
3183
-
3184
- function sz_setResponsiveSizes(o, all) {
3185
- var visb = o.items.visible,
3186
- newS = o.items[o.d['width']],
3187
- seco = o[o.d['height']],
3188
- secp = is_percentage(seco);
3189
-
3190
- all.each(function () {
3191
- var $t = $(this),
3192
- nw = newS - ms_getPaddingBorderMargin($t, o, 'Width');
3193
-
3194
- $t[o.d['width']](nw);
3195
- if (secp) {
3196
- $t[o.d['height']](ms_getPercentage(nw, seco));
3197
- }
3198
- });
3199
- }
3200
-
3201
- function sz_setSizes($c, o) {
3202
- var $w = $c.parent(),
3203
- $i = $c.children(),
3204
- $v = gi_getCurrentItems($i, o),
3205
- sz = cf_mapWrapperSizes(ms_getSizes($v, o, true), o, false);
3206
-
3207
- $w.css(sz);
3208
-
3209
- if (o.usePadding) {
3210
- var p = o.padding,
3211
- r = p[o.d[1]];
3212
-
3213
- if (o.align && r < 0) {
3214
- r = 0;
3215
- }
3216
- var $l = $v.last();
3217
- $l.css(o.d['marginRight'], $l.data('_cfs_origCssMargin') + r);
3218
- $c.css(o.d['top'], p[o.d[0]]);
3219
- $c.css(o.d['left'], p[o.d[3]]);
3220
- }
3221
-
3222
- $c.css(o.d['width'], sz[o.d['width']] + (ms_getTotalSize($i, o, 'width') * 2));
3223
- $c.css(o.d['height'], ms_getLargestSize($i, o, 'height'));
3224
- return sz;
3225
- }
3226
-
3227
- // measuring functions
3228
- function ms_getSizes(i, o, wrapper) {
3229
- return [ms_getTotalSize(i, o, 'width', wrapper), ms_getLargestSize(i, o, 'height', wrapper)];
3230
- }
3231
-
3232
- function ms_getLargestSize(i, o, dim, wrapper) {
3233
- if (!is_boolean(wrapper)) {
3234
- wrapper = false;
3235
- }
3236
- if (is_number(o[o.d[dim]]) && wrapper) {
3237
- return o[o.d[dim]];
3238
- }
3239
- if (is_number(o.items[o.d[dim]])) {
3240
- return o.items[o.d[dim]];
3241
- }
3242
- dim = (dim.toLowerCase().indexOf('width') > -1) ? 'outerWidth' : 'outerHeight';
3243
- return ms_getTrueLargestSize(i, o, dim);
3244
- }
3245
-
3246
- function ms_getTrueLargestSize(i, o, dim) {
3247
- var s = 0;
3248
-
3249
- for (var a = 0, l = i.length; a < l; a++) {
3250
- var j = i.eq(a);
3251
-
3252
- var m = (j.is(':visible')) ? j[o.d[dim]](true) : 0;
3253
- if (s < m) {
3254
- s = m;
3255
- }
3256
- }
3257
- return s;
3258
- }
3259
-
3260
- function ms_getTotalSize(i, o, dim, wrapper) {
3261
- if (!is_boolean(wrapper)) {
3262
- wrapper = false;
3263
- }
3264
- if (is_number(o[o.d[dim]]) && wrapper) {
3265
- return o[o.d[dim]];
3266
- }
3267
- if (is_number(o.items[o.d[dim]])) {
3268
- return o.items[o.d[dim]] * i.length;
3269
- }
3270
-
3271
- var d = (dim.toLowerCase().indexOf('width') > -1) ? 'outerWidth' : 'outerHeight',
3272
- s = 0;
3273
-
3274
- for (var a = 0, l = i.length; a < l; a++) {
3275
- var j = i.eq(a);
3276
- s += (j.is(':visible')) ? j[o.d[d]](true) : 0;
3277
- }
3278
- return s;
3279
- }
3280
-
3281
- function ms_getParentSize($w, o, d) {
3282
- var isVisible = $w.is(':visible');
3283
- if (isVisible) {
3284
- $w.hide();
3285
- }
3286
- var s = $w.parent()[o.d[d]]();
3287
- if (isVisible) {
3288
- $w.show();
3289
- }
3290
- return s;
3291
- }
3292
-
3293
- function ms_getMaxDimension(o, a) {
3294
- return (is_number(o[o.d['width']])) ? o[o.d['width']] : a;
3295
- }
3296
-
3297
- function ms_hasVariableSizes(i, o, dim) {
3298
- var s = false,
3299
- v = false;
3300
-
3301
- for (var a = 0, l = i.length; a < l; a++) {
3302
- var j = i.eq(a);
3303
-
3304
- var c = (j.is(':visible')) ? j[o.d[dim]](true) : 0;
3305
- if (s === false) {
3306
- s = c;
3307
- }
3308
- else if (s != c) {
3309
- v = true;
3310
- }
3311
- if (s == 0) {
3312
- v = true;
3313
- }
3314
- }
3315
- return v;
3316
- }
3317
-
3318
- function ms_getPaddingBorderMargin(i, o, d) {
3319
- return i[o.d['outer' + d]](true) - i[o.d[d.toLowerCase()]]();
3320
- }
3321
-
3322
- function ms_getPercentage(s, o) {
3323
- if (is_percentage(o)) {
3324
- o = parseInt(o.slice(0, -1), 10);
3325
- if (!is_number(o)) {
3326
- return s;
3327
- }
3328
- s *= o / 100;
3329
- }
3330
- return s;
3331
- }
3332
-
3333
- // config functions
3334
- function cf_e(n, c, pf, ns, rd) {
3335
- if (!is_boolean(pf)) {
3336
- pf = true;
3337
- }
3338
- if (!is_boolean(ns)) {
3339
- ns = true;
3340
- }
3341
- if (!is_boolean(rd)) {
3342
- rd = false;
3343
- }
3344
-
3345
- if (pf) {
3346
- n = c.events.prefix + n;
3347
- }
3348
- if (ns) {
3349
- n = n + '.' + c.events.namespace;
3350
- }
3351
- if (ns && rd) {
3352
- n += c.serialNumber;
3353
- }
3354
-
3355
- return n;
3356
- }
3357
-
3358
- function cf_c(n, c) {
3359
- return (is_string(c.classnames[n])) ? c.classnames[n] : n;
3360
- }
3361
-
3362
- function cf_mapWrapperSizes(ws, o, p) {
3363
-
3364
- if (!is_boolean(p)) {
3365
- p = true;
3366
- }
3367
- var pad = (o.usePadding && p) ? o.padding : [0, 0, 0, 0];
3368
- var wra = {};
3369
-
3370
- wra[o.d['width']] = ws[0] + pad[1] + pad[3];
3371
- wra[o.d['height']] = ws[1] + pad[0] + pad[2];
3372
-
3373
- return wra;
3374
- }
3375
-
3376
- function cf_sortParams(vals, typs) {
3377
- var arr = [];
3378
- for (var a = 0, l1 = vals.length; a < l1; a++) {
3379
- for (var b = 0, l2 = typs.length; b < l2; b++) {
3380
- if (typs[b].indexOf(typeof vals[a]) > -1 && is_undefined(arr[b])) {
3381
- arr[b] = vals[a];
3382
- break;
3383
- }
3384
- }
3385
- }
3386
- return arr;
3387
- }
3388
-
3389
- function cf_getPadding(p) {
3390
- if (is_undefined(p)) {
3391
- return [0, 0, 0, 0];
3392
- }
3393
- if (is_number(p)) {
3394
- return [p, p, p, p];
3395
- }
3396
- if (is_string(p)) {
3397
- p = p.split('px').join('').split('em').join('').split(' ');
3398
- }
3399
-
3400
- if (!is_array(p)) {
3401
- return [0, 0, 0, 0];
3402
- }
3403
- for (var i = 0; i < 4; i++) {
3404
- p[i] = parseInt(p[i], 10);
3405
- }
3406
- switch (p.length) {
3407
- case 0:
3408
- return [0, 0, 0, 0];
3409
- case 1:
3410
- return [p[0], p[0], p[0], p[0]];
3411
- case 2:
3412
- return [p[0], p[1], p[0], p[1]];
3413
- case 3:
3414
- return [p[0], p[1], p[2], p[1]];
3415
- default:
3416
- return [p[0], p[1], p[2], p[3]];
3417
- }
3418
- }
3419
-
3420
- function cf_getAlignPadding(itm, o) {
3421
- var x = (is_number(o[o.d['width']])) ? Math.ceil(o[o.d['width']] - ms_getTotalSize(itm, o, 'width')) : 0;
3422
- switch (o.align) {
3423
- case 'left':
3424
- return [0, x];
3425
- case 'right':
3426
- return [x, 0];
3427
- case 'center':
3428
- default:
3429
- return [Math.ceil(x / 2), Math.floor(x / 2)];
3430
- }
3431
- }
3432
-
3433
- function cf_getDimensions(o) {
3434
- var dm = [
3435
- ['width', 'innerWidth', 'outerWidth', 'height', 'innerHeight', 'outerHeight', 'left', 'top', 'marginRight', 0, 1, 2, 3],
3436
- ['height', 'innerHeight', 'outerHeight', 'width', 'innerWidth', 'outerWidth', 'top', 'left', 'marginBottom', 3, 2, 1, 0]
3437
- ];
3438
-
3439
- var dl = dm[0].length,
3440
- dx = (o.direction == 'right' || o.direction == 'left') ? 0 : 1;
3441
-
3442
- var dimensions = {};
3443
- for (var d = 0; d < dl; d++) {
3444
- dimensions[dm[0][d]] = dm[dx][d];
3445
- }
3446
- return dimensions;
3447
- }
3448
-
3449
- function cf_getAdjust(x, o, a, $t) {
3450
- var v = x;
3451
- if (is_function(a)) {
3452
- v = a.call($t, v);
3453
-
3454
- }
3455
- else if (is_string(a)) {
3456
- var p = a.split('+'),
3457
- m = a.split('-');
3458
-
3459
- if (m.length > p.length) {
3460
- var neg = true,
3461
- sta = m[0],
3462
- adj = m[1];
3463
- }
3464
- else {
3465
- var neg = false,
3466
- sta = p[0],
3467
- adj = p[1];
3468
- }
3469
-
3470
- switch (sta) {
3471
- case 'even':
3472
- v = (x % 2 == 1) ? x - 1 : x;
3473
- break;
3474
- case 'odd':
3475
- v = (x % 2 == 0) ? x - 1 : x;
3476
- break;
3477
- default:
3478
- v = x;
3479
- break;
3480
- }
3481
- adj = parseInt(adj, 10);
3482
- if (is_number(adj)) {
3483
- if (neg) {
3484
- adj = -adj;
3485
- }
3486
- v += adj;
3487
- }
3488
- }
3489
- if (!is_number(v) || v < 1) {
3490
- v = 1;
3491
- }
3492
- return v;
3493
- }
3494
-
3495
- function cf_getItemsAdjust(x, o, a, $t) {
3496
- return cf_getItemAdjustMinMax(cf_getAdjust(x, o, a, $t), o.items.visibleConf);
3497
- }
3498
-
3499
- function cf_getItemAdjustMinMax(v, i) {
3500
- if (is_number(i.min) && v < i.min) {
3501
- v = i.min;
3502
- }
3503
- if (is_number(i.max) && v > i.max) {
3504
- v = i.max;
3505
- }
3506
- if (v < 1) {
3507
- v = 1;
3508
- }
3509
- return v;
3510
- }
3511
-
3512
- function cf_getSynchArr(s) {
3513
- if (!is_array(s)) {
3514
- s = [[s]];
3515
- }
3516
- if (!is_array(s[0])) {
3517
- s = [s];
3518
- }
3519
- for (var j = 0, l = s.length; j < l; j++) {
3520
- if (is_string(s[j][0])) {
3521
- s[j][0] = $(s[j][0]);
3522
- }
3523
- if (!is_boolean(s[j][1])) {
3524
- s[j][1] = true;
3525
- }
3526
- if (!is_boolean(s[j][2])) {
3527
- s[j][2] = true;
3528
- }
3529
- if (!is_number(s[j][3])) {
3530
- s[j][3] = 0;
3531
- }
3532
- }
3533
- return s;
3534
- }
3535
-
3536
- function cf_getKeyCode(k) {
3537
- if (k == 'right') {
3538
- return 39;
3539
- }
3540
- if (k == 'left') {
3541
- return 37;
3542
- }
3543
- if (k == 'up') {
3544
- return 38;
3545
- }
3546
- if (k == 'down') {
3547
- return 40;
3548
- }
3549
- return -1;
3550
- }
3551
-
3552
- function cf_setCookie(n, $c, c) {
3553
- if (n) {
3554
- var v = $c.triggerHandler(cf_e('currentPosition', c));
3555
- $.fn.carouFredSel.cookie.set(n, v);
3556
- }
3557
- }
3558
-
3559
- function cf_getCookie(n) {
3560
- var c = $.fn.carouFredSel.cookie.get(n);
3561
- return (c == '') ? 0 : c;
3562
- }
3563
-
3564
- // init function
3565
- function in_mapCss($elem, props) {
3566
- var css = {};
3567
- for (var p = 0, l = props.length; p < l; p++) {
3568
- css[props[p]] = $elem.css(props[p]);
3569
- }
3570
- return css;
3571
- }
3572
-
3573
- function in_complementItems(obj, opt, itm, sta) {
3574
- if (!is_object(obj.visibleConf)) {
3575
- obj.visibleConf = {};
3576
- }
3577
- if (!is_object(obj.sizesConf)) {
3578
- obj.sizesConf = {};
3579
- }
3580
-
3581
- if (obj.start == 0 && is_number(sta)) {
3582
- obj.start = sta;
3583
- }
3584
-
3585
- // visible items
3586
- if (is_object(obj.visible)) {
3587
- obj.visibleConf.min = obj.visible.min;
3588
- obj.visibleConf.max = obj.visible.max;
3589
- obj.visible = false;
3590
- }
3591
- else if (is_string(obj.visible)) {
3592
- // variable visible items
3593
- if (obj.visible == 'variable') {
3594
- obj.visibleConf.variable = true;
3595
- }
3596
- // adjust string visible items
3597
- else {
3598
- obj.visibleConf.adjust = obj.visible;
3599
- }
3600
- obj.visible = false;
3601
- }
3602
- else if (is_function(obj.visible)) {
3603
- obj.visibleConf.adjust = obj.visible;
3604
- obj.visible = false;
3605
- }
3606
-
3607
- // set items filter
3608
- if (!is_string(obj.filter)) {
3609
- obj.filter = (itm.filter(':hidden').length > 0) ? ':visible' : '*';
3610
- }
3611
-
3612
- // primary item-size not set
3613
- if (!obj[opt.d['width']]) {
3614
- // responsive carousel -> set to largest
3615
- if (opt.responsive) {
3616
- debug(true, 'Set a ' + opt.d['width'] + ' for the items!');
3617
- obj[opt.d['width']] = ms_getTrueLargestSize(itm, opt, 'outerWidth');
3618
- }
3619
- // non-responsive -> measure it or set to "variable"
3620
- else {
3621
- obj[opt.d['width']] = (ms_hasVariableSizes(itm, opt, 'outerWidth'))
3622
- ? 'variable'
3623
- : itm[opt.d['outerWidth']](true);
3624
- }
3625
- }
3626
-
3627
- // secondary item-size not set -> measure it or set to "variable"
3628
- if (!obj[opt.d['height']]) {
3629
- obj[opt.d['height']] = (ms_hasVariableSizes(itm, opt, 'outerHeight'))
3630
- ? 'variable'
3631
- : itm[opt.d['outerHeight']](true);
3632
- }
3633
-
3634
- obj.sizesConf.width = obj.width;
3635
- obj.sizesConf.height = obj.height;
3636
- return obj;
3637
- }
3638
-
3639
- function in_complementVisibleItems(opt, avl) {
3640
- // primary item-size variable -> set visible items variable
3641
- if (opt.items[opt.d['width']] == 'variable') {
3642
- opt.items.visibleConf.variable = true;
3643
- }
3644
- if (!opt.items.visibleConf.variable) {
3645
- // primary size is number -> calculate visible-items
3646
- if (is_number(opt[opt.d['width']])) {
3647
- opt.items.visible = Math.floor(opt[opt.d['width']] / opt.items[opt.d['width']]);
3648
- }
3649
- // measure and calculate primary size and visible-items
3650
- else {
3651
- opt.items.visible = Math.floor(avl / opt.items[opt.d['width']]);
3652
- opt[opt.d['width']] = opt.items.visible * opt.items[opt.d['width']];
3653
- if (!opt.items.visibleConf.adjust) {
3654
- opt.align = false;
3655
- }
3656
- }
3657
- if (opt.items.visible == 'Infinity' || opt.items.visible < 1) {
3658
- debug(true, 'Not a valid number of visible items: Set to "variable".');
3659
- opt.items.visibleConf.variable = true;
3660
- }
3661
- }
3662
- return opt;
3663
- }
3664
-
3665
- function in_complementPrimarySize(obj, opt, all) {
3666
- // primary size set to auto -> measure largest item-size and set it
3667
- if (obj == 'auto') {
3668
- obj = ms_getTrueLargestSize(all, opt, 'outerWidth');
3669
- }
3670
- return obj;
3671
- }
3672
-
3673
- function in_complementSecondarySize(obj, opt, all) {
3674
- // secondary size set to auto -> measure largest item-size and set it
3675
- if (obj == 'auto') {
3676
- obj = ms_getTrueLargestSize(all, opt, 'outerHeight');
3677
- }
3678
- // secondary size not set -> set to secondary item-size
3679
- if (!obj) {
3680
- obj = opt.items[opt.d['height']];
3681
- }
3682
- return obj;
3683
- }
3684
-
3685
- function in_getAlignPadding(o, all) {
3686
- var p = cf_getAlignPadding(gi_getCurrentItems(all, o), o);
3687
- o.padding[o.d[1]] = p[1];
3688
- o.padding[o.d[3]] = p[0];
3689
- return o;
3690
- }
3691
-
3692
- function in_getResponsiveValues(o, all, avl) {
3693
-
3694
- var visb = cf_getItemAdjustMinMax(Math.ceil(o[o.d['width']] / o.items[o.d['width']]), o.items.visibleConf);
3695
- if (visb > all.length) {
3696
- visb = all.length;
3697
- }
3698
-
3699
- var newS = Math.floor(o[o.d['width']] / visb);
3700
-
3701
- o.items.visible = visb;
3702
- o.items[o.d['width']] = newS;
3703
- o[o.d['width']] = visb * newS;
3704
- return o;
3705
- }
3706
-
3707
-
3708
- // buttons functions
3709
- function bt_pauseOnHoverConfig(p) {
3710
- if (is_string(p)) {
3711
- var i = (p.indexOf('immediate') > -1) ? true : false,
3712
- r = (p.indexOf('resume') > -1) ? true : false;
3713
- }
3714
- else {
3715
- var i = r = false;
3716
- }
3717
- return [i, r];
3718
- }
3719
-
3720
- function bt_mousesheelNumber(mw) {
3721
- return (is_number(mw)) ? mw : null
3722
- }
3723
-
3724
- // helper functions
3725
- function is_null(a) {
3726
- return (a === null);
3727
- }
3728
-
3729
- function is_undefined(a) {
3730
- return (is_null(a) || typeof a == 'undefined' || a === '' || a === 'undefined');
3731
- }
3732
-
3733
- function is_array(a) {
3734
- return (a instanceof Array);
3735
- }
3736
-
3737
- function is_jquery(a) {
3738
- return (a instanceof jQuery);
3739
- }
3740
-
3741
- function is_object(a) {
3742
- return ((a instanceof Object || typeof a == 'object') && !is_null(a) && !is_jquery(a) && !is_array(a) && !is_function(a));
3743
- }
3744
-
3745
- function is_number(a) {
3746
- return ((a instanceof Number || typeof a == 'number') && !isNaN(a));
3747
- }
3748
-
3749
- function is_string(a) {
3750
- return ((a instanceof String || typeof a == 'string') && !is_undefined(a) && !is_true(a) && !is_false(a));
3751
- }
3752
-
3753
- function is_function(a) {
3754
- return (a instanceof Function || typeof a == 'function');
3755
- }
3756
-
3757
- function is_boolean(a) {
3758
- return (a instanceof Boolean || typeof a == 'boolean' || is_true(a) || is_false(a));
3759
- }
3760
-
3761
- function is_true(a) {
3762
- return (a === true || a === 'true');
3763
- }
3764
-
3765
- function is_false(a) {
3766
- return (a === false || a === 'false');
3767
- }
3768
-
3769
- function is_percentage(x) {
3770
- return (is_string(x) && x.slice(-1) == '%');
3771
- }
3772
-
3773
-
3774
- function getTime() {
3775
- return new Date().getTime();
3776
- }
3777
-
3778
- function deprecated(o, n) {
3779
- debug(true, o + ' is DEPRECATED, support for it will be removed. Use ' + n + ' instead.');
3780
- }
3781
-
3782
- function debug(d, m) {
3783
- if (!is_undefined(window.console) && !is_undefined(window.console.log)) {
3784
- if (is_object(d)) {
3785
- var s = ' (' + d.selector + ')';
3786
- d = d.debug;
3787
- }
3788
- else {
3789
- var s = '';
3790
- }
3791
- if (!d) {
3792
- return false;
3793
- }
3794
-
3795
- if (is_string(m)) {
3796
- m = 'carouFredSel' + s + ': ' + m;
3797
- }
3798
- else {
3799
- m = ['carouFredSel' + s + ':', m];
3800
- }
3801
- window.console.log(m);
3802
- }
3803
- return false;
3804
- }
3805
-
3806
-
3807
- // EASING FUNCTIONS
3808
- $.extend($.easing, {
3809
- 'quadratic': function (t) {
3810
- var t2 = t * t;
3811
- return t * (-t2 * t + 4 * t2 - 6 * t + 4);
3812
- },
3813
- 'cubic': function (t) {
3814
- return t * (4 * t * t - 9 * t + 6);
3815
- },
3816
- 'elastic': function (t) {
3817
- var t2 = t * t;
3818
- return t * (33 * t2 * t2 - 106 * t2 * t + 126 * t2 - 67 * t + 15);
3819
- }
3820
- });
3821
-
3822
-
3823
  })(jQuery);
1
+ /*
2
+ * jQuery carouFredSel 6.2.1
3
+ * Demo's and documentation:
4
+ * caroufredsel.dev7studios.com
5
+ *
6
+ * Copyright (c) 2013 Fred Heusschen
7
+ * www.frebsite.nl
8
+ *
9
+ * Dual licensed under the MIT and GPL licenses.
10
+ * http://en.wikipedia.org/wiki/MIT_License
11
+ * http://en.wikipedia.org/wiki/GNU_General_Public_License
12
+ */
13
+
14
+
15
+ (function ($) {
16
+
17
+
18
+ // LOCAL
19
+
20
+ if ($.fn.carouFredSel) {
21
+ return;
22
+ }
23
+
24
+ $.fn.caroufredsel = $.fn.carouFredSel = function (options, configs) {
25
+
26
+ // no element
27
+ if (this.length == 0) {
28
+ debug(true, 'No element found for "' + this.selector + '".');
29
+ return this;
30
+ }
31
+
32
+ // multiple elements
33
+ if (this.length > 1) {
34
+ return this.each(function () {
35
+ $(this).carouFredSel(options, configs);
36
+ });
37
+ }
38
+
39
+
40
+ var $cfs = this,
41
+ $tt0 = this[0],
42
+ starting_position = false;
43
+
44
+ if ($cfs.data('_cfs_isCarousel')) {
45
+ starting_position = $cfs.triggerHandler('_cfs_triggerEvent', 'currentPosition');
46
+ $cfs.trigger('_cfs_triggerEvent', ['destroy', true]);
47
+ }
48
+
49
+ var FN = {};
50
+
51
+ FN._init = function (o, setOrig, start) {
52
+ o = go_getObject($tt0, o);
53
+
54
+ o.items = go_getItemsObject($tt0, o.items);
55
+ o.scroll = go_getScrollObject($tt0, o.scroll);
56
+ o.auto = go_getAutoObject($tt0, o.auto);
57
+ o.prev = go_getPrevNextObject($tt0, o.prev);
58
+ o.next = go_getPrevNextObject($tt0, o.next);
59
+ o.pagination = go_getPaginationObject($tt0, o.pagination);
60
+ o.swipe = go_getSwipeObject($tt0, o.swipe);
61
+ o.mousewheel = go_getMousewheelObject($tt0, o.mousewheel);
62
+
63
+ if (setOrig) {
64
+ opts_orig = $.extend(true, {}, $.fn.carouFredSel.defaults, o);
65
+ }
66
+
67
+ opts = $.extend(true, {}, $.fn.carouFredSel.defaults, o);
68
+ opts.d = cf_getDimensions(opts);
69
+
70
+ crsl.direction = (opts.direction == 'up' || opts.direction == 'left') ? 'next' : 'prev';
71
+
72
+ var a_itm = $cfs.children(),
73
+ avail_primary = ms_getParentSize($wrp, opts, 'width');
74
+
75
+ if (is_true(opts.cookie)) {
76
+ opts.cookie = 'caroufredsel_cookie_' + conf.serialNumber;
77
+ }
78
+
79
+ opts.maxDimension = ms_getMaxDimension(opts, avail_primary);
80
+
81
+ // complement items and sizes
82
+ opts.items = in_complementItems(opts.items, opts, a_itm, start);
83
+ opts[opts.d['width']] = in_complementPrimarySize(opts[opts.d['width']], opts, a_itm);
84
+ opts[opts.d['height']] = in_complementSecondarySize(opts[opts.d['height']], opts, a_itm);
85
+
86
+ // primary size not set for a responsive carousel
87
+ if (opts.responsive) {
88
+ if (!is_percentage(opts[opts.d['width']])) {
89
+ opts[opts.d['width']] = '100%';
90
+ }
91
+ }
92
+
93
+ // primary size is percentage
94
+ if (is_percentage(opts[opts.d['width']])) {
95
+ crsl.upDateOnWindowResize = true;
96
+ crsl.primarySizePercentage = opts[opts.d['width']];
97
+ opts[opts.d['width']] = ms_getPercentage(avail_primary, crsl.primarySizePercentage);
98
+ if (!opts.items.visible) {
99
+ opts.items.visibleConf.variable = true;
100
+ }
101
+ }
102
+
103
+ if (opts.responsive) {
104
+ opts.usePadding = true;
105
+ opts.padding = [5, 5, 5, 5];
106
+ opts.align = false;
107
+ opts.items.visibleConf.variable = false;
108
+ }
109
+ else {
110
+ // visible-items not set
111
+ if (!opts.items.visible) {
112
+ opts = in_complementVisibleItems(opts, avail_primary);
113
+ }
114
+
115
+ // primary size not set -> calculate it or set to "variable"
116
+ if (!opts[opts.d['width']]) {
117
+ if (!opts.items.visibleConf.variable && is_number(opts.items[opts.d['width']]) && opts.items.filter == '*') {
118
+ opts[opts.d['width']] = opts.items.visible * opts.items[opts.d['width']];
119
+ opts.align = false;
120
+ }
121
+ else {
122
+ opts[opts.d['width']] = 'variable';
123
+ }
124
+ }
125
+ // align not set -> set to center if primary size is number
126
+ if (is_undefined(opts.align)) {
127
+ opts.align = (is_number(opts[opts.d['width']]))
128
+ ? 'center'
129
+ : false;
130
+ }
131
+ // set variabe visible-items
132
+ if (opts.items.visibleConf.variable) {
133
+ opts.items.visible = gn_getVisibleItemsNext(a_itm, opts, 0);
134
+ }
135
+ }
136
+
137
+ // set visible items by filter
138
+ if (opts.items.filter != '*' && !opts.items.visibleConf.variable) {
139
+ opts.items.visibleConf.org = opts.items.visible;
140
+ opts.items.visible = gn_getVisibleItemsNextFilter(a_itm, opts, 0);
141
+ }
142
+
143
+ opts.items.visible = cf_getItemsAdjust(opts.items.visible, opts, opts.items.visibleConf.adjust, $tt0);
144
+ opts.items.visibleConf.old = opts.items.visible;
145
+
146
+ if (opts.responsive) {
147
+ if (!opts.items.visibleConf.min) {
148
+ opts.items.visibleConf.min = opts.items.visible;
149
+ }
150
+ if (!opts.items.visibleConf.max) {
151
+ opts.items.visibleConf.max = opts.items.visible;
152
+ }
153
+ opts = in_getResponsiveValues(opts, a_itm, avail_primary);
154
+ }
155
+ else {
156
+ opts.padding = cf_getPadding(opts.padding);
157
+
158
+ if (opts.align == 'top') {
159
+ opts.align = 'left';
160
+ }
161
+ else if (opts.align == 'bottom') {
162
+ opts.align = 'right';
163
+ }
164
+
165
+ switch (opts.align) {
166
+ // align: center, left or right
167
+ case 'center':
168
+ case 'left':
169
+ case 'right':
170
+ if (opts[opts.d['width']] != 'variable') {
171
+ opts = in_getAlignPadding(opts, a_itm);
172
+ opts.usePadding = true;
173
+ }
174
+ break;
175
+
176
+ // padding
177
+ default:
178
+ opts.align = false;
179
+ opts.usePadding = (
180
+ opts.padding[0] == 0 &&
181
+ opts.padding[1] == 0 &&
182
+ opts.padding[2] == 0 &&
183
+ opts.padding[3] == 0
184
+ ) ? false : true;
185
+ break;
186
+ }
187
+ }
188
+
189
+ if (!is_number(opts.scroll.duration)) {
190
+ opts.scroll.duration = 500;
191
+ }
192
+ if (is_undefined(opts.scroll.items)) {
193
+ opts.scroll.items = (opts.responsive || opts.items.visibleConf.variable || opts.items.filter != '*')
194
+ ? 'visible'
195
+ : opts.items.visible;
196
+ }
197
+
198
+ opts.auto = $.extend(true, {}, opts.scroll, opts.auto);
199
+ opts.prev = $.extend(true, {}, opts.scroll, opts.prev);
200
+ opts.next = $.extend(true, {}, opts.scroll, opts.next);
201
+ opts.pagination = $.extend(true, {}, opts.scroll, opts.pagination);
202
+ // swipe and mousewheel extend later on, per direction
203
+
204
+ opts.auto = go_complementAutoObject($tt0, opts.auto);
205
+ opts.prev = go_complementPrevNextObject($tt0, opts.prev);
206
+ opts.next = go_complementPrevNextObject($tt0, opts.next);
207
+ opts.pagination = go_complementPaginationObject($tt0, opts.pagination);
208
+ opts.swipe = go_complementSwipeObject($tt0, opts.swipe);
209
+ opts.mousewheel = go_complementMousewheelObject($tt0, opts.mousewheel);
210
+
211
+ if (opts.synchronise) {
212
+ opts.synchronise = cf_getSynchArr(opts.synchronise);
213
+ }
214
+
215
+
216
+ // DEPRECATED
217
+ if (opts.auto.onPauseStart) {
218
+ opts.auto.onTimeoutStart = opts.auto.onPauseStart;
219
+ deprecated('auto.onPauseStart', 'auto.onTimeoutStart');
220
+ }
221
+ if (opts.auto.onPausePause) {
222
+ opts.auto.onTimeoutPause = opts.auto.onPausePause;
223
+ deprecated('auto.onPausePause', 'auto.onTimeoutPause');
224
+ }
225
+ if (opts.auto.onPauseEnd) {
226
+ opts.auto.onTimeoutEnd = opts.auto.onPauseEnd;
227
+ deprecated('auto.onPauseEnd', 'auto.onTimeoutEnd');
228
+ }
229
+ if (opts.auto.pauseDuration) {
230
+ opts.auto.timeoutDuration = opts.auto.pauseDuration;
231
+ deprecated('auto.pauseDuration', 'auto.timeoutDuration');
232
+ }
233
+ // /DEPRECATED
234
+
235
+
236
+ }; // /init
237
+
238
+
239
+ FN._build = function () {
240
+ $cfs.data('_cfs_isCarousel', true);
241
+
242
+ var a_itm = $cfs.children(),
243
+ orgCSS = in_mapCss($cfs, ['textAlign', 'float', 'position', 'top', 'right', 'bottom', 'left', 'zIndex', 'width', 'height', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft']),
244
+ newPosition = 'relative';
245
+
246
+ switch (orgCSS.position) {
247
+ case 'absolute':
248
+ case 'fixed':
249
+ newPosition = orgCSS.position;
250
+ break;
251
+ }
252
+
253
+ if (conf.wrapper == 'parent') {
254
+ sz_storeOrigCss($wrp);
255
+ }
256
+ else {
257
+ $wrp.css(orgCSS);
258
+ }
259
+ $wrp.css({
260
+ 'overflow': 'hidden',
261
+ 'position': newPosition
262
+ });
263
+
264
+ sz_storeOrigCss($cfs);
265
+ $cfs.data('_cfs_origCssZindex', orgCSS.zIndex);
266
+ $cfs.css({
267
+ 'textAlign': 'left',
268
+ 'float': 'none',
269
+ 'position': 'absolute',
270
+ 'top': 0,
271
+ 'right': 'auto',
272
+ 'bottom': 'auto',
273
+ 'left': 0,
274
+ 'marginTop': 0,
275
+ 'marginRight': 0,
276
+ 'marginBottom': 0,
277
+ 'marginLeft': 0
278
+ });
279
+
280
+ sz_storeMargin(a_itm, opts);
281
+ sz_storeOrigCss(a_itm);
282
+ if (opts.responsive) {
283
+ sz_setResponsiveSizes(opts, a_itm);
284
+ }
285
+
286
+ }; // /build
287
+
288
+
289
+ FN._bind_events = function () {
290
+ FN._unbind_events();
291
+
292
+
293
+ // stop event
294
+ $cfs.bind(cf_e('stop', conf), function (e, imm) {
295
+ e.stopPropagation();
296
+
297
+ // button
298
+ if (!crsl.isStopped) {
299
+ if (opts.auto.button) {
300
+ opts.auto.button.addClass(cf_c('stopped', conf));
301
+ }
302
+ }
303
+
304
+ // set stopped
305
+ crsl.isStopped = true;
306
+
307
+ if (opts.auto.play) {
308
+ opts.auto.play = false;
309
+ $cfs.trigger(cf_e('pause', conf), imm);
310
+ }
311
+ return true;
312
+ });
313
+
314
+
315
+ // finish event
316
+ $cfs.bind(cf_e('finish', conf), function (e) {
317
+ e.stopPropagation();
318
+ if (crsl.isScrolling) {
319
+ sc_stopScroll(scrl);
320
+ }
321
+ return true;
322
+ });
323
+
324
+
325
+ // pause event
326
+ $cfs.bind(cf_e('pause', conf), function (e, imm, res) {
327
+ e.stopPropagation();
328
+ tmrs = sc_clearTimers(tmrs);
329
+
330
+ // immediately pause
331
+ if (imm && crsl.isScrolling) {
332
+ scrl.isStopped = true;
333
+ var nst = getTime() - scrl.startTime;
334
+ scrl.duration -= nst;
335
+ if (scrl.pre) {
336
+ scrl.pre.duration -= nst;
337
+ }
338
+ if (scrl.post) {
339
+ scrl.post.duration -= nst;
340
+ }
341
+ sc_stopScroll(scrl, false);
342
+ }
343
+
344
+ // update remaining pause-time
345
+ if (!crsl.isPaused && !crsl.isScrolling) {
346
+ if (res) {
347
+ tmrs.timePassed += getTime() - tmrs.startTime;
348
+ }
349
+ }
350
+
351
+ // button
352
+ if (!crsl.isPaused) {
353
+ if (opts.auto.button) {
354
+ opts.auto.button.addClass(cf_c('paused', conf));
355
+ }
356
+ }
357
+
358
+ // set paused
359
+ crsl.isPaused = true;
360
+
361
+ // pause pause callback
362
+ if (opts.auto.onTimeoutPause) {
363
+ var dur1 = opts.auto.timeoutDuration - tmrs.timePassed,
364
+ perc = 100 - Math.ceil(dur1 * 100 / opts.auto.timeoutDuration);
365
+
366
+ opts.auto.onTimeoutPause.call($tt0, perc, dur1);
367
+ }
368
+ return true;
369
+ });
370
+
371
+
372
+ // play event
373
+ $cfs.bind(cf_e('play', conf), function (e, dir, del, res) {
374
+ e.stopPropagation();
375
+ tmrs = sc_clearTimers(tmrs);
376
+
377
+ // sort params
378
+ var v = [dir, del, res],
379
+ t = ['string', 'number', 'boolean'],
380
+ a = cf_sortParams(v, t);
381
+
382
+ dir = a[0];
383
+ del = a[1];
384
+ res = a[2];
385
+
386
+ if (dir != 'prev' && dir != 'next') {
387
+ dir = crsl.direction;
388
+ }
389
+ if (!is_number(del)) {
390
+ del = 0;
391
+ }
392
+ if (!is_boolean(res)) {
393
+ res = false;
394
+ }
395
+
396
+ // stopped?
397
+ if (res) {
398
+ crsl.isStopped = false;
399
+ opts.auto.play = true;
400
+ }
401
+ if (!opts.auto.play) {
402
+ e.stopImmediatePropagation();
403
+ return debug(conf, 'Carousel stopped: Not scrolling.');
404
+ }
405
+
406
+ // button
407
+ if (crsl.isPaused) {
408
+ if (opts.auto.button) {
409
+ opts.auto.button.removeClass(cf_c('stopped', conf));
410
+ opts.auto.button.removeClass(cf_c('paused', conf));
411
+ }
412
+ }
413
+
414
+ // set playing
415
+ crsl.isPaused = false;
416
+ tmrs.startTime = getTime();
417
+
418
+ // timeout the scrolling
419
+ var dur1 = opts.auto.timeoutDuration + del;
420
+ dur2 = dur1 - tmrs.timePassed;
421
+ perc = 100 - Math.ceil(dur2 * 100 / dur1);
422
+
423
+ if (opts.auto.progress) {
424
+ tmrs.progress = setInterval(function () {
425
+ var pasd = getTime() - tmrs.startTime + tmrs.timePassed,
426
+ perc = Math.ceil(pasd * 100 / dur1);
427
+ opts.auto.progress.updater.call(opts.auto.progress.bar[0], perc);
428
+ }, opts.auto.progress.interval);
429
+ }
430
+
431
+ tmrs.auto = setTimeout(function () {
432
+ if (opts.auto.progress) {
433
+ opts.auto.progress.updater.call(opts.auto.progress.bar[0], 100);
434
+ }
435
+ if (opts.auto.onTimeoutEnd) {
436
+ opts.auto.onTimeoutEnd.call($tt0, perc, dur2);
437
+ }
438
+ if (crsl.isScrolling) {
439
+ $cfs.trigger(cf_e('play', conf), dir);
440
+ }
441
+ else {
442
+ $cfs.trigger(cf_e(dir, conf), opts.auto);
443
+ }
444
+ }, dur2);
445
+
446
+ // pause start callback
447
+ if (opts.auto.onTimeoutStart) {
448
+ opts.auto.onTimeoutStart.call($tt0, perc, dur2);
449
+ }
450
+
451
+ return true;
452
+ });
453
+
454
+
455
+ // resume event
456
+ $cfs.bind(cf_e('resume', conf), function (e) {
457
+ e.stopPropagation();
458
+ if (scrl.isStopped) {
459
+ scrl.isStopped = false;
460
+ crsl.isPaused = false;
461
+ crsl.isScrolling = true;
462
+ scrl.startTime = getTime();
463
+ sc_startScroll(scrl, conf);
464
+ }
465
+ else {
466
+ $cfs.trigger(cf_e('play', conf));
467
+ }
468
+ return true;
469
+ });
470
+
471
+
472
+ // prev + next events
473
+ $cfs.bind(cf_e('prev', conf) + ' ' + cf_e('next', conf), function (e, obj, num, clb, que) {
474
+ e.stopPropagation();
475
+
476
+ // stopped or hidden carousel, don't scroll, don't queue
477
+ if (crsl.isStopped || $cfs.is(':hidden')) {
478
+ e.stopImmediatePropagation();
479
+ return debug(conf, 'Carousel stopped or hidden: Not scrolling.');
480
+ }
481
+
482
+ // not enough items
483
+ var minimum = (is_number(opts.items.minimum)) ? opts.items.minimum : opts.items.visible + 1;
484
+ if (minimum > itms.total) {
485
+ e.stopImmediatePropagation();
486
+ return debug(conf, 'Not enough items (' + itms.total + ' total, ' + minimum + ' needed): Not scrolling.');
487
+ }
488
+
489
+ // get config
490
+ var v = [obj, num, clb, que],
491
+ t = ['object', 'number/string', 'function', 'boolean'],
492
+ a = cf_sortParams(v, t);
493
+
494
+ obj = a[0];
495
+ num = a[1];
496
+ clb = a[2];
497
+ que = a[3];
498
+
499
+ var eType = e.type.slice(conf.events.prefix.length);
500
+
501
+ if (!is_object(obj)) {
502
+ obj = {};
503
+ }
504
+ if (is_function(clb)) {
505
+ obj.onAfter = clb;
506
+ }
507
+ if (is_boolean(que)) {
508
+ obj.queue = que;
509
+ }
510
+ obj = $.extend(true, {}, opts[eType], obj);
511
+
512
+ // test conditions callback
513
+ if (obj.conditions && !obj.conditions.call($tt0, eType)) {
514
+ e.stopImmediatePropagation();
515
+ return debug(conf, 'Callback "conditions" returned false.');
516
+ }
517
+
518
+ if (!is_number(num)) {
519
+ if (opts.items.filter != '*') {
520
+ num = 'visible';
521
+ }
522
+ else {
523
+ var arr = [num, obj.items, opts[eType].items];
524
+ for (var a = 0, l = arr.length; a < l; a++) {
525
+ if (is_number(arr[a]) || arr[a] == 'page' || arr[a] == 'visible') {
526
+ num = arr[a];
527
+ break;
528
+ }
529
+ }
530
+ }
531
+ switch (num) {
532
+ case 'page':
533
+ e.stopImmediatePropagation();
534
+ return $cfs.triggerHandler(cf_e(eType + 'Page', conf), [obj, clb]);
535
+ break;
536
+
537
+ case 'visible':
538
+ if (!opts.items.visibleConf.variable && opts.items.filter == '*') {
539
+ num = opts.items.visible;
540
+ }
541
+ break;
542
+ }
543
+ }
544
+
545
+ // resume animation, add current to queue
546
+ if (scrl.isStopped) {
547
+ $cfs.trigger(cf_e('resume', conf));
548
+ $cfs.trigger(cf_e('queue', conf), [eType, [obj, num, clb]]);
549
+ e.stopImmediatePropagation();
550
+ return debug(conf, 'Carousel resumed scrolling.');
551
+ }
552
+
553
+ // queue if scrolling
554
+ if (obj.duration > 0) {
555
+ if (crsl.isScrolling) {
556
+ if (obj.queue) {
557
+ if (obj.queue == 'last') {
558
+ queu = [];
559
+ }
560
+ if (obj.queue != 'first' || queu.length == 0) {
561
+ $cfs.trigger(cf_e('queue', conf), [eType, [obj, num, clb]]);
562
+ }
563
+ }
564
+ e.stopImmediatePropagation();
565
+ return debug(conf, 'Carousel currently scrolling.');
566
+ }
567
+ }
568
+
569
+ tmrs.timePassed = 0;
570
+ $cfs.trigger(cf_e('slide_' + eType, conf), [obj, num]);
571
+
572
+ // synchronise
573
+ if (opts.synchronise) {
574
+ var s = opts.synchronise,
575
+ c = [obj, num];
576
+
577
+ for (var j = 0, l = s.length; j < l; j++) {
578
+ var d = eType;
579
+ if (!s[j][2]) {
580
+ d = (d == 'prev') ? 'next' : 'prev';
581
+ }
582
+ if (!s[j][1]) {
583
+ c[0] = s[j][0].triggerHandler('_cfs_triggerEvent', ['configuration', d]);
584
+ }
585
+ c[1] = num + s[j][3];
586
+ s[j][0].trigger('_cfs_triggerEvent', ['slide_' + d, c]);
587
+ }
588
+ }
589
+ return true;
590
+ });
591
+
592
+
593
+ // prev event
594
+ $cfs.bind(cf_e('slide_prev', conf), function (e, sO, nI) {
595
+ e.stopPropagation();
596
+ var a_itm = $cfs.children();
597
+
598
+ // non-circular at start, scroll to end
599
+ if (!opts.circular) {
600
+ if (itms.first == 0) {
601
+ if (opts.infinite) {
602
+ $cfs.trigger(cf_e('next', conf), itms.total - 1);
603
+ }
604
+ return e.stopImmediatePropagation();
605
+ }
606
+ }
607
+
608
+ sz_resetMargin(a_itm, opts);
609
+
610
+ // find number of items to scroll
611
+ if (!is_number(nI)) {
612
+ if (opts.items.visibleConf.variable) {
613
+ nI = gn_getVisibleItemsPrev(a_itm, opts, itms.total - 1);
614
+ }
615
+ else if (opts.items.filter != '*') {
616
+ var xI = (is_number(sO.items)) ? sO.items : gn_getVisibleOrg($cfs, opts);
617
+ nI = gn_getScrollItemsPrevFilter(a_itm, opts, itms.total - 1, xI);
618
+ }
619
+ else {
620
+ nI = opts.items.visible;
621
+ }
622
+ nI = cf_getAdjust(nI, opts, sO.items, $tt0);
623
+ }
624
+
625
+ // prevent non-circular from scrolling to far
626
+ if (!opts.circular) {
627
+ if (itms.total - nI < itms.first) {
628
+ nI = itms.total - itms.first;
629
+ }
630
+ }
631
+
632
+ // set new number of visible items
633
+ opts.items.visibleConf.old = opts.items.visible;
634
+ if (opts.items.visibleConf.variable) {
635
+ var vI = cf_getItemsAdjust(gn_getVisibleItemsNext(a_itm, opts, itms.total - nI), opts, opts.items.visibleConf.adjust, $tt0);
636
+ if (opts.items.visible + nI <= vI && nI < itms.total) {
637
+ nI++;
638
+ vI = cf_getItemsAdjust(gn_getVisibleItemsNext(a_itm, opts, itms.total - nI), opts, opts.items.visibleConf.adjust, $tt0);
639
+ }
640
+ opts.items.visible = vI;
641
+ }
642
+ else if (opts.items.filter != '*') {
643
+ var vI = gn_getVisibleItemsNextFilter(a_itm, opts, itms.total - nI);
644
+ opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0);
645
+ }
646
+
647
+ sz_resetMargin(a_itm, opts, true);
648
+
649
+ // scroll 0, don't scroll
650
+ if (nI == 0) {
651
+ e.stopImmediatePropagation();
652
+ return debug(conf, '0 items to scroll: Not scrolling.');
653
+ }
654
+ debug(conf, 'Scrolling ' + nI + ' items backward.');
655
+
656
+
657
+ // save new config
658
+ itms.first += nI;
659
+ while (itms.first >= itms.total) {
660
+ itms.first -= itms.total;
661
+ }
662
+
663
+ // non-circular callback
664
+ if (!opts.circular) {
665
+ if (itms.first == 0 && sO.onEnd) {
666
+ sO.onEnd.call($tt0, 'prev');
667
+ }
668
+ if (!opts.infinite) {
669
+ nv_enableNavi(opts, itms.first, conf);
670
+ }
671
+ }
672
+
673
+ // rearrange items
674
+ $cfs.children().slice(itms.total - nI, itms.total).prependTo($cfs);
675
+ if (itms.total < opts.items.visible + nI) {
676
+ $cfs.children().slice(0, (opts.items.visible + nI) - itms.total).clone(true).appendTo($cfs);
677
+ }
678
+
679
+ // the needed items
680
+ var a_itm = $cfs.children(),
681
+ i_old = gi_getOldItemsPrev(a_itm, opts, nI),
682
+ i_new = gi_getNewItemsPrev(a_itm, opts),
683
+ i_cur_l = a_itm.eq(nI - 1),
684
+ i_old_l = i_old.last(),
685
+ i_new_l = i_new.last();
686
+
687
+ sz_resetMargin(a_itm, opts);
688
+
689
+ var pL = 0,
690
+ pR = 0;
691
+
692
+ if (opts.align) {
693
+ var p = cf_getAlignPadding(i_new, opts);
694
+ pL = p[0];
695
+ pR = p[1];
696
+ }
697
+ var oL = (pL < 0) ? opts.padding[opts.d[3]] : 0;
698
+
699
+ // hide items for fx directscroll
700
+ var hiddenitems = false,
701
+ i_skp = $();
702
+ if (opts.items.visible < nI) {
703
+ i_skp = a_itm.slice(opts.items.visibleConf.old, nI);
704
+ if (sO.fx == 'directscroll') {
705
+ var orgW = opts.items[opts.d['width']];
706
+ hiddenitems = i_skp;
707
+ i_cur_l = i_new_l;
708
+ sc_hideHiddenItems(hiddenitems);
709
+ opts.items[opts.d['width']] = 'variable';
710
+ }
711
+ }
712
+ // save new sizes
713
+ var $cf2 = false,
714
+ i_siz = ms_getTotalSize(a_itm.slice(0, nI), opts, 'width'),
715
+ w_siz = cf_mapWrapperSizes(ms_getSizes(i_new, opts, true), opts, !opts.usePadding),
716
+ i_siz_vis = 0,
717
+ a_cfs = {},
718
+ a_wsz = {},
719
+ a_cur = {},
720
+ a_old = {},
721
+ a_new = {},
722
+ a_lef = {},
723
+ a_lef_vis = {},
724
+ a_dur = sc_getDuration(sO, opts, nI, i_siz);
725
+
726
+ switch (sO.fx) {
727
+ case 'cover':
728
+ case 'cover-fade':
729
+ i_siz_vis = ms_getTotalSize(a_itm.slice(0, opts.items.visible), opts, 'width');
730
+ break;
731
+ }
732
+
733
+ if (hiddenitems) {
734
+ opts.items[opts.d['width']] = orgW;
735
+ }
736
+
737
+ sz_resetMargin(a_itm, opts, true);
738
+ if (pR >= 0) {
739
+ sz_resetMargin(i_old_l, opts, opts.padding[opts.d[1]]);
740
+ }
741
+ if (pL >= 0) {
742
+ sz_resetMargin(i_cur_l, opts, opts.padding[opts.d[3]]);
743
+ }
744
+
745
+ if (opts.align) {
746
+ opts.padding[opts.d[1]] = pR;
747
+ opts.padding[opts.d[3]] = pL;
748
+ }
749
+
750
+ a_lef[opts.d['left']] = -(i_siz - oL);
751
+ a_lef_vis[opts.d['left']] = -(i_siz_vis - oL);
752
+ a_wsz[opts.d['left']] = w_siz[opts.d['width']];
753
+
754
+ // scrolling functions
755
+ var _s_wrapper = function () {
756
+ },
757
+ _a_wrapper = function () {
758
+ },
759
+ _s_paddingold = function () {
760
+ },
761
+ _a_paddingold = function () {
762
+ },
763
+ _s_paddingnew = function () {
764
+ },
765
+ _a_paddingnew = function () {
766
+ },
767
+ _s_paddingcur = function () {
768
+ },
769
+ _a_paddingcur = function () {
770
+ },
771
+ _onafter = function () {
772
+ },
773
+ _moveitems = function () {
774
+ },
775
+ _position = function () {
776
+ };
777
+
778
+ // clone carousel
779
+ switch (sO.fx) {
780
+ case 'crossfade':
781
+ case 'cover':
782
+ case 'cover-fade':
783
+ case 'uncover':
784
+ case 'uncover-fade':
785
+ $cf2 = $cfs.clone(true).appendTo($wrp);
786
+ break;
787
+ }
788
+ switch (sO.fx) {
789
+ case 'crossfade':
790
+ case 'uncover':
791
+ case 'uncover-fade':
792
+ $cf2.children().slice(0, nI).remove();
793
+ $cf2.children().slice(opts.items.visibleConf.old).remove();
794
+ break;
795
+
796
+ case 'cover':
797
+ case 'cover-fade':
798
+ $cf2.children().slice(opts.items.visible).remove();
799
+ $cf2.css(a_lef_vis);
800
+ break;
801
+ }
802
+
803
+ $cfs.css(a_lef);
804
+
805
+ // reset all scrolls
806
+ scrl = sc_setScroll(a_dur, sO.easing, conf);
807
+
808
+ // animate / set carousel
809
+ a_cfs[opts.d['left']] = (opts.usePadding) ? opts.padding[opts.d[3]] : 0;
810
+
811
+ // animate / set wrapper
812
+ if (opts[opts.d['width']] == 'variable' || opts[opts.d['height']] == 'variable') {
813
+ _s_wrapper = function () {
814
+ $wrp.css(w_siz);
815
+ };
816
+ _a_wrapper = function () {
817
+ scrl.anims.push([$wrp, w_siz]);
818
+ };
819
+ }
820
+
821
+ // animate / set items
822
+ if (opts.usePadding) {
823
+ if (i_new_l.not(i_cur_l).length) {
824
+ a_cur[opts.d['marginRight']] = i_cur_l.data('_cfs_origCssMargin');
825
+
826
+ if (pL < 0) {
827
+ i_cur_l.css(a_cur);
828
+ }
829
+ else {
830
+ _s_paddingcur = function () {
831
+ i_cur_l.css(a_cur);
832
+ };
833
+ _a_paddingcur = function () {
834
+ scrl.anims.push([i_cur_l, a_cur]);
835
+ };
836
+ }
837
+ }
838
+ switch (sO.fx) {
839
+ case 'cover':
840
+ case 'cover-fade':
841
+ $cf2.children().eq(nI - 1).css(a_cur);
842
+ break;
843
+ }
844
+
845
+ if (i_new_l.not(i_old_l).length) {
846
+ a_old[opts.d['marginRight']] = i_old_l.data('_cfs_origCssMargin');
847
+ _s_paddingold = function () {
848
+ i_old_l.css(a_old);
849
+ };
850
+ _a_paddingold = function () {
851
+ scrl.anims.push([i_old_l, a_old]);
852
+ };
853
+ }
854
+
855
+ if (pR >= 0) {
856
+ a_new[opts.d['marginRight']] = i_new_l.data('_cfs_origCssMargin') + opts.padding[opts.d[1]];
857
+ _s_paddingnew = function () {
858
+ i_new_l.css(a_new);
859
+ };
860
+ _a_paddingnew = function () {
861
+ scrl.anims.push([i_new_l, a_new]);
862
+ };
863
+ }
864
+ }
865
+
866
+ // set position
867
+ _position = function () {
868
+ $cfs.css(a_cfs);
869
+ };
870
+
871
+
872
+ var overFill = opts.items.visible + nI - itms.total;
873
+
874
+ // rearrange items
875
+ _moveitems = function () {
876
+ if (overFill > 0) {
877
+ $cfs.children().slice(itms.total).remove();
878
+ i_old = $($cfs.children().slice(itms.total - (opts.items.visible - overFill)).get().concat($cfs.children().slice(0, overFill).get()));
879
+ }
880
+ sc_showHiddenItems(hiddenitems);
881
+
882
+ if (opts.usePadding) {
883
+ var l_itm = $cfs.children().eq(opts.items.visible + nI - 1);
884
+ l_itm.css(opts.d['marginRight'], l_itm.data('_cfs_origCssMargin'));
885
+ }
886
+ };
887
+
888
+
889
+ var cb_arguments = sc_mapCallbackArguments(i_old, i_skp, i_new, nI, 'prev', a_dur, w_siz);
890
+
891
+ // fire onAfter callbacks
892
+ _onafter = function () {
893
+ sc_afterScroll($cfs, $cf2, sO);
894
+ crsl.isScrolling = false;
895
+ clbk.onAfter = sc_fireCallbacks($tt0, sO, 'onAfter', cb_arguments, clbk);
896
+ queu = sc_fireQueue($cfs, queu, conf);
897
+
898
+ if (!crsl.isPaused) {
899
+ $cfs.trigger(cf_e('play', conf));
900
+ }
901
+ };
902
+
903
+ // fire onBefore callback
904
+ crsl.isScrolling = true;
905
+ tmrs = sc_clearTimers(tmrs);
906
+ clbk.onBefore = sc_fireCallbacks($tt0, sO, 'onBefore', cb_arguments, clbk);
907
+
908
+ switch (sO.fx) {
909
+ case 'none':
910
+ $cfs.css(a_cfs);
911
+ _s_wrapper();
912
+ _s_paddingold();
913
+ _s_paddingnew();
914
+ _s_paddingcur();
915
+ _position();
916
+ _moveitems();
917
+ _onafter();
918
+ break;
919
+
920
+ case 'fade':
921
+ scrl.anims.push([$cfs, {'opacity': 0}, function () {
922
+ _s_wrapper();
923
+ _s_paddingold();
924
+ _s_paddingnew();
925
+ _s_paddingcur();
926
+ _position();
927
+ _moveitems();
928
+ scrl = sc_setScroll(a_dur, sO.easing, conf);
929
+ scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
930
+ sc_startScroll(scrl, conf);
931
+ }]);
932
+ break;
933
+
934
+ case 'crossfade':
935
+ $cfs.css({'opacity': 0});
936
+ scrl.anims.push([$cf2, {'opacity': 0}]);
937
+ scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
938
+ _a_wrapper();
939
+ _s_paddingold();
940
+ _s_paddingnew();
941
+ _s_paddingcur();
942
+ _position();
943
+ _moveitems();
944
+ break;
945
+
946
+ case 'cover':
947
+ scrl.anims.push([$cf2, a_cfs, function () {
948
+ _s_paddingold();
949
+ _s_paddingnew();
950
+ _s_paddingcur();
951
+ _position();
952
+ _moveitems();
953
+ _onafter();
954
+ }]);
955
+ _a_wrapper();
956
+ break;
957
+
958
+ case 'cover-fade':
959
+ scrl.anims.push([$cfs, {'opacity': 0}]);
960
+ scrl.anims.push([$cf2, a_cfs, function () {
961
+ _s_paddingold();
962
+ _s_paddingnew();
963
+ _s_paddingcur();
964
+ _position();
965
+ _moveitems();
966
+ _onafter();
967
+ }]);
968
+ _a_wrapper();
969
+ break;
970
+
971
+ case 'uncover':
972
+ scrl.anims.push([$cf2, a_wsz, _onafter]);
973
+ _a_wrapper();
974
+ _s_paddingold();
975
+ _s_paddingnew();
976
+ _s_paddingcur();
977
+ _position();
978
+ _moveitems();
979
+ break;
980
+
981
+ case 'uncover-fade':
982
+ $cfs.css({'opacity': 0});
983
+ scrl.anims.push([$cfs, {'opacity': 1}]);
984
+ scrl.anims.push([$cf2, a_wsz, _onafter]);
985
+ _a_wrapper();
986
+ _s_paddingold();
987
+ _s_paddingnew();
988
+ _s_paddingcur();
989
+ _position();
990
+ _moveitems();
991
+ break;
992
+
993
+ default:
994
+ scrl.anims.push([$cfs, a_cfs, function () {
995
+ _moveitems();
996
+ _onafter();
997
+ }]);
998
+ _a_wrapper();
999
+ _a_paddingold();
1000
+ _a_paddingnew();
1001
+ _a_paddingcur();
1002
+ break;
1003
+ }
1004
+
1005
+ sc_startScroll(scrl, conf);
1006
+ cf_setCookie(opts.cookie, $cfs, conf);
1007
+
1008
+ $cfs.trigger(cf_e('updatePageStatus', conf), [false, w_siz]);
1009
+
1010
+ return true;
1011
+ });
1012
+
1013
+
1014
+ // next event
1015
+ $cfs.bind(cf_e('slide_next', conf), function (e, sO, nI) {
1016
+ e.stopPropagation();
1017
+ var a_itm = $cfs.children();
1018
+
1019
+ // non-circular at end, scroll to start
1020
+ if (!opts.circular) {
1021
+ if (itms.first == opts.items.visible) {
1022
+ if (opts.infinite) {
1023
+ $cfs.trigger(cf_e('prev', conf), itms.total - 1);
1024
+ }
1025
+ return e.stopImmediatePropagation();
1026
+ }
1027
+ }
1028
+
1029
+ sz_resetMargin(a_itm, opts);
1030
+
1031
+ // find number of items to scroll
1032
+ if (!is_number(nI)) {
1033
+ if (opts.items.filter != '*') {
1034
+ var xI = (is_number(sO.items)) ? sO.items : gn_getVisibleOrg($cfs, opts);
1035
+ nI = gn_getScrollItemsNextFilter(a_itm, opts, 0, xI);
1036
+ }
1037
+ else {
1038
+ nI = opts.items.visible;
1039
+ }
1040
+ nI = cf_getAdjust(nI, opts, sO.items, $tt0);
1041
+ }
1042
+
1043
+ var lastItemNr = (itms.first == 0) ? itms.total : itms.first;
1044
+
1045
+ // prevent non-circular from scrolling to far
1046
+ if (!opts.circular) {
1047
+ if (opts.items.visibleConf.variable) {
1048
+ var vI = gn_getVisibleItemsNext(a_itm, opts, nI),
1049
+ xI = gn_getVisibleItemsPrev(a_itm, opts, lastItemNr - 1);
1050
+ }
1051
+ else {
1052
+ var vI = opts.items.visible,
1053
+ xI = opts.items.visible;
1054
+ }
1055
+
1056
+ if (nI + vI > lastItemNr) {
1057
+ nI = lastItemNr - xI;
1058
+ }
1059
+ }
1060
+
1061
+ // set new number of visible items
1062
+ opts.items.visibleConf.old = opts.items.visible;
1063
+ if (opts.items.visibleConf.variable) {
1064
+ var vI = cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(a_itm, opts, nI, lastItemNr), opts, opts.items.visibleConf.adjust, $tt0);
1065
+ while (opts.items.visible - nI >= vI && nI < itms.total) {
1066
+ nI++;
1067
+ vI = cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(a_itm, opts, nI, lastItemNr), opts, opts.items.visibleConf.adjust, $tt0);
1068
+ }
1069
+ opts.items.visible = vI;
1070
+ }
1071
+ else if (opts.items.filter != '*') {
1072
+ var vI = gn_getVisibleItemsNextFilter(a_itm, opts, nI);
1073
+ opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0);
1074
+ }
1075
+
1076
+ sz_resetMargin(a_itm, opts, true);
1077
+
1078
+ // scroll 0, don't scroll
1079
+ if (nI == 0) {
1080
+ e.stopImmediatePropagation();
1081
+ return debug(conf, '0 items to scroll: Not scrolling.');
1082
+ }
1083
+ debug(conf, 'Scrolling ' + nI + ' items forward.');
1084
+
1085
+
1086
+ // save new config
1087
+ itms.first -= nI;
1088
+ while (itms.first < 0) {
1089
+ itms.first += itms.total;
1090
+ }
1091
+
1092
+ // non-circular callback
1093
+ if (!opts.circular) {
1094
+ if (itms.first == opts.items.visible && sO.onEnd) {
1095
+ sO.onEnd.call($tt0, 'next');
1096
+ }
1097
+ if (!opts.infinite) {
1098
+ nv_enableNavi(opts, itms.first, conf);
1099
+ }
1100
+ }
1101
+
1102
+ // rearrange items
1103
+ if (itms.total < opts.items.visible + nI) {
1104
+ $cfs.children().slice(0, (opts.items.visible + nI) - itms.total).clone(true).appendTo($cfs);
1105
+ }
1106
+
1107
+ // the needed items
1108
+ var a_itm = $cfs.children(),
1109
+ i_old = gi_getOldItemsNext(a_itm, opts),
1110
+ i_new = gi_getNewItemsNext(a_itm, opts, nI),
1111
+ i_cur_l = a_itm.eq(nI - 1),
1112
+ i_old_l = i_old.last(),
1113
+ i_new_l = i_new.last();
1114
+
1115
+ sz_resetMargin(a_itm, opts);
1116
+
1117
+ var pL = 0,
1118
+ pR = 0;
1119
+
1120
+ if (opts.align) {
1121
+ var p = cf_getAlignPadding(i_new, opts);
1122
+ pL = p[0];
1123
+ pR = p[1];
1124
+ }
1125
+
1126
+ // hide items for fx directscroll
1127
+ var hiddenitems = false,
1128
+ i_skp = $();
1129
+ if (opts.items.visibleConf.old < nI) {
1130
+ i_skp = a_itm.slice(opts.items.visibleConf.old, nI);
1131
+ if (sO.fx == 'directscroll') {
1132
+ var orgW = opts.items[opts.d['width']];
1133
+ hiddenitems = i_skp;
1134
+ i_cur_l = i_old_l;
1135
+ sc_hideHiddenItems(hiddenitems);
1136
+ opts.items[opts.d['width']] = 'variable';
1137
+ }
1138
+ }
1139
+ // save new sizes
1140
+ var $cf2 = false,
1141
+ i_siz = ms_getTotalSize(a_itm.slice(0, nI), opts, 'width'),
1142
+ w_siz = cf_mapWrapperSizes(ms_getSizes(i_new, opts, true), opts, !opts.usePadding),
1143
+ i_siz_vis = 0,
1144
+ a_cfs = {},
1145
+ a_cfs_vis = {},
1146
+ a_cur = {},
1147
+ a_old = {},
1148
+ a_lef = {},
1149
+ a_dur = sc_getDuration(sO, opts, nI, i_siz);
1150
+
1151
+ switch (sO.fx) {
1152
+ case 'uncover':
1153
+ case 'uncover-fade':
1154
+ i_siz_vis = ms_getTotalSize(a_itm.slice(0, opts.items.visibleConf.old), opts, 'width');
1155
+ break;
1156
+ }
1157
+
1158
+ if (hiddenitems) {
1159
+ opts.items[opts.d['width']] = orgW;
1160
+ }
1161
+
1162
+ if (opts.align) {
1163
+ if (opts.padding[opts.d[1]] < 0) {
1164
+ opts.padding[opts.d[1]] = 0;
1165
+ }
1166
+ }
1167
+ sz_resetMargin(a_itm, opts, true);
1168
+ sz_resetMargin(i_old_l, opts, opts.padding[opts.d[1]]);
1169
+
1170
+ if (opts.align) {
1171
+ opts.padding[opts.d[1]] = pR;
1172
+ opts.padding[opts.d[3]] = pL;
1173
+ }
1174
+
1175
+ a_lef[opts.d['left']] = (opts.usePadding) ? opts.padding[opts.d[3]] : 0;
1176
+
1177
+ // scrolling functions
1178
+ var _s_wrapper = function () {
1179
+ },
1180
+ _a_wrapper = function () {
1181
+ },
1182
+ _s_paddingold = function () {
1183
+ },
1184
+ _a_paddingold = function () {
1185
+ },
1186
+ _s_paddingcur = function () {
1187
+ },
1188
+ _a_paddingcur = function () {
1189
+ },
1190
+ _onafter = function () {
1191
+ },
1192
+ _moveitems = function () {
1193
+ },
1194
+ _position = function () {
1195
+ };
1196
+
1197
+ // clone carousel
1198
+ switch (sO.fx) {
1199
+ case 'crossfade':
1200
+ case 'cover':
1201
+ case 'cover-fade':
1202
+ case 'uncover':
1203
+ case 'uncover-fade':
1204
+ $cf2 = $cfs.clone(true).appendTo($wrp);
1205
+ $cf2.children().slice(opts.items.visibleConf.old).remove();
1206
+ break;
1207
+ }
1208
+ switch (sO.fx) {
1209
+ case 'crossfade':
1210
+ case 'cover':
1211
+ case 'cover-fade':
1212
+ $cfs.css('zIndex', 1);
1213
+ $cf2.css('zIndex', 0);
1214
+ break;
1215
+ }
1216
+
1217
+ // reset all scrolls
1218
+ scrl = sc_setScroll(a_dur, sO.easing, conf);
1219
+
1220
+ // animate / set carousel
1221
+ a_cfs[opts.d['left']] = -i_siz;
1222
+ a_cfs_vis[opts.d['left']] = -i_siz_vis;
1223
+
1224
+ if (pL < 0) {
1225
+ a_cfs[opts.d['left']] += pL;
1226
+ }
1227
+
1228
+ // animate / set wrapper
1229
+ if (opts[opts.d['width']] == 'variable' || opts[opts.d['height']] == 'variable') {
1230
+ _s_wrapper = function () {
1231
+ $wrp.css(w_siz);
1232
+ };
1233
+ _a_wrapper = function () {
1234
+ scrl.anims.push([$wrp, w_siz]);
1235
+ };
1236
+ }
1237
+
1238
+ // animate / set items
1239
+ if (opts.usePadding) {
1240
+ var i_new_l_m = i_new_l.data('_cfs_origCssMargin');
1241
+
1242
+ if (pR >= 0) {
1243
+ i_new_l_m += opts.padding[opts.d[1]];
1244
+ }
1245
+ i_new_l.css(opts.d['marginRight'], i_new_l_m);
1246
+
1247
+ if (i_cur_l.not(i_old_l).length) {
1248
+ a_old[opts.d['marginRight']] = i_old_l.data('_cfs_origCssMargin');
1249
+ }
1250
+ _s_paddingold = function () {
1251
+ i_old_l.css(a_old);
1252
+ };
1253
+ _a_paddingold = function () {
1254
+ scrl.anims.push([i_old_l, a_old]);
1255
+ };
1256
+
1257
+ var i_cur_l_m = i_cur_l.data('_cfs_origCssMargin');
1258
+ if (pL > 0) {
1259
+ i_cur_l_m += opts.padding[opts.d[3]];
1260
+ }
1261
+
1262
+ a_cur[opts.d['marginRight']] = i_cur_l_m;
1263
+
1264
+ _s_paddingcur = function () {
1265
+ i_cur_l.css(a_cur);
1266
+ };
1267
+ _a_paddingcur = function () {
1268
+ scrl.anims.push([i_cur_l, a_cur]);
1269
+ };
1270
+ }
1271
+
1272
+ // set position
1273
+ _position = function () {
1274
+ $cfs.css(a_lef);
1275
+ };
1276
+
1277
+
1278
+ var overFill = opts.items.visible + nI - itms.total;
1279
+
1280
+ // rearrange items
1281
+ _moveitems = function () {
1282
+ if (overFill > 0) {
1283
+ $cfs.children().slice(itms.total).remove();
1284
+ }
1285
+ var l_itm = $cfs.children().slice(0, nI).appendTo($cfs).last();
1286
+ if (overFill > 0) {
1287
+ i_new = gi_getCurrentItems(a_itm, opts);
1288
+ }
1289
+ sc_showHiddenItems(hiddenitems);
1290
+
1291
+ if (opts.usePadding) {
1292
+ if (itms.total < opts.items.visible + nI) {
1293
+ var i_cur_l = $cfs.children().eq(opts.items.visible - 1);
1294
+ i_cur_l.css(opts.d['marginRight'], i_cur_l.data('_cfs_origCssMargin') + opts.padding[opts.d[1]]);
1295
+ }
1296
+ l_itm.css(opts.d['marginRight'], l_itm.data('_cfs_origCssMargin'));
1297
+ }
1298
+ };
1299
+
1300
+
1301
+ var cb_arguments = sc_mapCallbackArguments(i_old, i_skp, i_new, nI, 'next', a_dur, w_siz);
1302
+
1303
+ // fire onAfter callbacks
1304
+ _onafter = function () {
1305
+ $cfs.css('zIndex', $cfs.data('_cfs_origCssZindex'));
1306
+ sc_afterScroll($cfs, $cf2, sO);
1307
+ crsl.isScrolling = false;
1308
+ clbk.onAfter = sc_fireCallbacks($tt0, sO, 'onAfter', cb_arguments, clbk);
1309
+ queu = sc_fireQueue($cfs, queu, conf);
1310
+
1311
+ if (!crsl.isPaused) {
1312
+ $cfs.trigger(cf_e('play', conf));
1313
+ }
1314
+ };
1315
+
1316
+ // fire onBefore callbacks
1317
+ crsl.isScrolling = true;
1318
+ tmrs = sc_clearTimers(tmrs);
1319
+ clbk.onBefore = sc_fireCallbacks($tt0, sO, 'onBefore', cb_arguments, clbk);
1320
+
1321
+ switch (sO.fx) {
1322
+ case 'none':
1323
+ $cfs.css(a_cfs);
1324
+ _s_wrapper();
1325
+ _s_paddingold();
1326
+ _s_paddingcur();
1327
+ _position();
1328
+ _moveitems();
1329
+ _onafter();
1330
+ break;
1331
+
1332
+ case 'fade':
1333
+ scrl.anims.push([$cfs, {'opacity': 0}, function () {
1334
+ _s_wrapper();
1335
+ _s_paddingold();
1336
+ _s_paddingcur();
1337
+ _position();
1338
+ _moveitems();
1339
+ scrl = sc_setScroll(a_dur, sO.easing, conf);
1340
+ scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
1341
+ sc_startScroll(scrl, conf);
1342
+ }]);
1343
+ break;
1344
+
1345
+ case 'crossfade':
1346
+ $cfs.css({'opacity': 0});
1347
+ scrl.anims.push([$cf2, {'opacity': 0}]);
1348
+ scrl.anims.push([$cfs, {'opacity': 1}, _onafter]);
1349
+ _a_wrapper();
1350
+ _s_paddingold();
1351
+ _s_paddingcur();
1352
+ _position();
1353
+ _moveitems();
1354
+ break;
1355
+
1356
+ case 'cover':
1357
+ $cfs.css(opts.d['left'], $wrp[opts.d['width']]());
1358
+ scrl.anims.push([$cfs, a_lef, _onafter]);
1359
+ _a_wrapper();
1360
+ _s_paddingold();
1361
+ _s_paddingcur();
1362
+ _moveitems();
1363
+ break;
1364
+
1365
+ case 'cover-fade':
1366
+ $cfs.css(opts.d['left'], $wrp[opts.d['width']]());
1367
+ scrl.anims.push([$cf2, {'opacity': 0}]);
1368
+ scrl.anims.push([$cfs, a_lef, _onafter]);
1369
+ _a_wrapper();
1370
+ _s_paddingold();
1371
+ _s_paddingcur();
1372
+ _moveitems();
1373
+ break;
1374
+
1375
+ case 'uncover':
1376
+ scrl.anims.push([$cf2, a_cfs_vis, _onafter]);
1377
+ _a_wrapper();
1378
+ _s_paddingold();
1379
+ _s_paddingcur();
1380
+ _position();
1381
+ _moveitems();
1382
+ break;
1383
+
1384
+ case 'uncover-fade':
1385
+ $cfs.css({'opacity': 0});
1386
+ scrl.anims.push([$cfs, {'opacity': 1}]);
1387
+ scrl.anims.push([$cf2, a_cfs_vis, _onafter]);
1388
+ _a_wrapper();
1389
+ _s_paddingold();
1390
+ _s_paddingcur();
1391
+ _position();
1392
+ _moveitems();
1393
+ break;
1394
+
1395
+ default:
1396
+ scrl.anims.push([$cfs, a_cfs, function () {
1397
+ _position();
1398
+ _moveitems();
1399
+ _onafter();
1400
+ }]);
1401
+ _a_wrapper();
1402
+ _a_paddingold();
1403
+ _a_paddingcur();
1404
+ break;
1405
+ }
1406
+
1407
+ sc_startScroll(scrl, conf);
1408
+ cf_setCookie(opts.cookie, $cfs, conf);
1409
+
1410
+ $cfs.trigger(cf_e('updatePageStatus', conf), [false, w_siz]);
1411
+
1412
+ return true;
1413
+ });
1414
+
1415
+
1416
+ // slideTo event
1417
+ $cfs.bind(cf_e('slideTo', conf), function (e, num, dev, org, obj, dir, clb) {
1418
+ e.stopPropagation();
1419
+
1420
+ var v = [num, dev, org, obj, dir, clb],
1421
+ t = ['string/number/object', 'number', 'boolean', 'object', 'string', 'function'],
1422
+ a = cf_sortParams(v, t);
1423
+
1424
+ obj = a[3];
1425
+ dir = a[4];
1426
+ clb = a[5];
1427
+
1428
+ num = gn_getItemIndex(a[0], a[1], a[2], itms, $cfs);
1429
+
1430
+ if (num == 0) {
1431
+ return false;
1432
+ }
1433
+ if (!is_object(obj)) {
1434
+ obj = false;
1435
+ }
1436
+
1437
+ if (dir != 'prev' && dir != 'next') {
1438
+ if (opts.circular) {
1439
+ dir = (num <= itms.total / 2) ? 'next' : 'prev';
1440
+ }
1441
+ else {
1442
+ dir = (itms.first == 0 || itms.first > num) ? 'next' : 'prev';
1443
+ }
1444
+ }
1445
+
1446
+ if (dir == 'prev') {
1447
+ num = itms.total - num;
1448
+ }
1449
+ $cfs.trigger(cf_e(dir, conf), [obj, num, clb]);
1450
+
1451
+ return true;
1452
+ });
1453
+
1454
+
1455
+ // prevPage event
1456
+ $cfs.bind(cf_e('prevPage', conf), function (e, obj, clb) {
1457
+ e.stopPropagation();
1458
+ var cur = $cfs.triggerHandler(cf_e('currentPage', conf));
1459
+ return $cfs.triggerHandler(cf_e('slideToPage', conf), [cur - 1, obj, 'prev', clb]);
1460
+ });
1461
+
1462
+
1463
+ // nextPage event
1464
+ $cfs.bind(cf_e('nextPage', conf), function (e, obj, clb) {
1465
+ e.stopPropagation();
1466
+ var cur = $cfs.triggerHandler(cf_e('currentPage', conf));
1467
+ return $cfs.triggerHandler(cf_e('slideToPage', conf), [cur + 1, obj, 'next', clb]);
1468
+ });
1469
+
1470
+
1471
+ // slideToPage event
1472
+ $cfs.bind(cf_e('slideToPage', conf), function (e, pag, obj, dir, clb) {
1473
+ e.stopPropagation();
1474
+ if (!is_number(pag)) {
1475
+ pag = $cfs.triggerHandler(cf_e('currentPage', conf));
1476
+ }
1477
+ var ipp = opts.pagination.items || opts.items.visible,
1478
+ max = Math.ceil(itms.total / ipp) - 1;
1479
+
1480
+ if (pag < 0) {
1481
+ pag = max;
1482
+ }
1483
+ if (pag > max) {
1484
+ pag = 0;
1485
+ }
1486
+ return $cfs.triggerHandler(cf_e('slideTo', conf), [pag * ipp, 0, true, obj, dir, clb]);
1487
+ });
1488
+
1489
+ // jumpToStart event
1490
+ $cfs.bind(cf_e('jumpToStart', conf), function (e, s) {
1491
+ e.stopPropagation();
1492
+ if (s) {
1493
+ s = gn_getItemIndex(s, 0, true, itms, $cfs);
1494
+ }
1495
+ else {
1496
+ s = 0;
1497
+ }
1498
+
1499
+ s += itms.first;
1500
+ if (s != 0) {
1501
+ if (itms.total > 0) {
1502
+ while (s > itms.total) {
1503
+ s -= itms.total;
1504
+ }
1505
+ }
1506
+ $cfs.prepend($cfs.children().slice(s, itms.total));
1507
+ }
1508
+ return true;
1509
+ });
1510
+
1511
+
1512
+ // synchronise event
1513
+ $cfs.bind(cf_e('synchronise', conf), function (e, s) {
1514
+ e.stopPropagation();
1515
+ if (s) {
1516
+ s = cf_getSynchArr(s);
1517
+ }
1518
+ else if (opts.synchronise) {
1519
+ s = opts.synchronise;
1520
+ }
1521
+ else {
1522
+ return debug(conf, 'No carousel to synchronise.');
1523
+ }
1524
+
1525
+ var n = $cfs.triggerHandler(cf_e('currentPosition', conf)),
1526
+ x = true;
1527
+
1528
+ for (var j = 0, l = s.length; j < l; j++) {
1529
+ if (!s[j][0].triggerHandler(cf_e('slideTo', conf), [n, s[j][3], true])) {
1530
+ x = false;
1531
+ }
1532
+ }
1533
+ return x;
1534
+ });
1535
+
1536
+
1537
+ // queue event
1538
+ $cfs.bind(cf_e('queue', conf), function (e, dir, opt) {
1539
+ e.stopPropagation();
1540
+ if (is_function(dir)) {
1541
+ dir.call($tt0, queu);
1542
+ }
1543
+ else if (is_array(dir)) {
1544
+ queu = dir;
1545
+ }
1546
+ else if (!is_undefined(dir)) {
1547
+ queu.push([dir, opt]);
1548
+ }
1549
+ return queu;
1550
+ });
1551
+
1552
+
1553
+ // insertItem event
1554
+ $cfs.bind(cf_e('insertItem', conf), function (e, itm, num, org, dev) {
1555
+ e.stopPropagation();
1556
+
1557
+ var v = [itm, num, org, dev],
1558
+ t = ['string/object', 'string/number/object', 'boolean', 'number'],
1559
+ a = cf_sortParams(v, t);
1560
+
1561
+ itm = a[0];
1562
+ num = a[1];
1563
+ org = a[2];
1564
+ dev = a[3];
1565
+
1566
+ if (is_object(itm) && !is_jquery(itm)) {
1567
+ itm = $(itm);
1568
+ }
1569
+ else if (is_string(itm)) {
1570
+ itm = $(itm);
1571
+ }
1572
+ if (!is_jquery(itm) || itm.length == 0) {
1573
+ return debug(conf, 'Not a valid object.');
1574
+ }
1575
+
1576
+ if (is_undefined(num)) {
1577
+ num = 'end';
1578
+ }
1579
+
1580
+ sz_storeMargin(itm, opts);
1581
+ sz_storeOrigCss(itm);
1582
+
1583
+ var orgNum = num,
1584
+ before = 'before';
1585
+
1586
+ if (num == 'end') {
1587
+ if (org) {
1588
+ if (itms.first == 0) {
1589
+ num = itms.total - 1;
1590
+ before = 'after';
1591
+ }
1592
+ else {
1593
+ num = itms.first;
1594
+ itms.first += itm.length;
1595
+ }
1596
+ if (num < 0) {
1597
+ num = 0;
1598
+ }
1599
+ }
1600
+ else {
1601
+ num = itms.total - 1;
1602
+ before = 'after';
1603
+ }
1604
+ }
1605
+ else {
1606
+ num = gn_getItemIndex(num, dev, org, itms, $cfs);
1607
+ }
1608
+
1609
+ var $cit = $cfs.children().eq(num);
1610
+ if ($cit.length) {
1611
+ $cit[before](itm);
1612
+ }
1613
+ else {
1614
+ debug(conf, 'Correct insert-position not found! Appending item to the end.');
1615
+ $cfs.append(itm);
1616
+ }
1617
+
1618
+ if (orgNum != 'end' && !org) {
1619
+ if (num < itms.first) {
1620
+ itms.first += itm.length;
1621
+ }
1622
+ }
1623
+ itms.total = $cfs.children().length;
1624
+ if (itms.first >= itms.total) {
1625
+ itms.first -= itms.total;
1626
+ }
1627
+
1628
+ $cfs.trigger(cf_e('updateSizes', conf));
1629
+ $cfs.trigger(cf_e('linkAnchors', conf));
1630
+
1631
+ return true;
1632
+ });
1633
+
1634
+
1635
+ // removeItem event
1636
+ $cfs.bind(cf_e('removeItem', conf), function (e, num, org, dev) {
1637
+ e.stopPropagation();
1638
+
1639
+ var v = [num, org, dev],
1640
+ t = ['string/number/object', 'boolean', 'number'],
1641
+ a = cf_sortParams(v, t);
1642
+
1643
+ num = a[0];
1644
+ org = a[1];
1645
+ dev = a[2];
1646
+
1647
+ var removed = false;
1648
+
1649
+ if (num instanceof $ && num.length > 1) {
1650
+ $removed = $();
1651
+ num.each(function (i, el) {
1652
+ var $rem = $cfs.trigger(cf_e('removeItem', conf), [$(this), org, dev]);
1653
+ if ($rem) {
1654
+ $removed = $removed.add($rem);
1655
+ }
1656
+ });
1657
+ return $removed;
1658
+ }
1659
+
1660
+ if (is_undefined(num) || num == 'end') {
1661
+ $removed = $cfs.children().last();
1662
+ }
1663
+ else {
1664
+ num = gn_getItemIndex(num, dev, org, itms, $cfs);
1665
+ var $removed = $cfs.children().eq(num);
1666
+ if ($removed.length) {
1667
+ if (num < itms.first) {
1668
+ itms.first -= $removed.length;
1669
+ }
1670
+ }
1671
+ }
1672
+ if ($removed && $removed.length) {
1673
+ $removed.detach();
1674
+ itms.total = $cfs.children().length;
1675
+ $cfs.trigger(cf_e('updateSizes', conf));
1676
+ }
1677
+
1678
+ return $removed;
1679
+ });
1680
+
1681
+
1682
+ // onBefore and onAfter event
1683
+ $cfs.bind(cf_e('onBefore', conf) + ' ' + cf_e('onAfter', conf), function (e, fn) {
1684
+ e.stopPropagation();
1685
+ var eType = e.type.slice(conf.events.prefix.length);
1686
+ if (is_array(fn)) {
1687
+ clbk[eType] = fn;
1688
+ }
1689
+ if (is_function(fn)) {
1690
+ clbk[eType].push(fn);
1691
+ }
1692
+ return clbk[eType];
1693
+ });
1694
+
1695
+
1696
+ // currentPosition event
1697
+ $cfs.bind(cf_e('currentPosition', conf), function (e, fn) {
1698
+ e.stopPropagation();
1699
+ if (itms.first == 0) {
1700
+ var val = 0;
1701
+ }
1702
+ else {
1703
+ var val = itms.total - itms.first;
1704
+ }
1705
+ if (is_function(fn)) {
1706
+ fn.call($tt0, val);
1707
+ }
1708
+ return val;
1709
+ });
1710
+
1711
+
1712
+ // currentPage event
1713
+ $cfs.bind(cf_e('currentPage', conf), function (e, fn) {
1714
+ e.stopPropagation();
1715
+ var ipp = opts.pagination.items || opts.items.visible,
1716
+ max = Math.ceil(itms.total / ipp - 1),
1717
+ nr;
1718
+ if (itms.first == 0) {
1719
+ nr = 0;
1720
+ }
1721
+ else if (itms.first < itms.total % ipp) {
1722
+ nr = 0;
1723
+ }
1724
+ else if (itms.first == ipp && !opts.circular) {
1725
+ nr = max;
1726
+ }
1727
+ else {
1728
+ nr = Math.round((itms.total - itms.first) / ipp);
1729
+ }
1730
+ if (nr < 0) {
1731
+ nr = 0;
1732
+ }
1733
+ if (nr > max) {
1734
+ nr = max;
1735
+ }
1736
+ if (is_function(fn)) {
1737
+ fn.call($tt0, nr);
1738
+ }
1739
+ return nr;
1740
+ });
1741
+
1742
+
1743
+ // currentVisible event
1744
+ $cfs.bind(cf_e('currentVisible', conf), function (e, fn) {
1745
+ e.stopPropagation();
1746
+ var $i = gi_getCurrentItems($cfs.children(), opts);
1747
+ if (is_function(fn)) {
1748
+ fn.call($tt0, $i);
1749
+ }
1750
+ return $i;
1751
+ });
1752
+
1753
+
1754
+ // slice event
1755
+ $cfs.bind(cf_e('slice', conf), function (e, f, l, fn) {
1756
+ e.stopPropagation();
1757
+
1758
+ if (itms.total == 0) {
1759
+ return false;
1760
+ }
1761
+
1762
+ var v = [f, l, fn],
1763
+ t = ['number', 'number', 'function'],
1764
+ a = cf_sortParams(v, t);
1765
+
1766
+ f = (is_number(a[0])) ? a[0] : 0;
1767
+ l = (is_number(a[1])) ? a[1] : itms.total;
1768
+ fn = a[2];
1769
+
1770
+ f += itms.first;
1771
+ l += itms.first;
1772
+
1773
+ if (items.total > 0) {
1774
+ while (f > itms.total) {
1775
+ f -= itms.total;
1776
+ }
1777
+ while (l > itms.total) {
1778
+ l -= itms.total;
1779
+ }
1780
+ while (f < 0) {
1781
+ f += itms.total;
1782
+ }
1783
+ while (l < 0) {
1784
+ l += itms.total;
1785
+ }
1786
+ }
1787
+ var $iA = $cfs.children(),
1788
+ $i;
1789
+
1790
+ if (l > f) {
1791
+ $i = $iA.slice(f, l);
1792
+ }
1793
+ else {
1794
+ $i = $($iA.slice(f, itms.total).get().concat($iA.slice(0, l).get()));
1795
+ }
1796
+
1797
+ if (is_function(fn)) {
1798
+ fn.call($tt0, $i);
1799
+ }
1800
+ return $i;
1801
+ });
1802
+
1803
+
1804
+ // isPaused, isStopped and isScrolling events
1805
+ $cfs.bind(cf_e('isPaused', conf) + ' ' + cf_e('isStopped', conf) + ' ' + cf_e('isScrolling', conf), function (e, fn) {
1806
+ e.stopPropagation();
1807
+ var eType = e.type.slice(conf.events.prefix.length),
1808
+ value = crsl[eType];
1809
+ if (is_function(fn)) {
1810
+ fn.call($tt0, value);
1811
+ }
1812
+ return value;
1813
+ });
1814
+
1815
+
1816
+ // configuration event
1817
+ $cfs.bind(cf_e('configuration', conf), function (e, a, b, c) {
1818
+ e.stopPropagation();
1819
+ var reInit = false;
1820
+
1821
+ // return entire configuration-object
1822
+ if (is_function(a)) {
1823
+ a.call($tt0, opts);
1824
+ }
1825
+ // set multiple options via object
1826
+ else if (is_object(a)) {
1827
+ opts_orig = $.extend(true, {}, opts_orig, a);
1828
+ if (b !== false) reInit = true;
1829
+ else opts = $.extend(true, {}, opts, a);
1830
+
1831
+ }
1832
+ else if (!is_undefined(a)) {
1833
+
1834
+ // callback function for specific option
1835
+ if (is_function(b)) {
1836
+ var val = eval('opts.' + a);
1837
+ if (is_undefined(val)) {
1838
+ val = '';
1839
+ }
1840
+ b.call($tt0, val);
1841
+ }
1842
+ // set individual option
1843
+ else if (!is_undefined(b)) {
1844
+ if (typeof c !== 'boolean') c = true;
1845
+ eval('opts_orig.' + a + ' = b');
1846
+ if (c !== false) reInit = true;
1847
+ else eval('opts.' + a + ' = b');
1848
+ }
1849
+ // return value for specific option
1850
+ else {
1851
+ return eval('opts.' + a);
1852
+ }
1853
+ }
1854
+ if (reInit) {
1855
+ sz_resetMargin($cfs.children(), opts);
1856
+ FN._init(opts_orig);
1857
+ FN._bind_buttons();
1858
+ var sz = sz_setSizes($cfs, opts);
1859
+ $cfs.trigger(cf_e('updatePageStatus', conf), [true, sz]);
1860
+ }
1861
+ return opts;
1862
+ });
1863
+
1864
+
1865
+ // linkAnchors event
1866
+ $cfs.bind(cf_e('linkAnchors', conf), function (e, $con, sel) {
1867
+ e.stopPropagation();
1868
+
1869
+ if (is_undefined($con)) {
1870
+ $con = $('body');
1871
+ }
1872
+ else if (is_string($con)) {
1873
+ $con = $($con);
1874
+ }
1875
+ if (!is_jquery($con) || $con.length == 0) {
1876
+ return debug(conf, 'Not a valid object.');
1877
+ }
1878
+ if (!is_string(sel)) {
1879
+ sel = 'a.caroufredsel';
1880
+ }
1881
+
1882
+ $con.find(sel).each(function () {
1883
+ var h = this.hash || '';
1884
+ if (h.length > 0 && $cfs.children().index($(h)) != -1) {
1885
+ $(this).unbind('click').click(function (e) {
1886
+ e.preventDefault();
1887
+ $cfs.trigger(cf_e('slideTo', conf), h);
1888
+ });
1889
+ }
1890
+ });
1891
+ return true;
1892
+ });
1893
+
1894
+
1895
+ // updatePageStatus event
1896
+ $cfs.bind(cf_e('updatePageStatus', conf), function (e, build, sizes) {
1897
+ e.stopPropagation();
1898
+ if (!opts.pagination.container) {
1899
+ return;
1900
+ }
1901
+
1902
+ var ipp = opts.pagination.items || opts.items.visible,
1903
+ pgs = Math.ceil(itms.total / ipp);
1904
+
1905
+ if (build) {
1906
+ if (opts.pagination.anchorBuilder) {
1907
+ opts.pagination.container.children().remove();
1908
+ opts.pagination.container.each(function () {
1909
+ for (var a = 0; a < pgs; a++) {
1910
+ var i = $cfs.children().eq(gn_getItemIndex(a * ipp, 0, true, itms, $cfs));
1911
+ $(this).append(opts.pagination.anchorBuilder.call(i[0], a + 1));
1912
+ }
1913
+ });
1914
+ }
1915
+ opts.pagination.container.each(function () {
1916
+ $(this).children().unbind(opts.pagination.event).each(function (a) {
1917
+ $(this).bind(opts.pagination.event, function (e) {
1918
+ e.preventDefault();
1919
+ $cfs.trigger(cf_e('slideTo', conf), [a * ipp, -opts.pagination.deviation, true, opts.pagination]);
1920
+ });
1921
+ });
1922
+ });
1923
+ }
1924
+
1925
+ var selected = $cfs.triggerHandler(cf_e('currentPage', conf)) + opts.pagination.deviation;
1926
+ if (selected >= pgs) {
1927
+ selected = 0;
1928
+ }
1929
+ if (selected < 0) {
1930
+ selected = pgs - 1;
1931
+ }
1932
+ opts.pagination.container.each(function () {
1933
+ $(this).children().removeClass(cf_c('selected', conf)).eq(selected).addClass(cf_c('selected', conf));
1934
+ });
1935
+ return true;
1936
+ });
1937
+
1938
+
1939
+ // updateSizes event
1940
+ $cfs.bind(cf_e('updateSizes', conf), function (e) {
1941
+ var vI = opts.items.visible,
1942
+ a_itm = $cfs.children(),
1943
+ avail_primary = ms_getParentSize($wrp, opts, 'width');
1944
+
1945
+ itms.total = a_itm.length;
1946
+
1947
+ if (crsl.primarySizePercentage) {
1948
+ opts.maxDimension = avail_primary;
1949
+ opts[opts.d['width']] = ms_getPercentage(avail_primary, crsl.primarySizePercentage);
1950
+ }
1951
+ else {
1952
+ opts.maxDimension = ms_getMaxDimension(opts, avail_primary);
1953
+ }
1954
+
1955
+ if (opts.responsive) {
1956
+ opts.items.width = opts.items.sizesConf.width;
1957
+ opts.items.height = opts.items.sizesConf.height;
1958
+ opts = in_getResponsiveValues(opts, a_itm, avail_primary);
1959
+ vI = opts.items.visible;
1960
+ sz_setResponsiveSizes(opts, a_itm);
1961
+ }
1962
+ else if (opts.items.visibleConf.variable) {
1963
+ vI = gn_getVisibleItemsNext(a_itm, opts, 0);
1964
+ }
1965
+ else if (opts.items.filter != '*') {
1966
+ vI = gn_getVisibleItemsNextFilter(a_itm, opts, 0);
1967
+ }
1968
+
1969
+ if (!opts.circular && itms.first != 0 && vI > itms.first) {
1970
+ if (opts.items.visibleConf.variable) {
1971
+ var nI = gn_getVisibleItemsPrev(a_itm, opts, itms.first) - itms.first;
1972
+ }
1973
+ else if (opts.items.filter != '*') {
1974
+ var nI = gn_getVisibleItemsPrevFilter(a_itm, opts, itms.first) - itms.first;
1975
+ }
1976
+ else {
1977
+ var nI = opts.items.visible - itms.first;
1978
+ }
1979
+ debug(conf, 'Preventing non-circular: sliding ' + nI + ' items backward.');
1980
+ $cfs.trigger(cf_e('prev', conf), nI);
1981
+ }
1982
+
1983
+ opts.items.visible = cf_getItemsAdjust(vI, opts, opts.items.visibleConf.adjust, $tt0);
1984
+ opts.items.visibleConf.old = opts.items.visible;
1985
+ opts = in_getAlignPadding(opts, a_itm);
1986
+
1987
+ var sz = sz_setSizes($cfs, opts);
1988
+ $cfs.trigger(cf_e('updatePageStatus', conf), [true, sz]);
1989
+ nv_showNavi(opts, itms.total, conf);
1990
+ nv_enableNavi(opts, itms.first, conf);
1991
+
1992
+ return sz;
1993
+ });
1994
+
1995
+
1996
+ // destroy event
1997
+ $cfs.bind(cf_e('destroy', conf), function (e, orgOrder) {
1998
+ e.stopPropagation();
1999
+ tmrs = sc_clearTimers(tmrs);
2000
+
2001
+ $cfs.data('_cfs_isCarousel', false);
2002
+ $cfs.trigger(cf_e('finish', conf));
2003
+ if (orgOrder) {
2004
+ $cfs.trigger(cf_e('jumpToStart', conf));
2005
+ }
2006
+ sz_restoreOrigCss($cfs.children());
2007
+ sz_restoreOrigCss($cfs);
2008
+ FN._unbind_events();
2009
+ FN._unbind_buttons();
2010
+ if (conf.wrapper == 'parent') {
2011
+ sz_restoreOrigCss($wrp);
2012
+ }
2013
+ else {
2014
+ $wrp.replaceWith($cfs);
2015
+ }
2016
+
2017
+ return true;
2018
+ });
2019
+
2020
+
2021
+ // debug event
2022
+ $cfs.bind(cf_e('debug', conf), function (e) {
2023
+ debug(conf, 'Carousel width: ' + opts.width);
2024
+ debug(conf, 'Carousel height: ' + opts.height);
2025
+ debug(conf, 'Item widths: ' + opts.items.width);
2026
+ debug(conf, 'Item heights: ' + opts.items.height);
2027
+ debug(conf, 'Number of items visible: ' + opts.items.visible);
2028
+ if (opts.auto.play) {
2029
+ debug(conf, 'Number of items scrolled automatically: ' + opts.auto.items);
2030
+ }
2031
+ if (opts.prev.button) {
2032
+ debug(conf, 'Number of items scrolled backward: ' + opts.prev.items);
2033
+ }
2034
+ if (opts.next.button) {
2035
+ debug(conf, 'Number of items scrolled forward: ' + opts.next.items);
2036
+ }
2037
+ return conf.debug;
2038
+ });
2039
+
2040
+
2041
+ // triggerEvent, making prefixed and namespaced events accessible from outside
2042
+ $cfs.bind('_cfs_triggerEvent', function (e, n, o) {
2043
+ e.stopPropagation();
2044
+ return $cfs.triggerHandler(cf_e(n, conf), o);
2045
+ });
2046
+ }; // /bind_events
2047
+
2048
+
2049
+ FN._unbind_events = function () {
2050
+ $cfs.unbind(cf_e('', conf));
2051
+ $cfs.unbind(cf_e('', conf, false));
2052
+ $cfs.unbind('_cfs_triggerEvent');
2053
+ }; // /unbind_events
2054
+
2055
+
2056
+ FN._bind_buttons = function () {
2057
+ FN._unbind_buttons();
2058
+ nv_showNavi(opts, itms.total, conf);
2059
+ nv_enableNavi(opts, itms.first, conf);
2060
+
2061
+ if (opts.auto.pauseOnHover) {
2062
+ var pC = bt_pauseOnHoverConfig(opts.auto.pauseOnHover);
2063
+ $wrp.bind(cf_e('mouseenter', conf, false), function () {
2064
+ $cfs.trigger(cf_e('pause', conf), pC);
2065
+ })
2066
+ .bind(cf_e('mouseleave', conf, false), function () {
2067
+ $cfs.trigger(cf_e('resume', conf));
2068
+ });
2069
+ }
2070
+
2071
+ // play button
2072
+ if (opts.auto.button) {
2073
+ opts.auto.button.bind(cf_e(opts.auto.event, conf, false), function (e) {
2074
+ e.preventDefault();
2075
+ var ev = false,
2076
+ pC = null;
2077
+
2078
+ if (crsl.isPaused) {
2079
+ ev = 'play';
2080
+ }
2081
+ else if (opts.auto.pauseOnEvent) {
2082
+ ev = 'pause';
2083
+ pC = bt_pauseOnHoverConfig(opts.auto.pauseOnEvent);
2084
+ }
2085
+ if (ev) {
2086
+ $cfs.trigger(cf_e(ev, conf), pC);
2087
+ }
2088
+ });
2089
+ }
2090
+
2091
+ // prev button
2092
+ if (opts.prev.button) {
2093
+ opts.prev.button.bind(cf_e(opts.prev.event, conf, false), function (e) {
2094
+ e.preventDefault();
2095
+ $cfs.trigger(cf_e('prev', conf));
2096
+ });
2097
+ if (opts.prev.pauseOnHover) {
2098
+ var pC = bt_pauseOnHoverConfig(opts.prev.pauseOnHover);
2099
+ opts.prev.button.bind(cf_e('mouseenter', conf, false), function () {
2100
+ $cfs.trigger(cf_e('pause', conf), pC);
2101
+ })
2102
+ .bind(cf_e('mouseleave', conf, false), function () {
2103
+ $cfs.trigger(cf_e('resume', conf));
2104
+ });
2105
+ }
2106
+ }
2107
+
2108
+ // next butotn
2109
+ if (opts.next.button) {
2110
+ opts.next.button.bind(cf_e(opts.next.event, conf, false), function (e) {
2111
+ e.preventDefault();
2112
+ $cfs.trigger(cf_e('next', conf));
2113
+ });
2114
+ if (opts.next.pauseOnHover) {
2115
+ var pC = bt_pauseOnHoverConfig(opts.next.pauseOnHover);
2116
+ opts.next.button.bind(cf_e('mouseenter', conf, false), function () {
2117
+ $cfs.trigger(cf_e('pause', conf), pC);
2118
+ })
2119
+ .bind(cf_e('mouseleave', conf, false), function () {
2120
+ $cfs.trigger(cf_e('resume', conf));
2121
+ });
2122
+ }
2123
+ }
2124
+
2125
+ // pagination
2126
+ if (opts.pagination.container) {
2127
+ if (opts.pagination.pauseOnHover) {
2128
+ var pC = bt_pauseOnHoverConfig(opts.pagination.pauseOnHover);
2129
+ opts.pagination.container.bind(cf_e('mouseenter', conf, false), function () {
2130
+ $cfs.trigger(cf_e('pause', conf), pC);
2131
+ })
2132
+ .bind(cf_e('mouseleave', conf, false), function () {
2133
+ $cfs.trigger(cf_e('resume', conf));
2134
+ });
2135
+ }
2136
+ }
2137
+
2138
+ // prev/next keys
2139
+ if (opts.prev.key || opts.next.key) {
2140
+ $(document).bind(cf_e('keyup', conf, false, true, true), function (e) {
2141
+ var k = e.keyCode;
2142
+ if (k == opts.next.key) {
2143
+ e.preventDefault();
2144
+ $cfs.trigger(cf_e('next', conf));
2145
+ }
2146
+ if (k == opts.prev.key) {
2147
+ e.preventDefault();
2148
+ $cfs.trigger(cf_e('prev', conf));
2149
+ }
2150
+ });
2151
+ }
2152
+
2153
+ // pagination keys
2154
+ if (opts.pagination.keys) {
2155
+ $(document).bind(cf_e('keyup', conf, false, true, true), function (e) {
2156
+ var k = e.keyCode;
2157
+ if (k >= 49 && k < 58) {
2158
+ k = (k - 49) * opts.items.visible;
2159
+ if (k <= itms.total) {
2160
+ e.preventDefault();
2161
+ $cfs.trigger(cf_e('slideTo', conf), [k, 0, true, opts.pagination]);
2162
+ }
2163
+ }
2164
+ });
2165
+ }
2166
+
2167
+ // swipe
2168
+ if ($.fn.swipe) {
2169
+ var isTouch = 'ontouchstart' in window;
2170
+ if ((isTouch && opts.swipe.onTouch) || (!isTouch && opts.swipe.onMouse)) {
2171
+ var scP = $.extend(true, {}, opts.prev, opts.swipe),
2172
+ scN = $.extend(true, {}, opts.next, opts.swipe),
2173
+ swP = function () {
2174
+ $cfs.trigger(cf_e('prev', conf), [scP])
2175
+ },
2176
+ swN = function () {
2177
+ $cfs.trigger(cf_e('next', conf), [scN])
2178
+ };
2179
+
2180
+ switch (opts.direction) {
2181
+ case 'up':
2182
+ case 'down':
2183
+ opts.swipe.options.swipeUp = swN;
2184
+ opts.swipe.options.swipeDown = swP;
2185
+ break;
2186
+ default:
2187
+ opts.swipe.options.swipeLeft = swN;
2188
+ opts.swipe.options.swipeRight = swP;
2189
+ }
2190
+ if (crsl.swipe) {
2191
+ $cfs.swipe('destroy');
2192
+ }
2193
+ $wrp.swipe(opts.swipe.options);
2194
+ $wrp.css('cursor', 'move');
2195
+ crsl.swipe = true;
2196
+ }
2197
+ }
2198
+
2199
+ // mousewheel
2200
+ if ($.fn.mousewheel) {
2201
+
2202
+ if (opts.mousewheel) {
2203
+ var mcP = $.extend(true, {}, opts.prev, opts.mousewheel),
2204
+ mcN = $.extend(true, {}, opts.next, opts.mousewheel);
2205
+
2206
+ if (crsl.mousewheel) {
2207
+ $wrp.unbind(cf_e('mousewheel', conf, false));
2208
+ }
2209
+ $wrp.bind(cf_e('mousewheel', conf, false), function (e, delta) {
2210
+ e.preventDefault();
2211
+ if (delta > 0) {
2212
+ $cfs.trigger(cf_e('prev', conf), [mcP]);
2213
+ }
2214
+ else {
2215
+ $cfs.trigger(cf_e('next', conf), [mcN]);
2216
+ }
2217
+ });
2218
+ crsl.mousewheel = true;
2219
+ }
2220
+ }
2221
+
2222
+ if (opts.auto.play) {
2223
+ $cfs.trigger(cf_e('play', conf), opts.auto.delay);
2224
+ }
2225
+
2226
+ if (crsl.upDateOnWindowResize) {
2227
+ var resizeFn = function (e) {
2228
+ $cfs.trigger(cf_e('finish', conf));
2229
+ if (opts.auto.pauseOnResize && !crsl.isPaused) {
2230
+ $cfs.trigger(cf_e('play', conf));
2231
+ }
2232
+ sz_resetMargin($cfs.children(), opts);
2233
+ $cfs.trigger(cf_e('updateSizes', conf));
2234
+ };
2235
+
2236
+ var $w = $(window),
2237
+ onResize = null;
2238
+
2239
+ if ($.debounce && conf.onWindowResize == 'debounce') {
2240
+ onResize = $.debounce(200, resizeFn);
2241
+ }
2242
+ else if ($.throttle && conf.onWindowResize == 'throttle') {
2243
+ onResize = $.throttle(300, resizeFn);
2244
+ }
2245
+ else {
2246
+ var _windowWidth = 0,
2247
+ _windowHeight = 0;
2248
+
2249
+ onResize = function () {
2250
+ var nw = $w.width(),
2251
+ nh = $w.height();
2252
+
2253
+ if (nw != _windowWidth || nh != _windowHeight) {
2254
+ resizeFn();
2255
+ _windowWidth = nw;
2256
+ _windowHeight = nh;
2257
+ }
2258
+ };
2259
+ }
2260
+ $w.bind(cf_e('resize', conf, false, true, true), onResize);
2261
+ }
2262
+ }; // /bind_buttons
2263
+
2264
+
2265
+ FN._unbind_buttons = function () {
2266
+ var ns1 = cf_e('', conf),
2267
+ ns2 = cf_e('', conf, false);
2268
+ ns3 = cf_e('', conf, false, true, true);
2269
+
2270
+ $(document).unbind(ns3);
2271
+ $(window).unbind(ns3);
2272
+ $wrp.unbind(ns2);
2273
+
2274
+ if (opts.auto.button) {
2275
+ opts.auto.button.unbind(ns2);
2276
+ }
2277
+ if (opts.prev.button) {
2278
+ opts.prev.button.unbind(ns2);
2279
+ }
2280
+ if (opts.next.button) {
2281
+ opts.next.button.unbind(ns2);
2282
+ }
2283
+ if (opts.pagination.container) {
2284
+ opts.pagination.container.unbind(ns2);
2285
+ if (opts.pagination.anchorBuilder) {
2286
+ opts.pagination.container.children().remove();
2287
+ }
2288
+ }
2289
+ if (crsl.swipe) {
2290
+ $cfs.swipe('destroy');
2291
+ $wrp.css('cursor', 'default');
2292
+ crsl.swipe = false;
2293
+ }
2294
+ if (crsl.mousewheel) {
2295
+ crsl.mousewheel = false;
2296
+ }
2297
+
2298
+ nv_showNavi(opts, 'hide', conf);
2299
+ nv_enableNavi(opts, 'removeClass', conf);
2300
+
2301
+ }; // /unbind_buttons
2302
+
2303
+
2304
+ // START
2305
+
2306
+ if (is_boolean(configs)) {
2307
+ configs = {
2308
+ 'debug': configs
2309
+ };
2310
+ }
2311
+
2312
+ // set vars
2313
+ var crsl = {
2314
+ 'direction': 'next',
2315
+ 'isPaused': true,
2316
+ 'isScrolling': false,
2317
+ 'isStopped': false,
2318
+ 'mousewheel': false,
2319
+ 'swipe': false
2320
+ },
2321
+ itms = {
2322
+ 'total': $cfs.children().length,
2323
+ 'first': 0
2324
+ },
2325
+ tmrs = {
2326
+ 'auto': null,
2327
+ 'progress': null,
2328
+ 'startTime': getTime(),
2329
+ 'timePassed': 0
2330
+ },
2331
+ scrl = {
2332
+ 'isStopped': false,
2333
+ 'duration': 0,
2334
+ 'startTime': 0,
2335
+ 'easing': '',
2336
+ 'anims': []
2337
+ },
2338
+ clbk = {
2339
+ 'onBefore': [],
2340
+ 'onAfter': []
2341
+ },
2342
+ queu = [],
2343
+ conf = $.extend(true, {}, $.fn.carouFredSel.configs, configs),
2344
+ opts = {},
2345
+ opts_orig = $.extend(true, {}, options),
2346
+ $wrp = (conf.wrapper == 'parent')
2347
+ ? $cfs.parent()
2348
+ : $cfs.wrap('<' + conf.wrapper.element + ' class="' + conf.wrapper.classname + '" />').parent();
2349
+
2350
+
2351
+ conf.selector = $cfs.selector;
2352
+ conf.serialNumber = $.fn.carouFredSel.serialNumber++;
2353
+
2354
+ conf.transition = (conf.transition && $.fn.transition) ? 'transition' : 'animate';
2355
+
2356
+ // create carousel
2357
+ FN._init(opts_orig, true, starting_position);
2358
+ FN._build();
2359
+ FN._bind_events();
2360
+ FN._bind_buttons();
2361
+
2362
+ // find item to start
2363
+ if (is_array(opts.items.start)) {
2364
+ var start_arr = opts.items.start;
2365
+ }
2366
+ else {
2367
+ var start_arr = [];
2368
+ if (opts.items.start != 0) {
2369
+ start_arr.push(opts.items.start);
2370
+ }
2371
+ }
2372
+ if (opts.cookie) {
2373
+ start_arr.unshift(parseInt(cf_getCookie(opts.cookie), 10));
2374
+ }
2375
+
2376
+ if (start_arr.length > 0) {
2377
+ for (var a = 0, l = start_arr.length; a < l; a++) {
2378
+ var s = start_arr[a];
2379
+ if (s == 0) {
2380
+ continue;
2381
+ }
2382
+ if (s === true) {
2383
+ s = window.location.hash;
2384
+ if (s.length < 1) {
2385
+ continue;
2386
+ }
2387
+ }
2388
+ else if (s === 'random') {
2389
+ s = Math.floor(Math.random() * itms.total);
2390
+ }
2391
+ if ($cfs.triggerHandler(cf_e('slideTo', conf), [s, 0, true, {fx: 'none'}])) {
2392
+ break;
2393
+ }
2394
+ }
2395
+ }
2396
+ var siz = sz_setSizes($cfs, opts),
2397
+ itm = gi_getCurrentItems($cfs.children(), opts);
2398
+
2399
+ if (opts.onCreate) {
2400
+ opts.onCreate.call($tt0, {
2401
+ 'width': siz.width,
2402
+ 'height': siz.height,
2403
+ 'items': itm
2404
+ });
2405
+ }
2406
+
2407
+ $cfs.trigger(cf_e('updatePageStatus', conf), [true, siz]);
2408
+ $cfs.trigger(cf_e('linkAnchors', conf));
2409
+
2410
+ if (conf.debug) {
2411
+ $cfs.trigger(cf_e('debug', conf));
2412
+ }
2413
+
2414
+ return $cfs;
2415
+ };
2416
+
2417
+
2418
+ // GLOBAL PUBLIC
2419
+
2420
+ $.fn.carouFredSel.serialNumber = 1;
2421
+ $.fn.carouFredSel.defaults = {
2422
+ 'synchronise': false,
2423
+ 'infinite': true,
2424
+ 'circular': true,
2425
+ 'responsive': true,
2426
+ 'direction': 'left',
2427
+ 'items': {
2428
+ 'start': 0
2429
+ },
2430
+ 'scroll': {
2431
+ 'easing': 'swing',
2432
+ 'duration': 500,
2433
+ 'pauseOnHover': false,
2434
+ 'event': 'click',
2435
+ 'queue': false
2436
+ }
2437
+ };
2438
+ $.fn.carouFredSel.configs = {
2439
+ 'padding': '5px',
2440
+
2441
+ 'debug': false,
2442
+ 'transition': false,
2443
+ 'onWindowResize': 'throttle',
2444
+ 'events': {
2445
+ 'prefix': '',
2446
+ 'namespace': 'cfs'
2447
+ },
2448
+ 'wrapper': {
2449
+ 'element': 'div',
2450
+ 'classname': 'caroufredsel_wrapper'
2451
+ },
2452
+ 'classnames': {}
2453
+ };
2454
+ $.fn.carouFredSel.pageAnchorBuilder = function (nr) {
2455
+ return '<a href="#"><span>' + nr + '</span></a>';
2456
+ };
2457
+ $.fn.carouFredSel.progressbarUpdater = function (perc) {
2458
+ $(this).css('width', perc + '%');
2459
+ };
2460
+
2461
+ $.fn.carouFredSel.cookie = {
2462
+ get: function (n) {
2463
+ n += '=';
2464
+ var ca = document.cookie.split(';');
2465
+ for (var a = 0, l = ca.length; a < l; a++) {
2466
+ var c = ca[a];
2467
+ while (c.charAt(0) == ' ') {
2468
+ c = c.slice(1);
2469
+ }
2470
+ if (c.indexOf(n) == 0) {
2471
+ return c.slice(n.length);
2472
+ }
2473
+ }
2474
+ return 0;
2475
+ },
2476
+ set: function (n, v, d) {
2477
+ var e = "";
2478
+ if (d) {
2479
+ var date = new Date();
2480
+ date.setTime(date.getTime() + (d * 24 * 60 * 60 * 1000));
2481
+ e = "; expires=" + date.toGMTString();
2482
+ }
2483
+ document.cookie = n + '=' + v + e + '; path=/';
2484
+ },
2485
+ remove: function (n) {
2486
+ $.fn.carouFredSel.cookie.set(n, "", -1);
2487
+ }
2488
+ };
2489
+
2490
+
2491
+ // GLOBAL PRIVATE
2492
+
2493
+ // scrolling functions
2494
+ function sc_setScroll(d, e, c) {
2495
+ if (c.transition == 'transition') {
2496
+ if (e == 'swing') {
2497
+ e = 'ease';
2498
+ }
2499
+ }
2500
+ return {
2501
+ anims: [],
2502
+ duration: d,
2503
+ orgDuration: d,
2504
+ easing: e,
2505
+ startTime: getTime()
2506
+ };
2507
+ }
2508
+
2509
+ function sc_startScroll(s, c) {
2510
+ for (var a = 0, l = s.anims.length; a < l; a++) {
2511
+ var b = s.anims[a];
2512
+ if (!b) {
2513
+ continue;
2514
+ }
2515
+ b[0][c.transition](b[1], s.duration, s.easing, b[2]);
2516
+ }
2517
+ }
2518
+
2519
+ function sc_stopScroll(s, finish) {
2520
+ if (!is_boolean(finish)) {
2521
+ finish = true;
2522
+ }
2523
+ if (is_object(s.pre)) {
2524
+ sc_stopScroll(s.pre, finish);
2525
+ }
2526
+ for (var a = 0, l = s.anims.length; a < l; a++) {
2527
+ var b = s.anims[a];
2528
+ b[0].stop(true);
2529
+ if (finish) {
2530
+ b[0].css(b[1]);
2531
+ if (is_function(b[2])) {
2532
+ b[2]();
2533
+ }
2534
+ }
2535
+ }
2536
+ if (is_object(s.post)) {
2537
+ sc_stopScroll(s.post, finish);
2538
+ }
2539
+ }
2540
+
2541
+ function sc_afterScroll($c, $c2, o) {
2542
+ if ($c2) {
2543
+ $c2.remove();
2544
+ }
2545
+
2546
+ switch (o.fx) {
2547
+ case 'fade':
2548
+ case 'crossfade':
2549
+ case 'cover-fade':
2550
+ case 'uncover-fade':
2551
+ $c.css('opacity', 1);
2552
+ $c.css('filter', '');
2553
+ break;
2554
+ }
2555
+ }
2556
+
2557
+ function sc_fireCallbacks($t, o, b, a, c) {
2558
+ if (o[b]) {
2559
+ o[b].call($t, a);
2560
+ }
2561
+ if (c[b].length) {
2562
+ for (var i = 0, l = c[b].length; i < l; i++) {
2563
+ c[b][i].call($t, a);
2564
+ }
2565
+ }
2566
+ return [];
2567
+ }
2568
+
2569
+ function sc_fireQueue($c, q, c) {
2570
+
2571
+ if (q.length) {
2572
+ $c.trigger(cf_e(q[0][0], c), q[0][1]);
2573
+ q.shift();
2574
+ }
2575
+ return q;
2576
+ }
2577
+
2578
+ function sc_hideHiddenItems(hiddenitems) {
2579
+ hiddenitems.each(function () {
2580
+ var hi = $(this);
2581
+ hi.data('_cfs_isHidden', hi.is(':hidden')).hide();
2582
+ });
2583
+ }
2584
+
2585
+ function sc_showHiddenItems(hiddenitems) {
2586
+ if (hiddenitems) {
2587
+ hiddenitems.each(function () {
2588
+ var hi = $(this);
2589
+ if (!hi.data('_cfs_isHidden')) {
2590
+ hi.show();
2591
+ }
2592
+ });
2593
+ }
2594
+ }
2595
+
2596
+ function sc_clearTimers(t) {
2597
+ if (t.auto) {
2598
+ clearTimeout(t.auto);
2599
+ }
2600
+ if (t.progress) {
2601
+ clearInterval(t.progress);
2602
+ }
2603
+ return t;
2604
+ }
2605
+
2606
+ function sc_mapCallbackArguments(i_old, i_skp, i_new, s_itm, s_dir, s_dur, w_siz) {
2607
+ return {
2608
+ 'width': w_siz.width,
2609
+ 'height': w_siz.height,
2610
+ 'items': {
2611
+ 'old': i_old,
2612
+ 'skipped': i_skp,
2613
+ 'visible': i_new
2614
+ },
2615
+ 'scroll': {
2616
+ 'items': s_itm,
2617
+ 'direction': s_dir,
2618
+ 'duration': s_dur
2619
+ }
2620
+ };
2621
+ }
2622
+
2623
+ function sc_getDuration(sO, o, nI, siz) {
2624
+ var dur = sO.duration;
2625
+ if (sO.fx == 'none') {
2626
+ return 0;
2627
+ }
2628
+ if (dur == 'auto') {
2629
+ dur = o.scroll.duration / o.scroll.items * nI;
2630
+ }
2631
+ else if (dur < 10) {
2632
+ dur = siz / dur;
2633
+ }
2634
+ if (dur < 1) {
2635
+ return 0;
2636
+ }
2637
+ if (sO.fx == 'fade') {
2638
+ dur = dur / 2;
2639
+ }
2640
+ return Math.round(dur);
2641
+ }
2642
+
2643
+ // navigation functions
2644
+ function nv_showNavi(o, t, c) {
2645
+ var minimum = (is_number(o.items.minimum)) ? o.items.minimum : o.items.visible + 1;
2646
+ if (t == 'show' || t == 'hide') {
2647
+ var f = t;
2648
+ }
2649
+ else if (minimum > t) {
2650
+ debug(c, 'Not enough items (' + t + ' total, ' + minimum + ' needed): Hiding navigation.');
2651
+ var f = 'hide';
2652
+ }
2653
+ else {
2654
+ var f = 'show';
2655
+ }
2656
+ var s = (f == 'show') ? 'removeClass' : 'addClass',
2657
+ h = cf_c('hidden', c);
2658
+
2659
+ if (o.auto.button) {
2660
+ o.auto.button[f]()[s](h);
2661
+ }
2662
+ if (o.prev.button) {
2663
+ o.prev.button[f]()[s](h);
2664
+ }
2665
+ if (o.next.button) {
2666
+ o.next.button[f]()[s](h);
2667
+ }
2668
+ if (o.pagination.container) {
2669
+ o.pagination.container[f]()[s](h);
2670
+ }
2671
+ }
2672
+
2673
+ function nv_enableNavi(o, f, c) {
2674
+ if (o.circular || o.infinite) return;
2675
+ var fx = (f == 'removeClass' || f == 'addClass') ? f : false,
2676
+ di = cf_c('disabled', c);
2677
+
2678
+ if (o.auto.button && fx) {
2679
+ o.auto.button[fx](di);
2680
+ }
2681
+ if (o.prev.button) {
2682
+ var fn = fx || (f == 0) ? 'addClass' : 'removeClass';
2683
+ o.prev.button[fn](di);
2684
+ }
2685
+ if (o.next.button) {
2686
+ var fn = fx || (f == o.items.visible) ? 'addClass' : 'removeClass';
2687
+ o.next.button[fn](di);
2688
+ }
2689
+ }
2690
+
2691
+ // get object functions
2692
+ function go_getObject($tt, obj) {
2693
+ if (is_function(obj)) {
2694
+ obj = obj.call($tt);
2695
+ }
2696
+ else if (is_undefined(obj)) {
2697
+ obj = {};
2698
+ }
2699
+ return obj;
2700
+ }
2701
+
2702
+ function go_getItemsObject($tt, obj) {
2703
+ obj = go_getObject($tt, obj);
2704
+ if (is_number(obj)) {
2705
+ obj = {
2706
+ 'visible': obj
2707
+ };
2708
+ }
2709
+ else if (obj == 'variable') {
2710
+ obj = {
2711
+ 'visible': obj,
2712
+ 'width': obj,
2713
+ 'height': obj
2714
+ };
2715
+ }
2716
+ else if (!is_object(obj)) {
2717
+ obj = {};
2718
+ }
2719
+ return obj;
2720
+ }
2721
+
2722
+ function go_getScrollObject($tt, obj) {
2723
+ obj = go_getObject($tt, obj);
2724
+ if (is_number(obj)) {
2725
+ if (obj <= 50) {
2726
+ obj = {
2727
+ 'items': obj
2728
+ };
2729
+ }
2730
+ else {
2731
+ obj = {
2732
+ 'duration': obj
2733
+ };
2734
+ }
2735
+ }
2736
+ else if (is_string(obj)) {
2737
+ obj = {
2738
+ 'easing': obj
2739
+ };
2740
+ }
2741
+ else if (!is_object(obj)) {
2742
+ obj = {};
2743
+ }
2744
+ return obj;
2745
+ }
2746
+
2747
+ function go_getNaviObject($tt, obj) {
2748
+ obj = go_getObject($tt, obj);
2749
+ if (is_string(obj)) {
2750
+ var temp = cf_getKeyCode(obj);
2751
+ if (temp == -1) {
2752
+ obj = $(obj);
2753
+ }
2754
+ else {
2755
+ obj = temp;
2756
+ }
2757
+ }
2758
+ return obj;
2759
+ }
2760
+
2761
+ function go_getAutoObject($tt, obj) {
2762
+ obj = go_getNaviObject($tt, obj);
2763
+ if (is_jquery(obj)) {
2764
+ obj = {
2765
+ 'button': obj
2766
+ };
2767
+ }
2768
+ else if (is_boolean(obj)) {
2769
+ obj = {
2770
+ 'play': obj
2771
+ };
2772
+ }
2773
+ else if (is_number(obj)) {
2774
+ obj = {
2775
+ 'timeoutDuration': obj
2776
+ };
2777
+ }
2778
+ if (obj.progress) {
2779
+ if (is_string(obj.progress) || is_jquery(obj.progress)) {
2780
+ obj.progress = {
2781
+ 'bar': obj.progress
2782
+ };
2783
+ }
2784
+ }
2785
+ return obj;
2786
+ }
2787
+
2788
+ function go_complementAutoObject($tt, obj) {
2789
+ if (is_function(obj.button)) {
2790
+ obj.button = obj.button.call($tt);
2791
+ }
2792
+ if (is_string(obj.button)) {
2793
+ obj.button = $(obj.button);
2794
+ }
2795
+ if (!is_boolean(obj.play)) {
2796
+ obj.play = true;
2797
+ }
2798
+ if (!is_number(obj.delay)) {
2799
+ obj.delay = 0;
2800
+ }
2801
+ if (is_undefined(obj.pauseOnEvent)) {
2802
+ obj.pauseOnEvent = true;
2803
+ }
2804
+ if (!is_boolean(obj.pauseOnResize)) {
2805
+ obj.pauseOnResize = true;
2806
+ }
2807
+ if (!is_number(obj.timeoutDuration)) {
2808
+ obj.timeoutDuration = (obj.duration < 10)
2809
+ ? 2500
2810
+ : obj.duration * 5;
2811
+ }
2812
+ if (obj.progress) {
2813
+ if (is_function(obj.progress.bar)) {
2814
+ obj.progress.bar = obj.progress.bar.call($tt);
2815
+ }
2816
+ if (is_string(obj.progress.bar)) {
2817
+ obj.progress.bar = $(obj.progress.bar);
2818
+ }
2819
+ if (obj.progress.bar) {
2820
+ if (!is_function(obj.progress.updater)) {
2821
+ obj.progress.updater = $.fn.carouFredSel.progressbarUpdater;
2822
+ }
2823
+ if (!is_number(obj.progress.interval)) {
2824
+ obj.progress.interval = 50;
2825
+ }
2826
+ }
2827
+ else {
2828
+ obj.progress = false;
2829
+ }
2830
+ }
2831
+ return obj;
2832
+ }
2833
+
2834
+ function go_getPrevNextObject($tt, obj) {
2835
+ obj = go_getNaviObject($tt, obj);
2836
+ if (is_jquery(obj)) {
2837
+ obj = {
2838
+ 'button': obj
2839
+ };
2840
+ }
2841
+ else if (is_number(obj)) {
2842
+ obj = {
2843
+ 'key': obj
2844
+ };
2845
+ }
2846
+ return obj;
2847
+ }
2848
+
2849
+ function go_complementPrevNextObject($tt, obj) {
2850
+ if (is_function(obj.button)) {
2851
+ obj.button = obj.button.call($tt);
2852
+ }
2853
+ if (is_string(obj.button)) {
2854
+ obj.button = $(obj.button);
2855
+ }
2856
+ if (is_string(obj.key)) {
2857
+ obj.key = cf_getKeyCode(obj.key);
2858
+ }
2859
+ return obj;
2860
+ }
2861
+
2862
+ function go_getPaginationObject($tt, obj) {
2863
+ obj = go_getNaviObject($tt, obj);
2864
+ if (is_jquery(obj)) {
2865
+ obj = {
2866
+ 'container': obj
2867
+ };
2868
+ }
2869
+ else if (is_boolean(obj)) {
2870
+ obj = {
2871
+ 'keys': obj
2872
+ };
2873
+ }
2874
+ return obj;
2875
+ }
2876
+
2877
+ function go_complementPaginationObject($tt, obj) {
2878
+ if (is_function(obj.container)) {
2879
+ obj.container = obj.container.call($tt);
2880
+ }
2881
+ if (is_string(obj.container)) {
2882
+ obj.container = $(obj.container);
2883
+ }
2884
+ if (!is_number(obj.items)) {
2885
+ obj.items = false;
2886
+ }
2887
+ if (!is_boolean(obj.keys)) {
2888
+ obj.keys = false;
2889
+ }
2890
+ if (!is_function(obj.anchorBuilder) && !is_false(obj.anchorBuilder)) {
2891
+ obj.anchorBuilder = $.fn.carouFredSel.pageAnchorBuilder;
2892
+ }
2893
+ if (!is_number(obj.deviation)) {
2894
+ obj.deviation = 0;
2895
+ }
2896
+ return obj;
2897
+ }
2898
+
2899
+ function go_getSwipeObject($tt, obj) {
2900
+ if (is_function(obj)) {
2901
+ obj = obj.call($tt);
2902
+ }
2903
+ if (is_undefined(obj)) {
2904
+ obj = {
2905
+ 'onTouch': false
2906
+ };
2907
+ }
2908
+ if (is_true(obj)) {
2909
+ obj = {
2910
+ 'onTouch': obj
2911
+ };
2912
+ }
2913
+ else if (is_number(obj)) {
2914
+ obj = {
2915
+ 'items': obj
2916
+ };
2917
+ }
2918
+ return obj;
2919
+ }
2920
+
2921
+ function go_complementSwipeObject($tt, obj) {
2922
+ if (!is_boolean(obj.onTouch)) {
2923
+ obj.onTouch = true;
2924
+ }
2925
+ if (!is_boolean(obj.onMouse)) {
2926
+ obj.onMouse = false;
2927
+ }
2928
+ if (!is_object(obj.options)) {
2929
+ obj.options = {};
2930
+ }
2931
+ if (!is_boolean(obj.options.triggerOnTouchEnd)) {
2932
+ obj.options.triggerOnTouchEnd = false;
2933
+ }
2934
+ return obj;
2935
+ }
2936
+
2937
+ function go_getMousewheelObject($tt, obj) {
2938
+ if (is_function(obj)) {
2939
+ obj = obj.call($tt);
2940
+ }
2941
+ if (is_true(obj)) {
2942
+ obj = {};
2943
+ }
2944
+ else if (is_number(obj)) {
2945
+ obj = {
2946
+ 'items': obj
2947
+ };
2948
+ }
2949
+ else if (is_undefined(obj)) {
2950
+ obj = false;
2951
+ }
2952
+ return obj;
2953
+ }
2954
+
2955
+ function go_complementMousewheelObject($tt, obj) {
2956
+ return obj;
2957
+ }
2958
+
2959
+ // get number functions
2960
+ function gn_getItemIndex(num, dev, org, items, $cfs) {
2961
+ if (is_string(num)) {
2962
+ num = $(num, $cfs);
2963
+ }
2964
+
2965
+ if (is_object(num)) {
2966
+ num = $(num, $cfs);
2967
+ }
2968
+ if (is_jquery(num)) {
2969
+ num = $cfs.children().index(num);
2970
+ if (!is_boolean(org)) {
2971
+ org = false;
2972
+ }
2973
+ }
2974
+ else {
2975
+ if (!is_boolean(org)) {
2976
+ org = true;
2977
+ }
2978
+ }
2979
+ if (!is_number(num)) {
2980
+ num = 0;
2981
+ }
2982
+ if (!is_number(dev)) {
2983
+ dev = 0;
2984
+ }
2985
+
2986
+ if (org) {
2987
+ num += items.first;
2988
+ }
2989
+ num += dev;
2990
+ if (items.total > 0) {
2991
+ while (num >= items.total) {
2992
+ num -= items.total;
2993
+ }
2994
+ while (num < 0) {
2995
+ num += items.total;
2996
+ }
2997
+ }
2998
+ return num;
2999
+ }
3000
+
3001
+ // items prev
3002
+ function gn_getVisibleItemsPrev(i, o, s) {
3003
+ var t = 0,
3004
+ x = 0;
3005
+
3006
+ for (var a = s; a >= 0; a--) {
3007
+ var j = i.eq(a);
3008
+ t += (j.is(':visible')) ? j[o.d['outerWidth']](true) : 0;
3009
+ if (t > o.maxDimension) {
3010
+ return x;
3011
+ }
3012
+ if (a == 0) {
3013
+ a = i.length;
3014
+ }
3015
+ x++;
3016
+ }
3017
+ }
3018
+
3019
+ function gn_getVisibleItemsPrevFilter(i, o, s) {
3020
+ return gn_getItemsPrevFilter(i, o.items.filter, o.items.visibleConf.org, s);
3021
+ }
3022
+
3023
+ function gn_getScrollItemsPrevFilter(i, o, s, m) {
3024
+ return gn_getItemsPrevFilter(i, o.items.filter, m, s);
3025
+ }
3026
+
3027
+ function gn_getItemsPrevFilter(i, f, m, s) {
3028
+ var t = 0,
3029
+ x = 0;
3030
+
3031
+ for (var a = s, l = i.length; a >= 0; a--) {
3032
+ x++;
3033
+ if (x == l) {
3034
+ return x;
3035
+ }
3036
+
3037
+ var j = i.eq(a);
3038
+ if (j.is(f)) {
3039
+ t++;
3040
+ if (t == m) {
3041
+ return x;
3042
+ }
3043
+ }
3044
+ if (a == 0) {
3045
+ a = l;
3046
+ }
3047
+ }
3048
+ }
3049
+
3050
+ function gn_getVisibleOrg($c, o) {
3051
+ return o.items.visibleConf.org || $c.children().slice(0, o.items.visible).filter(o.items.filter).length;
3052
+ }
3053
+
3054
+ // items next
3055
+ function gn_getVisibleItemsNext(i, o, s) {
3056
+ var t = 0,
3057
+ x = 0;
3058
+
3059
+ for (var a = s, l = i.length - 1; a <= l; a++) {
3060
+ var j = i.eq(a);
3061
+
3062
+ t += (j.is(':visible')) ? j[o.d['outerWidth']](true) : 0;
3063
+ if (t > o.maxDimension) {
3064
+ return x;
3065
+ }
3066
+
3067
+ x++;
3068
+ if (x == l + 1) {
3069
+ return x;
3070
+ }
3071
+ if (a == l) {
3072
+ a = -1;
3073
+ }
3074
+ }
3075
+ }
3076
+
3077
+ function gn_getVisibleItemsNextTestCircular(i, o, s, l) {
3078
+ var v = gn_getVisibleItemsNext(i, o, s);
3079
+ if (!o.circular) {
3080
+ if (s + v > l) {
3081
+ v = l - s;
3082
+ }
3083
+ }
3084
+ return v;
3085
+ }
3086
+
3087
+ function gn_getVisibleItemsNextFilter(i, o, s) {
3088
+ return gn_getItemsNextFilter(i, o.items.filter, o.items.visibleConf.org, s, o.circular);
3089
+ }
3090
+
3091
+ function gn_getScrollItemsNextFilter(i, o, s, m) {
3092
+ return gn_getItemsNextFilter(i, o.items.filter, m + 1, s, o.circular) - 1;
3093
+ }
3094
+
3095
+ function gn_getItemsNextFilter(i, f, m, s, c) {
3096
+ var t = 0,
3097
+ x = 0;
3098
+
3099
+ for (var a = s, l = i.length - 1; a <= l; a++) {
3100
+ x++;
3101
+ if (x >= l) {
3102
+ return x;
3103
+ }
3104
+
3105
+ var j = i.eq(a);
3106
+ if (j.is(f)) {
3107
+ t++;
3108
+ if (t == m) {
3109
+ return x;
3110
+ }
3111
+ }
3112
+ if (a == l) {
3113
+ a = -1;
3114
+ }
3115
+ }
3116
+ }
3117
+
3118
+ // get items functions
3119
+ function gi_getCurrentItems(i, o) {
3120
+ return i.slice(0, o.items.visible);
3121
+ }
3122
+
3123
+ function gi_getOldItemsPrev(i, o, n) {
3124
+ return i.slice(n, o.items.visibleConf.old + n);
3125
+ }
3126
+
3127
+ function gi_getNewItemsPrev(i, o) {
3128
+ return i.slice(0, o.items.visible);
3129
+ }
3130
+
3131
+ function gi_getOldItemsNext(i, o) {
3132
+ return i.slice(0, o.items.visibleConf.old);
3133
+ }
3134
+
3135
+ function gi_getNewItemsNext(i, o, n) {
3136
+ return i.slice(n, o.items.visible + n);
3137
+ }
3138
+
3139
+ // sizes functions
3140
+ function sz_storeMargin(i, o, d) {
3141
+ if (o.usePadding) {
3142
+ if (!is_string(d)) {
3143
+ d = '_cfs_origCssMargin';
3144
+ }
3145
+ i.each(function () {
3146
+ var j = $(this),
3147
+ m = parseInt(j.css(o.d['marginRight']), 10);
3148
+ if (!is_number(m)) {
3149
+ m = 0;
3150
+ }
3151
+ j.data(d, m);
3152
+ });
3153
+ }
3154
+ }
3155
+
3156
+ function sz_resetMargin(i, o, m) {
3157
+ if (o.usePadding) {
3158
+ var x = (is_boolean(m)) ? m : false;
3159
+ if (!is_number(m)) {
3160
+ m = 0;
3161
+ }
3162
+ sz_storeMargin(i, o, '_cfs_tempCssMargin');
3163
+ i.each(function () {
3164
+ var j = $(this);
3165
+ j.css(o.d['marginRight'], ((x) ? j.data('_cfs_tempCssMargin') : m + j.data('_cfs_origCssMargin')));
3166
+ });
3167
+ }
3168
+ }
3169
+
3170
+ function sz_storeOrigCss(i) {
3171
+ i.each(function () {
3172
+ var j = $(this);
3173
+ j.data('_cfs_origCss', j.attr('style') || '');
3174
+ });
3175
+ }
3176
+
3177
+ function sz_restoreOrigCss(i) {
3178
+ i.each(function () {
3179
+ var j = $(this);
3180
+ j.attr('style', j.data('_cfs_origCss') || '');
3181
+ });
3182
+ }
3183
+
3184
+ function sz_setResponsiveSizes(o, all) {
3185
+ var visb = o.items.visible,
3186
+ newS = o.items[o.d['width']],
3187
+ seco = o[o.d['height']],
3188
+ secp = is_percentage(seco);
3189
+
3190
+ all.each(function () {
3191
+ var $t = $(this),
3192
+ nw = newS - ms_getPaddingBorderMargin($t, o, 'Width');
3193
+
3194
+ $t[o.d['width']](nw);
3195
+ if (secp) {
3196
+ $t[o.d['height']](ms_getPercentage(nw, seco));
3197
+ }
3198
+ });
3199
+ }
3200
+
3201
+ function sz_setSizes($c, o) {
3202
+ var $w = $c.parent(),
3203
+ $i = $c.children(),
3204
+ $v = gi_getCurrentItems($i, o),
3205
+ sz = cf_mapWrapperSizes(ms_getSizes($v, o, true), o, false);
3206
+
3207
+ $w.css(sz);
3208
+
3209
+ if (o.usePadding) {
3210
+ var p = o.padding,
3211
+ r = p[o.d[1]];
3212
+
3213
+ if (o.align && r < 0) {
3214
+ r = 0;
3215
+ }
3216
+ var $l = $v.last();
3217
+ $l.css(o.d['marginRight'], $l.data('_cfs_origCssMargin') + r);
3218
+ $c.css(o.d['top'], p[o.d[0]]);
3219
+ $c.css(o.d['left'], p[o.d[3]]);
3220
+ }
3221
+
3222
+ $c.css(o.d['width'], sz[o.d['width']] + (ms_getTotalSize($i, o, 'width') * 2));
3223
+ $c.css(o.d['height'], ms_getLargestSize($i, o, 'height'));
3224
+ return sz;
3225
+ }
3226
+
3227
+ // measuring functions
3228
+ function ms_getSizes(i, o, wrapper) {
3229
+ return [ms_getTotalSize(i, o, 'width', wrapper), ms_getLargestSize(i, o, 'height', wrapper)];
3230
+ }
3231
+
3232
+ function ms_getLargestSize(i, o, dim, wrapper) {
3233
+ if (!is_boolean(wrapper)) {
3234
+ wrapper = false;
3235
+ }
3236
+ if (is_number(o[o.d[dim]]) && wrapper) {
3237
+ return o[o.d[dim]];
3238
+ }
3239
+ if (is_number(o.items[o.d[dim]])) {
3240
+ return o.items[o.d[dim]];
3241
+ }
3242
+ dim = (dim.toLowerCase().indexOf('width') > -1) ? 'outerWidth' : 'outerHeight';
3243
+ return ms_getTrueLargestSize(i, o, dim);
3244
+ }
3245
+
3246
+ function ms_getTrueLargestSize(i, o, dim) {
3247
+ var s = 0;
3248
+
3249
+ for (var a = 0, l = i.length; a < l; a++) {
3250
+ var j = i.eq(a);
3251
+
3252
+ var m = (j.is(':visible')) ? j[o.d[dim]](true) : 0;
3253
+ if (s < m) {
3254
+ s = m;
3255
+ }
3256
+ }
3257
+ return s;
3258
+ }
3259
+
3260
+ function ms_getTotalSize(i, o, dim, wrapper) {
3261
+ if (!is_boolean(wrapper)) {
3262
+ wrapper = false;
3263
+ }
3264
+ if (is_number(o[o.d[dim]]) && wrapper) {
3265
+ return o[o.d[dim]];
3266
+ }
3267
+ if (is_number(o.items[o.d[dim]])) {
3268
+ return o.items[o.d[dim]] * i.length;
3269
+ }
3270
+
3271
+ var d = (dim.toLowerCase().indexOf('width') > -1) ? 'outerWidth' : 'outerHeight',
3272
+ s = 0;
3273
+
3274
+ for (var a = 0, l = i.length; a < l; a++) {
3275
+ var j = i.eq(a);
3276
+ s += (j.is(':visible')) ? j[o.d[d]](true) : 0;
3277
+ }
3278
+ return s;
3279
+ }
3280
+
3281
+ function ms_getParentSize($w, o, d) {
3282
+ var isVisible = $w.is(':visible');
3283
+ if (isVisible) {
3284
+ $w.hide();
3285
+ }
3286
+ var s = $w.parent()[o.d[d]]();
3287
+ if (isVisible) {
3288
+ $w.show();
3289
+ }
3290
+ return s;
3291
+ }
3292
+
3293
+ function ms_getMaxDimension(o, a) {
3294
+ return (is_number(o[o.d['width']])) ? o[o.d['width']] : a;
3295
+ }
3296
+
3297
+ function ms_hasVariableSizes(i, o, dim) {
3298
+ var s = false,
3299
+ v = false;
3300
+
3301
+ for (var a = 0, l = i.length; a < l; a++) {
3302
+ var j = i.eq(a);
3303
+
3304
+ var c = (j.is(':visible')) ? j[o.d[dim]](true) : 0;
3305
+ if (s === false) {
3306
+ s = c;
3307
+ }
3308
+ else if (s != c) {
3309
+ v = true;
3310
+ }
3311
+ if (s == 0) {
3312
+ v = true;
3313
+ }
3314
+ }
3315
+ return v;
3316
+ }
3317
+
3318
+ function ms_getPaddingBorderMargin(i, o, d) {
3319
+ return i[o.d['outer' + d]](true) - i[o.d[d.toLowerCase()]]();
3320
+ }
3321
+
3322
+ function ms_getPercentage(s, o) {
3323
+ if (is_percentage(o)) {
3324
+ o = parseInt(o.slice(0, -1), 10);
3325
+ if (!is_number(o)) {
3326
+ return s;
3327
+ }
3328
+ s *= o / 100;
3329
+ }
3330
+ return s;
3331
+ }
3332
+
3333
+ // config functions
3334
+ function cf_e(n, c, pf, ns, rd) {
3335
+ if (!is_boolean(pf)) {
3336
+ pf = true;
3337
+ }
3338
+ if (!is_boolean(ns)) {
3339
+ ns = true;
3340
+ }
3341
+ if (!is_boolean(rd)) {
3342
+ rd = false;
3343
+ }
3344
+
3345
+ if (pf) {
3346
+ n = c.events.prefix + n;
3347
+ }
3348
+ if (ns) {
3349
+ n = n + '.' + c.events.namespace;
3350
+ }
3351
+ if (ns && rd) {
3352
+ n += c.serialNumber;
3353
+ }
3354
+
3355
+ return n;
3356
+ }
3357
+
3358
+ function cf_c(n, c) {
3359
+ return (is_string(c.classnames[n])) ? c.classnames[n] : n;
3360
+ }
3361
+
3362
+ function cf_mapWrapperSizes(ws, o, p) {
3363
+
3364
+ if (!is_boolean(p)) {
3365
+ p = true;
3366
+ }
3367
+ var pad = (o.usePadding && p) ? o.padding : [0, 0, 0, 0];
3368
+ var wra = {};
3369
+
3370
+ wra[o.d['width']] = ws[0] + pad[1] + pad[3];
3371
+ wra[o.d['height']] = ws[1] + pad[0] + pad[2];
3372
+
3373
+ return wra;
3374
+ }
3375
+
3376
+ function cf_sortParams(vals, typs) {
3377
+ var arr = [];
3378
+ for (var a = 0, l1 = vals.length; a < l1; a++) {
3379
+ for (var b = 0, l2 = typs.length; b < l2; b++) {
3380
+ if (typs[b].indexOf(typeof vals[a]) > -1 && is_undefined(arr[b])) {
3381
+ arr[b] = vals[a];
3382
+ break;
3383
+ }
3384
+ }
3385
+ }
3386
+ return arr;
3387
+ }
3388
+
3389
+ function cf_getPadding(p) {
3390
+ if (is_undefined(p)) {
3391
+ return [0, 0, 0, 0];
3392
+ }
3393
+ if (is_number(p)) {
3394
+ return [p, p, p, p];
3395
+ }
3396
+ if (is_string(p)) {
3397
+ p = p.split('px').join('').split('em').join('').split(' ');
3398
+ }
3399
+
3400
+ if (!is_array(p)) {
3401
+ return [0, 0, 0, 0];
3402
+ }
3403
+ for (var i = 0; i < 4; i++) {
3404
+ p[i] = parseInt(p[i], 10);
3405
+ }
3406
+ switch (p.length) {
3407
+ case 0:
3408
+ return [0, 0, 0, 0];
3409
+ case 1:
3410
+ return [p[0], p[0], p[0], p[0]];
3411
+ case 2:
3412
+ return [p[0], p[1], p[0], p[1]];
3413
+ case 3:
3414
+ return [p[0], p[1], p[2], p[1]];
3415
+ default:
3416
+ return [p[0], p[1], p[2], p[3]];
3417
+ }
3418
+ }
3419
+
3420
+ function cf_getAlignPadding(itm, o) {
3421
+ var x = (is_number(o[o.d['width']])) ? Math.ceil(o[o.d['width']] - ms_getTotalSize(itm, o, 'width')) : 0;
3422
+ switch (o.align) {
3423
+ case 'left':
3424
+ return [0, x];
3425
+ case 'right':
3426
+ return [x, 0];
3427
+ case 'center':
3428
+ default:
3429
+ return [Math.ceil(x / 2), Math.floor(x / 2)];
3430
+ }
3431
+ }
3432
+
3433
+ function cf_getDimensions(o) {
3434
+ var dm = [
3435
+ ['width', 'innerWidth', 'outerWidth', 'height', 'innerHeight', 'outerHeight', 'left', 'top', 'marginRight', 0, 1, 2, 3],
3436
+ ['height', 'innerHeight', 'outerHeight', 'width', 'innerWidth', 'outerWidth', 'top', 'left', 'marginBottom', 3, 2, 1, 0]
3437
+ ];
3438
+
3439
+ var dl = dm[0].length,
3440
+ dx = (o.direction == 'right' || o.direction == 'left') ? 0 : 1;
3441
+
3442
+ var dimensions = {};
3443
+ for (var d = 0; d < dl; d++) {
3444
+ dimensions[dm[0][d]] = dm[dx][d];
3445
+ }
3446
+ return dimensions;
3447
+ }
3448
+
3449
+ function cf_getAdjust(x, o, a, $t) {
3450
+ var v = x;
3451
+ if (is_function(a)) {
3452
+ v = a.call($t, v);
3453
+
3454
+ }
3455
+ else if (is_string(a)) {
3456
+ var p = a.split('+'),
3457
+ m = a.split('-');
3458
+
3459
+ if (m.length > p.length) {
3460
+ var neg = true,
3461
+ sta = m[0],
3462
+ adj = m[1];
3463
+ }
3464
+ else {
3465
+ var neg = false,
3466
+ sta = p[0],
3467
+ adj = p[1];
3468
+ }
3469
+
3470
+ switch (sta) {
3471
+ case 'even':
3472
+ v = (x % 2 == 1) ? x - 1 : x;
3473
+ break;
3474
+ case 'odd':
3475
+ v = (x % 2 == 0) ? x - 1 : x;
3476
+ break;
3477
+ default:
3478
+ v = x;
3479
+ break;
3480
+ }
3481
+ adj = parseInt(adj, 10);
3482
+ if (is_number(adj)) {
3483
+ if (neg) {
3484
+ adj = -adj;
3485
+ }
3486
+ v += adj;
3487
+ }
3488
+ }
3489
+ if (!is_number(v) || v < 1) {
3490
+ v = 1;
3491
+ }
3492
+ return v;
3493
+ }
3494
+
3495
+ function cf_getItemsAdjust(x, o, a, $t) {
3496
+ return cf_getItemAdjustMinMax(cf_getAdjust(x, o, a, $t), o.items.visibleConf);
3497
+ }
3498
+
3499
+ function cf_getItemAdjustMinMax(v, i) {
3500
+ if (is_number(i.min) && v < i.min) {
3501
+ v = i.min;
3502
+ }
3503
+ if (is_number(i.max) && v > i.max) {
3504
+ v = i.max;
3505
+ }
3506
+ if (v < 1) {
3507
+ v = 1;
3508
+ }
3509
+ return v;
3510
+ }
3511
+
3512
+ function cf_getSynchArr(s) {
3513
+ if (!is_array(s)) {
3514
+ s = [[s]];
3515
+ }
3516
+ if (!is_array(s[0])) {
3517
+ s = [s];
3518
+ }
3519
+ for (var j = 0, l = s.length; j < l; j++) {
3520
+ if (is_string(s[j][0])) {
3521
+ s[j][0] = $(s[j][0]);
3522
+ }
3523
+ if (!is_boolean(s[j][1])) {
3524
+ s[j][1] = true;
3525
+ }
3526
+ if (!is_boolean(s[j][2])) {
3527
+ s[j][2] = true;
3528
+ }
3529
+ if (!is_number(s[j][3])) {
3530
+ s[j][3] = 0;
3531
+ }
3532
+ }
3533
+ return s;
3534
+ }
3535
+
3536
+ function cf_getKeyCode(k) {
3537
+ if (k == 'right') {
3538
+ return 39;
3539
+ }
3540
+ if (k == 'left') {
3541
+ return 37;
3542
+ }
3543
+ if (k == 'up') {
3544
+ return 38;
3545
+ }
3546
+ if (k == 'down') {
3547
+ return 40;
3548
+ }
3549
+ return -1;
3550
+ }
3551
+
3552
+ function cf_setCookie(n, $c, c) {
3553
+ if (n) {
3554
+ var v = $c.triggerHandler(cf_e('currentPosition', c));
3555
+ $.fn.carouFredSel.cookie.set(n, v);
3556
+ }
3557
+ }
3558
+
3559
+ function cf_getCookie(n) {
3560
+ var c = $.fn.carouFredSel.cookie.get(n);
3561
+ return (c == '') ? 0 : c;
3562
+ }
3563
+
3564
+ // init function
3565
+ function in_mapCss($elem, props) {
3566
+ var css = {};
3567
+ for (var p = 0, l = props.length; p < l; p++) {
3568
+ css[props[p]] = $elem.css(props[p]);
3569
+ }
3570
+ return css;
3571
+ }
3572
+
3573
+ function in_complementItems(obj, opt, itm, sta) {
3574
+ if (!is_object(obj.visibleConf)) {
3575
+ obj.visibleConf = {};
3576
+ }
3577
+ if (!is_object(obj.sizesConf)) {
3578
+ obj.sizesConf = {};
3579
+ }
3580
+
3581
+ if (obj.start == 0 && is_number(sta)) {
3582
+ obj.start = sta;
3583
+ }
3584
+
3585
+ // visible items
3586
+ if (is_object(obj.visible)) {
3587
+ obj.visibleConf.min = obj.visible.min;
3588
+ obj.visibleConf.max = obj.visible.max;
3589
+ obj.visible = false;
3590
+ }
3591
+ else if (is_string(obj.visible)) {
3592
+ // variable visible items
3593
+ if (obj.visible == 'variable') {
3594
+ obj.visibleConf.variable = true;
3595
+ }
3596
+ // adjust string visible items
3597
+ else {
3598
+ obj.visibleConf.adjust = obj.visible;
3599
+ }
3600
+ obj.visible = false;
3601
+ }
3602
+ else if (is_function(obj.visible)) {
3603
+ obj.visibleConf.adjust = obj.visible;
3604
+ obj.visible = false;
3605
+ }
3606
+
3607
+ // set items filter
3608
+ if (!is_string(obj.filter)) {
3609
+ obj.filter = (itm.filter(':hidden').length > 0) ? ':visible' : '*';
3610
+ }
3611
+
3612
+ // primary item-size not set
3613
+ if (!obj[opt.d['width']]) {
3614
+ // responsive carousel -> set to largest
3615
+ if (opt.responsive) {
3616
+ debug(true, 'Set a ' + opt.d['width'] + ' for the items!');
3617
+ obj[opt.d['width']] = ms_getTrueLargestSize(itm, opt, 'outerWidth');
3618
+ }
3619
+ // non-responsive -> measure it or set to "variable"
3620
+ else {
3621
+ obj[opt.d['width']] = (ms_hasVariableSizes(itm, opt, 'outerWidth'))
3622
+ ? 'variable'
3623
+ : itm[opt.d['outerWidth']](true);
3624
+ }
3625
+ }
3626
+
3627
+ // secondary item-size not set -> measure it or set to "variable"
3628
+ if (!obj[opt.d['height']]) {
3629
+ obj[opt.d['height']] = (ms_hasVariableSizes(itm, opt, 'outerHeight'))
3630
+ ? 'variable'
3631
+ : itm[opt.d['outerHeight']](true);
3632
+ }
3633
+
3634
+ obj.sizesConf.width = obj.width;
3635
+ obj.sizesConf.height = obj.height;
3636
+ return obj;
3637
+ }
3638
+
3639
+ function in_complementVisibleItems(opt, avl) {
3640
+ // primary item-size variable -> set visible items variable
3641
+ if (opt.items[opt.d['width']] == 'variable') {
3642
+ opt.items.visibleConf.variable = true;
3643
+ }
3644
+ if (!opt.items.visibleConf.variable) {
3645
+ // primary size is number -> calculate visible-items
3646
+ if (is_number(opt[opt.d['width']])) {
3647
+ opt.items.visible = Math.floor(opt[opt.d['width']] / opt.items[opt.d['width']]);
3648
+ }
3649
+ // measure and calculate primary size and visible-items
3650
+ else {
3651
+ opt.items.visible = Math.floor(avl / opt.items[opt.d['width']]);
3652
+ opt[opt.d['width']] = opt.items.visible * opt.items[opt.d['width']];
3653
+ if (!opt.items.visibleConf.adjust) {
3654
+ opt.align = false;
3655
+ }
3656
+ }
3657
+ if (opt.items.visible == 'Infinity' || opt.items.visible < 1) {
3658
+ debug(true, 'Not a valid number of visible items: Set to "variable".');
3659
+ opt.items.visibleConf.variable = true;
3660
+ }
3661
+ }
3662
+ return opt;
3663
+ }
3664
+
3665
+ function in_complementPrimarySize(obj, opt, all) {
3666
+ // primary size set to auto -> measure largest item-size and set it
3667
+ if (obj == 'auto') {
3668
+ obj = ms_getTrueLargestSize(all, opt, 'outerWidth');
3669
+ }
3670
+ return obj;
3671
+ }
3672
+
3673
+ function in_complementSecondarySize(obj, opt, all) {
3674
+ // secondary size set to auto -> measure largest item-size and set it
3675
+ if (obj == 'auto') {
3676
+ obj = ms_getTrueLargestSize(all, opt, 'outerHeight');
3677
+ }
3678
+ // secondary size not set -> set to secondary item-size
3679
+ if (!obj) {
3680
+ obj = opt.items[opt.d['height']];
3681
+ }
3682
+ return obj;
3683
+ }
3684
+
3685
+ function in_getAlignPadding(o, all) {
3686
+ var p = cf_getAlignPadding(gi_getCurrentItems(all, o), o);
3687
+ o.padding[o.d[1]] = p[1];
3688
+ o.padding[o.d[3]] = p[0];
3689
+ return o;
3690
+ }
3691
+
3692
+ function in_getResponsiveValues(o, all, avl) {
3693
+
3694
+ var visb = cf_getItemAdjustMinMax(Math.ceil(o[o.d['width']] / o.items[o.d['width']]), o.items.visibleConf);
3695
+ if (visb > all.length) {
3696
+ visb = all.length;
3697
+ }
3698
+
3699
+ var newS = Math.floor(o[o.d['width']] / visb);
3700
+
3701
+ o.items.visible = visb;
3702
+ o.items[o.d['width']] = newS;
3703
+ o[o.d['width']] = visb * newS;
3704
+ return o;
3705
+ }
3706
+
3707
+
3708
+ // buttons functions
3709
+ function bt_pauseOnHoverConfig(p) {
3710
+ if (is_string(p)) {
3711
+ var i = (p.indexOf('immediate') > -1) ? true : false,
3712
+ r = (p.indexOf('resume') > -1) ? true : false;
3713
+ }
3714
+ else {
3715
+ var i = r = false;
3716
+ }
3717
+ return [i, r];
3718
+ }
3719
+
3720
+ function bt_mousesheelNumber(mw) {
3721
+ return (is_number(mw)) ? mw : null
3722
+ }
3723
+
3724
+ // helper functions
3725
+ function is_null(a) {
3726
+ return (a === null);
3727
+ }
3728
+
3729
+ function is_undefined(a) {
3730
+ return (is_null(a) || typeof a == 'undefined' || a === '' || a === 'undefined');
3731
+ }
3732
+
3733
+ function is_array(a) {
3734
+ return (a instanceof Array);
3735
+ }
3736
+
3737
+ function is_jquery(a) {
3738
+ return (a instanceof jQuery);
3739
+ }
3740
+
3741
+ function is_object(a) {
3742
+ return ((a instanceof Object || typeof a == 'object') && !is_null(a) && !is_jquery(a) && !is_array(a) && !is_function(a));
3743
+ }
3744
+
3745
+ function is_number(a) {
3746
+ return ((a instanceof Number || typeof a == 'number') && !isNaN(a));
3747
+ }
3748
+
3749
+ function is_string(a) {
3750
+ return ((a instanceof String || typeof a == 'string') && !is_undefined(a) && !is_true(a) && !is_false(a));
3751
+ }
3752
+
3753
+ function is_function(a) {
3754
+ return (a instanceof Function || typeof a == 'function');
3755
+ }
3756
+
3757
+ function is_boolean(a) {
3758
+ return (a instanceof Boolean || typeof a == 'boolean' || is_true(a) || is_false(a));
3759
+ }
3760
+
3761
+ function is_true(a) {
3762
+ return (a === true || a === 'true');
3763
+ }
3764
+
3765
+ function is_false(a) {
3766
+ return (a === false || a === 'false');
3767
+ }
3768
+
3769
+ function is_percentage(x) {
3770
+ return (is_string(x) && x.slice(-1) == '%');
3771
+ }
3772
+
3773
+
3774
+ function getTime() {
3775
+ return new Date().getTime();
3776
+ }
3777
+
3778
+ function deprecated(o, n) {
3779
+ debug(true, o + ' is DEPRECATED, support for it will be removed. Use ' + n + ' instead.');
3780
+ }
3781
+
3782
+ function debug(d, m) {
3783
+ if (!is_undefined(window.console) && !is_undefined(window.console.log)) {
3784
+ if (is_object(d)) {
3785
+ var s = ' (' + d.selector + ')';
3786
+ d = d.debug;
3787
+ }
3788
+ else {
3789
+ var s = '';
3790
+ }
3791
+ if (!d) {
3792
+ return false;
3793
+ }
3794
+
3795
+ if (is_string(m)) {
3796
+ m = 'carouFredSel' + s + ': ' + m;
3797
+ }
3798
+ else {
3799
+ m = ['carouFredSel' + s + ':', m];
3800
+ }
3801
+ window.console.log(m);
3802
+ }
3803
+ return false;
3804
+ }
3805
+
3806
+
3807
+ // EASING FUNCTIONS
3808
+ $.extend($.easing, {
3809
+ 'quadratic': function (t) {
3810
+ var t2 = t * t;
3811
+ return t * (-t2 * t + 4 * t2 - 6 * t + 4);
3812
+ },
3813
+ 'cubic': function (t) {
3814
+ return t * (4 * t * t - 9 * t + 6);
3815
+ },
3816
+ 'elastic': function (t) {
3817
+ var t2 = t * t;
3818
+ return t * (33 * t2 * t2 - 106 * t2 * t + 126 * t2 - 67 * t + 15);
3819
+ }
3820
+ });
3821
+
3822
+
3823
  })(jQuery);
assets/js/jquery.carouFredSel.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function($){function sc_setScroll(t,e,s){return"transition"==s.transition&&"swing"==e&&(e="ease"),{anims:[],duration:t,orgDuration:t,easing:e,startTime:getTime()}}function sc_startScroll(t,e){for(var s=0,i=t.anims.length;i>s;s++){var o=t.anims[s];o&&o[0][e.transition](o[1],t.duration,t.easing,o[2])}}function sc_stopScroll(t,e){is_boolean(e)||(e=!0),is_object(t.pre)&&sc_stopScroll(t.pre,e);for(var s=0,i=t.anims.length;i>s;s++){var o=t.anims[s];o[0].stop(!0),e&&(o[0].css(o[1]),is_function(o[2])&&o[2]())}is_object(t.post)&&sc_stopScroll(t.post,e)}function sc_afterScroll(t,e,s){switch(e&&e.remove(),s.fx){case"fade":case"crossfade":case"cover-fade":case"uncover-fade":t.css("opacity",1),t.css("filter","")}}function sc_fireCallbacks(t,e,s,i,o){if(e[s]&&e[s].call(t,i),o[s].length)for(var n=0,r=o[s].length;r>n;n++)o[s][n].call(t,i);return[]}function sc_fireQueue(t,e,s){return e.length&&(t.trigger(cf_e(e[0][0],s),e[0][1]),e.shift()),e}function sc_hideHiddenItems(t){t.each(function(){var t=$(this);t.data("_cfs_isHidden",t.is(":hidden")).hide()})}function sc_showHiddenItems(t){t&&t.each(function(){var t=$(this);t.data("_cfs_isHidden")||t.show()})}function sc_clearTimers(t){return t.auto&&clearTimeout(t.auto),t.progress&&clearInterval(t.progress),t}function sc_mapCallbackArguments(t,e,s,i,o,n,r){return{width:r.width,height:r.height,items:{old:t,skipped:e,visible:s},scroll:{items:i,direction:o,duration:n}}}function sc_getDuration(t,e,s,i){var o=t.duration;return"none"==t.fx?0:("auto"==o?o=e.scroll.duration/e.scroll.items*s:10>o&&(o=i/o),1>o?0:("fade"==t.fx&&(o/=2),Math.round(o)))}function nv_showNavi(t,e,s){var i=is_number(t.items.minimum)?t.items.minimum:t.items.visible+1;if("show"==e||"hide"==e)var o=e;else if(i>e){debug(s,"Not enough items ("+e+" total, "+i+" needed): Hiding navigation.");var o="hide"}else var o="show";var n="show"==o?"removeClass":"addClass",r=cf_c("hidden",s);t.auto.button&&t.auto.button[o]()[n](r),t.prev.button&&t.prev.button[o]()[n](r),t.next.button&&t.next.button[o]()[n](r),t.pagination.container&&t.pagination.container[o]()[n](r)}function nv_enableNavi(t,e,s){if(!t.circular&&!t.infinite){var i="removeClass"==e||"addClass"==e?e:!1,o=cf_c("disabled",s);if(t.auto.button&&i&&t.auto.button[i](o),t.prev.button){var n=i||0==e?"addClass":"removeClass";t.prev.button[n](o)}if(t.next.button){var n=i||e==t.items.visible?"addClass":"removeClass";t.next.button[n](o)}}}function go_getObject(t,e){return is_function(e)?e=e.call(t):is_undefined(e)&&(e={}),e}function go_getItemsObject(t,e){return e=go_getObject(t,e),is_number(e)?e={visible:e}:"variable"==e?e={visible:e,width:e,height:e}:is_object(e)||(e={}),e}function go_getScrollObject(t,e){return e=go_getObject(t,e),is_number(e)?e=50>=e?{items:e}:{duration:e}:is_string(e)?e={easing:e}:is_object(e)||(e={}),e}function go_getNaviObject(t,e){if(e=go_getObject(t,e),is_string(e)){var s=cf_getKeyCode(e);e=-1==s?$(e):s}return e}function go_getAutoObject(t,e){return e=go_getNaviObject(t,e),is_jquery(e)?e={button:e}:is_boolean(e)?e={play:e}:is_number(e)&&(e={timeoutDuration:e}),e.progress&&(is_string(e.progress)||is_jquery(e.progress))&&(e.progress={bar:e.progress}),e}function go_complementAutoObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_boolean(e.play)||(e.play=!0),is_number(e.delay)||(e.delay=0),is_undefined(e.pauseOnEvent)&&(e.pauseOnEvent=!0),is_boolean(e.pauseOnResize)||(e.pauseOnResize=!0),is_number(e.timeoutDuration)||(e.timeoutDuration=e.duration<10?2500:5*e.duration),e.progress&&(is_function(e.progress.bar)&&(e.progress.bar=e.progress.bar.call(t)),is_string(e.progress.bar)&&(e.progress.bar=$(e.progress.bar)),e.progress.bar?(is_function(e.progress.updater)||(e.progress.updater=$.fn.carouFredSel.progressbarUpdater),is_number(e.progress.interval)||(e.progress.interval=50)):e.progress=!1),e}function go_getPrevNextObject(t,e){return e=go_getNaviObject(t,e),is_jquery(e)?e={button:e}:is_number(e)&&(e={key:e}),e}function go_complementPrevNextObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_string(e.key)&&(e.key=cf_getKeyCode(e.key)),e}function go_getPaginationObject(t,e){return e=go_getNaviObject(t,e),is_jquery(e)?e={container:e}:is_boolean(e)&&(e={keys:e}),e}function go_complementPaginationObject(t,e){return is_function(e.container)&&(e.container=e.container.call(t)),is_string(e.container)&&(e.container=$(e.container)),is_number(e.items)||(e.items=!1),is_boolean(e.keys)||(e.keys=!1),is_function(e.anchorBuilder)||is_false(e.anchorBuilder)||(e.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder),is_number(e.deviation)||(e.deviation=0),e}function go_getSwipeObject(t,e){return is_function(e)&&(e=e.call(t)),is_undefined(e)&&(e={onTouch:!1}),is_true(e)?e={onTouch:e}:is_number(e)&&(e={items:e}),e}function go_complementSwipeObject(t,e){return is_boolean(e.onTouch)||(e.onTouch=!0),is_boolean(e.onMouse)||(e.onMouse=!1),is_object(e.options)||(e.options={}),is_boolean(e.options.triggerOnTouchEnd)||(e.options.triggerOnTouchEnd=!1),e}function go_getMousewheelObject(t,e){return is_function(e)&&(e=e.call(t)),is_true(e)?e={}:is_number(e)?e={items:e}:is_undefined(e)&&(e=!1),e}function go_complementMousewheelObject(t,e){return e}function gn_getItemIndex(t,e,s,i,o){if(is_string(t)&&(t=$(t,o)),is_object(t)&&(t=$(t,o)),is_jquery(t)?(t=o.children().index(t),is_boolean(s)||(s=!1)):is_boolean(s)||(s=!0),is_number(t)||(t=0),is_number(e)||(e=0),s&&(t+=i.first),t+=e,i.total>0){for(;t>=i.total;)t-=i.total;for(;0>t;)t+=i.total}return t}function gn_getVisibleItemsPrev(t,e,s){for(var i=0,o=0,n=s;n>=0;n--){var r=t.eq(n);if(i+=r.is(":visible")?r[e.d.outerWidth](!0):0,i>e.maxDimension)return o;0==n&&(n=t.length),o++}}function gn_getVisibleItemsPrevFilter(t,e,s){return gn_getItemsPrevFilter(t,e.items.filter,e.items.visibleConf.org,s)}function gn_getScrollItemsPrevFilter(t,e,s,i){return gn_getItemsPrevFilter(t,e.items.filter,i,s)}function gn_getItemsPrevFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length;r>=0;r--){if(n++,n==c)return n;var a=t.eq(r);if(a.is(e)&&(o++,o==s))return n;0==r&&(r=c)}}function gn_getVisibleOrg(t,e){return e.items.visibleConf.org||t.children().slice(0,e.items.visible).filter(e.items.filter).length}function gn_getVisibleItemsNext(t,e,s){for(var i=0,o=0,n=s,r=t.length-1;r>=n;n++){var c=t.eq(n);if(i+=c.is(":visible")?c[e.d.outerWidth](!0):0,i>e.maxDimension)return o;if(o++,o==r+1)return o;n==r&&(n=-1)}}function gn_getVisibleItemsNextTestCircular(t,e,s,i){var o=gn_getVisibleItemsNext(t,e,s);return e.circular||s+o>i&&(o=i-s),o}function gn_getVisibleItemsNextFilter(t,e,s){return gn_getItemsNextFilter(t,e.items.filter,e.items.visibleConf.org,s,e.circular)}function gn_getScrollItemsNextFilter(t,e,s,i){return gn_getItemsNextFilter(t,e.items.filter,i+1,s,e.circular)-1}function gn_getItemsNextFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length-1;c>=r;r++){if(n++,n>=c)return n;var a=t.eq(r);if(a.is(e)&&(o++,o==s))return n;r==c&&(r=-1)}}function gi_getCurrentItems(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsPrev(t,e,s){return t.slice(s,e.items.visibleConf.old+s)}function gi_getNewItemsPrev(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsNext(t,e){return t.slice(0,e.items.visibleConf.old)}function gi_getNewItemsNext(t,e,s){return t.slice(s,e.items.visible+s)}function sz_storeMargin(t,e,s){e.usePadding&&(is_string(s)||(s="_cfs_origCssMargin"),t.each(function(){var t=$(this),i=parseInt(t.css(e.d.marginRight),10);is_number(i)||(i=0),t.data(s,i)}))}function sz_resetMargin(t,e,s){if(e.usePadding){var i=is_boolean(s)?s:!1;is_number(s)||(s=0),sz_storeMargin(t,e,"_cfs_tempCssMargin"),t.each(function(){var t=$(this);t.css(e.d.marginRight,i?t.data("_cfs_tempCssMargin"):s+t.data("_cfs_origCssMargin"))})}}function sz_storeOrigCss(t){t.each(function(){var t=$(this);t.data("_cfs_origCss",t.attr("style")||"")})}function sz_restoreOrigCss(t){t.each(function(){var t=$(this);t.attr("style",t.data("_cfs_origCss")||"")})}function sz_setResponsiveSizes(t,e){var s=(t.items.visible,t.items[t.d.width]),i=t[t.d.height],o=is_percentage(i);e.each(function(){var e=$(this),n=s-ms_getPaddingBorderMargin(e,t,"Width");e[t.d.width](n),o&&e[t.d.height](ms_getPercentage(n,i))})}function sz_setSizes(t,e){var s=t.parent(),i=t.children(),o=gi_getCurrentItems(i,e),n=cf_mapWrapperSizes(ms_getSizes(o,e,!0),e,!1);if(s.css(n),e.usePadding){var r=e.padding,c=r[e.d[1]];e.align&&0>c&&(c=0);var a=o.last();a.css(e.d.marginRight,a.data("_cfs_origCssMargin")+c),t.css(e.d.top,r[e.d[0]]),t.css(e.d.left,r[e.d[3]])}return t.css(e.d.width,n[e.d.width]+2*ms_getTotalSize(i,e,"width")),t.css(e.d.height,ms_getLargestSize(i,e,"height")),n}function ms_getSizes(t,e,s){return[ms_getTotalSize(t,e,"width",s),ms_getLargestSize(t,e,"height",s)]}function ms_getLargestSize(t,e,s,i){return is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i?e[e.d[s]]:is_number(e.items[e.d[s]])?e.items[e.d[s]]:(s=s.toLowerCase().indexOf("width")>-1?"outerWidth":"outerHeight",ms_getTrueLargestSize(t,e,s))}function ms_getTrueLargestSize(t,e,s){for(var i=0,o=0,n=t.length;n>o;o++){var r=t.eq(o),c=r.is(":visible")?r[e.d[s]](!0):0;c>i&&(i=c)}return i}function ms_getTotalSize(t,e,s,i){if(is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i)return e[e.d[s]];if(is_number(e.items[e.d[s]]))return e.items[e.d[s]]*t.length;for(var o=s.toLowerCase().indexOf("width")>-1?"outerWidth":"outerHeight",n=0,r=0,c=t.length;c>r;r++){var a=t.eq(r);n+=a.is(":visible")?a[e.d[o]](!0):0}return n}function ms_getParentSize(t,e,s){var i=t.is(":visible");i&&t.hide();var o=t.parent()[e.d[s]]();return i&&t.show(),o}function ms_getMaxDimension(t,e){return is_number(t[t.d.width])?t[t.d.width]:e}function ms_hasVariableSizes(t,e,s){for(var i=!1,o=!1,n=0,r=t.length;r>n;n++){var c=t.eq(n),a=c.is(":visible")?c[e.d[s]](!0):0;i===!1?i=a:i!=a&&(o=!0),0==i&&(o=!0)}return o}function ms_getPaddingBorderMargin(t,e,s){return t[e.d["outer"+s]](!0)-t[e.d[s.toLowerCase()]]()}function ms_getPercentage(t,e){if(is_percentage(e)){if(e=parseInt(e.slice(0,-1),10),!is_number(e))return t;t*=e/100}return t}function cf_e(t,e,s,i,o){return is_boolean(s)||(s=!0),is_boolean(i)||(i=!0),is_boolean(o)||(o=!1),s&&(t=e.events.prefix+t),i&&(t=t+"."+e.events.namespace),i&&o&&(t+=e.serialNumber),t}function cf_c(t,e){return is_string(e.classnames[t])?e.classnames[t]:t}function cf_mapWrapperSizes(t,e,s){is_boolean(s)||(s=!0);var i=e.usePadding&&s?e.padding:[0,0,0,0],o={};return o[e.d.width]=t[0]+i[1]+i[3],o[e.d.height]=t[1]+i[0]+i[2],o}function cf_sortParams(t,e){for(var s=[],i=0,o=t.length;o>i;i++)for(var n=0,r=e.length;r>n;n++)if(e[n].indexOf(typeof t[i])>-1&&is_undefined(s[n])){s[n]=t[i];break}return s}function cf_getPadding(t){if(is_undefined(t))return[0,0,0,0];if(is_number(t))return[t,t,t,t];if(is_string(t)&&(t=t.split("px").join("").split("em").join("").split(" ")),!is_array(t))return[0,0,0,0];for(var e=0;4>e;e++)t[e]=parseInt(t[e],10);switch(t.length){case 0:return[0,0,0,0];case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];default:return[t[0],t[1],t[2],t[3]]}}function cf_getAlignPadding(t,e){var s=is_number(e[e.d.width])?Math.ceil(e[e.d.width]-ms_getTotalSize(t,e,"width")):0;switch(e.align){case"left":return[0,s];case"right":return[s,0];case"center":default:return[Math.ceil(s/2),Math.floor(s/2)]}}function cf_getDimensions(t){for(var e=[["width","innerWidth","outerWidth","height","innerHeight","outerHeight","left","top","marginRight",0,1,2,3],["height","innerHeight","outerHeight","width","innerWidth","outerWidth","top","left","marginBottom",3,2,1,0]],s=e[0].length,i="right"==t.direction||"left"==t.direction?0:1,o={},n=0;s>n;n++)o[e[0][n]]=e[i][n];return o}function cf_getAdjust(t,e,s,i){var o=t;if(is_function(s))o=s.call(i,o);else if(is_string(s)){var n=s.split("+"),r=s.split("-");if(r.length>n.length)var c=!0,a=r[0],f=r[1];else var c=!1,a=n[0],f=n[1];switch(a){case"even":o=t%2==1?t-1:t;break;case"odd":o=t%2==0?t-1:t;break;default:o=t}f=parseInt(f,10),is_number(f)&&(c&&(f=-f),o+=f)}return(!is_number(o)||1>o)&&(o=1),o}function cf_getItemsAdjust(t,e,s,i){return cf_getItemAdjustMinMax(cf_getAdjust(t,e,s,i),e.items.visibleConf)}function cf_getItemAdjustMinMax(t,e){return is_number(e.min)&&t<e.min&&(t=e.min),is_number(e.max)&&t>e.max&&(t=e.max),1>t&&(t=1),t}function cf_getSynchArr(t){is_array(t)||(t=[[t]]),is_array(t[0])||(t=[t]);for(var e=0,s=t.length;s>e;e++)is_string(t[e][0])&&(t[e][0]=$(t[e][0])),is_boolean(t[e][1])||(t[e][1]=!0),is_boolean(t[e][2])||(t[e][2]=!0),is_number(t[e][3])||(t[e][3]=0);return t}function cf_getKeyCode(t){return"right"==t?39:"left"==t?37:"up"==t?38:"down"==t?40:-1}function cf_setCookie(t,e,s){if(t){var i=e.triggerHandler(cf_e("currentPosition",s));$.fn.carouFredSel.cookie.set(t,i)}}function cf_getCookie(t){var e=$.fn.carouFredSel.cookie.get(t);return""==e?0:e}function in_mapCss(t,e){for(var s={},i=0,o=e.length;o>i;i++)s[e[i]]=t.css(e[i]);return s}function in_complementItems(t,e,s,i){return is_object(t.visibleConf)||(t.visibleConf={}),is_object(t.sizesConf)||(t.sizesConf={}),0==t.start&&is_number(i)&&(t.start=i),is_object(t.visible)?(t.visibleConf.min=t.visible.min,t.visibleConf.max=t.visible.max,t.visible=!1):is_string(t.visible)?("variable"==t.visible?t.visibleConf.variable=!0:t.visibleConf.adjust=t.visible,t.visible=!1):is_function(t.visible)&&(t.visibleConf.adjust=t.visible,t.visible=!1),is_string(t.filter)||(t.filter=s.filter(":hidden").length>0?":visible":"*"),t[e.d.width]||(e.responsive?(debug(!0,"Set a "+e.d.width+" for the items!"),t[e.d.width]=ms_getTrueLargestSize(s,e,"outerWidth")):t[e.d.width]=ms_hasVariableSizes(s,e,"outerWidth")?"variable":s[e.d.outerWidth](!0)),t[e.d.height]||(t[e.d.height]=ms_hasVariableSizes(s,e,"outerHeight")?"variable":s[e.d.outerHeight](!0)),t.sizesConf.width=t.width,t.sizesConf.height=t.height,t}function in_complementVisibleItems(t,e){return"variable"==t.items[t.d.width]&&(t.items.visibleConf.variable=!0),t.items.visibleConf.variable||(is_number(t[t.d.width])?t.items.visible=Math.floor(t[t.d.width]/t.items[t.d.width]):(t.items.visible=Math.floor(e/t.items[t.d.width]),t[t.d.width]=t.items.visible*t.items[t.d.width],t.items.visibleConf.adjust||(t.align=!1)),("Infinity"==t.items.visible||t.items.visible<1)&&(debug(!0,'Not a valid number of visible items: Set to "variable".'),t.items.visibleConf.variable=!0)),t}function in_complementPrimarySize(t,e,s){return"auto"==t&&(t=ms_getTrueLargestSize(s,e,"outerWidth")),t}function in_complementSecondarySize(t,e,s){return"auto"==t&&(t=ms_getTrueLargestSize(s,e,"outerHeight")),t||(t=e.items[e.d.height]),t}function in_getAlignPadding(t,e){var s=cf_getAlignPadding(gi_getCurrentItems(e,t),t);return t.padding[t.d[1]]=s[1],t.padding[t.d[3]]=s[0],t}function in_getResponsiveValues(t,e){var s=cf_getItemAdjustMinMax(Math.ceil(t[t.d.width]/t.items[t.d.width]),t.items.visibleConf);s>e.length&&(s=e.length);var i=Math.floor(t[t.d.width]/s);return t.items.visible=s,t.items[t.d.width]=i,t[t.d.width]=s*i,t}function bt_pauseOnHoverConfig(t){if(is_string(t))var e=t.indexOf("immediate")>-1?!0:!1,s=t.indexOf("resume")>-1?!0:!1;else var e=s=!1;return[e,s]}function bt_mousesheelNumber(t){return is_number(t)?t:null}function is_null(t){return null===t}function is_undefined(t){return is_null(t)||"undefined"==typeof t||""===t||"undefined"===t}function is_array(t){return t instanceof Array}function is_jquery(t){return t instanceof jQuery}function is_object(t){return(t instanceof Object||"object"==typeof t)&&!is_null(t)&&!is_jquery(t)&&!is_array(t)&&!is_function(t)}function is_number(t){return(t instanceof Number||"number"==typeof t)&&!isNaN(t)}function is_string(t){return(t instanceof String||"string"==typeof t)&&!is_undefined(t)&&!is_true(t)&&!is_false(t)}function is_function(t){return t instanceof Function||"function"==typeof t}function is_boolean(t){return t instanceof Boolean||"boolean"==typeof t||is_true(t)||is_false(t)}function is_true(t){return t===!0||"true"===t}function is_false(t){return t===!1||"false"===t}function is_percentage(t){return is_string(t)&&"%"==t.slice(-1)}function getTime(){return(new Date).getTime()}function deprecated(t,e){debug(!0,t+" is DEPRECATED, support for it will be removed. Use "+e+" instead.")}function debug(t,e){if(!is_undefined(window.console)&&!is_undefined(window.console.log)){if(is_object(t)){var s=" ("+t.selector+")";t=t.debug}else var s="";if(!t)return!1;e=is_string(e)?"carouFredSel"+s+": "+e:["carouFredSel"+s+":",e],window.console.log(e)}return!1}$.fn.carouFredSel||($.fn.caroufredsel=$.fn.carouFredSel=function(options,configs){if(0==this.length)return debug(!0,'No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){$(this).carouFredSel(options,configs)});var $cfs=this,$tt0=this[0],starting_position=!1;$cfs.data("_cfs_isCarousel")&&(starting_position=$cfs.triggerHandler("_cfs_triggerEvent","currentPosition"),$cfs.trigger("_cfs_triggerEvent",["destroy",!0]));var FN={};FN._init=function(t,e,s){t=go_getObject($tt0,t),t.items=go_getItemsObject($tt0,t.items),t.scroll=go_getScrollObject($tt0,t.scroll),t.auto=go_getAutoObject($tt0,t.auto),t.prev=go_getPrevNextObject($tt0,t.prev),t.next=go_getPrevNextObject($tt0,t.next),t.pagination=go_getPaginationObject($tt0,t.pagination),t.swipe=go_getSwipeObject($tt0,t.swipe),t.mousewheel=go_getMousewheelObject($tt0,t.mousewheel),e&&(opts_orig=$.extend(!0,{},$.fn.carouFredSel.defaults,t)),opts=$.extend(!0,{},$.fn.carouFredSel.defaults,t),opts.d=cf_getDimensions(opts),crsl.direction="up"==opts.direction||"left"==opts.direction?"next":"prev";var i=$cfs.children(),o=ms_getParentSize($wrp,opts,"width");if(is_true(opts.cookie)&&(opts.cookie="caroufredsel_cookie_"+conf.serialNumber),opts.maxDimension=ms_getMaxDimension(opts,o),opts.items=in_complementItems(opts.items,opts,i,s),opts[opts.d.width]=in_complementPrimarySize(opts[opts.d.width],opts,i),opts[opts.d.height]=in_complementSecondarySize(opts[opts.d.height],opts,i),opts.responsive&&(is_percentage(opts[opts.d.width])||(opts[opts.d.width]="100%")),is_percentage(opts[opts.d.width])&&(crsl.upDateOnWindowResize=!0,crsl.primarySizePercentage=opts[opts.d.width],opts[opts.d.width]=ms_getPercentage(o,crsl.primarySizePercentage),opts.items.visible||(opts.items.visibleConf.variable=!0)),opts.responsive?(opts.usePadding=!1,opts.padding=[0,0,0,0],opts.align=!1,opts.items.visibleConf.variable=!1):(opts.items.visible||(opts=in_complementVisibleItems(opts,o)),opts[opts.d.width]||(!opts.items.visibleConf.variable&&is_number(opts.items[opts.d.width])&&"*"==opts.items.filter?(opts[opts.d.width]=opts.items.visible*opts.items[opts.d.width],opts.align=!1):opts[opts.d.width]="variable"),is_undefined(opts.align)&&(opts.align=is_number(opts[opts.d.width])?"center":!1),opts.items.visibleConf.variable&&(opts.items.visible=gn_getVisibleItemsNext(i,opts,0))),"*"==opts.items.filter||opts.items.visibleConf.variable||(opts.items.visibleConf.org=opts.items.visible,opts.items.visible=gn_getVisibleItemsNextFilter(i,opts,0)),opts.items.visible=cf_getItemsAdjust(opts.items.visible,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts.responsive)opts.items.visibleConf.min||(opts.items.visibleConf.min=opts.items.visible),opts.items.visibleConf.max||(opts.items.visibleConf.max=opts.items.visible),opts=in_getResponsiveValues(opts,i,o);else switch(opts.padding=cf_getPadding(opts.padding),"top"==opts.align?opts.align="left":"bottom"==opts.align&&(opts.align="right"),opts.align){case"center":case"left":case"right":"variable"!=opts[opts.d.width]&&(opts=in_getAlignPadding(opts,i),opts.usePadding=!0);break;default:opts.align=!1,opts.usePadding=0==opts.padding[0]&&0==opts.padding[1]&&0==opts.padding[2]&&0==opts.padding[3]?!1:!0}is_number(opts.scroll.duration)||(opts.scroll.duration=500),is_undefined(opts.scroll.items)&&(opts.scroll.items=opts.responsive||opts.items.visibleConf.variable||"*"!=opts.items.filter?"visible":opts.items.visible),opts.auto=$.extend(!0,{},opts.scroll,opts.auto),opts.prev=$.extend(!0,{},opts.scroll,opts.prev),opts.next=$.extend(!0,{},opts.scroll,opts.next),opts.pagination=$.extend(!0,{},opts.scroll,opts.pagination),opts.auto=go_complementAutoObject($tt0,opts.auto),opts.prev=go_complementPrevNextObject($tt0,opts.prev),opts.next=go_complementPrevNextObject($tt0,opts.next),opts.pagination=go_complementPaginationObject($tt0,opts.pagination),opts.swipe=go_complementSwipeObject($tt0,opts.swipe),opts.mousewheel=go_complementMousewheelObject($tt0,opts.mousewheel),opts.synchronise&&(opts.synchronise=cf_getSynchArr(opts.synchronise)),opts.auto.onPauseStart&&(opts.auto.onTimeoutStart=opts.auto.onPauseStart,deprecated("auto.onPauseStart","auto.onTimeoutStart")),opts.auto.onPausePause&&(opts.auto.onTimeoutPause=opts.auto.onPausePause,deprecated("auto.onPausePause","auto.onTimeoutPause")),opts.auto.onPauseEnd&&(opts.auto.onTimeoutEnd=opts.auto.onPauseEnd,deprecated("auto.onPauseEnd","auto.onTimeoutEnd")),opts.auto.pauseDuration&&(opts.auto.timeoutDuration=opts.auto.pauseDuration,deprecated("auto.pauseDuration","auto.timeoutDuration"))},FN._build=function(){$cfs.data("_cfs_isCarousel",!0);var t=$cfs.children(),e=in_mapCss($cfs,["textAlign","float","position","top","right","bottom","left","zIndex","width","height","marginTop","marginRight","marginBottom","marginLeft"]),s="relative";switch(e.position){case"absolute":case"fixed":s=e.position}"parent"==conf.wrapper?sz_storeOrigCss($wrp):$wrp.css(e),$wrp.css({overflow:"hidden",position:s}),sz_storeOrigCss($cfs),$cfs.data("_cfs_origCssZindex",e.zIndex),$cfs.css({textAlign:"left","float":"none",position:"absolute",top:0,right:"auto",bottom:"auto",left:0,marginTop:0,marginRight:0,marginBottom:0,marginLeft:0}),sz_storeMargin(t,opts),sz_storeOrigCss(t),opts.responsive&&sz_setResponsiveSizes(opts,t)},FN._bind_events=function(){FN._unbind_events(),$cfs.bind(cf_e("stop",conf),function(t,e){return t.stopPropagation(),crsl.isStopped||opts.auto.button&&opts.auto.button.addClass(cf_c("stopped",conf)),crsl.isStopped=!0,opts.auto.play&&(opts.auto.play=!1,$cfs.trigger(cf_e("pause",conf),e)),!0}),$cfs.bind(cf_e("finish",conf),function(t){return t.stopPropagation(),crsl.isScrolling&&sc_stopScroll(scrl),!0}),$cfs.bind(cf_e("pause",conf),function(t,e,s){if(t.stopPropagation(),tmrs=sc_clearTimers(tmrs),e&&crsl.isScrolling){scrl.isStopped=!0;var i=getTime()-scrl.startTime;scrl.duration-=i,scrl.pre&&(scrl.pre.duration-=i),scrl.post&&(scrl.post.duration-=i),sc_stopScroll(scrl,!1)}if(crsl.isPaused||crsl.isScrolling||s&&(tmrs.timePassed+=getTime()-tmrs.startTime),crsl.isPaused||opts.auto.button&&opts.auto.button.addClass(cf_c("paused",conf)),crsl.isPaused=!0,opts.auto.onTimeoutPause){var o=opts.auto.timeoutDuration-tmrs.timePassed,n=100-Math.ceil(100*o/opts.auto.timeoutDuration);opts.auto.onTimeoutPause.call($tt0,n,o)}return!0}),$cfs.bind(cf_e("play",conf),function(t,e,s,i){t.stopPropagation(),tmrs=sc_clearTimers(tmrs);var o=[e,s,i],n=["string","number","boolean"],r=cf_sortParams(o,n);if(e=r[0],s=r[1],i=r[2],"prev"!=e&&"next"!=e&&(e=crsl.direction),is_number(s)||(s=0),is_boolean(i)||(i=!1),i&&(crsl.isStopped=!1,opts.auto.play=!0),!opts.auto.play)return t.stopImmediatePropagation(),debug(conf,"Carousel stopped: Not scrolling.");crsl.isPaused&&opts.auto.button&&(opts.auto.button.removeClass(cf_c("stopped",conf)),opts.auto.button.removeClass(cf_c("paused",conf))),crsl.isPaused=!1,tmrs.startTime=getTime();var c=opts.auto.timeoutDuration+s;return dur2=c-tmrs.timePassed,perc=100-Math.ceil(100*dur2/c),opts.auto.progress&&(tmrs.progress=setInterval(function(){var t=getTime()-tmrs.startTime+tmrs.timePassed,e=Math.ceil(100*t/c);opts.auto.progress.updater.call(opts.auto.progress.bar[0],e)},opts.auto.progress.interval)),tmrs.auto=setTimeout(function(){opts.auto.progress&&opts.auto.progress.updater.call(opts.auto.progress.bar[0],100),opts.auto.onTimeoutEnd&&opts.auto.onTimeoutEnd.call($tt0,perc,dur2),crsl.isScrolling?$cfs.trigger(cf_e("play",conf),e):$cfs.trigger(cf_e(e,conf),opts.auto)},dur2),opts.auto.onTimeoutStart&&opts.auto.onTimeoutStart.call($tt0,perc,dur2),!0}),$cfs.bind(cf_e("resume",conf),function(t){return t.stopPropagation(),scrl.isStopped?(scrl.isStopped=!1,crsl.isPaused=!1,crsl.isScrolling=!0,scrl.startTime=getTime(),sc_startScroll(scrl,conf)):$cfs.trigger(cf_e("play",conf)),!0}),$cfs.bind(cf_e("prev",conf)+" "+cf_e("next",conf),function(t,e,s,i,o){if(t.stopPropagation(),crsl.isStopped||$cfs.is(":hidden"))return t.stopImmediatePropagation(),debug(conf,"Carousel stopped or hidden: Not scrolling.");var n=is_number(opts.items.minimum)?opts.items.minimum:opts.items.visible+1;if(n>itms.total)return t.stopImmediatePropagation(),debug(conf,"Not enough items ("+itms.total+" total, "+n+" needed): Not scrolling.");var r=[e,s,i,o],c=["object","number/string","function","boolean"],a=cf_sortParams(r,c);e=a[0],s=a[1],i=a[2],o=a[3];var f=t.type.slice(conf.events.prefix.length);if(is_object(e)||(e={}),is_function(i)&&(e.onAfter=i),is_boolean(o)&&(e.queue=o),e=$.extend(!0,{},opts[f],e),e.conditions&&!e.conditions.call($tt0,f))return t.stopImmediatePropagation(),debug(conf,'Callback "conditions" returned false.');if(!is_number(s)){if("*"!=opts.items.filter)s="visible";else for(var l=[s,e.items,opts[f].items],a=0,u=l.length;u>a;a++)if(is_number(l[a])||"page"==l[a]||"visible"==l[a]){s=l[a];break}switch(s){case"page":return t.stopImmediatePropagation(),$cfs.triggerHandler(cf_e(f+"Page",conf),[e,i]);case"visible":opts.items.visibleConf.variable||"*"!=opts.items.filter||(s=opts.items.visible)}}if(scrl.isStopped)return $cfs.trigger(cf_e("resume",conf)),$cfs.trigger(cf_e("queue",conf),[f,[e,s,i]]),t.stopImmediatePropagation(),debug(conf,"Carousel resumed scrolling.");if(e.duration>0&&crsl.isScrolling)return e.queue&&("last"==e.queue&&(queu=[]),("first"!=e.queue||0==queu.length)&&$cfs.trigger(cf_e("queue",conf),[f,[e,s,i]])),t.stopImmediatePropagation(),debug(conf,"Carousel currently scrolling.");if(tmrs.timePassed=0,$cfs.trigger(cf_e("slide_"+f,conf),[e,s]),opts.synchronise)for(var p=opts.synchronise,d=[e,s],g=0,u=p.length;u>g;g++){var m=f;p[g][2]||(m="prev"==m?"next":"prev"),p[g][1]||(d[0]=p[g][0].triggerHandler("_cfs_triggerEvent",["configuration",m])),d[1]=s+p[g][3],p[g][0].trigger("_cfs_triggerEvent",["slide_"+m,d])}return!0}),$cfs.bind(cf_e("slide_prev",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&0==itms.first)return opts.infinite&&$cfs.trigger(cf_e("next",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),!is_number(s)){if(opts.items.visibleConf.variable)s=gn_getVisibleItemsPrev(i,opts,itms.total-1);else if("*"!=opts.items.filter){var o=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts);s=gn_getScrollItemsPrevFilter(i,opts,itms.total-1,o)}else s=opts.items.visible;s=cf_getAdjust(s,opts,e.items,$tt0)}if(opts.circular||itms.total-s<itms.first&&(s=itms.total-itms.first),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){var n=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible+s<=n&&s<itms.total&&(s++,n=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0)),opts.items.visible=n}else if("*"!=opts.items.filter){var n=gn_getVisibleItemsNextFilter(i,opts,itms.total-s);opts.items.visible=cf_getItemsAdjust(n,opts,opts.items.visibleConf.adjust,$tt0)}if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items backward."),itms.first+=s;itms.first>=itms.total;)itms.first-=itms.total;opts.circular||(0==itms.first&&e.onEnd&&e.onEnd.call($tt0,"prev"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),$cfs.children().slice(itms.total-s,itms.total).prependTo($cfs),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var i=$cfs.children(),r=gi_getOldItemsPrev(i,opts,s),c=gi_getNewItemsPrev(i,opts),a=i.eq(s-1),f=r.last(),l=c.last();sz_resetMargin(i,opts);var u=0,p=0;if(opts.align){var d=cf_getAlignPadding(c,opts);u=d[0],p=d[1]}var g=0>u?opts.padding[opts.d[3]]:0,m=!1,_=$();if(opts.items.visible<s&&(_=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx)){var b=opts.items[opts.d.width];m=_,a=l,sc_hideHiddenItems(m),opts.items[opts.d.width]="variable"}var v=!1,h=ms_getTotalSize(i.slice(0,s),opts,"width"),w=cf_mapWrapperSizes(ms_getSizes(c,opts,!0),opts,!opts.usePadding),P=0,C={},x={},S={},y={},I={},z={},j={},N=sc_getDuration(e,opts,s,h);switch(e.fx){case"cover":case"cover-fade":P=ms_getTotalSize(i.slice(0,opts.items.visible),opts,"width")}m&&(opts.items[opts.d.width]=b),sz_resetMargin(i,opts,!0),p>=0&&sz_resetMargin(f,opts,opts.padding[opts.d[1]]),u>=0&&sz_resetMargin(a,opts,opts.padding[opts.d[3]]),opts.align&&(opts.padding[opts.d[1]]=p,opts.padding[opts.d[3]]=u),z[opts.d.left]=-(h-g),j[opts.d.left]=-(P-g),x[opts.d.left]=w[opts.d.width];var k=function(){},O=function(){},T=function(){},M=function(){},F=function(){},A=function(){},H=function(){},q=function(){},D=function(){},V=function(){},R=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":v=$cfs.clone(!0).appendTo($wrp)}switch(e.fx){case"crossfade":case"uncover":case"uncover-fade":v.children().slice(0,s).remove(),v.children().slice(opts.items.visibleConf.old).remove();break;case"cover":case"cover-fade":v.children().slice(opts.items.visible).remove(),v.css(j)}if($cfs.css(z),scrl=sc_setScroll(N,e.easing,conf),C[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0,("variable"==opts[opts.d.width]||"variable"==opts[opts.d.height])&&(k=function(){$wrp.css(w)},O=function(){scrl.anims.push([$wrp,w])}),opts.usePadding){switch(l.not(a).length&&(S[opts.d.marginRight]=a.data("_cfs_origCssMargin"),0>u?a.css(S):(H=function(){a.css(S)},q=function(){scrl.anims.push([a,S])})),e.fx){case"cover":case"cover-fade":v.children().eq(s-1).css(S)}l.not(f).length&&(y[opts.d.marginRight]=f.data("_cfs_origCssMargin"),T=function(){f.css(y)},M=function(){scrl.anims.push([f,y])}),p>=0&&(I[opts.d.marginRight]=l.data("_cfs_origCssMargin")+opts.padding[opts.d[1]],F=function(){l.css(I)},A=function(){scrl.anims.push([l,I])})}R=function(){$cfs.css(C)};var E=opts.items.visible+s-itms.total;V=function(){if(E>0&&($cfs.children().slice(itms.total).remove(),r=$($cfs.children().slice(itms.total-(opts.items.visible-E)).get().concat($cfs.children().slice(0,E).get()))),sc_showHiddenItems(m),opts.usePadding){var t=$cfs.children().eq(opts.items.visible+s-1);t.css(opts.d.marginRight,t.data("_cfs_origCssMargin"))}};var W=sc_mapCallbackArguments(r,_,c,s,"prev",N,w);switch(D=function(){sc_afterScroll($cfs,v,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",W,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))},crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",W,clbk),e.fx){case"none":$cfs.css(C),k(),T(),F(),H(),R(),V(),D();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){k(),T(),F(),H(),R(),V(),scrl=sc_setScroll(N,e.easing,conf),scrl.anims.push([$cfs,{opacity:1},D]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([v,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},D]),O(),T(),F(),H(),R(),V();break;case"cover":scrl.anims.push([v,C,function(){T(),F(),H(),R(),V(),D()}]),O();break;case"cover-fade":scrl.anims.push([$cfs,{opacity:0}]),scrl.anims.push([v,C,function(){T(),F(),H(),R(),V(),D()}]),O();break;case"uncover":scrl.anims.push([v,x,D]),O(),T(),F(),H(),R(),V();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([v,x,D]),O(),T(),F(),H(),R(),V();break;default:scrl.anims.push([$cfs,C,function(){V(),D()}]),O(),M(),A(),q()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,w]),!0
2
  }),$cfs.bind(cf_e("slide_next",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&itms.first==opts.items.visible)return opts.infinite&&$cfs.trigger(cf_e("prev",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),!is_number(s)){if("*"!=opts.items.filter){var o=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts);s=gn_getScrollItemsNextFilter(i,opts,0,o)}else s=opts.items.visible;s=cf_getAdjust(s,opts,e.items,$tt0)}var n=0==itms.first?itms.total:itms.first;if(!opts.circular){if(opts.items.visibleConf.variable)var r=gn_getVisibleItemsNext(i,opts,s),o=gn_getVisibleItemsPrev(i,opts,n-1);else var r=opts.items.visible,o=opts.items.visible;s+r>n&&(s=n-o)}if(opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){for(var r=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,n),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible-s>=r&&s<itms.total;)s++,r=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,n),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible=r}else if("*"!=opts.items.filter){var r=gn_getVisibleItemsNextFilter(i,opts,s);opts.items.visible=cf_getItemsAdjust(r,opts,opts.items.visibleConf.adjust,$tt0)}if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items forward."),itms.first-=s;itms.first<0;)itms.first+=itms.total;opts.circular||(itms.first==opts.items.visible&&e.onEnd&&e.onEnd.call($tt0,"next"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var i=$cfs.children(),c=gi_getOldItemsNext(i,opts),a=gi_getNewItemsNext(i,opts,s),f=i.eq(s-1),l=c.last(),u=a.last();sz_resetMargin(i,opts);var p=0,d=0;if(opts.align){var g=cf_getAlignPadding(a,opts);p=g[0],d=g[1]}var m=!1,_=$();if(opts.items.visibleConf.old<s&&(_=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx)){var b=opts.items[opts.d.width];m=_,f=l,sc_hideHiddenItems(m),opts.items[opts.d.width]="variable"}var v=!1,h=ms_getTotalSize(i.slice(0,s),opts,"width"),w=cf_mapWrapperSizes(ms_getSizes(a,opts,!0),opts,!opts.usePadding),P=0,C={},x={},S={},y={},I={},z=sc_getDuration(e,opts,s,h);switch(e.fx){case"uncover":case"uncover-fade":P=ms_getTotalSize(i.slice(0,opts.items.visibleConf.old),opts,"width")}m&&(opts.items[opts.d.width]=b),opts.align&&opts.padding[opts.d[1]]<0&&(opts.padding[opts.d[1]]=0),sz_resetMargin(i,opts,!0),sz_resetMargin(l,opts,opts.padding[opts.d[1]]),opts.align&&(opts.padding[opts.d[1]]=d,opts.padding[opts.d[3]]=p),I[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0;var j=function(){},N=function(){},k=function(){},O=function(){},T=function(){},M=function(){},F=function(){},A=function(){},H=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":v=$cfs.clone(!0).appendTo($wrp),v.children().slice(opts.items.visibleConf.old).remove()}switch(e.fx){case"crossfade":case"cover":case"cover-fade":$cfs.css("zIndex",1),v.css("zIndex",0)}if(scrl=sc_setScroll(z,e.easing,conf),C[opts.d.left]=-h,x[opts.d.left]=-P,0>p&&(C[opts.d.left]+=p),("variable"==opts[opts.d.width]||"variable"==opts[opts.d.height])&&(j=function(){$wrp.css(w)},N=function(){scrl.anims.push([$wrp,w])}),opts.usePadding){var q=u.data("_cfs_origCssMargin");d>=0&&(q+=opts.padding[opts.d[1]]),u.css(opts.d.marginRight,q),f.not(l).length&&(y[opts.d.marginRight]=l.data("_cfs_origCssMargin")),k=function(){l.css(y)},O=function(){scrl.anims.push([l,y])};var D=f.data("_cfs_origCssMargin");p>0&&(D+=opts.padding[opts.d[3]]),S[opts.d.marginRight]=D,T=function(){f.css(S)},M=function(){scrl.anims.push([f,S])}}H=function(){$cfs.css(I)};var V=opts.items.visible+s-itms.total;A=function(){V>0&&$cfs.children().slice(itms.total).remove();var t=$cfs.children().slice(0,s).appendTo($cfs).last();if(V>0&&(a=gi_getCurrentItems(i,opts)),sc_showHiddenItems(m),opts.usePadding){if(itms.total<opts.items.visible+s){var e=$cfs.children().eq(opts.items.visible-1);e.css(opts.d.marginRight,e.data("_cfs_origCssMargin")+opts.padding[opts.d[1]])}t.css(opts.d.marginRight,t.data("_cfs_origCssMargin"))}};var R=sc_mapCallbackArguments(c,_,a,s,"next",z,w);switch(F=function(){$cfs.css("zIndex",$cfs.data("_cfs_origCssZindex")),sc_afterScroll($cfs,v,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",R,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))},crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",R,clbk),e.fx){case"none":$cfs.css(C),j(),k(),T(),H(),A(),F();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){j(),k(),T(),H(),A(),scrl=sc_setScroll(z,e.easing,conf),scrl.anims.push([$cfs,{opacity:1},F]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([v,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},F]),N(),k(),T(),H(),A();break;case"cover":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([$cfs,I,F]),N(),k(),T(),A();break;case"cover-fade":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([v,{opacity:0}]),scrl.anims.push([$cfs,I,F]),N(),k(),T(),A();break;case"uncover":scrl.anims.push([v,x,F]),N(),k(),T(),H(),A();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([v,x,F]),N(),k(),T(),H(),A();break;default:scrl.anims.push([$cfs,C,function(){H(),A(),F()}]),N(),O(),M()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,w]),!0}),$cfs.bind(cf_e("slideTo",conf),function(t,e,s,i,o,n,r){t.stopPropagation();var c=[e,s,i,o,n,r],a=["string/number/object","number","boolean","object","string","function"],f=cf_sortParams(c,a);return o=f[3],n=f[4],r=f[5],e=gn_getItemIndex(f[0],f[1],f[2],itms,$cfs),0==e?!1:(is_object(o)||(o=!1),"prev"!=n&&"next"!=n&&(n=opts.circular?e<=itms.total/2?"next":"prev":0==itms.first||itms.first>e?"next":"prev"),"prev"==n&&(e=itms.total-e),$cfs.trigger(cf_e(n,conf),[o,e,r]),!0)}),$cfs.bind(cf_e("prevPage",conf),function(t,e,s){t.stopPropagation();var i=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[i-1,e,"prev",s])}),$cfs.bind(cf_e("nextPage",conf),function(t,e,s){t.stopPropagation();var i=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[i+1,e,"next",s])}),$cfs.bind(cf_e("slideToPage",conf),function(t,e,s,i,o){t.stopPropagation(),is_number(e)||(e=$cfs.triggerHandler(cf_e("currentPage",conf)));var n=opts.pagination.items||opts.items.visible,r=Math.ceil(itms.total/n)-1;return 0>e&&(e=r),e>r&&(e=0),$cfs.triggerHandler(cf_e("slideTo",conf),[e*n,0,!0,s,i,o])}),$cfs.bind(cf_e("jumpToStart",conf),function(t,e){if(t.stopPropagation(),e=e?gn_getItemIndex(e,0,!0,itms,$cfs):0,e+=itms.first,0!=e){if(itms.total>0)for(;e>itms.total;)e-=itms.total;$cfs.prepend($cfs.children().slice(e,itms.total))}return!0}),$cfs.bind(cf_e("synchronise",conf),function(t,e){if(t.stopPropagation(),e)e=cf_getSynchArr(e);else{if(!opts.synchronise)return debug(conf,"No carousel to synchronise.");e=opts.synchronise}for(var s=$cfs.triggerHandler(cf_e("currentPosition",conf)),i=!0,o=0,n=e.length;n>o;o++)e[o][0].triggerHandler(cf_e("slideTo",conf),[s,e[o][3],!0])||(i=!1);return i}),$cfs.bind(cf_e("queue",conf),function(t,e,s){return t.stopPropagation(),is_function(e)?e.call($tt0,queu):is_array(e)?queu=e:is_undefined(e)||queu.push([e,s]),queu}),$cfs.bind(cf_e("insertItem",conf),function(t,e,s,i,o){t.stopPropagation();var n=[e,s,i,o],r=["string/object","string/number/object","boolean","number"],c=cf_sortParams(n,r);if(e=c[0],s=c[1],i=c[2],o=c[3],is_object(e)&&!is_jquery(e)?e=$(e):is_string(e)&&(e=$(e)),!is_jquery(e)||0==e.length)return debug(conf,"Not a valid object.");is_undefined(s)&&(s="end"),sz_storeMargin(e,opts),sz_storeOrigCss(e);var a=s,f="before";"end"==s?i?(0==itms.first?(s=itms.total-1,f="after"):(s=itms.first,itms.first+=e.length),0>s&&(s=0)):(s=itms.total-1,f="after"):s=gn_getItemIndex(s,o,i,itms,$cfs);var l=$cfs.children().eq(s);return l.length?l[f](e):(debug(conf,"Correct insert-position not found! Appending item to the end."),$cfs.append(e)),"end"==a||i||s<itms.first&&(itms.first+=e.length),itms.total=$cfs.children().length,itms.first>=itms.total&&(itms.first-=itms.total),$cfs.trigger(cf_e("updateSizes",conf)),$cfs.trigger(cf_e("linkAnchors",conf)),!0}),$cfs.bind(cf_e("removeItem",conf),function(t,e,s,i){t.stopPropagation();var o=[e,s,i],n=["string/number/object","boolean","number"],r=cf_sortParams(o,n);e=r[0],s=r[1],i=r[2];if(e instanceof $&&e.length>1)return c=$(),e.each(function(){var t=$cfs.trigger(cf_e("removeItem",conf),[$(this),s,i]);t&&(c=c.add(t))}),c;if(is_undefined(e)||"end"==e)c=$cfs.children().last();else{e=gn_getItemIndex(e,i,s,itms,$cfs);var c=$cfs.children().eq(e);c.length&&e<itms.first&&(itms.first-=c.length)}return c&&c.length&&(c.detach(),itms.total=$cfs.children().length,$cfs.trigger(cf_e("updateSizes",conf))),c}),$cfs.bind(cf_e("onBefore",conf)+" "+cf_e("onAfter",conf),function(t,e){t.stopPropagation();var s=t.type.slice(conf.events.prefix.length);return is_array(e)&&(clbk[s]=e),is_function(e)&&clbk[s].push(e),clbk[s]}),$cfs.bind(cf_e("currentPosition",conf),function(t,e){if(t.stopPropagation(),0==itms.first)var s=0;else var s=itms.total-itms.first;return is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("currentPage",conf),function(t,e){t.stopPropagation();var s,i=opts.pagination.items||opts.items.visible,o=Math.ceil(itms.total/i-1);return s=0==itms.first?0:itms.first<itms.total%i?0:itms.first!=i||opts.circular?Math.round((itms.total-itms.first)/i):o,0>s&&(s=0),s>o&&(s=o),is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("currentVisible",conf),function(t,e){t.stopPropagation();var s=gi_getCurrentItems($cfs.children(),opts);return is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("slice",conf),function(t,e,s,i){if(t.stopPropagation(),0==itms.total)return!1;var o=[e,s,i],n=["number","number","function"],r=cf_sortParams(o,n);if(e=is_number(r[0])?r[0]:0,s=is_number(r[1])?r[1]:itms.total,i=r[2],e+=itms.first,s+=itms.first,items.total>0){for(;e>itms.total;)e-=itms.total;for(;s>itms.total;)s-=itms.total;for(;0>e;)e+=itms.total;for(;0>s;)s+=itms.total}var c,a=$cfs.children();return c=s>e?a.slice(e,s):$(a.slice(e,itms.total).get().concat(a.slice(0,s).get())),is_function(i)&&i.call($tt0,c),c}),$cfs.bind(cf_e("isPaused",conf)+" "+cf_e("isStopped",conf)+" "+cf_e("isScrolling",conf),function(t,e){t.stopPropagation();var s=t.type.slice(conf.events.prefix.length),i=crsl[s];return is_function(e)&&e.call($tt0,i),i}),$cfs.bind(cf_e("configuration",conf),function(e,a,b,c){e.stopPropagation();var reInit=!1;if(is_function(a))a.call($tt0,opts);else if(is_object(a))opts_orig=$.extend(!0,{},opts_orig,a),b!==!1?reInit=!0:opts=$.extend(!0,{},opts,a);else if(!is_undefined(a))if(is_function(b)){var val=eval("opts."+a);is_undefined(val)&&(val=""),b.call($tt0,val)}else{if(is_undefined(b))return eval("opts."+a);"boolean"!=typeof c&&(c=!0),eval("opts_orig."+a+" = b"),c!==!1?reInit=!0:eval("opts."+a+" = b")}if(reInit){sz_resetMargin($cfs.children(),opts),FN._init(opts_orig),FN._bind_buttons();var sz=sz_setSizes($cfs,opts);$cfs.trigger(cf_e("updatePageStatus",conf),[!0,sz])}return opts}),$cfs.bind(cf_e("linkAnchors",conf),function(t,e,s){return t.stopPropagation(),is_undefined(e)?e=$("body"):is_string(e)&&(e=$(e)),is_jquery(e)&&0!=e.length?(is_string(s)||(s="a.caroufredsel"),e.find(s).each(function(){var t=this.hash||"";t.length>0&&-1!=$cfs.children().index($(t))&&$(this).unbind("click").click(function(e){e.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),t)})}),!0):debug(conf,"Not a valid object.")}),$cfs.bind(cf_e("updatePageStatus",conf),function(t,e){if(t.stopPropagation(),opts.pagination.container){var s=opts.pagination.items||opts.items.visible,i=Math.ceil(itms.total/s);e&&(opts.pagination.anchorBuilder&&(opts.pagination.container.children().remove(),opts.pagination.container.each(function(){for(var t=0;i>t;t++){var e=$cfs.children().eq(gn_getItemIndex(t*s,0,!0,itms,$cfs));$(this).append(opts.pagination.anchorBuilder.call(e[0],t+1))}})),opts.pagination.container.each(function(){$(this).children().unbind(opts.pagination.event).each(function(t){$(this).bind(opts.pagination.event,function(e){e.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[t*s,-opts.pagination.deviation,!0,opts.pagination])})})}));var o=$cfs.triggerHandler(cf_e("currentPage",conf))+opts.pagination.deviation;return o>=i&&(o=0),0>o&&(o=i-1),opts.pagination.container.each(function(){$(this).children().removeClass(cf_c("selected",conf)).eq(o).addClass(cf_c("selected",conf))}),!0}}),$cfs.bind(cf_e("updateSizes",conf),function(){var t=opts.items.visible,e=$cfs.children(),s=ms_getParentSize($wrp,opts,"width");if(itms.total=e.length,crsl.primarySizePercentage?(opts.maxDimension=s,opts[opts.d.width]=ms_getPercentage(s,crsl.primarySizePercentage)):opts.maxDimension=ms_getMaxDimension(opts,s),opts.responsive?(opts.items.width=opts.items.sizesConf.width,opts.items.height=opts.items.sizesConf.height,opts=in_getResponsiveValues(opts,e,s),t=opts.items.visible,sz_setResponsiveSizes(opts,e)):opts.items.visibleConf.variable?t=gn_getVisibleItemsNext(e,opts,0):"*"!=opts.items.filter&&(t=gn_getVisibleItemsNextFilter(e,opts,0)),!opts.circular&&0!=itms.first&&t>itms.first){if(opts.items.visibleConf.variable)var i=gn_getVisibleItemsPrev(e,opts,itms.first)-itms.first;else if("*"!=opts.items.filter)var i=gn_getVisibleItemsPrevFilter(e,opts,itms.first)-itms.first;else var i=opts.items.visible-itms.first;debug(conf,"Preventing non-circular: sliding "+i+" items backward."),$cfs.trigger(cf_e("prev",conf),i)}opts.items.visible=cf_getItemsAdjust(t,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts=in_getAlignPadding(opts,e);var o=sz_setSizes($cfs,opts);return $cfs.trigger(cf_e("updatePageStatus",conf),[!0,o]),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),o}),$cfs.bind(cf_e("destroy",conf),function(t,e){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),$cfs.data("_cfs_isCarousel",!1),$cfs.trigger(cf_e("finish",conf)),e&&$cfs.trigger(cf_e("jumpToStart",conf)),sz_restoreOrigCss($cfs.children()),sz_restoreOrigCss($cfs),FN._unbind_events(),FN._unbind_buttons(),"parent"==conf.wrapper?sz_restoreOrigCss($wrp):$wrp.replaceWith($cfs),!0}),$cfs.bind(cf_e("debug",conf),function(){return debug(conf,"Carousel width: "+opts.width),debug(conf,"Carousel height: "+opts.height),debug(conf,"Item widths: "+opts.items.width),debug(conf,"Item heights: "+opts.items.height),debug(conf,"Number of items visible: "+opts.items.visible),opts.auto.play&&debug(conf,"Number of items scrolled automatically: "+opts.auto.items),opts.prev.button&&debug(conf,"Number of items scrolled backward: "+opts.prev.items),opts.next.button&&debug(conf,"Number of items scrolled forward: "+opts.next.items),conf.debug}),$cfs.bind("_cfs_triggerEvent",function(t,e,s){return t.stopPropagation(),$cfs.triggerHandler(cf_e(e,conf),s)})},FN._unbind_events=function(){$cfs.unbind(cf_e("",conf)),$cfs.unbind(cf_e("",conf,!1)),$cfs.unbind("_cfs_triggerEvent")},FN._bind_buttons=function(){if(FN._unbind_buttons(),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),opts.auto.pauseOnHover){var t=bt_pauseOnHoverConfig(opts.auto.pauseOnHover);$wrp.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.auto.button&&opts.auto.button.bind(cf_e(opts.auto.event,conf,!1),function(t){t.preventDefault();var e=!1,s=null;crsl.isPaused?e="play":opts.auto.pauseOnEvent&&(e="pause",s=bt_pauseOnHoverConfig(opts.auto.pauseOnEvent)),e&&$cfs.trigger(cf_e(e,conf),s)}),opts.prev.button&&(opts.prev.button.bind(cf_e(opts.prev.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("prev",conf))}),opts.prev.pauseOnHover)){var t=bt_pauseOnHoverConfig(opts.prev.pauseOnHover);opts.prev.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.next.button&&(opts.next.button.bind(cf_e(opts.next.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("next",conf))}),opts.next.pauseOnHover)){var t=bt_pauseOnHoverConfig(opts.next.pauseOnHover);opts.next.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.pagination.container&&opts.pagination.pauseOnHover){var t=bt_pauseOnHoverConfig(opts.pagination.pauseOnHover);opts.pagination.container.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if((opts.prev.key||opts.next.key)&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e==opts.next.key&&(t.preventDefault(),$cfs.trigger(cf_e("next",conf))),e==opts.prev.key&&(t.preventDefault(),$cfs.trigger(cf_e("prev",conf)))}),opts.pagination.keys&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e>=49&&58>e&&(e=(e-49)*opts.items.visible,e<=itms.total&&(t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e,0,!0,opts.pagination])))}),$.fn.swipe){var e="ontouchstart"in window;if(e&&opts.swipe.onTouch||!e&&opts.swipe.onMouse){var s=$.extend(!0,{},opts.prev,opts.swipe),i=$.extend(!0,{},opts.next,opts.swipe),o=function(){$cfs.trigger(cf_e("prev",conf),[s])},n=function(){$cfs.trigger(cf_e("next",conf),[i])};switch(opts.direction){case"up":case"down":opts.swipe.options.swipeUp=n,opts.swipe.options.swipeDown=o;break;default:opts.swipe.options.swipeLeft=n,opts.swipe.options.swipeRight=o}crsl.swipe&&$cfs.swipe("destroy"),$wrp.swipe(opts.swipe.options),$wrp.css("cursor","move"),crsl.swipe=!0}}if($.fn.mousewheel&&opts.mousewheel){var r=$.extend(!0,{},opts.prev,opts.mousewheel),c=$.extend(!0,{},opts.next,opts.mousewheel);crsl.mousewheel&&$wrp.unbind(cf_e("mousewheel",conf,!1)),$wrp.bind(cf_e("mousewheel",conf,!1),function(t,e){t.preventDefault(),e>0?$cfs.trigger(cf_e("prev",conf),[r]):$cfs.trigger(cf_e("next",conf),[c])}),crsl.mousewheel=!0}if(opts.auto.play&&$cfs.trigger(cf_e("play",conf),opts.auto.delay),crsl.upDateOnWindowResize){var a=function(){$cfs.trigger(cf_e("finish",conf)),opts.auto.pauseOnResize&&!crsl.isPaused&&$cfs.trigger(cf_e("play",conf)),sz_resetMargin($cfs.children(),opts),$cfs.trigger(cf_e("updateSizes",conf))},f=$(window),l=null;if($.debounce&&"debounce"==conf.onWindowResize)l=$.debounce(200,a);else if($.throttle&&"throttle"==conf.onWindowResize)l=$.throttle(300,a);else{var u=0,p=0;l=function(){var t=f.width(),e=f.height();(t!=u||e!=p)&&(a(),u=t,p=e)}}f.bind(cf_e("resize",conf,!1,!0,!0),l)}},FN._unbind_buttons=function(){var t=(cf_e("",conf),cf_e("",conf,!1));ns3=cf_e("",conf,!1,!0,!0),$(document).unbind(ns3),$(window).unbind(ns3),$wrp.unbind(t),opts.auto.button&&opts.auto.button.unbind(t),opts.prev.button&&opts.prev.button.unbind(t),opts.next.button&&opts.next.button.unbind(t),opts.pagination.container&&(opts.pagination.container.unbind(t),opts.pagination.anchorBuilder&&opts.pagination.container.children().remove()),crsl.swipe&&($cfs.swipe("destroy"),$wrp.css("cursor","default"),crsl.swipe=!1),crsl.mousewheel&&(crsl.mousewheel=!1),nv_showNavi(opts,"hide",conf),nv_enableNavi(opts,"removeClass",conf)},is_boolean(configs)&&(configs={debug:configs});var crsl={direction:"next",isPaused:!0,isScrolling:!1,isStopped:!1,mousewheel:!1,swipe:!1},itms={total:$cfs.children().length,first:0},tmrs={auto:null,progress:null,startTime:getTime(),timePassed:0},scrl={isStopped:!1,duration:0,startTime:0,easing:"",anims:[]},clbk={onBefore:[],onAfter:[]},queu=[],conf=$.extend(!0,{},$.fn.carouFredSel.configs,configs),opts={},opts_orig=$.extend(!0,{},options),$wrp="parent"==conf.wrapper?$cfs.parent():$cfs.wrap("<"+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />').parent();if(conf.selector=$cfs.selector,conf.serialNumber=$.fn.carouFredSel.serialNumber++,conf.transition=conf.transition&&$.fn.transition?"transition":"animate",FN._init(opts_orig,!0,starting_position),FN._build(),FN._bind_events(),FN._bind_buttons(),is_array(opts.items.start))var start_arr=opts.items.start;else{var start_arr=[];0!=opts.items.start&&start_arr.push(opts.items.start)}if(opts.cookie&&start_arr.unshift(parseInt(cf_getCookie(opts.cookie),10)),start_arr.length>0)for(var a=0,l=start_arr.length;l>a;a++){var s=start_arr[a];if(0!=s){if(s===!0){if(s=window.location.hash,s.length<1)continue}else"random"===s&&(s=Math.floor(Math.random()*itms.total));if($cfs.triggerHandler(cf_e("slideTo",conf),[s,0,!0,{fx:"none"}]))break}}var siz=sz_setSizes($cfs,opts),itm=gi_getCurrentItems($cfs.children(),opts);return opts.onCreate&&opts.onCreate.call($tt0,{width:siz.width,height:siz.height,items:itm}),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,siz]),$cfs.trigger(cf_e("linkAnchors",conf)),conf.debug&&$cfs.trigger(cf_e("debug",conf)),$cfs},$.fn.carouFredSel.serialNumber=1,$.fn.carouFredSel.defaults={synchronise:!1,infinite:!0,circular:!0,responsive:!1,direction:"left",items:{start:0},scroll:{easing:"swing",duration:500,pauseOnHover:!1,event:"click",queue:!1}},$.fn.carouFredSel.configs={debug:!1,transition:!1,onWindowResize:"throttle",events:{prefix:"",namespace:"cfs"},wrapper:{element:"div",classname:"caroufredsel_wrapper"},classnames:{}},$.fn.carouFredSel.pageAnchorBuilder=function(t){return'<a href="#"><span>'+t+"</span></a>"},$.fn.carouFredSel.progressbarUpdater=function(t){$(this).css("width",t+"%")},$.fn.carouFredSel.cookie={get:function(t){t+="=";for(var e=document.cookie.split(";"),s=0,i=e.length;i>s;s++){for(var o=e[s];" "==o.charAt(0);)o=o.slice(1);if(0==o.indexOf(t))return o.slice(t.length)}return 0},set:function(t,e,s){var i="";if(s){var o=new Date;o.setTime(o.getTime()+24*s*60*60*1e3),i="; expires="+o.toGMTString()}document.cookie=t+"="+e+i+"; path=/"},remove:function(t){$.fn.carouFredSel.cookie.set(t,"",-1)}},$.extend($.easing,{quadratic:function(t){var e=t*t;return t*(-e*t+4*e-6*t+4)},cubic:function(t){return t*(4*t*t-9*t+6)},elastic:function(t){var e=t*t;return t*(33*e*e-106*e*t+126*e-67*t+15)}}))}(jQuery);
1
+ !function($){function sc_setScroll(t,e,s){return"transition"==s.transition&&"swing"==e&&(e="ease"),{anims:[],duration:t,orgDuration:t,easing:e,startTime:getTime()}}function sc_startScroll(t,e){for(var s=0,i=t.anims.length;i>s;s++){var o=t.anims[s];o&&o[0][e.transition](o[1],t.duration,t.easing,o[2])}}function sc_stopScroll(t,e){is_boolean(e)||(e=!0),is_object(t.pre)&&sc_stopScroll(t.pre,e);for(var s=0,i=t.anims.length;i>s;s++){var o=t.anims[s];o[0].stop(!0),e&&(o[0].css(o[1]),is_function(o[2])&&o[2]())}is_object(t.post)&&sc_stopScroll(t.post,e)}function sc_afterScroll(t,e,s){switch(e&&e.remove(),s.fx){case"fade":case"crossfade":case"cover-fade":case"uncover-fade":t.css("opacity",1),t.css("filter","")}}function sc_fireCallbacks(t,e,s,i,o){if(e[s]&&e[s].call(t,i),o[s].length)for(var n=0,r=o[s].length;r>n;n++)o[s][n].call(t,i);return[]}function sc_fireQueue(t,e,s){return e.length&&(t.trigger(cf_e(e[0][0],s),e[0][1]),e.shift()),e}function sc_hideHiddenItems(t){t.each(function(){var t=$(this);t.data("_cfs_isHidden",t.is(":hidden")).hide()})}function sc_showHiddenItems(t){t&&t.each(function(){var t=$(this);t.data("_cfs_isHidden")||t.show()})}function sc_clearTimers(t){return t.auto&&clearTimeout(t.auto),t.progress&&clearInterval(t.progress),t}function sc_mapCallbackArguments(t,e,s,i,o,n,r){return{width:r.width,height:r.height,items:{old:t,skipped:e,visible:s},scroll:{items:i,direction:o,duration:n}}}function sc_getDuration(t,e,s,i){var o=t.duration;return"none"==t.fx?0:("auto"==o?o=e.scroll.duration/e.scroll.items*s:10>o&&(o=i/o),1>o?0:("fade"==t.fx&&(o/=2),Math.round(o)))}function nv_showNavi(t,e,s){var i=is_number(t.items.minimum)?t.items.minimum:t.items.visible+1;if("show"==e||"hide"==e)var o=e;else if(i>e){debug(s,"Not enough items ("+e+" total, "+i+" needed): Hiding navigation.");var o="hide"}else var o="show";var n="show"==o?"removeClass":"addClass",r=cf_c("hidden",s);t.auto.button&&t.auto.button[o]()[n](r),t.prev.button&&t.prev.button[o]()[n](r),t.next.button&&t.next.button[o]()[n](r),t.pagination.container&&t.pagination.container[o]()[n](r)}function nv_enableNavi(t,e,s){if(!t.circular&&!t.infinite){var i="removeClass"==e||"addClass"==e?e:!1,o=cf_c("disabled",s);if(t.auto.button&&i&&t.auto.button[i](o),t.prev.button){var n=i||0==e?"addClass":"removeClass";t.prev.button[n](o)}if(t.next.button){var n=i||e==t.items.visible?"addClass":"removeClass";t.next.button[n](o)}}}function go_getObject(t,e){return is_function(e)?e=e.call(t):is_undefined(e)&&(e={}),e}function go_getItemsObject(t,e){return e=go_getObject(t,e),is_number(e)?e={visible:e}:"variable"==e?e={visible:e,width:e,height:e}:is_object(e)||(e={}),e}function go_getScrollObject(t,e){return e=go_getObject(t,e),is_number(e)?e=50>=e?{items:e}:{duration:e}:is_string(e)?e={easing:e}:is_object(e)||(e={}),e}function go_getNaviObject(t,e){if(e=go_getObject(t,e),is_string(e)){var s=cf_getKeyCode(e);e=-1==s?$(e):s}return e}function go_getAutoObject(t,e){return e=go_getNaviObject(t,e),is_jquery(e)?e={button:e}:is_boolean(e)?e={play:e}:is_number(e)&&(e={timeoutDuration:e}),e.progress&&(is_string(e.progress)||is_jquery(e.progress))&&(e.progress={bar:e.progress}),e}function go_complementAutoObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_boolean(e.play)||(e.play=!0),is_number(e.delay)||(e.delay=0),is_undefined(e.pauseOnEvent)&&(e.pauseOnEvent=!0),is_boolean(e.pauseOnResize)||(e.pauseOnResize=!0),is_number(e.timeoutDuration)||(e.timeoutDuration=e.duration<10?2500:5*e.duration),e.progress&&(is_function(e.progress.bar)&&(e.progress.bar=e.progress.bar.call(t)),is_string(e.progress.bar)&&(e.progress.bar=$(e.progress.bar)),e.progress.bar?(is_function(e.progress.updater)||(e.progress.updater=$.fn.carouFredSel.progressbarUpdater),is_number(e.progress.interval)||(e.progress.interval=50)):e.progress=!1),e}function go_getPrevNextObject(t,e){return e=go_getNaviObject(t,e),is_jquery(e)?e={button:e}:is_number(e)&&(e={key:e}),e}function go_complementPrevNextObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_string(e.key)&&(e.key=cf_getKeyCode(e.key)),e}function go_getPaginationObject(t,e){return e=go_getNaviObject(t,e),is_jquery(e)?e={container:e}:is_boolean(e)&&(e={keys:e}),e}function go_complementPaginationObject(t,e){return is_function(e.container)&&(e.container=e.container.call(t)),is_string(e.container)&&(e.container=$(e.container)),is_number(e.items)||(e.items=!1),is_boolean(e.keys)||(e.keys=!1),is_function(e.anchorBuilder)||is_false(e.anchorBuilder)||(e.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder),is_number(e.deviation)||(e.deviation=0),e}function go_getSwipeObject(t,e){return is_function(e)&&(e=e.call(t)),is_undefined(e)&&(e={onTouch:!1}),is_true(e)?e={onTouch:e}:is_number(e)&&(e={items:e}),e}function go_complementSwipeObject(t,e){return is_boolean(e.onTouch)||(e.onTouch=!0),is_boolean(e.onMouse)||(e.onMouse=!1),is_object(e.options)||(e.options={}),is_boolean(e.options.triggerOnTouchEnd)||(e.options.triggerOnTouchEnd=!1),e}function go_getMousewheelObject(t,e){return is_function(e)&&(e=e.call(t)),is_true(e)?e={}:is_number(e)?e={items:e}:is_undefined(e)&&(e=!1),e}function go_complementMousewheelObject(t,e){return e}function gn_getItemIndex(t,e,s,i,o){if(is_string(t)&&(t=$(t,o)),is_object(t)&&(t=$(t,o)),is_jquery(t)?(t=o.children().index(t),is_boolean(s)||(s=!1)):is_boolean(s)||(s=!0),is_number(t)||(t=0),is_number(e)||(e=0),s&&(t+=i.first),t+=e,i.total>0){for(;t>=i.total;)t-=i.total;for(;0>t;)t+=i.total}return t}function gn_getVisibleItemsPrev(t,e,s){for(var i=0,o=0,n=s;n>=0;n--){var r=t.eq(n);if(i+=r.is(":visible")?r[e.d.outerWidth](!0):0,i>e.maxDimension)return o;0==n&&(n=t.length),o++}}function gn_getVisibleItemsPrevFilter(t,e,s){return gn_getItemsPrevFilter(t,e.items.filter,e.items.visibleConf.org,s)}function gn_getScrollItemsPrevFilter(t,e,s,i){return gn_getItemsPrevFilter(t,e.items.filter,i,s)}function gn_getItemsPrevFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length;r>=0;r--){if(n++,n==c)return n;var a=t.eq(r);if(a.is(e)&&(o++,o==s))return n;0==r&&(r=c)}}function gn_getVisibleOrg(t,e){return e.items.visibleConf.org||t.children().slice(0,e.items.visible).filter(e.items.filter).length}function gn_getVisibleItemsNext(t,e,s){for(var i=0,o=0,n=s,r=t.length-1;r>=n;n++){var c=t.eq(n);if(i+=c.is(":visible")?c[e.d.outerWidth](!0):0,i>e.maxDimension)return o;if(o++,o==r+1)return o;n==r&&(n=-1)}}function gn_getVisibleItemsNextTestCircular(t,e,s,i){var o=gn_getVisibleItemsNext(t,e,s);return e.circular||s+o>i&&(o=i-s),o}function gn_getVisibleItemsNextFilter(t,e,s){return gn_getItemsNextFilter(t,e.items.filter,e.items.visibleConf.org,s,e.circular)}function gn_getScrollItemsNextFilter(t,e,s,i){return gn_getItemsNextFilter(t,e.items.filter,i+1,s,e.circular)-1}function gn_getItemsNextFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length-1;c>=r;r++){if(n++,n>=c)return n;var a=t.eq(r);if(a.is(e)&&(o++,o==s))return n;r==c&&(r=-1)}}function gi_getCurrentItems(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsPrev(t,e,s){return t.slice(s,e.items.visibleConf.old+s)}function gi_getNewItemsPrev(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsNext(t,e){return t.slice(0,e.items.visibleConf.old)}function gi_getNewItemsNext(t,e,s){return t.slice(s,e.items.visible+s)}function sz_storeMargin(t,e,s){e.usePadding&&(is_string(s)||(s="_cfs_origCssMargin"),t.each(function(){var t=$(this),i=parseInt(t.css(e.d.marginRight),10);is_number(i)||(i=0),t.data(s,i)}))}function sz_resetMargin(t,e,s){if(e.usePadding){var i=is_boolean(s)?s:!1;is_number(s)||(s=0),sz_storeMargin(t,e,"_cfs_tempCssMargin"),t.each(function(){var t=$(this);t.css(e.d.marginRight,i?t.data("_cfs_tempCssMargin"):s+t.data("_cfs_origCssMargin"))})}}function sz_storeOrigCss(t){t.each(function(){var t=$(this);t.data("_cfs_origCss",t.attr("style")||"")})}function sz_restoreOrigCss(t){t.each(function(){var t=$(this);t.attr("style",t.data("_cfs_origCss")||"")})}function sz_setResponsiveSizes(t,e){var s=(t.items.visible,t.items[t.d.width]),i=t[t.d.height],o=is_percentage(i);e.each(function(){var e=$(this),n=s-ms_getPaddingBorderMargin(e,t,"Width");e[t.d.width](n),o&&e[t.d.height](ms_getPercentage(n,i))})}function sz_setSizes(t,e){var s=t.parent(),i=t.children(),o=gi_getCurrentItems(i,e),n=cf_mapWrapperSizes(ms_getSizes(o,e,!0),e,!1);if(s.css(n),e.usePadding){var r=e.padding,c=r[e.d[1]];e.align&&0>c&&(c=0);var a=o.last();a.css(e.d.marginRight,a.data("_cfs_origCssMargin")+c),t.css(e.d.top,r[e.d[0]]),t.css(e.d.left,r[e.d[3]])}return t.css(e.d.width,n[e.d.width]+2*ms_getTotalSize(i,e,"width")),t.css(e.d.height,ms_getLargestSize(i,e,"height")),n}function ms_getSizes(t,e,s){return[ms_getTotalSize(t,e,"width",s),ms_getLargestSize(t,e,"height",s)]}function ms_getLargestSize(t,e,s,i){return is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i?e[e.d[s]]:is_number(e.items[e.d[s]])?e.items[e.d[s]]:(s=s.toLowerCase().indexOf("width")>-1?"outerWidth":"outerHeight",ms_getTrueLargestSize(t,e,s))}function ms_getTrueLargestSize(t,e,s){for(var i=0,o=0,n=t.length;n>o;o++){var r=t.eq(o),c=r.is(":visible")?r[e.d[s]](!0):0;c>i&&(i=c)}return i}function ms_getTotalSize(t,e,s,i){if(is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i)return e[e.d[s]];if(is_number(e.items[e.d[s]]))return e.items[e.d[s]]*t.length;for(var o=s.toLowerCase().indexOf("width")>-1?"outerWidth":"outerHeight",n=0,r=0,c=t.length;c>r;r++){var a=t.eq(r);n+=a.is(":visible")?a[e.d[o]](!0):0}return n}function ms_getParentSize(t,e,s){var i=t.is(":visible");i&&t.hide();var o=t.parent()[e.d[s]]();return i&&t.show(),o}function ms_getMaxDimension(t,e){return is_number(t[t.d.width])?t[t.d.width]:e}function ms_hasVariableSizes(t,e,s){for(var i=!1,o=!1,n=0,r=t.length;r>n;n++){var c=t.eq(n),a=c.is(":visible")?c[e.d[s]](!0):0;i===!1?i=a:i!=a&&(o=!0),0==i&&(o=!0)}return o}function ms_getPaddingBorderMargin(t,e,s){return t[e.d["outer"+s]](!0)-t[e.d[s.toLowerCase()]]()}function ms_getPercentage(t,e){if(is_percentage(e)){if(e=parseInt(e.slice(0,-1),10),!is_number(e))return t;t*=e/100}return t}function cf_e(t,e,s,i,o){return is_boolean(s)||(s=!0),is_boolean(i)||(i=!0),is_boolean(o)||(o=!1),s&&(t=e.events.prefix+t),i&&(t=t+"."+e.events.namespace),i&&o&&(t+=e.serialNumber),t}function cf_c(t,e){return is_string(e.classnames[t])?e.classnames[t]:t}function cf_mapWrapperSizes(t,e,s){is_boolean(s)||(s=!0);var i=e.usePadding&&s?e.padding:[0,0,0,0],o={};return o[e.d.width]=t[0]+i[1]+i[3],o[e.d.height]=t[1]+i[0]+i[2],o}function cf_sortParams(t,e){for(var s=[],i=0,o=t.length;o>i;i++)for(var n=0,r=e.length;r>n;n++)if(e[n].indexOf(typeof t[i])>-1&&is_undefined(s[n])){s[n]=t[i];break}return s}function cf_getPadding(t){if(is_undefined(t))return[0,0,0,0];if(is_number(t))return[t,t,t,t];if(is_string(t)&&(t=t.split("px").join("").split("em").join("").split(" ")),!is_array(t))return[0,0,0,0];for(var e=0;4>e;e++)t[e]=parseInt(t[e],10);switch(t.length){case 0:return[0,0,0,0];case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];default:return[t[0],t[1],t[2],t[3]]}}function cf_getAlignPadding(t,e){var s=is_number(e[e.d.width])?Math.ceil(e[e.d.width]-ms_getTotalSize(t,e,"width")):0;switch(e.align){case"left":return[0,s];case"right":return[s,0];case"center":default:return[Math.ceil(s/2),Math.floor(s/2)]}}function cf_getDimensions(t){for(var e=[["width","innerWidth","outerWidth","height","innerHeight","outerHeight","left","top","marginRight",0,1,2,3],["height","innerHeight","outerHeight","width","innerWidth","outerWidth","top","left","marginBottom",3,2,1,0]],s=e[0].length,i="right"==t.direction||"left"==t.direction?0:1,o={},n=0;s>n;n++)o[e[0][n]]=e[i][n];return o}function cf_getAdjust(t,e,s,i){var o=t;if(is_function(s))o=s.call(i,o);else if(is_string(s)){var n=s.split("+"),r=s.split("-");if(r.length>n.length)var c=!0,a=r[0],f=r[1];else var c=!1,a=n[0],f=n[1];switch(a){case"even":o=t%2==1?t-1:t;break;case"odd":o=t%2==0?t-1:t;break;default:o=t}f=parseInt(f,10),is_number(f)&&(c&&(f=-f),o+=f)}return(!is_number(o)||1>o)&&(o=1),o}function cf_getItemsAdjust(t,e,s,i){return cf_getItemAdjustMinMax(cf_getAdjust(t,e,s,i),e.items.visibleConf)}function cf_getItemAdjustMinMax(t,e){return is_number(e.min)&&t<e.min&&(t=e.min),is_number(e.max)&&t>e.max&&(t=e.max),1>t&&(t=1),t}function cf_getSynchArr(t){is_array(t)||(t=[[t]]),is_array(t[0])||(t=[t]);for(var e=0,s=t.length;s>e;e++)is_string(t[e][0])&&(t[e][0]=$(t[e][0])),is_boolean(t[e][1])||(t[e][1]=!0),is_boolean(t[e][2])||(t[e][2]=!0),is_number(t[e][3])||(t[e][3]=0);return t}function cf_getKeyCode(t){return"right"==t?39:"left"==t?37:"up"==t?38:"down"==t?40:-1}function cf_setCookie(t,e,s){if(t){var i=e.triggerHandler(cf_e("currentPosition",s));$.fn.carouFredSel.cookie.set(t,i)}}function cf_getCookie(t){var e=$.fn.carouFredSel.cookie.get(t);return""==e?0:e}function in_mapCss(t,e){for(var s={},i=0,o=e.length;o>i;i++)s[e[i]]=t.css(e[i]);return s}function in_complementItems(t,e,s,i){return is_object(t.visibleConf)||(t.visibleConf={}),is_object(t.sizesConf)||(t.sizesConf={}),0==t.start&&is_number(i)&&(t.start=i),is_object(t.visible)?(t.visibleConf.min=t.visible.min,t.visibleConf.max=t.visible.max,t.visible=!1):is_string(t.visible)?("variable"==t.visible?t.visibleConf.variable=!0:t.visibleConf.adjust=t.visible,t.visible=!1):is_function(t.visible)&&(t.visibleConf.adjust=t.visible,t.visible=!1),is_string(t.filter)||(t.filter=s.filter(":hidden").length>0?":visible":"*"),t[e.d.width]||(e.responsive?(debug(!0,"Set a "+e.d.width+" for the items!"),t[e.d.width]=ms_getTrueLargestSize(s,e,"outerWidth")):t[e.d.width]=ms_hasVariableSizes(s,e,"outerWidth")?"variable":s[e.d.outerWidth](!0)),t[e.d.height]||(t[e.d.height]=ms_hasVariableSizes(s,e,"outerHeight")?"variable":s[e.d.outerHeight](!0)),t.sizesConf.width=t.width,t.sizesConf.height=t.height,t}function in_complementVisibleItems(t,e){return"variable"==t.items[t.d.width]&&(t.items.visibleConf.variable=!0),t.items.visibleConf.variable||(is_number(t[t.d.width])?t.items.visible=Math.floor(t[t.d.width]/t.items[t.d.width]):(t.items.visible=Math.floor(e/t.items[t.d.width]),t[t.d.width]=t.items.visible*t.items[t.d.width],t.items.visibleConf.adjust||(t.align=!1)),("Infinity"==t.items.visible||t.items.visible<1)&&(debug(!0,'Not a valid number of visible items: Set to "variable".'),t.items.visibleConf.variable=!0)),t}function in_complementPrimarySize(t,e,s){return"auto"==t&&(t=ms_getTrueLargestSize(s,e,"outerWidth")),t}function in_complementSecondarySize(t,e,s){return"auto"==t&&(t=ms_getTrueLargestSize(s,e,"outerHeight")),t||(t=e.items[e.d.height]),t}function in_getAlignPadding(t,e){var s=cf_getAlignPadding(gi_getCurrentItems(e,t),t);return t.padding[t.d[1]]=s[1],t.padding[t.d[3]]=s[0],t}function in_getResponsiveValues(t,e){var s=cf_getItemAdjustMinMax(Math.ceil(t[t.d.width]/t.items[t.d.width]),t.items.visibleConf);s>e.length&&(s=e.length);var i=Math.floor(t[t.d.width]/s);return t.items.visible=s,t.items[t.d.width]=i,t[t.d.width]=s*i,t}function bt_pauseOnHoverConfig(t){if(is_string(t))var e=t.indexOf("immediate")>-1?!0:!1,s=t.indexOf("resume")>-1?!0:!1;else var e=s=!1;return[e,s]}function bt_mousesheelNumber(t){return is_number(t)?t:null}function is_null(t){return null===t}function is_undefined(t){return is_null(t)||"undefined"==typeof t||""===t||"undefined"===t}function is_array(t){return t instanceof Array}function is_jquery(t){return t instanceof jQuery}function is_object(t){return(t instanceof Object||"object"==typeof t)&&!is_null(t)&&!is_jquery(t)&&!is_array(t)&&!is_function(t)}function is_number(t){return(t instanceof Number||"number"==typeof t)&&!isNaN(t)}function is_string(t){return(t instanceof String||"string"==typeof t)&&!is_undefined(t)&&!is_true(t)&&!is_false(t)}function is_function(t){return t instanceof Function||"function"==typeof t}function is_boolean(t){return t instanceof Boolean||"boolean"==typeof t||is_true(t)||is_false(t)}function is_true(t){return t===!0||"true"===t}function is_false(t){return t===!1||"false"===t}function is_percentage(t){return is_string(t)&&"%"==t.slice(-1)}function getTime(){return(new Date).getTime()}function deprecated(t,e){debug(!0,t+" is DEPRECATED, support for it will be removed. Use "+e+" instead.")}function debug(t,e){if(!is_undefined(window.console)&&!is_undefined(window.console.log)){if(is_object(t)){var s=" ("+t.selector+")";t=t.debug}else var s="";if(!t)return!1;e=is_string(e)?"carouFredSel"+s+": "+e:["carouFredSel"+s+":",e],window.console.log(e)}return!1}$.fn.carouFredSel||($.fn.caroufredsel=$.fn.carouFredSel=function(options,configs){if(0==this.length)return debug(!0,'No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){$(this).carouFredSel(options,configs)});var $cfs=this,$tt0=this[0],starting_position=!1;$cfs.data("_cfs_isCarousel")&&(starting_position=$cfs.triggerHandler("_cfs_triggerEvent","currentPosition"),$cfs.trigger("_cfs_triggerEvent",["destroy",!0]));var FN={};FN._init=function(t,e,s){t=go_getObject($tt0,t),t.items=go_getItemsObject($tt0,t.items),t.scroll=go_getScrollObject($tt0,t.scroll),t.auto=go_getAutoObject($tt0,t.auto),t.prev=go_getPrevNextObject($tt0,t.prev),t.next=go_getPrevNextObject($tt0,t.next),t.pagination=go_getPaginationObject($tt0,t.pagination),t.swipe=go_getSwipeObject($tt0,t.swipe),t.mousewheel=go_getMousewheelObject($tt0,t.mousewheel),e&&(opts_orig=$.extend(!0,{},$.fn.carouFredSel.defaults,t)),opts=$.extend(!0,{},$.fn.carouFredSel.defaults,t),opts.d=cf_getDimensions(opts),crsl.direction="up"==opts.direction||"left"==opts.direction?"next":"prev";var i=$cfs.children(),o=ms_getParentSize($wrp,opts,"width");if(is_true(opts.cookie)&&(opts.cookie="caroufredsel_cookie_"+conf.serialNumber),opts.maxDimension=ms_getMaxDimension(opts,o),opts.items=in_complementItems(opts.items,opts,i,s),opts[opts.d.width]=in_complementPrimarySize(opts[opts.d.width],opts,i),opts[opts.d.height]=in_complementSecondarySize(opts[opts.d.height],opts,i),opts.responsive&&(is_percentage(opts[opts.d.width])||(opts[opts.d.width]="100%")),is_percentage(opts[opts.d.width])&&(crsl.upDateOnWindowResize=!0,crsl.primarySizePercentage=opts[opts.d.width],opts[opts.d.width]=ms_getPercentage(o,crsl.primarySizePercentage),opts.items.visible||(opts.items.visibleConf.variable=!0)),opts.responsive?(opts.usePadding=!1,opts.padding=[0,0,0,0],opts.align=!1,opts.items.visibleConf.variable=!1):(opts.items.visible||(opts=in_complementVisibleItems(opts,o)),opts[opts.d.width]||(!opts.items.visibleConf.variable&&is_number(opts.items[opts.d.width])&&"*"==opts.items.filter?(opts[opts.d.width]=opts.items.visible*opts.items[opts.d.width],opts.align=!1):opts[opts.d.width]="variable"),is_undefined(opts.align)&&(opts.align=is_number(opts[opts.d.width])?"center":!1),opts.items.visibleConf.variable&&(opts.items.visible=gn_getVisibleItemsNext(i,opts,0))),"*"==opts.items.filter||opts.items.visibleConf.variable||(opts.items.visibleConf.org=opts.items.visible,opts.items.visible=gn_getVisibleItemsNextFilter(i,opts,0)),opts.items.visible=cf_getItemsAdjust(opts.items.visible,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts.responsive)opts.items.visibleConf.min||(opts.items.visibleConf.min=opts.items.visible),opts.items.visibleConf.max||(opts.items.visibleConf.max=opts.items.visible),opts=in_getResponsiveValues(opts,i,o);else switch(opts.padding=cf_getPadding(opts.padding),"top"==opts.align?opts.align="left":"bottom"==opts.align&&(opts.align="right"),opts.align){case"center":case"left":case"right":"variable"!=opts[opts.d.width]&&(opts=in_getAlignPadding(opts,i),opts.usePadding=!0);break;default:opts.align=!1,opts.usePadding=0==opts.padding[0]&&0==opts.padding[1]&&0==opts.padding[2]&&0==opts.padding[3]?!1:!0}is_number(opts.scroll.duration)||(opts.scroll.duration=500),is_undefined(opts.scroll.items)&&(opts.scroll.items=opts.responsive||opts.items.visibleConf.variable||"*"!=opts.items.filter?"visible":opts.items.visible),opts.auto=$.extend(!0,{},opts.scroll,opts.auto),opts.prev=$.extend(!0,{},opts.scroll,opts.prev),opts.next=$.extend(!0,{},opts.scroll,opts.next),opts.pagination=$.extend(!0,{},opts.scroll,opts.pagination),opts.auto=go_complementAutoObject($tt0,opts.auto),opts.prev=go_complementPrevNextObject($tt0,opts.prev),opts.next=go_complementPrevNextObject($tt0,opts.next),opts.pagination=go_complementPaginationObject($tt0,opts.pagination),opts.swipe=go_complementSwipeObject($tt0,opts.swipe),opts.mousewheel=go_complementMousewheelObject($tt0,opts.mousewheel),opts.synchronise&&(opts.synchronise=cf_getSynchArr(opts.synchronise)),opts.auto.onPauseStart&&(opts.auto.onTimeoutStart=opts.auto.onPauseStart,deprecated("auto.onPauseStart","auto.onTimeoutStart")),opts.auto.onPausePause&&(opts.auto.onTimeoutPause=opts.auto.onPausePause,deprecated("auto.onPausePause","auto.onTimeoutPause")),opts.auto.onPauseEnd&&(opts.auto.onTimeoutEnd=opts.auto.onPauseEnd,deprecated("auto.onPauseEnd","auto.onTimeoutEnd")),opts.auto.pauseDuration&&(opts.auto.timeoutDuration=opts.auto.pauseDuration,deprecated("auto.pauseDuration","auto.timeoutDuration"))},FN._build=function(){$cfs.data("_cfs_isCarousel",!0);var t=$cfs.children(),e=in_mapCss($cfs,["textAlign","float","position","top","right","bottom","left","zIndex","width","height","marginTop","marginRight","marginBottom","marginLeft"]),s="relative";switch(e.position){case"absolute":case"fixed":s=e.position}"parent"==conf.wrapper?sz_storeOrigCss($wrp):$wrp.css(e),$wrp.css({overflow:"hidden",position:s}),sz_storeOrigCss($cfs),$cfs.data("_cfs_origCssZindex",e.zIndex),$cfs.css({textAlign:"left","float":"none",position:"absolute",top:0,right:"auto",bottom:"auto",left:0,marginTop:0,marginRight:0,marginBottom:0,marginLeft:0}),sz_storeMargin(t,opts),sz_storeOrigCss(t),opts.responsive&&sz_setResponsiveSizes(opts,t)},FN._bind_events=function(){FN._unbind_events(),$cfs.bind(cf_e("stop",conf),function(t,e){return t.stopPropagation(),crsl.isStopped||opts.auto.button&&opts.auto.button.addClass(cf_c("stopped",conf)),crsl.isStopped=!0,opts.auto.play&&(opts.auto.play=!1,$cfs.trigger(cf_e("pause",conf),e)),!0}),$cfs.bind(cf_e("finish",conf),function(t){return t.stopPropagation(),crsl.isScrolling&&sc_stopScroll(scrl),!0}),$cfs.bind(cf_e("pause",conf),function(t,e,s){if(t.stopPropagation(),tmrs=sc_clearTimers(tmrs),e&&crsl.isScrolling){scrl.isStopped=!0;var i=getTime()-scrl.startTime;scrl.duration-=i,scrl.pre&&(scrl.pre.duration-=i),scrl.post&&(scrl.post.duration-=i),sc_stopScroll(scrl,!1)}if(crsl.isPaused||crsl.isScrolling||s&&(tmrs.timePassed+=getTime()-tmrs.startTime),crsl.isPaused||opts.auto.button&&opts.auto.button.addClass(cf_c("paused",conf)),crsl.isPaused=!0,opts.auto.onTimeoutPause){var o=opts.auto.timeoutDuration-tmrs.timePassed,n=100-Math.ceil(100*o/opts.auto.timeoutDuration);opts.auto.onTimeoutPause.call($tt0,n,o)}return!0}),$cfs.bind(cf_e("play",conf),function(t,e,s,i){t.stopPropagation(),tmrs=sc_clearTimers(tmrs);var o=[e,s,i],n=["string","number","boolean"],r=cf_sortParams(o,n);if(e=r[0],s=r[1],i=r[2],"prev"!=e&&"next"!=e&&(e=crsl.direction),is_number(s)||(s=0),is_boolean(i)||(i=!1),i&&(crsl.isStopped=!1,opts.auto.play=!0),!opts.auto.play)return t.stopImmediatePropagation(),debug(conf,"Carousel stopped: Not scrolling.");crsl.isPaused&&opts.auto.button&&(opts.auto.button.removeClass(cf_c("stopped",conf)),opts.auto.button.removeClass(cf_c("paused",conf))),crsl.isPaused=!1,tmrs.startTime=getTime();var c=opts.auto.timeoutDuration+s;return dur2=c-tmrs.timePassed,perc=100-Math.ceil(100*dur2/c),opts.auto.progress&&(tmrs.progress=setInterval(function(){var t=getTime()-tmrs.startTime+tmrs.timePassed,e=Math.ceil(100*t/c);opts.auto.progress.updater.call(opts.auto.progress.bar[0],e)},opts.auto.progress.interval)),tmrs.auto=setTimeout(function(){opts.auto.progress&&opts.auto.progress.updater.call(opts.auto.progress.bar[0],100),opts.auto.onTimeoutEnd&&opts.auto.onTimeoutEnd.call($tt0,perc,dur2),crsl.isScrolling?$cfs.trigger(cf_e("play",conf),e):$cfs.trigger(cf_e(e,conf),opts.auto)},dur2),opts.auto.onTimeoutStart&&opts.auto.onTimeoutStart.call($tt0,perc,dur2),!0}),$cfs.bind(cf_e("resume",conf),function(t){return t.stopPropagation(),scrl.isStopped?(scrl.isStopped=!1,crsl.isPaused=!1,crsl.isScrolling=!0,scrl.startTime=getTime(),sc_startScroll(scrl,conf)):$cfs.trigger(cf_e("play",conf)),!0}),$cfs.bind(cf_e("prev",conf)+" "+cf_e("next",conf),function(t,e,s,i,o){if(t.stopPropagation(),crsl.isStopped||$cfs.is(":hidden"))return t.stopImmediatePropagation(),debug(conf,"Carousel stopped or hidden: Not scrolling.");var n=is_number(opts.items.minimum)?opts.items.minimum:opts.items.visible+1;if(n>itms.total)return t.stopImmediatePropagation(),debug(conf,"Not enough items ("+itms.total+" total, "+n+" needed): Not scrolling.");var r=[e,s,i,o],c=["object","number/string","function","boolean"],a=cf_sortParams(r,c);e=a[0],s=a[1],i=a[2],o=a[3];var f=t.type.slice(conf.events.prefix.length);if(is_object(e)||(e={}),is_function(i)&&(e.onAfter=i),is_boolean(o)&&(e.queue=o),e=$.extend(!0,{},opts[f],e),e.conditions&&!e.conditions.call($tt0,f))return t.stopImmediatePropagation(),debug(conf,'Callback "conditions" returned false.');if(!is_number(s)){if("*"!=opts.items.filter)s="visible";else for(var l=[s,e.items,opts[f].items],a=0,u=l.length;u>a;a++)if(is_number(l[a])||"page"==l[a]||"visible"==l[a]){s=l[a];break}switch(s){case"page":return t.stopImmediatePropagation(),$cfs.triggerHandler(cf_e(f+"Page",conf),[e,i]);case"visible":opts.items.visibleConf.variable||"*"!=opts.items.filter||(s=opts.items.visible)}}if(scrl.isStopped)return $cfs.trigger(cf_e("resume",conf)),$cfs.trigger(cf_e("queue",conf),[f,[e,s,i]]),t.stopImmediatePropagation(),debug(conf,"Carousel resumed scrolling.");if(e.duration>0&&crsl.isScrolling)return e.queue&&("last"==e.queue&&(queu=[]),("first"!=e.queue||0==queu.length)&&$cfs.trigger(cf_e("queue",conf),[f,[e,s,i]])),t.stopImmediatePropagation(),debug(conf,"Carousel currently scrolling.");if(tmrs.timePassed=0,$cfs.trigger(cf_e("slide_"+f,conf),[e,s]),opts.synchronise)for(var p=opts.synchronise,d=[e,s],g=0,u=p.length;u>g;g++){var m=f;p[g][2]||(m="prev"==m?"next":"prev"),p[g][1]||(d[0]=p[g][0].triggerHandler("_cfs_triggerEvent",["configuration",m])),d[1]=s+p[g][3],p[g][0].trigger("_cfs_triggerEvent",["slide_"+m,d])}return!0}),$cfs.bind(cf_e("slide_prev",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&0==itms.first)return opts.infinite&&$cfs.trigger(cf_e("next",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),!is_number(s)){if(opts.items.visibleConf.variable)s=gn_getVisibleItemsPrev(i,opts,itms.total-1);else if("*"!=opts.items.filter){var o=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts);s=gn_getScrollItemsPrevFilter(i,opts,itms.total-1,o)}else s=opts.items.visible;s=cf_getAdjust(s,opts,e.items,$tt0)}if(opts.circular||itms.total-s<itms.first&&(s=itms.total-itms.first),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){var n=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible+s<=n&&s<itms.total&&(s++,n=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0)),opts.items.visible=n}else if("*"!=opts.items.filter){var n=gn_getVisibleItemsNextFilter(i,opts,itms.total-s);opts.items.visible=cf_getItemsAdjust(n,opts,opts.items.visibleConf.adjust,$tt0)}if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items backward."),itms.first+=s;itms.first>=itms.total;)itms.first-=itms.total;opts.circular||(0==itms.first&&e.onEnd&&e.onEnd.call($tt0,"prev"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),$cfs.children().slice(itms.total-s,itms.total).prependTo($cfs),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var i=$cfs.children(),r=gi_getOldItemsPrev(i,opts,s),c=gi_getNewItemsPrev(i,opts),a=i.eq(s-1),f=r.last(),l=c.last();sz_resetMargin(i,opts);var u=0,p=0;if(opts.align){var d=cf_getAlignPadding(c,opts);u=d[0],p=d[1]}var g=0>u?opts.padding[opts.d[3]]:0,m=!1,_=$();if(opts.items.visible<s&&(_=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx)){var b=opts.items[opts.d.width];m=_,a=l,sc_hideHiddenItems(m),opts.items[opts.d.width]="variable"}var v=!1,h=ms_getTotalSize(i.slice(0,s),opts,"width"),w=cf_mapWrapperSizes(ms_getSizes(c,opts,!0),opts,!opts.usePadding),P=0,C={},x={},S={},y={},I={},z={},j={},N=sc_getDuration(e,opts,s,h);switch(e.fx){case"cover":case"cover-fade":P=ms_getTotalSize(i.slice(0,opts.items.visible),opts,"width")}m&&(opts.items[opts.d.width]=b),sz_resetMargin(i,opts,!0),p>=0&&sz_resetMargin(f,opts,opts.padding[opts.d[1]]),u>=0&&sz_resetMargin(a,opts,opts.padding[opts.d[3]]),opts.align&&(opts.padding[opts.d[1]]=p,opts.padding[opts.d[3]]=u),z[opts.d.left]=-(h-g),j[opts.d.left]=-(P-g),x[opts.d.left]=w[opts.d.width];var k=function(){},O=function(){},T=function(){},M=function(){},F=function(){},A=function(){},H=function(){},q=function(){},D=function(){},V=function(){},R=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":v=$cfs.clone(!0).appendTo($wrp)}switch(e.fx){case"crossfade":case"uncover":case"uncover-fade":v.children().slice(0,s).remove(),v.children().slice(opts.items.visibleConf.old).remove();break;case"cover":case"cover-fade":v.children().slice(opts.items.visible).remove(),v.css(j)}if($cfs.css(z),scrl=sc_setScroll(N,e.easing,conf),C[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0,("variable"==opts[opts.d.width]||"variable"==opts[opts.d.height])&&(k=function(){$wrp.css(w)},O=function(){scrl.anims.push([$wrp,w])}),opts.usePadding){switch(l.not(a).length&&(S[opts.d.marginRight]=a.data("_cfs_origCssMargin"),0>u?a.css(S):(H=function(){a.css(S)},q=function(){scrl.anims.push([a,S])})),e.fx){case"cover":case"cover-fade":v.children().eq(s-1).css(S)}l.not(f).length&&(y[opts.d.marginRight]=f.data("_cfs_origCssMargin"),T=function(){f.css(y)},M=function(){scrl.anims.push([f,y])}),p>=0&&(I[opts.d.marginRight]=l.data("_cfs_origCssMargin")+opts.padding[opts.d[1]],F=function(){l.css(I)},A=function(){scrl.anims.push([l,I])})}R=function(){$cfs.css(C)};var E=opts.items.visible+s-itms.total;V=function(){if(E>0&&($cfs.children().slice(itms.total).remove(),r=$($cfs.children().slice(itms.total-(opts.items.visible-E)).get().concat($cfs.children().slice(0,E).get()))),sc_showHiddenItems(m),opts.usePadding){var t=$cfs.children().eq(opts.items.visible+s-1);t.css(opts.d.marginRight,t.data("_cfs_origCssMargin"))}};var W=sc_mapCallbackArguments(r,_,c,s,"prev",N,w);switch(D=function(){sc_afterScroll($cfs,v,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",W,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))},crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",W,clbk),e.fx){case"none":$cfs.css(C),k(),T(),F(),H(),R(),V(),D();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){k(),T(),F(),H(),R(),V(),scrl=sc_setScroll(N,e.easing,conf),scrl.anims.push([$cfs,{opacity:1},D]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([v,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},D]),O(),T(),F(),H(),R(),V();break;case"cover":scrl.anims.push([v,C,function(){T(),F(),H(),R(),V(),D()}]),O();break;case"cover-fade":scrl.anims.push([$cfs,{opacity:0}]),scrl.anims.push([v,C,function(){T(),F(),H(),R(),V(),D()}]),O();break;case"uncover":scrl.anims.push([v,x,D]),O(),T(),F(),H(),R(),V();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([v,x,D]),O(),T(),F(),H(),R(),V();break;default:scrl.anims.push([$cfs,C,function(){V(),D()}]),O(),M(),A(),q()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,w]),!0
2
  }),$cfs.bind(cf_e("slide_next",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&itms.first==opts.items.visible)return opts.infinite&&$cfs.trigger(cf_e("prev",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),!is_number(s)){if("*"!=opts.items.filter){var o=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts);s=gn_getScrollItemsNextFilter(i,opts,0,o)}else s=opts.items.visible;s=cf_getAdjust(s,opts,e.items,$tt0)}var n=0==itms.first?itms.total:itms.first;if(!opts.circular){if(opts.items.visibleConf.variable)var r=gn_getVisibleItemsNext(i,opts,s),o=gn_getVisibleItemsPrev(i,opts,n-1);else var r=opts.items.visible,o=opts.items.visible;s+r>n&&(s=n-o)}if(opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){for(var r=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,n),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible-s>=r&&s<itms.total;)s++,r=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,n),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible=r}else if("*"!=opts.items.filter){var r=gn_getVisibleItemsNextFilter(i,opts,s);opts.items.visible=cf_getItemsAdjust(r,opts,opts.items.visibleConf.adjust,$tt0)}if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items forward."),itms.first-=s;itms.first<0;)itms.first+=itms.total;opts.circular||(itms.first==opts.items.visible&&e.onEnd&&e.onEnd.call($tt0,"next"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var i=$cfs.children(),c=gi_getOldItemsNext(i,opts),a=gi_getNewItemsNext(i,opts,s),f=i.eq(s-1),l=c.last(),u=a.last();sz_resetMargin(i,opts);var p=0,d=0;if(opts.align){var g=cf_getAlignPadding(a,opts);p=g[0],d=g[1]}var m=!1,_=$();if(opts.items.visibleConf.old<s&&(_=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx)){var b=opts.items[opts.d.width];m=_,f=l,sc_hideHiddenItems(m),opts.items[opts.d.width]="variable"}var v=!1,h=ms_getTotalSize(i.slice(0,s),opts,"width"),w=cf_mapWrapperSizes(ms_getSizes(a,opts,!0),opts,!opts.usePadding),P=0,C={},x={},S={},y={},I={},z=sc_getDuration(e,opts,s,h);switch(e.fx){case"uncover":case"uncover-fade":P=ms_getTotalSize(i.slice(0,opts.items.visibleConf.old),opts,"width")}m&&(opts.items[opts.d.width]=b),opts.align&&opts.padding[opts.d[1]]<0&&(opts.padding[opts.d[1]]=0),sz_resetMargin(i,opts,!0),sz_resetMargin(l,opts,opts.padding[opts.d[1]]),opts.align&&(opts.padding[opts.d[1]]=d,opts.padding[opts.d[3]]=p),I[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0;var j=function(){},N=function(){},k=function(){},O=function(){},T=function(){},M=function(){},F=function(){},A=function(){},H=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":v=$cfs.clone(!0).appendTo($wrp),v.children().slice(opts.items.visibleConf.old).remove()}switch(e.fx){case"crossfade":case"cover":case"cover-fade":$cfs.css("zIndex",1),v.css("zIndex",0)}if(scrl=sc_setScroll(z,e.easing,conf),C[opts.d.left]=-h,x[opts.d.left]=-P,0>p&&(C[opts.d.left]+=p),("variable"==opts[opts.d.width]||"variable"==opts[opts.d.height])&&(j=function(){$wrp.css(w)},N=function(){scrl.anims.push([$wrp,w])}),opts.usePadding){var q=u.data("_cfs_origCssMargin");d>=0&&(q+=opts.padding[opts.d[1]]),u.css(opts.d.marginRight,q),f.not(l).length&&(y[opts.d.marginRight]=l.data("_cfs_origCssMargin")),k=function(){l.css(y)},O=function(){scrl.anims.push([l,y])};var D=f.data("_cfs_origCssMargin");p>0&&(D+=opts.padding[opts.d[3]]),S[opts.d.marginRight]=D,T=function(){f.css(S)},M=function(){scrl.anims.push([f,S])}}H=function(){$cfs.css(I)};var V=opts.items.visible+s-itms.total;A=function(){V>0&&$cfs.children().slice(itms.total).remove();var t=$cfs.children().slice(0,s).appendTo($cfs).last();if(V>0&&(a=gi_getCurrentItems(i,opts)),sc_showHiddenItems(m),opts.usePadding){if(itms.total<opts.items.visible+s){var e=$cfs.children().eq(opts.items.visible-1);e.css(opts.d.marginRight,e.data("_cfs_origCssMargin")+opts.padding[opts.d[1]])}t.css(opts.d.marginRight,t.data("_cfs_origCssMargin"))}};var R=sc_mapCallbackArguments(c,_,a,s,"next",z,w);switch(F=function(){$cfs.css("zIndex",$cfs.data("_cfs_origCssZindex")),sc_afterScroll($cfs,v,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",R,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))},crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",R,clbk),e.fx){case"none":$cfs.css(C),j(),k(),T(),H(),A(),F();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){j(),k(),T(),H(),A(),scrl=sc_setScroll(z,e.easing,conf),scrl.anims.push([$cfs,{opacity:1},F]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([v,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},F]),N(),k(),T(),H(),A();break;case"cover":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([$cfs,I,F]),N(),k(),T(),A();break;case"cover-fade":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([v,{opacity:0}]),scrl.anims.push([$cfs,I,F]),N(),k(),T(),A();break;case"uncover":scrl.anims.push([v,x,F]),N(),k(),T(),H(),A();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([v,x,F]),N(),k(),T(),H(),A();break;default:scrl.anims.push([$cfs,C,function(){H(),A(),F()}]),N(),O(),M()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,w]),!0}),$cfs.bind(cf_e("slideTo",conf),function(t,e,s,i,o,n,r){t.stopPropagation();var c=[e,s,i,o,n,r],a=["string/number/object","number","boolean","object","string","function"],f=cf_sortParams(c,a);return o=f[3],n=f[4],r=f[5],e=gn_getItemIndex(f[0],f[1],f[2],itms,$cfs),0==e?!1:(is_object(o)||(o=!1),"prev"!=n&&"next"!=n&&(n=opts.circular?e<=itms.total/2?"next":"prev":0==itms.first||itms.first>e?"next":"prev"),"prev"==n&&(e=itms.total-e),$cfs.trigger(cf_e(n,conf),[o,e,r]),!0)}),$cfs.bind(cf_e("prevPage",conf),function(t,e,s){t.stopPropagation();var i=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[i-1,e,"prev",s])}),$cfs.bind(cf_e("nextPage",conf),function(t,e,s){t.stopPropagation();var i=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[i+1,e,"next",s])}),$cfs.bind(cf_e("slideToPage",conf),function(t,e,s,i,o){t.stopPropagation(),is_number(e)||(e=$cfs.triggerHandler(cf_e("currentPage",conf)));var n=opts.pagination.items||opts.items.visible,r=Math.ceil(itms.total/n)-1;return 0>e&&(e=r),e>r&&(e=0),$cfs.triggerHandler(cf_e("slideTo",conf),[e*n,0,!0,s,i,o])}),$cfs.bind(cf_e("jumpToStart",conf),function(t,e){if(t.stopPropagation(),e=e?gn_getItemIndex(e,0,!0,itms,$cfs):0,e+=itms.first,0!=e){if(itms.total>0)for(;e>itms.total;)e-=itms.total;$cfs.prepend($cfs.children().slice(e,itms.total))}return!0}),$cfs.bind(cf_e("synchronise",conf),function(t,e){if(t.stopPropagation(),e)e=cf_getSynchArr(e);else{if(!opts.synchronise)return debug(conf,"No carousel to synchronise.");e=opts.synchronise}for(var s=$cfs.triggerHandler(cf_e("currentPosition",conf)),i=!0,o=0,n=e.length;n>o;o++)e[o][0].triggerHandler(cf_e("slideTo",conf),[s,e[o][3],!0])||(i=!1);return i}),$cfs.bind(cf_e("queue",conf),function(t,e,s){return t.stopPropagation(),is_function(e)?e.call($tt0,queu):is_array(e)?queu=e:is_undefined(e)||queu.push([e,s]),queu}),$cfs.bind(cf_e("insertItem",conf),function(t,e,s,i,o){t.stopPropagation();var n=[e,s,i,o],r=["string/object","string/number/object","boolean","number"],c=cf_sortParams(n,r);if(e=c[0],s=c[1],i=c[2],o=c[3],is_object(e)&&!is_jquery(e)?e=$(e):is_string(e)&&(e=$(e)),!is_jquery(e)||0==e.length)return debug(conf,"Not a valid object.");is_undefined(s)&&(s="end"),sz_storeMargin(e,opts),sz_storeOrigCss(e);var a=s,f="before";"end"==s?i?(0==itms.first?(s=itms.total-1,f="after"):(s=itms.first,itms.first+=e.length),0>s&&(s=0)):(s=itms.total-1,f="after"):s=gn_getItemIndex(s,o,i,itms,$cfs);var l=$cfs.children().eq(s);return l.length?l[f](e):(debug(conf,"Correct insert-position not found! Appending item to the end."),$cfs.append(e)),"end"==a||i||s<itms.first&&(itms.first+=e.length),itms.total=$cfs.children().length,itms.first>=itms.total&&(itms.first-=itms.total),$cfs.trigger(cf_e("updateSizes",conf)),$cfs.trigger(cf_e("linkAnchors",conf)),!0}),$cfs.bind(cf_e("removeItem",conf),function(t,e,s,i){t.stopPropagation();var o=[e,s,i],n=["string/number/object","boolean","number"],r=cf_sortParams(o,n);e=r[0],s=r[1],i=r[2];if(e instanceof $&&e.length>1)return c=$(),e.each(function(){var t=$cfs.trigger(cf_e("removeItem",conf),[$(this),s,i]);t&&(c=c.add(t))}),c;if(is_undefined(e)||"end"==e)c=$cfs.children().last();else{e=gn_getItemIndex(e,i,s,itms,$cfs);var c=$cfs.children().eq(e);c.length&&e<itms.first&&(itms.first-=c.length)}return c&&c.length&&(c.detach(),itms.total=$cfs.children().length,$cfs.trigger(cf_e("updateSizes",conf))),c}),$cfs.bind(cf_e("onBefore",conf)+" "+cf_e("onAfter",conf),function(t,e){t.stopPropagation();var s=t.type.slice(conf.events.prefix.length);return is_array(e)&&(clbk[s]=e),is_function(e)&&clbk[s].push(e),clbk[s]}),$cfs.bind(cf_e("currentPosition",conf),function(t,e){if(t.stopPropagation(),0==itms.first)var s=0;else var s=itms.total-itms.first;return is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("currentPage",conf),function(t,e){t.stopPropagation();var s,i=opts.pagination.items||opts.items.visible,o=Math.ceil(itms.total/i-1);return s=0==itms.first?0:itms.first<itms.total%i?0:itms.first!=i||opts.circular?Math.round((itms.total-itms.first)/i):o,0>s&&(s=0),s>o&&(s=o),is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("currentVisible",conf),function(t,e){t.stopPropagation();var s=gi_getCurrentItems($cfs.children(),opts);return is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("slice",conf),function(t,e,s,i){if(t.stopPropagation(),0==itms.total)return!1;var o=[e,s,i],n=["number","number","function"],r=cf_sortParams(o,n);if(e=is_number(r[0])?r[0]:0,s=is_number(r[1])?r[1]:itms.total,i=r[2],e+=itms.first,s+=itms.first,items.total>0){for(;e>itms.total;)e-=itms.total;for(;s>itms.total;)s-=itms.total;for(;0>e;)e+=itms.total;for(;0>s;)s+=itms.total}var c,a=$cfs.children();return c=s>e?a.slice(e,s):$(a.slice(e,itms.total).get().concat(a.slice(0,s).get())),is_function(i)&&i.call($tt0,c),c}),$cfs.bind(cf_e("isPaused",conf)+" "+cf_e("isStopped",conf)+" "+cf_e("isScrolling",conf),function(t,e){t.stopPropagation();var s=t.type.slice(conf.events.prefix.length),i=crsl[s];return is_function(e)&&e.call($tt0,i),i}),$cfs.bind(cf_e("configuration",conf),function(e,a,b,c){e.stopPropagation();var reInit=!1;if(is_function(a))a.call($tt0,opts);else if(is_object(a))opts_orig=$.extend(!0,{},opts_orig,a),b!==!1?reInit=!0:opts=$.extend(!0,{},opts,a);else if(!is_undefined(a))if(is_function(b)){var val=eval("opts."+a);is_undefined(val)&&(val=""),b.call($tt0,val)}else{if(is_undefined(b))return eval("opts."+a);"boolean"!=typeof c&&(c=!0),eval("opts_orig."+a+" = b"),c!==!1?reInit=!0:eval("opts."+a+" = b")}if(reInit){sz_resetMargin($cfs.children(),opts),FN._init(opts_orig),FN._bind_buttons();var sz=sz_setSizes($cfs,opts);$cfs.trigger(cf_e("updatePageStatus",conf),[!0,sz])}return opts}),$cfs.bind(cf_e("linkAnchors",conf),function(t,e,s){return t.stopPropagation(),is_undefined(e)?e=$("body"):is_string(e)&&(e=$(e)),is_jquery(e)&&0!=e.length?(is_string(s)||(s="a.caroufredsel"),e.find(s).each(function(){var t=this.hash||"";t.length>0&&-1!=$cfs.children().index($(t))&&$(this).unbind("click").click(function(e){e.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),t)})}),!0):debug(conf,"Not a valid object.")}),$cfs.bind(cf_e("updatePageStatus",conf),function(t,e){if(t.stopPropagation(),opts.pagination.container){var s=opts.pagination.items||opts.items.visible,i=Math.ceil(itms.total/s);e&&(opts.pagination.anchorBuilder&&(opts.pagination.container.children().remove(),opts.pagination.container.each(function(){for(var t=0;i>t;t++){var e=$cfs.children().eq(gn_getItemIndex(t*s,0,!0,itms,$cfs));$(this).append(opts.pagination.anchorBuilder.call(e[0],t+1))}})),opts.pagination.container.each(function(){$(this).children().unbind(opts.pagination.event).each(function(t){$(this).bind(opts.pagination.event,function(e){e.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[t*s,-opts.pagination.deviation,!0,opts.pagination])})})}));var o=$cfs.triggerHandler(cf_e("currentPage",conf))+opts.pagination.deviation;return o>=i&&(o=0),0>o&&(o=i-1),opts.pagination.container.each(function(){$(this).children().removeClass(cf_c("selected",conf)).eq(o).addClass(cf_c("selected",conf))}),!0}}),$cfs.bind(cf_e("updateSizes",conf),function(){var t=opts.items.visible,e=$cfs.children(),s=ms_getParentSize($wrp,opts,"width");if(itms.total=e.length,crsl.primarySizePercentage?(opts.maxDimension=s,opts[opts.d.width]=ms_getPercentage(s,crsl.primarySizePercentage)):opts.maxDimension=ms_getMaxDimension(opts,s),opts.responsive?(opts.items.width=opts.items.sizesConf.width,opts.items.height=opts.items.sizesConf.height,opts=in_getResponsiveValues(opts,e,s),t=opts.items.visible,sz_setResponsiveSizes(opts,e)):opts.items.visibleConf.variable?t=gn_getVisibleItemsNext(e,opts,0):"*"!=opts.items.filter&&(t=gn_getVisibleItemsNextFilter(e,opts,0)),!opts.circular&&0!=itms.first&&t>itms.first){if(opts.items.visibleConf.variable)var i=gn_getVisibleItemsPrev(e,opts,itms.first)-itms.first;else if("*"!=opts.items.filter)var i=gn_getVisibleItemsPrevFilter(e,opts,itms.first)-itms.first;else var i=opts.items.visible-itms.first;debug(conf,"Preventing non-circular: sliding "+i+" items backward."),$cfs.trigger(cf_e("prev",conf),i)}opts.items.visible=cf_getItemsAdjust(t,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts=in_getAlignPadding(opts,e);var o=sz_setSizes($cfs,opts);return $cfs.trigger(cf_e("updatePageStatus",conf),[!0,o]),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),o}),$cfs.bind(cf_e("destroy",conf),function(t,e){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),$cfs.data("_cfs_isCarousel",!1),$cfs.trigger(cf_e("finish",conf)),e&&$cfs.trigger(cf_e("jumpToStart",conf)),sz_restoreOrigCss($cfs.children()),sz_restoreOrigCss($cfs),FN._unbind_events(),FN._unbind_buttons(),"parent"==conf.wrapper?sz_restoreOrigCss($wrp):$wrp.replaceWith($cfs),!0}),$cfs.bind(cf_e("debug",conf),function(){return debug(conf,"Carousel width: "+opts.width),debug(conf,"Carousel height: "+opts.height),debug(conf,"Item widths: "+opts.items.width),debug(conf,"Item heights: "+opts.items.height),debug(conf,"Number of items visible: "+opts.items.visible),opts.auto.play&&debug(conf,"Number of items scrolled automatically: "+opts.auto.items),opts.prev.button&&debug(conf,"Number of items scrolled backward: "+opts.prev.items),opts.next.button&&debug(conf,"Number of items scrolled forward: "+opts.next.items),conf.debug}),$cfs.bind("_cfs_triggerEvent",function(t,e,s){return t.stopPropagation(),$cfs.triggerHandler(cf_e(e,conf),s)})},FN._unbind_events=function(){$cfs.unbind(cf_e("",conf)),$cfs.unbind(cf_e("",conf,!1)),$cfs.unbind("_cfs_triggerEvent")},FN._bind_buttons=function(){if(FN._unbind_buttons(),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),opts.auto.pauseOnHover){var t=bt_pauseOnHoverConfig(opts.auto.pauseOnHover);$wrp.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.auto.button&&opts.auto.button.bind(cf_e(opts.auto.event,conf,!1),function(t){t.preventDefault();var e=!1,s=null;crsl.isPaused?e="play":opts.auto.pauseOnEvent&&(e="pause",s=bt_pauseOnHoverConfig(opts.auto.pauseOnEvent)),e&&$cfs.trigger(cf_e(e,conf),s)}),opts.prev.button&&(opts.prev.button.bind(cf_e(opts.prev.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("prev",conf))}),opts.prev.pauseOnHover)){var t=bt_pauseOnHoverConfig(opts.prev.pauseOnHover);opts.prev.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.next.button&&(opts.next.button.bind(cf_e(opts.next.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("next",conf))}),opts.next.pauseOnHover)){var t=bt_pauseOnHoverConfig(opts.next.pauseOnHover);opts.next.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.pagination.container&&opts.pagination.pauseOnHover){var t=bt_pauseOnHoverConfig(opts.pagination.pauseOnHover);opts.pagination.container.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if((opts.prev.key||opts.next.key)&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e==opts.next.key&&(t.preventDefault(),$cfs.trigger(cf_e("next",conf))),e==opts.prev.key&&(t.preventDefault(),$cfs.trigger(cf_e("prev",conf)))}),opts.pagination.keys&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e>=49&&58>e&&(e=(e-49)*opts.items.visible,e<=itms.total&&(t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e,0,!0,opts.pagination])))}),$.fn.swipe){var e="ontouchstart"in window;if(e&&opts.swipe.onTouch||!e&&opts.swipe.onMouse){var s=$.extend(!0,{},opts.prev,opts.swipe),i=$.extend(!0,{},opts.next,opts.swipe),o=function(){$cfs.trigger(cf_e("prev",conf),[s])},n=function(){$cfs.trigger(cf_e("next",conf),[i])};switch(opts.direction){case"up":case"down":opts.swipe.options.swipeUp=n,opts.swipe.options.swipeDown=o;break;default:opts.swipe.options.swipeLeft=n,opts.swipe.options.swipeRight=o}crsl.swipe&&$cfs.swipe("destroy"),$wrp.swipe(opts.swipe.options),$wrp.css("cursor","move"),crsl.swipe=!0}}if($.fn.mousewheel&&opts.mousewheel){var r=$.extend(!0,{},opts.prev,opts.mousewheel),c=$.extend(!0,{},opts.next,opts.mousewheel);crsl.mousewheel&&$wrp.unbind(cf_e("mousewheel",conf,!1)),$wrp.bind(cf_e("mousewheel",conf,!1),function(t,e){t.preventDefault(),e>0?$cfs.trigger(cf_e("prev",conf),[r]):$cfs.trigger(cf_e("next",conf),[c])}),crsl.mousewheel=!0}if(opts.auto.play&&$cfs.trigger(cf_e("play",conf),opts.auto.delay),crsl.upDateOnWindowResize){var a=function(){$cfs.trigger(cf_e("finish",conf)),opts.auto.pauseOnResize&&!crsl.isPaused&&$cfs.trigger(cf_e("play",conf)),sz_resetMargin($cfs.children(),opts),$cfs.trigger(cf_e("updateSizes",conf))},f=$(window),l=null;if($.debounce&&"debounce"==conf.onWindowResize)l=$.debounce(200,a);else if($.throttle&&"throttle"==conf.onWindowResize)l=$.throttle(300,a);else{var u=0,p=0;l=function(){var t=f.width(),e=f.height();(t!=u||e!=p)&&(a(),u=t,p=e)}}f.bind(cf_e("resize",conf,!1,!0,!0),l)}},FN._unbind_buttons=function(){var t=(cf_e("",conf),cf_e("",conf,!1));ns3=cf_e("",conf,!1,!0,!0),$(document).unbind(ns3),$(window).unbind(ns3),$wrp.unbind(t),opts.auto.button&&opts.auto.button.unbind(t),opts.prev.button&&opts.prev.button.unbind(t),opts.next.button&&opts.next.button.unbind(t),opts.pagination.container&&(opts.pagination.container.unbind(t),opts.pagination.anchorBuilder&&opts.pagination.container.children().remove()),crsl.swipe&&($cfs.swipe("destroy"),$wrp.css("cursor","default"),crsl.swipe=!1),crsl.mousewheel&&(crsl.mousewheel=!1),nv_showNavi(opts,"hide",conf),nv_enableNavi(opts,"removeClass",conf)},is_boolean(configs)&&(configs={debug:configs});var crsl={direction:"next",isPaused:!0,isScrolling:!1,isStopped:!1,mousewheel:!1,swipe:!1},itms={total:$cfs.children().length,first:0},tmrs={auto:null,progress:null,startTime:getTime(),timePassed:0},scrl={isStopped:!1,duration:0,startTime:0,easing:"",anims:[]},clbk={onBefore:[],onAfter:[]},queu=[],conf=$.extend(!0,{},$.fn.carouFredSel.configs,configs),opts={},opts_orig=$.extend(!0,{},options),$wrp="parent"==conf.wrapper?$cfs.parent():$cfs.wrap("<"+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />').parent();if(conf.selector=$cfs.selector,conf.serialNumber=$.fn.carouFredSel.serialNumber++,conf.transition=conf.transition&&$.fn.transition?"transition":"animate",FN._init(opts_orig,!0,starting_position),FN._build(),FN._bind_events(),FN._bind_buttons(),is_array(opts.items.start))var start_arr=opts.items.start;else{var start_arr=[];0!=opts.items.start&&start_arr.push(opts.items.start)}if(opts.cookie&&start_arr.unshift(parseInt(cf_getCookie(opts.cookie),10)),start_arr.length>0)for(var a=0,l=start_arr.length;l>a;a++){var s=start_arr[a];if(0!=s){if(s===!0){if(s=window.location.hash,s.length<1)continue}else"random"===s&&(s=Math.floor(Math.random()*itms.total));if($cfs.triggerHandler(cf_e("slideTo",conf),[s,0,!0,{fx:"none"}]))break}}var siz=sz_setSizes($cfs,opts),itm=gi_getCurrentItems($cfs.children(),opts);return opts.onCreate&&opts.onCreate.call($tt0,{width:siz.width,height:siz.height,items:itm}),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,siz]),$cfs.trigger(cf_e("linkAnchors",conf)),conf.debug&&$cfs.trigger(cf_e("debug",conf)),$cfs},$.fn.carouFredSel.serialNumber=1,$.fn.carouFredSel.defaults={synchronise:!1,infinite:!0,circular:!0,responsive:!1,direction:"left",items:{start:0},scroll:{easing:"swing",duration:500,pauseOnHover:!1,event:"click",queue:!1}},$.fn.carouFredSel.configs={debug:!1,transition:!1,onWindowResize:"throttle",events:{prefix:"",namespace:"cfs"},wrapper:{element:"div",classname:"caroufredsel_wrapper"},classnames:{}},$.fn.carouFredSel.pageAnchorBuilder=function(t){return'<a href="#"><span>'+t+"</span></a>"},$.fn.carouFredSel.progressbarUpdater=function(t){$(this).css("width",t+"%")},$.fn.carouFredSel.cookie={get:function(t){t+="=";for(var e=document.cookie.split(";"),s=0,i=e.length;i>s;s++){for(var o=e[s];" "==o.charAt(0);)o=o.slice(1);if(0==o.indexOf(t))return o.slice(t.length)}return 0},set:function(t,e,s){var i="";if(s){var o=new Date;o.setTime(o.getTime()+24*s*60*60*1e3),i="; expires="+o.toGMTString()}document.cookie=t+"="+e+i+"; path=/"},remove:function(t){$.fn.carouFredSel.cookie.set(t,"",-1)}},$.extend($.easing,{quadratic:function(t){var e=t*t;return t*(-e*t+4*e-6*t+4)},cubic:function(t){return t*(4*t*t-9*t+6)},elastic:function(t){var e=t*t;return t*(33*e*e-106*e*t+126*e-67*t+15)}}))}(jQuery);
assets/js/jquery.min.js CHANGED
@@ -1 +1 @@
1
- !function($){function sc_setScroll(t,e,s){return{anims:[],duration:t,orgDuration:t,easing:e="transition"==s.transition&&"swing"==e?"ease":e,startTime:getTime()}}function sc_startScroll(t,e){for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o&&o[0][e.transition](o[1],t.duration,t.easing,o[2])}}function sc_stopScroll(t,e){is_boolean(e)||(e=!0),is_object(t.pre)&&sc_stopScroll(t.pre,e);for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o[0].stop(!0),e&&(o[0].css(o[1]),is_function(o[2])&&o[2]())}is_object(t.post)&&sc_stopScroll(t.post,e)}function sc_afterScroll(t,e,s){switch(e&&e.remove(),s.fx){case"fade":case"crossfade":case"cover-fade":case"uncover-fade":t.css("opacity",1),t.css("filter","")}}function sc_fireCallbacks(t,e,s,i,o){if(e[s]&&e[s].call(t,i),o[s].length)for(var n=0,r=o[s].length;n<r;n++)o[s][n].call(t,i);return[]}function sc_fireQueue(t,e,s){return e.length&&(t.trigger(cf_e(e[0][0],s),e[0][1]),e.shift()),e}function sc_hideHiddenItems(t){t.each(function(){var t=$(this);t.data("_cfs_isHidden",t.is(":hidden")).hide()})}function sc_showHiddenItems(t){t&&t.each(function(){var t=$(this);t.data("_cfs_isHidden")||t.show()})}function sc_clearTimers(t){return t.auto&&clearTimeout(t.auto),t.progress&&clearInterval(t.progress),t}function sc_mapCallbackArguments(t,e,s,i,o,n,r){return{width:r.width,height:r.height,items:{old:t,skipped:e,visible:s},scroll:{items:i,direction:o,duration:n}}}function sc_getDuration(t,e,s,i){var o=t.duration;return"none"==t.fx?0:("auto"==o?o=e.scroll.duration/e.scroll.items*s:o<10&&(o=i/o),o<1?0:("fade"==t.fx&&(o/=2),Math.round(o)))}function nv_showNavi(t,e,s){var i=is_number(t.items.minimum)?t.items.minimum:t.items.visible+1,i="show"==(e="show"==e||"hide"==e?e:e<i?(debug(s,"Not enough items ("+e+" total, "+i+" needed): Hiding navigation."),"hide"):"show")?"removeClass":"addClass",s=cf_c("hidden",s);t.auto.button&&t.auto.button[e]()[i](s),t.prev.button&&t.prev.button[e]()[i](s),t.next.button&&t.next.button[e]()[i](s),t.pagination.container&&t.pagination.container[e]()[i](s)}function nv_enableNavi(t,e,s){var i,o;t.circular||t.infinite||(i=("removeClass"==e||"addClass"==e)&&e,s=cf_c("disabled",s),t.auto.button&&i&&t.auto.button[i](s),t.prev.button&&t.prev.button[o=i||0==e?"addClass":"removeClass"](s),t.next.button&&(o=i||e==t.items.visible?"addClass":"removeClass",t.next.button[o](s)))}function go_getObject(t,e){return is_function(e)?e=e.call(t):is_undefined(e)&&(e={}),e}function go_getItemsObject(t,e){return is_number(e=go_getObject(t,e))?e={visible:e}:"variable"==e?e={visible:e,width:e,height:e}:is_object(e)||(e={}),e}function go_getScrollObject(t,e){return is_number(e=go_getObject(t,e))?e=e<=50?{items:e}:{duration:e}:is_string(e)?e={easing:e}:is_object(e)||(e={}),e}function go_getNaviObject(t,e){return e=is_string(e=go_getObject(t,e))?-1==(t=cf_getKeyCode(e))?$(e):t:e}function go_getAutoObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_boolean(e)?e={play:e}:is_number(e)&&(e={timeoutDuration:e}),e.progress&&(is_string(e.progress)||is_jquery(e.progress))&&(e.progress={bar:e.progress}),e}function go_complementAutoObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_boolean(e.play)||(e.play=!0),is_number(e.delay)||(e.delay=0),is_undefined(e.pauseOnEvent)&&(e.pauseOnEvent=!0),is_boolean(e.pauseOnResize)||(e.pauseOnResize=!0),is_number(e.timeoutDuration)||(e.timeoutDuration=e.duration<10?2500:5*e.duration),e.progress&&(is_function(e.progress.bar)&&(e.progress.bar=e.progress.bar.call(t)),is_string(e.progress.bar)&&(e.progress.bar=$(e.progress.bar)),e.progress.bar?(is_function(e.progress.updater)||(e.progress.updater=$.fn.carouFredSel.progressbarUpdater),is_number(e.progress.interval)||(e.progress.interval=50)):e.progress=!1),e}function go_getPrevNextObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_number(e)&&(e={key:e}),e}function go_complementPrevNextObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_string(e.key)&&(e.key=cf_getKeyCode(e.key)),e}function go_getPaginationObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={container:e}:is_boolean(e)&&(e={keys:e}),e}function go_complementPaginationObject(t,e){return is_function(e.container)&&(e.container=e.container.call(t)),is_string(e.container)&&(e.container=$(e.container)),is_number(e.items)||(e.items=!1),is_boolean(e.keys)||(e.keys=!1),is_function(e.anchorBuilder)||is_false(e.anchorBuilder)||(e.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder),is_number(e.deviation)||(e.deviation=0),e}function go_getSwipeObject(t,e){return is_true(e=is_undefined(e=is_function(e)?e.call(t):e)?{onTouch:!1}:e)?e={onTouch:e}:is_number(e)&&(e={items:e}),e}function go_complementSwipeObject(t,e){return is_boolean(e.onTouch)||(e.onTouch=!0),is_boolean(e.onMouse)||(e.onMouse=!1),is_object(e.options)||(e.options={}),is_boolean(e.options.triggerOnTouchEnd)||(e.options.triggerOnTouchEnd=!1),e}function go_getMousewheelObject(t,e){return is_true(e=is_function(e)?e.call(t):e)?e={}:is_number(e)?e={items:e}:is_undefined(e)&&(e=!1),e}function go_complementMousewheelObject(t,e){return e}function gn_getItemIndex(t,e,s,i,o){if(is_jquery(t=is_object(t=is_string(t)?$(t,o):t)?$(t,o):t)?(t=o.children().index(t),is_boolean(s)||(s=!1)):is_boolean(s)||(s=!0),is_number(t)||(t=0),is_number(e)||(e=0),s&&(t+=i.first),t+=e,0<i.total){for(;t>=i.total;)t-=i.total;for(;t<0;)t+=i.total}return t}function gn_getVisibleItemsPrev(t,e,s){for(var i=0,o=0,n=s;0<=n;n--){var r=t.eq(n);if((i+=r.is(":visible")?r[e.d.outerWidth](!0):0)>e.maxDimension)return o;0==n&&(n=t.length),o++}}function gn_getVisibleItemsPrevFilter(t,e,s){return gn_getItemsPrevFilter(t,e.items.filter,e.items.visibleConf.org,s)}function gn_getScrollItemsPrevFilter(t,e,s,i){return gn_getItemsPrevFilter(t,e.items.filter,i,s)}function gn_getItemsPrevFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length;0<=r;r--){if(++n==c)return n;var a=t.eq(r);if(a.is(e)&&++o==s)return n;0==r&&(r=c)}}function gn_getVisibleOrg(t,e){return e.items.visibleConf.org||t.children().slice(0,e.items.visible).filter(e.items.filter).length}function gn_getVisibleItemsNext(t,e,s){for(var i=0,o=0,n=s,r=t.length-1;n<=r;n++){var c=t.eq(n);if((i+=c.is(":visible")?c[e.d.outerWidth](!0):0)>e.maxDimension)return o;if(++o==1+r)return o;n==r&&(n=-1)}}function gn_getVisibleItemsNextTestCircular(t,e,s,i){t=gn_getVisibleItemsNext(t,e,s);return e.circular||i<s+t&&(t=i-s),t}function gn_getVisibleItemsNextFilter(t,e,s){return gn_getItemsNextFilter(t,e.items.filter,e.items.visibleConf.org,s,e.circular)}function gn_getScrollItemsNextFilter(t,e,s,i){return gn_getItemsNextFilter(t,e.items.filter,i+1,s,e.circular)-1}function gn_getItemsNextFilter(t,e,s,i,o){for(var n=0,r=0,c=i,a=t.length-1;c<=a;c++){if(a<=++r)return r;var f=t.eq(c);if(f.is(e)&&++n==s)return r;c==a&&(c=-1)}}function gi_getCurrentItems(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsPrev(t,e,s){return t.slice(s,e.items.visibleConf.old+s)}function gi_getNewItemsPrev(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsNext(t,e){return t.slice(0,e.items.visibleConf.old)}function gi_getNewItemsNext(t,e,s){return t.slice(s,e.items.visible+s)}function sz_storeMargin(t,s,i){s.usePadding&&(is_string(i)||(i="_cfs_origCssMargin"),t.each(function(){var t=$(this),e=parseInt(t.css(s.d.marginRight),10);is_number(e)||(e=0),t.data(i,e)}))}function sz_resetMargin(t,e,s){var i;e.usePadding&&(i=!!is_boolean(s)&&s,is_number(s)||(s=0),sz_storeMargin(t,e,"_cfs_tempCssMargin"),t.each(function(){var t=$(this);t.css(e.d.marginRight,i?t.data("_cfs_tempCssMargin"):s+t.data("_cfs_origCssMargin"))}))}function sz_storeOrigCss(t){t.each(function(){var t=$(this);t.data("_cfs_origCss",t.attr("style")||"")})}function sz_restoreOrigCss(t){t.each(function(){var t=$(this);t.attr("style",t.data("_cfs_origCss")||"")})}function sz_setResponsiveSizes(s,t){s.items.visible;var i=s.items[s.d.width],o=s[s.d.height],n=is_percentage(o);t.each(function(){var t=$(this),e=i-ms_getPaddingBorderMargin(t,s,"Width");t[s.d.width](e),n&&t[s.d.height](ms_getPercentage(e,o))})}function sz_setSizes(t,e){var s,i=t.parent(),o=t.children(),n=gi_getCurrentItems(o,e),r=cf_mapWrapperSizes(ms_getSizes(n,e,!0),e,!1);return i.css(r),e.usePadding&&(i=(s=e.padding)[e.d[1]],e.align&&i<0&&(i=0),(n=n.last()).css(e.d.marginRight,n.data("_cfs_origCssMargin")+i),t.css(e.d.top,s[e.d[0]]),t.css(e.d.left,s[e.d[3]])),t.css(e.d.width,r[e.d.width]+2*ms_getTotalSize(o,e,"width")),t.css(e.d.height,ms_getLargestSize(o,e,"height")),r}function ms_getSizes(t,e,s){return[ms_getTotalSize(t,e,"width",s),ms_getLargestSize(t,e,"height",s)]}function ms_getLargestSize(t,e,s,i){return is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i?e[e.d[s]]:is_number(e.items[e.d[s]])?e.items[e.d[s]]:ms_getTrueLargestSize(t,e,s=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight")}function ms_getTrueLargestSize(t,e,s){for(var i=0,o=0,n=t.length;o<n;o++){var r=t.eq(o),r=r.is(":visible")?r[e.d[s]](!0):0;i<r&&(i=r)}return i}function ms_getTotalSize(t,e,s,i){if(is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i)return e[e.d[s]];if(is_number(e.items[e.d[s]]))return e.items[e.d[s]]*t.length;for(var o=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight",n=0,r=0,c=t.length;r<c;r++){var a=t.eq(r);n+=a.is(":visible")?a[e.d[o]](!0):0}return n}function ms_getParentSize(t,e,s){var i=t.is(":visible");i&&t.hide();s=t.parent()[e.d[s]]();return i&&t.show(),s}function ms_getMaxDimension(t,e){return is_number(t[t.d.width])?t[t.d.width]:e}function ms_hasVariableSizes(t,e,s){for(var i=!1,o=!1,n=0,r=t.length;n<r;n++){var c=t.eq(n),c=c.is(":visible")?c[e.d[s]](!0):0;!1===i?i=c:i!=c&&(o=!0),0==i&&(o=!0)}return o}function ms_getPaddingBorderMargin(t,e,s){return t[e.d["outer"+s]](!0)-t[e.d[s.toLowerCase()]]()}function ms_getPercentage(t,e){if(is_percentage(e)){if(!is_number(e=parseInt(e.slice(0,-1),10)))return t;t*=e/100}return t}function cf_e(t,e,s,i,o){return is_boolean(s)||(s=!0),is_boolean(i)||(i=!0),is_boolean(o)||(o=!1),s&&(t=e.events.prefix+t),i&&(t=t+"."+e.events.namespace),i&&o&&(t+=e.serialNumber),t}function cf_c(t,e){return is_string(e.classnames[t])?e.classnames[t]:t}function cf_mapWrapperSizes(t,e,s){is_boolean(s)||(s=!0);var i=e.usePadding&&s?e.padding:[0,0,0,0],s={};return s[e.d.width]=t[0]+i[1]+i[3],s[e.d.height]=t[1]+i[0]+i[2],s}function cf_sortParams(t,e){for(var s=[],i=0,o=t.length;i<o;i++)for(var n=0,r=e.length;n<r;n++)if(-1<e[n].indexOf(typeof t[i])&&is_undefined(s[n])){s[n]=t[i];break}return s}function cf_getPadding(t){if(is_undefined(t))return[0,0,0,0];if(is_number(t))return[t,t,t,t];if(!is_array(t=is_string(t)?t.split("px").join("").split("em").join("").split(" "):t))return[0,0,0,0];for(var e=0;e<4;e++)t[e]=parseInt(t[e],10);switch(t.length){case 0:return[0,0,0,0];case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];default:return[t[0],t[1],t[2],t[3]]}}function cf_getAlignPadding(t,e){var s=is_number(e[e.d.width])?Math.ceil(e[e.d.width]-ms_getTotalSize(t,e,"width")):0;switch(e.align){case"left":return[0,s];case"right":return[s,0];case"center":default:return[Math.ceil(s/2),Math.floor(s/2)]}}function cf_getDimensions(t){for(var e=[["width","innerWidth","outerWidth","height","innerHeight","outerHeight","left","top","marginRight",0,1,2,3],["height","innerHeight","outerHeight","width","innerWidth","outerWidth","top","left","marginBottom",3,2,1,0]],s=e[0].length,i="right"==t.direction||"left"==t.direction?0:1,o={},n=0;n<s;n++)o[e[0][n]]=e[i][n];return o}function cf_getAdjust(t,e,s,i){var o=t;if(is_function(s))o=s.call(i,o);else if(is_string(s)){var n,r,i=s.split("+"),s=s.split("-");switch(i=s.length>i.length?(n=!0,r=s[0],s[1]):(n=!1,r=i[0],i[1]),r){case"even":o=t%2==1?t-1:t;break;case"odd":o=t%2==0?t-1:t;break;default:o=t}is_number(i=parseInt(i,10))&&(o+=i=n?-i:i)}return o=!is_number(o)||o<1?1:o}function cf_getItemsAdjust(t,e,s,i){return cf_getItemAdjustMinMax(cf_getAdjust(t,e,s,i),e.items.visibleConf)}function cf_getItemAdjustMinMax(t,e){return is_number(e.min)&&t<e.min&&(t=e.min),t=(t=is_number(e.max)&&t>e.max?e.max:t)<1?1:t}function cf_getSynchArr(t){is_array(t)||(t=[[t]]);for(var e=0,s=(t=!is_array(t[0])?[t]:t).length;e<s;e++)is_string(t[e][0])&&(t[e][0]=$(t[e][0])),is_boolean(t[e][1])||(t[e][1]=!0),is_boolean(t[e][2])||(t[e][2]=!0),is_number(t[e][3])||(t[e][3]=0);return t}function cf_getKeyCode(t){return"right"==t?39:"left"==t?37:"up"==t?38:"down"==t?40:-1}function cf_setCookie(t,e,s){t&&(s=e.triggerHandler(cf_e("currentPosition",s)),$.fn.carouFredSel.cookie.set(t,s))}function cf_getCookie(t){t=$.fn.carouFredSel.cookie.get(t);return""==t?0:t}function in_mapCss(t,e){for(var s={},i=0,o=e.length;i<o;i++)s[e[i]]=t.css(e[i]);return s}function in_complementItems(t,e,s,i){return is_object(t.visibleConf)||(t.visibleConf={}),is_object(t.sizesConf)||(t.sizesConf={}),0==t.start&&is_number(i)&&(t.start=i),is_object(t.visible)?(t.visibleConf.min=t.visible.min,t.visibleConf.max=t.visible.max,t.visible=!1):is_string(t.visible)?("variable"==t.visible?t.visibleConf.variable=!0:t.visibleConf.adjust=t.visible,t.visible=!1):is_function(t.visible)&&(t.visibleConf.adjust=t.visible,t.visible=!1),is_string(t.filter)||(t.filter=0<s.filter(":hidden").length?":visible":"*"),t[e.d.width]||(e.responsive?(debug(!0,"Set a "+e.d.width+" for the items!"),t[e.d.width]=ms_getTrueLargestSize(s,e,"outerWidth")):t[e.d.width]=ms_hasVariableSizes(s,e,"outerWidth")?"variable":s[e.d.outerWidth](!0)),t[e.d.height]||(t[e.d.height]=ms_hasVariableSizes(s,e,"outerHeight")?"variable":s[e.d.outerHeight](!0)),t.sizesConf.width=t.width,t.sizesConf.height=t.height,t}function in_complementVisibleItems(t,e){return"variable"==t.items[t.d.width]&&(t.items.visibleConf.variable=!0),t.items.visibleConf.variable||(is_number(t[t.d.width])?t.items.visible=Math.floor(t[t.d.width]/t.items[t.d.width]):(t.items.visible=Math.floor(e/t.items[t.d.width]),t[t.d.width]=t.items.visible*t.items[t.d.width],t.items.visibleConf.adjust||(t.align=!1)),("Infinity"==t.items.visible||t.items.visible<1)&&(debug(!0,'Not a valid number of visible items: Set to "variable".'),t.items.visibleConf.variable=!0)),t}function in_complementPrimarySize(t,e,s){return t="auto"==t?ms_getTrueLargestSize(s,e,"outerWidth"):t}function in_complementSecondarySize(t,e,s){return t=(t="auto"==t?ms_getTrueLargestSize(s,e,"outerHeight"):t)||e.items[e.d.height]}function in_getAlignPadding(t,e){e=cf_getAlignPadding(gi_getCurrentItems(e,t),t);return t.padding[t.d[1]]=e[1],t.padding[t.d[3]]=e[0],t}function in_getResponsiveValues(t,e,s){var i=cf_getItemAdjustMinMax(Math.ceil(t[t.d.width]/t.items[t.d.width]),t.items.visibleConf);i>e.length&&(i=e.length);e=Math.floor(t[t.d.width]/i);return t.items.visible=i,t.items[t.d.width]=e,t[t.d.width]=i*e,t}function bt_pauseOnHoverConfig(t){var e,s;return is_string(t)?(s=-1<t.indexOf("immediate"),e=-1<t.indexOf("resume")):s=e=!1,[s,e]}function bt_mousesheelNumber(t){return is_number(t)&&t}function is_null(t){return null===t}function is_undefined(t){return is_null(t)||void 0===t||""===t||"undefined"===t}function is_array(t){return t instanceof Array}function is_jquery(t){return t instanceof jQuery}function is_object(t){return(t instanceof Object||"object"==typeof t)&&!is_null(t)&&!is_jquery(t)&&!is_array(t)&&!is_function(t)}function is_number(t){return(t instanceof Number||"number"==typeof t)&&!isNaN(t)}function is_string(t){return(t instanceof String||"string"==typeof t)&&!is_undefined(t)&&!is_true(t)&&!is_false(t)}function is_function(t){return t instanceof Function||"function"==typeof t}function is_boolean(t){return t instanceof Boolean||"boolean"==typeof t||is_true(t)||is_false(t)}function is_true(t){return!0===t||"true"===t}function is_false(t){return!1===t||"false"===t}function is_percentage(t){return is_string(t)&&"%"==t.slice(-1)}function getTime(){return(new Date).getTime()}function deprecated(t,e){debug(!0,t+" is DEPRECATED, support for it will be removed. Use "+e+" instead.")}function debug(t,e){if(!is_undefined(window.console)&&!is_undefined(window.console.log)){var s;if(is_object(t)?(s=" ("+t.selector+")",t=t.debug):s="",!t)return!1;e=is_string(e)?"carouFredSel"+s+": "+e:["carouFredSel"+s+":",e],window.console.log(e)}return!1}$.fn.carouFredSel||($.fn.caroufredsel=$.fn.carouFredSel=function(options,configs){if(0==this.length)return debug(!0,'No element found for "'+this.selector+'".'),this;if(1<this.length)return this.each(function(){$(this).carouFredSel(options,configs)});var $cfs=this,$tt0=this[0],starting_position=!1;$cfs.data("_cfs_isCarousel")&&(starting_position=$cfs.triggerHandler("_cfs_triggerEvent","currentPosition"),$cfs.trigger("_cfs_triggerEvent",["destroy",!0]));var FN={_init:function(t,e,s){(t=go_getObject($tt0,t)).items=go_getItemsObject($tt0,t.items),t.scroll=go_getScrollObject($tt0,t.scroll),t.auto=go_getAutoObject($tt0,t.auto),t.prev=go_getPrevNextObject($tt0,t.prev),t.next=go_getPrevNextObject($tt0,t.next),t.pagination=go_getPaginationObject($tt0,t.pagination),t.swipe=go_getSwipeObject($tt0,t.swipe),t.mousewheel=go_getMousewheelObject($tt0,t.mousewheel),e&&(opts_orig=$.extend(!0,{},$.fn.carouFredSel.defaults,t)),(opts=$.extend(!0,{},$.fn.carouFredSel.defaults,t)).d=cf_getDimensions(opts),crsl.direction="up"==opts.direction||"left"==opts.direction?"next":"prev";var i=$cfs.children(),t=ms_getParentSize($wrp,opts,"width");if(is_true(opts.cookie)&&(opts.cookie="caroufredsel_cookie_"+conf.serialNumber),opts.maxDimension=ms_getMaxDimension(opts,t),opts.items=in_complementItems(opts.items,opts,i,s),opts[opts.d.width]=in_complementPrimarySize(opts[opts.d.width],opts,i),opts[opts.d.height]=in_complementSecondarySize(opts[opts.d.height],opts,i),opts.responsive&&(is_percentage(opts[opts.d.width])||(opts[opts.d.width]="100%")),is_percentage(opts[opts.d.width])&&(crsl.upDateOnWindowResize=!0,crsl.primarySizePercentage=opts[opts.d.width],opts[opts.d.width]=ms_getPercentage(t,crsl.primarySizePercentage),opts.items.visible||(opts.items.visibleConf.variable=!0)),opts.responsive?(opts.usePadding=!0,opts.padding=[5,5,5,5],opts.align=!1,opts.items.visibleConf.variable=!1):((opts=!opts.items.visible?in_complementVisibleItems(opts,t):opts)[opts.d.width]||(!opts.items.visibleConf.variable&&is_number(opts.items[opts.d.width])&&"*"==opts.items.filter?(opts[opts.d.width]=opts.items.visible*opts.items[opts.d.width],opts.align=!1):opts[opts.d.width]="variable"),is_undefined(opts.align)&&(opts.align=!!is_number(opts[opts.d.width])&&"center"),opts.items.visibleConf.variable&&(opts.items.visible=gn_getVisibleItemsNext(i,opts,0))),"*"==opts.items.filter||opts.items.visibleConf.variable||(opts.items.visibleConf.org=opts.items.visible,opts.items.visible=gn_getVisibleItemsNextFilter(i,opts,0)),opts.items.visible=cf_getItemsAdjust(opts.items.visible,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts.responsive)opts.items.visibleConf.min||(opts.items.visibleConf.min=opts.items.visible),opts.items.visibleConf.max||(opts.items.visibleConf.max=opts.items.visible),opts=in_getResponsiveValues(opts,i,t);else switch(opts.padding=cf_getPadding(opts.padding),"top"==opts.align?opts.align="left":"bottom"==opts.align&&(opts.align="right"),opts.align){case"center":case"left":case"right":"variable"!=opts[opts.d.width]&&((opts=in_getAlignPadding(opts,i)).usePadding=!0);break;default:opts.align=!1,opts.usePadding=0!=opts.padding[0]||0!=opts.padding[1]||0!=opts.padding[2]||0!=opts.padding[3]}is_number(opts.scroll.duration)||(opts.scroll.duration=500),is_undefined(opts.scroll.items)&&(opts.scroll.items=opts.responsive||opts.items.visibleConf.variable||"*"!=opts.items.filter?"visible":opts.items.visible),opts.auto=$.extend(!0,{},opts.scroll,opts.auto),opts.prev=$.extend(!0,{},opts.scroll,opts.prev),opts.next=$.extend(!0,{},opts.scroll,opts.next),opts.pagination=$.extend(!0,{},opts.scroll,opts.pagination),opts.auto=go_complementAutoObject($tt0,opts.auto),opts.prev=go_complementPrevNextObject($tt0,opts.prev),opts.next=go_complementPrevNextObject($tt0,opts.next),opts.pagination=go_complementPaginationObject($tt0,opts.pagination),opts.swipe=go_complementSwipeObject($tt0,opts.swipe),opts.mousewheel=go_complementMousewheelObject($tt0,opts.mousewheel),opts.synchronise&&(opts.synchronise=cf_getSynchArr(opts.synchronise)),opts.auto.onPauseStart&&(opts.auto.onTimeoutStart=opts.auto.onPauseStart,deprecated("auto.onPauseStart","auto.onTimeoutStart")),opts.auto.onPausePause&&(opts.auto.onTimeoutPause=opts.auto.onPausePause,deprecated("auto.onPausePause","auto.onTimeoutPause")),opts.auto.onPauseEnd&&(opts.auto.onTimeoutEnd=opts.auto.onPauseEnd,deprecated("auto.onPauseEnd","auto.onTimeoutEnd")),opts.auto.pauseDuration&&(opts.auto.timeoutDuration=opts.auto.pauseDuration,deprecated("auto.pauseDuration","auto.timeoutDuration"))},_build:function(){$cfs.data("_cfs_isCarousel",!0);var t=$cfs.children(),e=in_mapCss($cfs,["textAlign","float","position","top","right","bottom","left","zIndex","width","height","marginTop","marginRight","marginBottom","marginLeft"]),s="relative";switch(e.position){case"absolute":case"fixed":s=e.position}"parent"==conf.wrapper?sz_storeOrigCss($wrp):$wrp.css(e),$wrp.css({overflow:"hidden",position:s}),sz_storeOrigCss($cfs),$cfs.data("_cfs_origCssZindex",e.zIndex),$cfs.css({textAlign:"left","float":"none",position:"absolute",top:0,right:"auto",bottom:"auto",left:0,marginTop:0,marginRight:0,marginBottom:0,marginLeft:0}),sz_storeMargin(t,opts),sz_storeOrigCss(t),opts.responsive&&sz_setResponsiveSizes(opts,t)},_bind_events:function(){FN._unbind_events(),$cfs.bind(cf_e("stop",conf),function(t,e){return t.stopPropagation(),crsl.isStopped||opts.auto.button&&opts.auto.button.addClass(cf_c("stopped",conf)),crsl.isStopped=!0,opts.auto.play&&(opts.auto.play=!1,$cfs.trigger(cf_e("pause",conf),e)),!0}),$cfs.bind(cf_e("finish",conf),function(t){return t.stopPropagation(),crsl.isScrolling&&sc_stopScroll(scrl),!0}),$cfs.bind(cf_e("pause",conf),function(t,e,s){var i;return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),e&&crsl.isScrolling&&(scrl.isStopped=!0,i=getTime()-scrl.startTime,scrl.duration-=i,scrl.pre&&(scrl.pre.duration-=i),scrl.post&&(scrl.post.duration-=i),sc_stopScroll(scrl,!1)),crsl.isPaused||crsl.isScrolling||s&&(tmrs.timePassed+=getTime()-tmrs.startTime),crsl.isPaused||opts.auto.button&&opts.auto.button.addClass(cf_c("paused",conf)),crsl.isPaused=!0,opts.auto.onTimeoutPause&&(i=opts.auto.timeoutDuration-tmrs.timePassed,s=100-Math.ceil(100*i/opts.auto.timeoutDuration),opts.auto.onTimeoutPause.call($tt0,s,i)),!0}),$cfs.bind(cf_e("play",conf),function(t,e,s,i){t.stopPropagation(),tmrs=sc_clearTimers(tmrs);var o=cf_sortParams([e,s,i],["string","number","boolean"]);if(e=o[0],s=o[1],i=o[2],"prev"!=e&&"next"!=e&&(e=crsl.direction),is_number(s)||(s=0),(i=!is_boolean(i)?!1:i)&&(crsl.isStopped=!1,opts.auto.play=!0),!opts.auto.play)return t.stopImmediatePropagation(),debug(conf,"Carousel stopped: Not scrolling.");crsl.isPaused&&opts.auto.button&&(opts.auto.button.removeClass(cf_c("stopped",conf)),opts.auto.button.removeClass(cf_c("paused",conf))),crsl.isPaused=!1,tmrs.startTime=getTime();var n=opts.auto.timeoutDuration+s;return dur2=n-tmrs.timePassed,perc=100-Math.ceil(100*dur2/n),opts.auto.progress&&(tmrs.progress=setInterval(function(){var t=getTime()-tmrs.startTime+tmrs.timePassed,t=Math.ceil(100*t/n);opts.auto.progress.updater.call(opts.auto.progress.bar[0],t)},opts.auto.progress.interval)),tmrs.auto=setTimeout(function(){opts.auto.progress&&opts.auto.progress.updater.call(opts.auto.progress.bar[0],100),opts.auto.onTimeoutEnd&&opts.auto.onTimeoutEnd.call($tt0,perc,dur2),crsl.isScrolling?$cfs.trigger(cf_e("play",conf),e):$cfs.trigger(cf_e(e,conf),opts.auto)},dur2),opts.auto.onTimeoutStart&&opts.auto.onTimeoutStart.call($tt0,perc,dur2),!0}),$cfs.bind(cf_e("resume",conf),function(t){return t.stopPropagation(),scrl.isStopped?(scrl.isStopped=!1,crsl.isPaused=!1,crsl.isScrolling=!0,scrl.startTime=getTime(),sc_startScroll(scrl,conf)):$cfs.trigger(cf_e("play",conf)),!0}),$cfs.bind(cf_e("prev",conf)+" "+cf_e("next",conf),function(t,e,s,i,o){if(t.stopPropagation(),crsl.isStopped||$cfs.is(":hidden"))return t.stopImmediatePropagation(),debug(conf,"Carousel stopped or hidden: Not scrolling.");var n=is_number(opts.items.minimum)?opts.items.minimum:opts.items.visible+1;if(n>itms.total)return t.stopImmediatePropagation(),debug(conf,"Not enough items ("+itms.total+" total, "+n+" needed): Not scrolling.");e=(a=cf_sortParams([e,s,i,o],["object","number/string","function","boolean"]))[0],s=a[1],i=a[2],o=a[3];var r=t.type.slice(conf.events.prefix.length);if(is_object(e)||(e={}),is_function(i)&&(e.onAfter=i),is_boolean(o)&&(e.queue=o),(e=$.extend(!0,{},opts[r],e)).conditions&&!e.conditions.call($tt0,r))return t.stopImmediatePropagation(),debug(conf,'Callback "conditions" returned false.');if(!is_number(s)){if("*"!=opts.items.filter)s="visible";else for(var c=[s,e.items,opts[r].items],a=0,f=c.length;a<f;a++)if(is_number(c[a])||"page"==c[a]||"visible"==c[a]){s=c[a];break}switch(s){case"page":return t.stopImmediatePropagation(),$cfs.triggerHandler(cf_e(r+"Page",conf),[e,i]);case"visible":opts.items.visibleConf.variable||"*"!=opts.items.filter||(s=opts.items.visible)}}if(scrl.isStopped)return $cfs.trigger(cf_e("resume",conf)),$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]]),t.stopImmediatePropagation(),debug(conf,"Carousel resumed scrolling.");if(0<e.duration&&crsl.isScrolling)return e.queue&&("last"==e.queue&&(queu=[]),"first"==e.queue&&0!=queu.length||$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]])),t.stopImmediatePropagation(),debug(conf,"Carousel currently scrolling.");if(tmrs.timePassed=0,$cfs.trigger(cf_e("slide_"+r,conf),[e,s]),opts.synchronise)for(var l=opts.synchronise,u=[e,s],p=0,f=l.length;p<f;p++){var d=r;l[p][2]||(d="prev"==d?"next":"prev"),l[p][1]||(u[0]=l[p][0].triggerHandler("_cfs_triggerEvent",["configuration",d])),u[1]=s+l[p][3],l[p][0].trigger("_cfs_triggerEvent",["slide_"+d,u])}return!0}),$cfs.bind(cf_e("slide_prev",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&0==itms.first)return opts.infinite&&$cfs.trigger(cf_e("next",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(i,opts,itms.total-1):"*"!=opts.items.filter?(p=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsPrevFilter(i,opts,itms.total-1,p)):opts.items.visible,opts,e.items,$tt0)),opts.circular||itms.total-s<itms.first&&(s=itms.total-itms.first),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable?(g=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0),opts.items.visible+s<=g&&s<itms.total&&(g=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-++s),opts,opts.items.visibleConf.adjust,$tt0)),opts.items.visible=g):"*"!=opts.items.filter&&(g=gn_getVisibleItemsNextFilter(i,opts,itms.total-s),opts.items.visible=cf_getItemsAdjust(g,opts,opts.items.visibleConf.adjust,$tt0)),sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items backward."),itms.first+=s;itms.first>=itms.total;)itms.first-=itms.total;opts.circular||(0==itms.first&&e.onEnd&&e.onEnd.call($tt0,"prev"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),$cfs.children().slice(itms.total-s,itms.total).prependTo($cfs),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var o=gi_getOldItemsPrev(i=$cfs.children(),opts,s),n=gi_getNewItemsPrev(i,opts),r=i.eq(s-1),c=o.last(),a=n.last();sz_resetMargin(i,opts);var f=0,l=0;opts.align&&(f=(x=cf_getAlignPadding(n,opts))[0],l=x[1]);var u,p=f<0?opts.padding[opts.d[3]]:0,d=!1,g=$();opts.items.visible<s&&(g=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(u=opts.items[opts.d.width],r=a,sc_hideHiddenItems(d=g),opts.items[opts.d.width]="variable"));var m=!1,t=ms_getTotalSize(i.slice(0,s),opts,"width"),_=cf_mapWrapperSizes(ms_getSizes(n,opts,!0),opts,!opts.usePadding),b=0,v={},h={},w={},P={},C={},x={},S={},y=sc_getDuration(e,opts,s,t);switch(e.fx){case"cover":case"cover-fade":b=ms_getTotalSize(i.slice(0,opts.items.visible),opts,"width")}d&&(opts.items[opts.d.width]=u),sz_resetMargin(i,opts,!0),0<=l&&sz_resetMargin(c,opts,opts.padding[opts.d[1]]),0<=f&&sz_resetMargin(r,opts,opts.padding[opts.d[3]]),opts.align&&(opts.padding[opts.d[1]]=l,opts.padding[opts.d[3]]=f),x[opts.d.left]=-(t-p),S[opts.d.left]=-(b-p),h[opts.d.left]=_[opts.d.width];var I=function(){},z=function(){},j=function(){},k=function(){},N=function(){},O=function(){},T=function(){},M=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":m=$cfs.clone(!0).appendTo($wrp)}switch(e.fx){case"crossfade":case"uncover":case"uncover-fade":m.children().slice(0,s).remove(),m.children().slice(opts.items.visibleConf.old).remove();break;case"cover":case"cover-fade":m.children().slice(opts.items.visible).remove(),m.css(S)}if($cfs.css(x),scrl=sc_setScroll(y,e.easing,conf),v[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0,"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(I=function(){$wrp.css(_)},z=function(){scrl.anims.push([$wrp,_])}),opts.usePadding){switch(a.not(r).length&&(w[opts.d.marginRight]=r.data("_cfs_origCssMargin"),f<0?r.css(w):(T=function(){r.css(w)},M=function(){scrl.anims.push([r,w])})),e.fx){case"cover":case"cover-fade":m.children().eq(s-1).css(w)}a.not(c).length&&(P[opts.d.marginRight]=c.data("_cfs_origCssMargin"),j=function(){c.css(P)},k=function(){scrl.anims.push([c,P])}),0<=l&&(C[opts.d.marginRight]=a.data("_cfs_origCssMargin")+opts.padding[opts.d[1]],N=function(){a.css(C)},O=function(){scrl.anims.push([a,C])})}var A=function(){$cfs.css(v)},F=opts.items.visible+s-itms.total,H=function(){var t;0<F&&($cfs.children().slice(itms.total).remove(),o=$($cfs.children().slice(itms.total-(opts.items.visible-F)).get().concat($cfs.children().slice(0,F).get()))),sc_showHiddenItems(d),opts.usePadding&&(t=$cfs.children().eq(opts.items.visible+s-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin"))},q=sc_mapCallbackArguments(o,g,n,s,"prev",y,_),D=function(){sc_afterScroll($cfs,m,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",q,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",q,clbk),e.fx){case"none":$cfs.css(v),I(),j(),N(),T(),A(),H(),D();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){I(),j(),N(),T(),A(),H(),(scrl=sc_setScroll(y,e.easing,conf)).anims.push([$cfs,{opacity:1},D]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([m,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},D]),z(),j(),N(),T(),A(),H();break;case"cover":scrl.anims.push([m,v,function(){j(),N(),T(),A(),H(),D()}]),z();break;case"cover-fade":scrl.anims.push([$cfs,{opacity:0}]),scrl.anims.push([m,v,function(){j(),N(),T(),A(),H(),D()}]),z();break;case"uncover":scrl.anims.push([m,h,D]),z(),j(),N(),T(),A(),H();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([m,h,D]),z(),j(),N(),T(),A(),H();break;default:scrl.anims.push([$cfs,v,function(){H(),D()}]),z(),k(),O(),M()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,_]),!0}),$cfs.bind(cf_e("slide_next",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&itms.first==opts.items.visible)return opts.infinite&&$cfs.trigger(cf_e("prev",conf),itms.total-1),t.stopImmediatePropagation();sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s="*"!=opts.items.filter?(p=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsNextFilter(i,opts,0,p)):opts.items.visible,opts,e.items,$tt0));var o=0==itms.first?itms.total:itms.first;if(opts.circular||(p=opts.items.visibleConf.variable?(n=gn_getVisibleItemsNext(i,opts,s),gn_getVisibleItemsPrev(i,opts,o-1)):(n=opts.items.visible,opts.items.visible),o<s+n&&(s=o-p)),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){for(var n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible-s>=n&&s<itms.total;)n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,++s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible=n}else"*"!=opts.items.filter&&(n=gn_getVisibleItemsNextFilter(i,opts,s),opts.items.visible=cf_getItemsAdjust(n,opts,opts.items.visibleConf.adjust,$tt0));if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items forward."),itms.first-=s;itms.first<0;)itms.first+=itms.total;opts.circular||(itms.first==opts.items.visible&&e.onEnd&&e.onEnd.call($tt0,"next"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var r=gi_getOldItemsNext(i=$cfs.children(),opts),c=gi_getNewItemsNext(i,opts,s),a=i.eq(s-1),f=r.last(),l=c.last();sz_resetMargin(i,opts);var u=0,p=0;opts.align&&(u=(_=cf_getAlignPadding(c,opts))[0],p=_[1]);var d,g=!1,t=$();opts.items.visibleConf.old<s&&(t=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(d=opts.items[opts.d.width],a=f,sc_hideHiddenItems(g=t),opts.items[opts.d.width]="variable"));var m=!1,_=ms_getTotalSize(i.slice(0,s),opts,"width"),b=cf_mapWrapperSizes(ms_getSizes(c,opts,!0),opts,!opts.usePadding),v=0,h={},w={},P={},C={},x={},S=sc_getDuration(e,opts,s,_);switch(e.fx){case"uncover":case"uncover-fade":v=ms_getTotalSize(i.slice(0,opts.items.visibleConf.old),opts,"width")}g&&(opts.items[opts.d.width]=d),opts.align&&opts.padding[opts.d[1]]<0&&(opts.padding[opts.d[1]]=0),sz_resetMargin(i,opts,!0),sz_resetMargin(f,opts,opts.padding[opts.d[1]]),opts.align&&(opts.padding[opts.d[1]]=p,opts.padding[opts.d[3]]=u),x[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0;var y=function(){},I=function(){},z=function(){},j=function(){},k=function(){},N=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":(m=$cfs.clone(!0).appendTo($wrp)).children().slice(opts.items.visibleConf.old).remove()}switch(e.fx){case"crossfade":case"cover":case"cover-fade":$cfs.css("zIndex",1),m.css("zIndex",0)}scrl=sc_setScroll(S,e.easing,conf),h[opts.d.left]=-_,w[opts.d.left]=-v,u<0&&(h[opts.d.left]+=u),"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(y=function(){$wrp.css(b)},I=function(){scrl.anims.push([$wrp,b])}),opts.usePadding&&(_=l.data("_cfs_origCssMargin"),0<=p&&(_+=opts.padding[opts.d[1]]),l.css(opts.d.marginRight,_),a.not(f).length&&(C[opts.d.marginRight]=f.data("_cfs_origCssMargin")),z=function(){f.css(C)},j=function(){scrl.anims.push([f,C])},_=a.data("_cfs_origCssMargin"),0<u&&(_+=opts.padding[opts.d[3]]),P[opts.d.marginRight]=_,k=function(){a.css(P)},N=function(){scrl.anims.push([a,P])});var O=function(){$cfs.css(x)},T=opts.items.visible+s-itms.total,M=function(){0<T&&$cfs.children().slice(itms.total).remove();var t,e=$cfs.children().slice(0,s).appendTo($cfs).last();0<T&&(c=gi_getCurrentItems(i,opts)),sc_showHiddenItems(g),opts.usePadding&&(itms.total<opts.items.visible+s&&(t=$cfs.children().eq(opts.items.visible-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin")+opts.padding[opts.d[1]]),e.css(opts.d.marginRight,e.data("_cfs_origCssMargin")))},A=sc_mapCallbackArguments(r,t,c,s,"next",S,b),F=function(){$cfs.css("zIndex",$cfs.data("_cfs_origCssZindex")),sc_afterScroll($cfs,m,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",A,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",A,clbk),e.fx){case"none":$cfs.css(h),y(),z(),k(),O(),M(),F();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){y(),z(),k(),O(),M(),(scrl=sc_setScroll(S,e.easing,conf)).anims.push([$cfs,{opacity:1},F]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([m,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},F]),I(),z(),k(),O(),M();break;case"cover":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([$cfs,x,F]),I(),z(),k(),M();break;case"cover-fade":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([m,{opacity:0}]),scrl.anims.push([$cfs,x,F]),I(),z(),k(),M();break;case"uncover":scrl.anims.push([m,w,F]),I(),z(),k(),O(),M();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([m,w,F]),I(),z(),k(),O(),M();break;default:scrl.anims.push([$cfs,h,function(){O(),M(),F()}]),I(),j(),N()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,b]),!0}),$cfs.bind(cf_e("slideTo",conf),function(t,e,s,i,o,n,r){t.stopPropagation();i=cf_sortParams([e,s,i,o,n,r],["string/number/object","number","boolean","object","string","function"]);return o=i[3],n=i[4],r=i[5],0!=(e=gn_getItemIndex(i[0],i[1],i[2],itms,$cfs))&&(is_object(o)||(o=!1),"prev"==(n="prev"!=n&&"next"!=n?opts.circular?e<=itms.total/2?"next":"prev":0==itms.first||itms.first>e?"next":"prev":n)&&(e=itms.total-e),$cfs.trigger(cf_e(n,conf),[o,e,r]),!0)}),$cfs.bind(cf_e("prevPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t-1,e,"prev",s])}),$cfs.bind(cf_e("nextPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t+1,e,"next",s])}),$cfs.bind(cf_e("slideToPage",conf),function(t,e,s,i,o){t.stopPropagation(),is_number(e)||(e=$cfs.triggerHandler(cf_e("currentPage",conf)));var n=opts.pagination.items||opts.items.visible,t=Math.ceil(itms.total/n)-1;return t<(e=e<0?t:e)&&(e=0),$cfs.triggerHandler(cf_e("slideTo",conf),[e*n,0,!0,s,i,o])}),$cfs.bind(cf_e("jumpToStart",conf),function(t,e){if(t.stopPropagation(),e=e?gn_getItemIndex(e,0,!0,itms,$cfs):0,0!=(e+=itms.first)){if(0<itms.total)for(;e>itms.total;)e-=itms.total;$cfs.prepend($cfs.children().slice(e,itms.total))}return!0}),$cfs.bind(cf_e("synchronise",conf),function(t,e){if(t.stopPropagation(),e)e=cf_getSynchArr(e);else{if(!opts.synchronise)return debug(conf,"No carousel to synchronise.");e=opts.synchronise}for(var s=$cfs.triggerHandler(cf_e("currentPosition",conf)),i=!0,o=0,n=e.length;o<n;o++)e[o][0].triggerHandler(cf_e("slideTo",conf),[s,e[o][3],!0])||(i=!1);return i}),$cfs.bind(cf_e("queue",conf),function(t,e,s){return t.stopPropagation(),is_function(e)?e.call($tt0,queu):is_array(e)?queu=e:is_undefined(e)||queu.push([e,s]),queu}),$cfs.bind(cf_e("insertItem",conf),function(t,e,s,i,o){t.stopPropagation();var n=cf_sortParams([e,s,i,o],["string/object","string/number/object","boolean","number"]);if(e=n[0],s=n[1],i=n[2],o=n[3],(is_object(e)&&!is_jquery(e)||is_string(e))&&(e=$(e)),!is_jquery(e)||0==e.length)return debug(conf,"Not a valid object.");is_undefined(s)&&(s="end"),sz_storeMargin(e,opts),sz_storeOrigCss(e);t=s,n="before";"end"==s?i?(0==itms.first?(s=itms.total-1,n="after"):(s=itms.first,itms.first+=e.length),s<0&&(s=0)):(s=itms.total-1,n="after"):s=gn_getItemIndex(s,o,i,itms,$cfs);o=$cfs.children().eq(s);return o.length?o[n](e):(debug(conf,"Correct insert-position not found! Appending item to the end."),$cfs.append(e)),"end"==t||i||s<itms.first&&(itms.first+=e.length),itms.total=$cfs.children().length,itms.first>=itms.total&&(itms.first-=itms.total),$cfs.trigger(cf_e("updateSizes",conf)),$cfs.trigger(cf_e("linkAnchors",conf)),!0}),$cfs.bind(cf_e("removeItem",conf),function(t,e,i,o){t.stopPropagation();t=cf_sortParams([e,i,o],["string/number/object","boolean","number"]);e=t[0],i=t[1],o=t[2];var n;return e instanceof $&&1<e.length?(n=$(),e.each(function(t,e){var s=$cfs.trigger(cf_e("removeItem",conf),[$(this),i,o]);s&&(n=n.add(s))})):(is_undefined(e)||"end"==e?n=$cfs.children().last():(e=gn_getItemIndex(e,o,i,itms,$cfs),(n=$cfs.children().eq(e)).length&&e<itms.first&&(itms.first-=n.length)),n&&n.length&&(n.detach(),itms.total=$cfs.children().length,$cfs.trigger(cf_e("updateSizes",conf)))),n}),$cfs.bind(cf_e("onBefore",conf)+" "+cf_e("onAfter",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length);return is_array(e)&&(clbk[t]=e),is_function(e)&&clbk[t].push(e),clbk[t]}),$cfs.bind(cf_e("currentPosition",conf),function(t,e){return t.stopPropagation(),t=0==itms.first?0:itms.total-itms.first,is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("currentPage",conf),function(t,e){t.stopPropagation();var s=opts.pagination.items||opts.items.visible,t=Math.ceil(itms.total/s-1),s=0==itms.first||itms.first<itms.total%s?0:itms.first!=s||opts.circular?Math.round((itms.total-itms.first)/s):t;return t<(s=s<0?0:s)&&(s=t),is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("currentVisible",conf),function(t,e){t.stopPropagation();t=gi_getCurrentItems($cfs.children(),opts);return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("slice",conf),function(t,e,s,i){if(t.stopPropagation(),0==itms.total)return!1;t=cf_sortParams([e,s,i],["number","number","function"]);if(e=is_number(t[0])?t[0]:0,s=is_number(t[1])?t[1]:itms.total,i=t[2],e+=itms.first,s+=itms.first,0<items.total){for(;e>itms.total;)e-=itms.total;for(;s>itms.total;)s-=itms.total;for(;e<0;)e+=itms.total;for(;s<0;)s+=itms.total}t=$cfs.children(),t=e<s?t.slice(e,s):$(t.slice(e,itms.total).get().concat(t.slice(0,s).get()));return is_function(i)&&i.call($tt0,t),t}),$cfs.bind(cf_e("isPaused",conf)+" "+cf_e("isStopped",conf)+" "+cf_e("isScrolling",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length),t=crsl[t];return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("configuration",conf),function(e,a,b,c){e.stopPropagation();var reInit=!1,sz;if(is_function(a))a.call($tt0,opts);else if(is_object(a))opts_orig=$.extend(!0,{},opts_orig,a),!1!==b?reInit=!0:opts=$.extend(!0,{},opts,a);else if(!is_undefined(a))if(is_function(b)){var val=eval("opts."+a);is_undefined(val)&&(val=""),b.call($tt0,val)}else{if(is_undefined(b))return eval("opts."+a);"boolean"!=typeof c&&(c=!0),eval("opts_orig."+a+" = b"),!1!==c?reInit=!0:eval("opts."+a+" = b")}return reInit&&(sz_resetMargin($cfs.children(),opts),FN._init(opts_orig),FN._bind_buttons(),sz=sz_setSizes($cfs,opts),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,sz])),opts}),$cfs.bind(cf_e("linkAnchors",conf),function(t,e,s){return t.stopPropagation(),is_undefined(e)?e=$("body"):is_string(e)&&(e=$(e)),is_jquery(e)&&0!=e.length?(is_string(s)||(s="a.caroufredsel"),e.find(s).each(function(){var e=this.hash||"";0<e.length&&-1!=$cfs.children().index($(e))&&$(this).unbind("click").click(function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),e)})}),!0):debug(conf,"Not a valid object.")}),$cfs.bind(cf_e("updatePageStatus",conf),function(t,e,s){if(t.stopPropagation(),opts.pagination.container){var i=opts.pagination.items||opts.items.visible,o=Math.ceil(itms.total/i);e&&(opts.pagination.anchorBuilder&&(opts.pagination.container.children().remove(),opts.pagination.container.each(function(){for(var t=0;t<o;t++){var e=$cfs.children().eq(gn_getItemIndex(t*i,0,!0,itms,$cfs));$(this).append(opts.pagination.anchorBuilder.call(e[0],t+1))}})),opts.pagination.container.each(function(){$(this).children().unbind(opts.pagination.event).each(function(e){$(this).bind(opts.pagination.event,function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e*i,-opts.pagination.deviation,!0,opts.pagination])})})}));var n=$cfs.triggerHandler(cf_e("currentPage",conf))+opts.pagination.deviation;return(n=o<=n?0:n)<0&&(n=o-1),opts.pagination.container.each(function(){$(this).children().removeClass(cf_c("selected",conf)).eq(n).addClass(cf_c("selected",conf))}),!0}}),$cfs.bind(cf_e("updateSizes",conf),function(t){var e=opts.items.visible,s=$cfs.children(),i=ms_getParentSize($wrp,opts,"width");itms.total=s.length,crsl.primarySizePercentage?(opts.maxDimension=i,opts[opts.d.width]=ms_getPercentage(i,crsl.primarySizePercentage)):opts.maxDimension=ms_getMaxDimension(opts,i),opts.responsive?(opts.items.width=opts.items.sizesConf.width,opts.items.height=opts.items.sizesConf.height,e=(opts=in_getResponsiveValues(opts,s,i)).items.visible,sz_setResponsiveSizes(opts,s)):opts.items.visibleConf.variable?e=gn_getVisibleItemsNext(s,opts,0):"*"!=opts.items.filter&&(e=gn_getVisibleItemsNextFilter(s,opts,0)),!opts.circular&&0!=itms.first&&e>itms.first&&(i=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(s,opts,itms.first)-itms.first:"*"!=opts.items.filter?gn_getVisibleItemsPrevFilter(s,opts,itms.first)-itms.first:opts.items.visible-itms.first,debug(conf,"Preventing non-circular: sliding "+i+" items backward."),$cfs.trigger(cf_e("prev",conf),i)),opts.items.visible=cf_getItemsAdjust(e,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts=in_getAlignPadding(opts,s);s=sz_setSizes($cfs,opts);return $cfs.trigger(cf_e("updatePageStatus",conf),[!0,s]),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),s}),$cfs.bind(cf_e("destroy",conf),function(t,e){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),$cfs.data("_cfs_isCarousel",!1),$cfs.trigger(cf_e("finish",conf)),e&&$cfs.trigger(cf_e("jumpToStart",conf)),sz_restoreOrigCss($cfs.children()),sz_restoreOrigCss($cfs),FN._unbind_events(),FN._unbind_buttons(),"parent"==conf.wrapper?sz_restoreOrigCss($wrp):$wrp.replaceWith($cfs),!0}),$cfs.bind(cf_e("debug",conf),function(t){return debug(conf,"Carousel width: "+opts.width),debug(conf,"Carousel height: "+opts.height),debug(conf,"Item widths: "+opts.items.width),debug(conf,"Item heights: "+opts.items.height),debug(conf,"Number of items visible: "+opts.items.visible),opts.auto.play&&debug(conf,"Number of items scrolled automatically: "+opts.auto.items),opts.prev.button&&debug(conf,"Number of items scrolled backward: "+opts.prev.items),opts.next.button&&debug(conf,"Number of items scrolled forward: "+opts.next.items),conf.debug}),$cfs.bind("_cfs_triggerEvent",function(t,e,s){return t.stopPropagation(),$cfs.triggerHandler(cf_e(e,conf),s)})},_unbind_events:function(){$cfs.unbind(cf_e("",conf)),$cfs.unbind(cf_e("",conf,!1)),$cfs.unbind("_cfs_triggerEvent")},_bind_buttons:function(){var t,s,i,o,n,r,c;if(FN._unbind_buttons(),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),opts.auto.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.auto.pauseOnHover),$wrp.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),opts.auto.button&&opts.auto.button.bind(cf_e(opts.auto.event,conf,!1),function(t){t.preventDefault();var e=!1,t=null;crsl.isPaused?e="play":opts.auto.pauseOnEvent&&(e="pause",t=bt_pauseOnHoverConfig(opts.auto.pauseOnEvent)),e&&$cfs.trigger(cf_e(e,conf),t)}),opts.prev.button&&(opts.prev.button.bind(cf_e(opts.prev.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("prev",conf))}),opts.prev.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.prev.pauseOnHover),opts.prev.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.next.button&&(opts.next.button.bind(cf_e(opts.next.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("next",conf))}),opts.next.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.next.pauseOnHover),opts.next.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.pagination.container&&opts.pagination.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.pagination.pauseOnHover),opts.pagination.container.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),(opts.prev.key||opts.next.key)&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e==opts.next.key&&(t.preventDefault(),$cfs.trigger(cf_e("next",conf))),e==opts.prev.key&&(t.preventDefault(),$cfs.trigger(cf_e("prev",conf)))}),opts.pagination.keys&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;49<=e&&e<58&&(e=(e-49)*opts.items.visible)<=itms.total&&(t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e,0,!0,opts.pagination]))}),$.fn.swipe){var e="ontouchstart"in window;if(e&&opts.swipe.onTouch||!e&&opts.swipe.onMouse){var a=$.extend(!0,{},opts.prev,opts.swipe),f=$.extend(!0,{},opts.next,opts.swipe),l=function(){$cfs.trigger(cf_e("prev",conf),[a])},u=function(){$cfs.trigger(cf_e("next",conf),[f])};switch(opts.direction){case"up":case"down":opts.swipe.options.swipeUp=u,opts.swipe.options.swipeDown=l;break;default:opts.swipe.options.swipeLeft=u,opts.swipe.options.swipeRight=l}crsl.swipe&&$cfs.swipe("destroy"),$wrp.swipe(opts.swipe.options),$wrp.css("cursor","move"),crsl.swipe=!0}}$.fn.mousewheel&&opts.mousewheel&&(s=$.extend(!0,{},opts.prev,opts.mousewheel),i=$.extend(!0,{},opts.next,opts.mousewheel),crsl.mousewheel&&$wrp.unbind(cf_e("mousewheel",conf,!1)),$wrp.bind(cf_e("mousewheel",conf,!1),function(t,e){t.preventDefault(),0<e?$cfs.trigger(cf_e("prev",conf),[s]):$cfs.trigger(cf_e("next",conf),[i])}),crsl.mousewheel=!0),opts.auto.play&&$cfs.trigger(cf_e("play",conf),opts.auto.delay),crsl.upDateOnWindowResize&&(o=function(t){$cfs.trigger(cf_e("finish",conf)),opts.auto.pauseOnResize&&!crsl.isPaused&&$cfs.trigger(cf_e("play",conf)),sz_resetMargin($cfs.children(),opts),$cfs.trigger(cf_e("updateSizes",conf))},n=$(window),e=null,e=$.debounce&&"debounce"==conf.onWindowResize?$.debounce(200,o):$.throttle&&"throttle"==conf.onWindowResize?$.throttle(300,o):(c=r=0,function(){var t=n.width(),e=n.height();t==r&&e==c||(o(),r=t,c=e)}),n.bind(cf_e("resize",conf,!1,!0,!0),e))},_unbind_buttons:function(){cf_e("",conf);var t=cf_e("",conf,!1);ns3=cf_e("",conf,!1,!0,!0),$(document).unbind(ns3),$(window).unbind(ns3),$wrp.unbind(t),opts.auto.button&&opts.auto.button.unbind(t),opts.prev.button&&opts.prev.button.unbind(t),opts.next.button&&opts.next.button.unbind(t),opts.pagination.container&&(opts.pagination.container.unbind(t),opts.pagination.anchorBuilder&&opts.pagination.container.children().remove()),crsl.swipe&&($cfs.swipe("destroy"),$wrp.css("cursor","default"),crsl.swipe=!1),crsl.mousewheel&&(crsl.mousewheel=!1),nv_showNavi(opts,"hide",conf),nv_enableNavi(opts,"removeClass",conf)}};is_boolean(configs)&&(configs={debug:configs});var crsl={direction:"next",isPaused:!0,isScrolling:!1,isStopped:!1,mousewheel:!1,swipe:!1},itms={total:$cfs.children().length,first:0},tmrs={auto:null,progress:null,startTime:getTime(),timePassed:0},scrl={isStopped:!1,duration:0,startTime:0,easing:"",anims:[]},clbk={onBefore:[],onAfter:[]},queu=[],conf=$.extend(!0,{},$.fn.carouFredSel.configs,configs),opts={},opts_orig=$.extend(!0,{},options),$wrp=("parent"==conf.wrapper?$cfs:$cfs.wrap("<"+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />')).parent(),start_arr,start_arr;if(conf.selector=$cfs.selector,conf.serialNumber=$.fn.carouFredSel.serialNumber++,conf.transition=conf.transition&&$.fn.transition?"transition":"animate",FN._init(opts_orig,!0,starting_position),FN._build(),FN._bind_events(),FN._bind_buttons(),is_array(opts.items.start)?start_arr=opts.items.start:(start_arr=[],0!=opts.items.start&&start_arr.push(opts.items.start)),opts.cookie&&start_arr.unshift(parseInt(cf_getCookie(opts.cookie),10)),0<start_arr.length)for(var a=0,l=start_arr.length;a<l;a++){var s=start_arr[a];if(0!=s){if(!0===s){if(s=window.location.hash,s.length<1)continue}else"random"===s&&(s=Math.floor(Math.random()*itms.total));if($cfs.triggerHandler(cf_e("slideTo",conf),[s,0,!0,{fx:"none"}]))break}}var siz=sz_setSizes($cfs,opts),itm=gi_getCurrentItems($cfs.children(),opts);return opts.onCreate&&opts.onCreate.call($tt0,{width:siz.width,height:siz.height,items:itm}),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,siz]),$cfs.trigger(cf_e("linkAnchors",conf)),conf.debug&&$cfs.trigger(cf_e("debug",conf)),$cfs},$.fn.carouFredSel.serialNumber=1,$.fn.carouFredSel.defaults={synchronise:!1,infinite:!0,circular:!0,responsive:!0,direction:"left",items:{start:0},scroll:{easing:"swing",duration:500,pauseOnHover:!1,event:"click",queue:!1}},$.fn.carouFredSel.configs={padding:"5px",debug:!1,transition:!1,onWindowResize:"throttle",events:{prefix:"",namespace:"cfs"},wrapper:{element:"div",classname:"caroufredsel_wrapper"},classnames:{}},$.fn.carouFredSel.pageAnchorBuilder=function(t){return'<a href="#"><span>'+t+"</span></a>"},$.fn.carouFredSel.progressbarUpdater=function(t){$(this).css("width",t+"%")},$.fn.carouFredSel.cookie={get:function(t){t+="=";for(var e=document.cookie.split(";"),s=0,i=e.length;s<i;s++){for(var o=e[s];" "==o.charAt(0);)o=o.slice(1);if(0==o.indexOf(t))return o.slice(t.length)}return 0},set:function(t,e,s){var i,o="";s&&((i=new Date).setTime(i.getTime()+24*s*60*60*1e3),o="; expires="+i.toGMTString()),document.cookie=t+"="+e+o+"; path=/"},remove:function(t){$.fn.carouFredSel.cookie.set(t,"",-1)}},$.extend($.easing,{quadratic:function(t){var e=t*t;return t*(-e*t+4*e-6*t+4)},cubic:function(t){return t*(4*t*t-9*t+6)},elastic:function(t){var e=t*t;return t*(33*e*e-106*e*t+126*e-67*t+15)}}))}(jQuery);
1
+ !function($){function sc_setScroll(t,e,s){return{anims:[],duration:t,orgDuration:t,easing:e="transition"==s.transition&&"swing"==e?"ease":e,startTime:getTime()}}function sc_startScroll(t,e){for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o&&o[0][e.transition](o[1],t.duration,t.easing,o[2])}}function sc_stopScroll(t,e){is_boolean(e)||(e=!0),is_object(t.pre)&&sc_stopScroll(t.pre,e);for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o[0].stop(!0),e&&(o[0].css(o[1]),is_function(o[2])&&o[2]())}is_object(t.post)&&sc_stopScroll(t.post,e)}function sc_afterScroll(t,e,s){switch(e&&e.remove(),s.fx){case"fade":case"crossfade":case"cover-fade":case"uncover-fade":t.css("opacity",1),t.css("filter","")}}function sc_fireCallbacks(t,e,s,i,o){if(e[s]&&e[s].call(t,i),o[s].length)for(var n=0,r=o[s].length;n<r;n++)o[s][n].call(t,i);return[]}function sc_fireQueue(t,e,s){return e.length&&(t.trigger(cf_e(e[0][0],s),e[0][1]),e.shift()),e}function sc_hideHiddenItems(t){t.each(function(){var t=$(this);t.data("_cfs_isHidden",t.is(":hidden")).hide()})}function sc_showHiddenItems(t){t&&t.each(function(){var t=$(this);t.data("_cfs_isHidden")||t.show()})}function sc_clearTimers(t){return t.auto&&clearTimeout(t.auto),t.progress&&clearInterval(t.progress),t}function sc_mapCallbackArguments(t,e,s,i,o,n,r){return{width:r.width,height:r.height,items:{old:t,skipped:e,visible:s},scroll:{items:i,direction:o,duration:n}}}function sc_getDuration(t,e,s,i){var o=t.duration;return"none"==t.fx?0:("auto"==o?o=e.scroll.duration/e.scroll.items*s:o<10&&(o=i/o),o<1?0:("fade"==t.fx&&(o/=2),Math.round(o)))}function nv_showNavi(t,e,s){var i=is_number(t.items.minimum)?t.items.minimum:t.items.visible+1,i="show"==(e="show"==e||"hide"==e?e:e<i?(debug(s,"Not enough items ("+e+" total, "+i+" needed): Hiding navigation."),"hide"):"show")?"removeClass":"addClass",s=cf_c("hidden",s);t.auto.button&&t.auto.button[e]()[i](s),t.prev.button&&t.prev.button[e]()[i](s),t.next.button&&t.next.button[e]()[i](s),t.pagination.container&&t.pagination.container[e]()[i](s)}function nv_enableNavi(t,e,s){var i,o;t.circular||t.infinite||(i=("removeClass"==e||"addClass"==e)&&e,s=cf_c("disabled",s),t.auto.button&&i&&t.auto.button[i](s),t.prev.button&&t.prev.button[o=i||0==e?"addClass":"removeClass"](s),t.next.button&&(o=i||e==t.items.visible?"addClass":"removeClass",t.next.button[o](s)))}function go_getObject(t,e){return is_function(e)?e=e.call(t):is_undefined(e)&&(e={}),e}function go_getItemsObject(t,e){return is_number(e=go_getObject(t,e))?e={visible:e}:"variable"==e?e={visible:e,width:e,height:e}:is_object(e)||(e={}),e}function go_getScrollObject(t,e){return is_number(e=go_getObject(t,e))?e=e<=50?{items:e}:{duration:e}:is_string(e)?e={easing:e}:is_object(e)||(e={}),e}function go_getNaviObject(t,e){return e=is_string(e=go_getObject(t,e))?-1==(t=cf_getKeyCode(e))?$(e):t:e}function go_getAutoObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_boolean(e)?e={play:e}:is_number(e)&&(e={timeoutDuration:e}),e.progress&&(is_string(e.progress)||is_jquery(e.progress))&&(e.progress={bar:e.progress}),e}function go_complementAutoObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_boolean(e.play)||(e.play=!0),is_number(e.delay)||(e.delay=0),is_undefined(e.pauseOnEvent)&&(e.pauseOnEvent=!0),is_boolean(e.pauseOnResize)||(e.pauseOnResize=!0),is_number(e.timeoutDuration)||(e.timeoutDuration=e.duration<10?2500:5*e.duration),e.progress&&(is_function(e.progress.bar)&&(e.progress.bar=e.progress.bar.call(t)),is_string(e.progress.bar)&&(e.progress.bar=$(e.progress.bar)),e.progress.bar?(is_function(e.progress.updater)||(e.progress.updater=$.fn.carouFredSel.progressbarUpdater),is_number(e.progress.interval)||(e.progress.interval=50)):e.progress=!1),e}function go_getPrevNextObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_number(e)&&(e={key:e}),e}function go_complementPrevNextObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_string(e.key)&&(e.key=cf_getKeyCode(e.key)),e}function go_getPaginationObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={container:e}:is_boolean(e)&&(e={keys:e}),e}function go_complementPaginationObject(t,e){return is_function(e.container)&&(e.container=e.container.call(t)),is_string(e.container)&&(e.container=$(e.container)),is_number(e.items)||(e.items=!1),is_boolean(e.keys)||(e.keys=!1),is_function(e.anchorBuilder)||is_false(e.anchorBuilder)||(e.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder),is_number(e.deviation)||(e.deviation=0),e}function go_getSwipeObject(t,e){return is_true(e=is_undefined(e=is_function(e)?e.call(t):e)?{onTouch:!1}:e)?e={onTouch:e}:is_number(e)&&(e={items:e}),e}function go_complementSwipeObject(t,e){return is_boolean(e.onTouch)||(e.onTouch=!0),is_boolean(e.onMouse)||(e.onMouse=!1),is_object(e.options)||(e.options={}),is_boolean(e.options.triggerOnTouchEnd)||(e.options.triggerOnTouchEnd=!1),e}function go_getMousewheelObject(t,e){return is_true(e=is_function(e)?e.call(t):e)?e={}:is_number(e)?e={items:e}:is_undefined(e)&&(e=!1),e}function go_complementMousewheelObject(t,e){return e}function gn_getItemIndex(t,e,s,i,o){if(is_jquery(t=is_object(t=is_string(t)?$(t,o):t)?$(t,o):t)?(t=o.children().index(t),is_boolean(s)||(s=!1)):is_boolean(s)||(s=!0),is_number(t)||(t=0),is_number(e)||(e=0),s&&(t+=i.first),t+=e,0<i.total){for(;t>=i.total;)t-=i.total;for(;t<0;)t+=i.total}return t}function gn_getVisibleItemsPrev(t,e,s){for(var i=0,o=0,n=s;0<=n;n--){var r=t.eq(n);if((i+=r.is(":visible")?r[e.d.outerWidth](!0):0)>e.maxDimension)return o;0==n&&(n=t.length),o++}}function gn_getVisibleItemsPrevFilter(t,e,s){return gn_getItemsPrevFilter(t,e.items.filter,e.items.visibleConf.org,s)}function gn_getScrollItemsPrevFilter(t,e,s,i){return gn_getItemsPrevFilter(t,e.items.filter,i,s)}function gn_getItemsPrevFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length;0<=r;r--){if(++n==c)return n;var a=t.eq(r);if(a.is(e)&&++o==s)return n;0==r&&(r=c)}}function gn_getVisibleOrg(t,e){return e.items.visibleConf.org||t.children().slice(0,e.items.visible).filter(e.items.filter).length}function gn_getVisibleItemsNext(t,e,s){for(var i=0,o=0,n=s,r=t.length-1;n<=r;n++){var c=t.eq(n);if((i+=c.is(":visible")?c[e.d.outerWidth](!0):0)>e.maxDimension)return o;if(++o==1+r)return o;n==r&&(n=-1)}}function gn_getVisibleItemsNextTestCircular(t,e,s,i){t=gn_getVisibleItemsNext(t,e,s);return e.circular||i<s+t&&(t=i-s),t}function gn_getVisibleItemsNextFilter(t,e,s){return gn_getItemsNextFilter(t,e.items.filter,e.items.visibleConf.org,s,e.circular)}function gn_getScrollItemsNextFilter(t,e,s,i){return gn_getItemsNextFilter(t,e.items.filter,i+1,s,e.circular)-1}function gn_getItemsNextFilter(t,e,s,i,o){for(var n=0,r=0,c=i,a=t.length-1;c<=a;c++){if(a<=++r)return r;var f=t.eq(c);if(f.is(e)&&++n==s)return r;c==a&&(c=-1)}}function gi_getCurrentItems(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsPrev(t,e,s){return t.slice(s,e.items.visibleConf.old+s)}function gi_getNewItemsPrev(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsNext(t,e){return t.slice(0,e.items.visibleConf.old)}function gi_getNewItemsNext(t,e,s){return t.slice(s,e.items.visible+s)}function sz_storeMargin(t,s,i){s.usePadding&&(is_string(i)||(i="_cfs_origCssMargin"),t.each(function(){var t=$(this),e=parseInt(t.css(s.d.marginRight),10);is_number(e)||(e=0),t.data(i,e)}))}function sz_resetMargin(t,e,s){var i;e.usePadding&&(i=!!is_boolean(s)&&s,is_number(s)||(s=0),sz_storeMargin(t,e,"_cfs_tempCssMargin"),t.each(function(){var t=$(this);t.css(e.d.marginRight,i?t.data("_cfs_tempCssMargin"):s+t.data("_cfs_origCssMargin"))}))}function sz_storeOrigCss(t){t.each(function(){var t=$(this);t.data("_cfs_origCss",t.attr("style")||"")})}function sz_restoreOrigCss(t){t.each(function(){var t=$(this);t.attr("style",t.data("_cfs_origCss")||"")})}function sz_setResponsiveSizes(s,t){s.items.visible;var i=s.items[s.d.width],o=s[s.d.height],n=is_percentage(o);t.each(function(){var t=$(this),e=i-ms_getPaddingBorderMargin(t,s,"Width");t[s.d.width](e),n&&t[s.d.height](ms_getPercentage(e,o))})}function sz_setSizes(t,e){var s,i=t.parent(),o=t.children(),n=gi_getCurrentItems(o,e),r=cf_mapWrapperSizes(ms_getSizes(n,e,!0),e,!1);return i.css(r),e.usePadding&&(i=(s=e.padding)[e.d[1]],e.align&&i<0&&(i=0),(n=n.last()).css(e.d.marginRight,n.data("_cfs_origCssMargin")+i),t.css(e.d.top,s[e.d[0]]),t.css(e.d.left,s[e.d[3]])),t.css(e.d.width,r[e.d.width]+2*ms_getTotalSize(o,e,"width")),t.css(e.d.height,ms_getLargestSize(o,e,"height")),r}function ms_getSizes(t,e,s){return[ms_getTotalSize(t,e,"width",s),ms_getLargestSize(t,e,"height",s)]}function ms_getLargestSize(t,e,s,i){return is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i?e[e.d[s]]:is_number(e.items[e.d[s]])?e.items[e.d[s]]:ms_getTrueLargestSize(t,e,s=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight")}function ms_getTrueLargestSize(t,e,s){for(var i=0,o=0,n=t.length;o<n;o++){var r=t.eq(o),r=r.is(":visible")?r[e.d[s]](!0):0;i<r&&(i=r)}return i}function ms_getTotalSize(t,e,s,i){if(is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i)return e[e.d[s]];if(is_number(e.items[e.d[s]]))return e.items[e.d[s]]*t.length;for(var o=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight",n=0,r=0,c=t.length;r<c;r++){var a=t.eq(r);n+=a.is(":visible")?a[e.d[o]](!0):0}return n}function ms_getParentSize(t,e,s){var i=t.is(":visible");i&&t.hide();s=t.parent()[e.d[s]]();return i&&t.show(),s}function ms_getMaxDimension(t,e){return is_number(t[t.d.width])?t[t.d.width]:e}function ms_hasVariableSizes(t,e,s){for(var i=!1,o=!1,n=0,r=t.length;n<r;n++){var c=t.eq(n),c=c.is(":visible")?c[e.d[s]](!0):0;!1===i?i=c:i!=c&&(o=!0),0==i&&(o=!0)}return o}function ms_getPaddingBorderMargin(t,e,s){return t[e.d["outer"+s]](!0)-t[e.d[s.toLowerCase()]]()}function ms_getPercentage(t,e){if(is_percentage(e)){if(!is_number(e=parseInt(e.slice(0,-1),10)))return t;t*=e/100}return t}function cf_e(t,e,s,i,o){return is_boolean(s)||(s=!0),is_boolean(i)||(i=!0),is_boolean(o)||(o=!1),s&&(t=e.events.prefix+t),i&&(t=t+"."+e.events.namespace),i&&o&&(t+=e.serialNumber),t}function cf_c(t,e){return is_string(e.classnames[t])?e.classnames[t]:t}function cf_mapWrapperSizes(t,e,s){is_boolean(s)||(s=!0);var i=e.usePadding&&s?e.padding:[0,0,0,0],s={};return s[e.d.width]=t[0]+i[1]+i[3],s[e.d.height]=t[1]+i[0]+i[2],s}function cf_sortParams(t,e){for(var s=[],i=0,o=t.length;i<o;i++)for(var n=0,r=e.length;n<r;n++)if(-1<e[n].indexOf(typeof t[i])&&is_undefined(s[n])){s[n]=t[i];break}return s}function cf_getPadding(t){if(is_undefined(t))return[0,0,0,0];if(is_number(t))return[t,t,t,t];if(!is_array(t=is_string(t)?t.split("px").join("").split("em").join("").split(" "):t))return[0,0,0,0];for(var e=0;e<4;e++)t[e]=parseInt(t[e],10);switch(t.length){case 0:return[0,0,0,0];case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];default:return[t[0],t[1],t[2],t[3]]}}function cf_getAlignPadding(t,e){var s=is_number(e[e.d.width])?Math.ceil(e[e.d.width]-ms_getTotalSize(t,e,"width")):0;switch(e.align){case"left":return[0,s];case"right":return[s,0];case"center":default:return[Math.ceil(s/2),Math.floor(s/2)]}}function cf_getDimensions(t){for(var e=[["width","innerWidth","outerWidth","height","innerHeight","outerHeight","left","top","marginRight",0,1,2,3],["height","innerHeight","outerHeight","width","innerWidth","outerWidth","top","left","marginBottom",3,2,1,0]],s=e[0].length,i="right"==t.direction||"left"==t.direction?0:1,o={},n=0;n<s;n++)o[e[0][n]]=e[i][n];return o}function cf_getAdjust(t,e,s,i){var o=t;if(is_function(s))o=s.call(i,o);else if(is_string(s)){var n,r,i=s.split("+"),s=s.split("-");switch(i=s.length>i.length?(n=!0,r=s[0],s[1]):(n=!1,r=i[0],i[1]),r){case"even":o=t%2==1?t-1:t;break;case"odd":o=t%2==0?t-1:t;break;default:o=t}is_number(i=parseInt(i,10))&&(o+=i=n?-i:i)}return o=!is_number(o)||o<1?1:o}function cf_getItemsAdjust(t,e,s,i){return cf_getItemAdjustMinMax(cf_getAdjust(t,e,s,i),e.items.visibleConf)}function cf_getItemAdjustMinMax(t,e){return is_number(e.min)&&t<e.min&&(t=e.min),t=(t=is_number(e.max)&&t>e.max?e.max:t)<1?1:t}function cf_getSynchArr(t){is_array(t)||(t=[[t]]);for(var e=0,s=(t=!is_array(t[0])?[t]:t).length;e<s;e++)is_string(t[e][0])&&(t[e][0]=$(t[e][0])),is_boolean(t[e][1])||(t[e][1]=!0),is_boolean(t[e][2])||(t[e][2]=!0),is_number(t[e][3])||(t[e][3]=0);return t}function cf_getKeyCode(t){return"right"==t?39:"left"==t?37:"up"==t?38:"down"==t?40:-1}function cf_setCookie(t,e,s){t&&(s=e.triggerHandler(cf_e("currentPosition",s)),$.fn.carouFredSel.cookie.set(t,s))}function cf_getCookie(t){t=$.fn.carouFredSel.cookie.get(t);return""==t?0:t}function in_mapCss(t,e){for(var s={},i=0,o=e.length;i<o;i++)s[e[i]]=t.css(e[i]);return s}function in_complementItems(t,e,s,i){return is_object(t.visibleConf)||(t.visibleConf={}),is_object(t.sizesConf)||(t.sizesConf={}),0==t.start&&is_number(i)&&(t.start=i),is_object(t.visible)?(t.visibleConf.min=t.visible.min,t.visibleConf.max=t.visible.max,t.visible=!1):is_string(t.visible)?("variable"==t.visible?t.visibleConf.variable=!0:t.visibleConf.adjust=t.visible,t.visible=!1):is_function(t.visible)&&(t.visibleConf.adjust=t.visible,t.visible=!1),is_string(t.filter)||(t.filter=0<s.filter(":hidden").length?":visible":"*"),t[e.d.width]||(e.responsive?(debug(!0,"Set a "+e.d.width+" for the items!"),t[e.d.width]=ms_getTrueLargestSize(s,e,"outerWidth")):t[e.d.width]=ms_hasVariableSizes(s,e,"outerWidth")?"variable":s[e.d.outerWidth](!0)),t[e.d.height]||(t[e.d.height]=ms_hasVariableSizes(s,e,"outerHeight")?"variable":s[e.d.outerHeight](!0)),t.sizesConf.width=t.width,t.sizesConf.height=t.height,t}function in_complementVisibleItems(t,e){return"variable"==t.items[t.d.width]&&(t.items.visibleConf.variable=!0),t.items.visibleConf.variable||(is_number(t[t.d.width])?t.items.visible=Math.floor(t[t.d.width]/t.items[t.d.width]):(t.items.visible=Math.floor(e/t.items[t.d.width]),t[t.d.width]=t.items.visible*t.items[t.d.width],t.items.visibleConf.adjust||(t.align=!1)),("Infinity"==t.items.visible||t.items.visible<1)&&(debug(!0,'Not a valid number of visible items: Set to "variable".'),t.items.visibleConf.variable=!0)),t}function in_complementPrimarySize(t,e,s){return t="auto"==t?ms_getTrueLargestSize(s,e,"outerWidth"):t}function in_complementSecondarySize(t,e,s){return t=(t="auto"==t?ms_getTrueLargestSize(s,e,"outerHeight"):t)||e.items[e.d.height]}function in_getAlignPadding(t,e){e=cf_getAlignPadding(gi_getCurrentItems(e,t),t);return t.padding[t.d[1]]=e[1],t.padding[t.d[3]]=e[0],t}function in_getResponsiveValues(t,e,s){var i=cf_getItemAdjustMinMax(Math.ceil(t[t.d.width]/t.items[t.d.width]),t.items.visibleConf);i>e.length&&(i=e.length);e=Math.floor(t[t.d.width]/i);return t.items.visible=i,t.items[t.d.width]=e,t[t.d.width]=i*e,t}function bt_pauseOnHoverConfig(t){var e,s;return is_string(t)?(s=-1<t.indexOf("immediate"),e=-1<t.indexOf("resume")):s=e=!1,[s,e]}function bt_mousesheelNumber(t){return is_number(t)&&t}function is_null(t){return null===t}function is_undefined(t){return is_null(t)||void 0===t||""===t||"undefined"===t}function is_array(t){return t instanceof Array}function is_jquery(t){return t instanceof jQuery}function is_object(t){return(t instanceof Object||"object"==typeof t)&&!is_null(t)&&!is_jquery(t)&&!is_array(t)&&!is_function(t)}function is_number(t){return(t instanceof Number||"number"==typeof t)&&!isNaN(t)}function is_string(t){return(t instanceof String||"string"==typeof t)&&!is_undefined(t)&&!is_true(t)&&!is_false(t)}function is_function(t){return t instanceof Function||"function"==typeof t}function is_boolean(t){return t instanceof Boolean||"boolean"==typeof t||is_true(t)||is_false(t)}function is_true(t){return!0===t||"true"===t}function is_false(t){return!1===t||"false"===t}function is_percentage(t){return is_string(t)&&"%"==t.slice(-1)}function getTime(){return(new Date).getTime()}function deprecated(t,e){debug(!0,t+" is DEPRECATED, support for it will be removed. Use "+e+" instead.")}function debug(t,e){if(!is_undefined(window.console)&&!is_undefined(window.console.log)){var s;if(is_object(t)?(s=" ("+t.selector+")",t=t.debug):s="",!t)return!1;e=is_string(e)?"carouFredSel"+s+": "+e:["carouFredSel"+s+":",e],window.console.log(e)}return!1}$.fn.carouFredSel||($.fn.caroufredsel=$.fn.carouFredSel=function(options,configs){if(0==this.length)return debug(!0,'No element found for "'+this.selector+'".'),this;if(1<this.length)return this.each(function(){$(this).carouFredSel(options,configs)});var $cfs=this,$tt0=this[0],starting_position=!1;$cfs.data("_cfs_isCarousel")&&(starting_position=$cfs.triggerHandler("_cfs_triggerEvent","currentPosition"),$cfs.trigger("_cfs_triggerEvent",["destroy",!0]));var FN={_init:function(t,e,s){(t=go_getObject($tt0,t)).items=go_getItemsObject($tt0,t.items),t.scroll=go_getScrollObject($tt0,t.scroll),t.auto=go_getAutoObject($tt0,t.auto),t.prev=go_getPrevNextObject($tt0,t.prev),t.next=go_getPrevNextObject($tt0,t.next),t.pagination=go_getPaginationObject($tt0,t.pagination),t.swipe=go_getSwipeObject($tt0,t.swipe),t.mousewheel=go_getMousewheelObject($tt0,t.mousewheel),e&&(opts_orig=$.extend(!0,{},$.fn.carouFredSel.defaults,t)),(opts=$.extend(!0,{},$.fn.carouFredSel.defaults,t)).d=cf_getDimensions(opts),crsl.direction="up"==opts.direction||"left"==opts.direction?"next":"prev";var i=$cfs.children(),t=ms_getParentSize($wrp,opts,"width");if(is_true(opts.cookie)&&(opts.cookie="caroufredsel_cookie_"+conf.serialNumber),opts.maxDimension=ms_getMaxDimension(opts,t),opts.items=in_complementItems(opts.items,opts,i,s),opts[opts.d.width]=in_complementPrimarySize(opts[opts.d.width],opts,i),opts[opts.d.height]=in_complementSecondarySize(opts[opts.d.height],opts,i),opts.responsive&&(is_percentage(opts[opts.d.width])||(opts[opts.d.width]="100%")),is_percentage(opts[opts.d.width])&&(crsl.upDateOnWindowResize=!0,crsl.primarySizePercentage=opts[opts.d.width],opts[opts.d.width]=ms_getPercentage(t,crsl.primarySizePercentage),opts.items.visible||(opts.items.visibleConf.variable=!0)),opts.responsive?(opts.usePadding=!0,opts.padding=[5,5,5,5],opts.align=!1,opts.items.visibleConf.variable=!1):((opts=!opts.items.visible?in_complementVisibleItems(opts,t):opts)[opts.d.width]||(!opts.items.visibleConf.variable&&is_number(opts.items[opts.d.width])&&"*"==opts.items.filter?(opts[opts.d.width]=opts.items.visible*opts.items[opts.d.width],opts.align=!1):opts[opts.d.width]="variable"),is_undefined(opts.align)&&(opts.align=!!is_number(opts[opts.d.width])&&"center"),opts.items.visibleConf.variable&&(opts.items.visible=gn_getVisibleItemsNext(i,opts,0))),"*"==opts.items.filter||opts.items.visibleConf.variable||(opts.items.visibleConf.org=opts.items.visible,opts.items.visible=gn_getVisibleItemsNextFilter(i,opts,0)),opts.items.visible=cf_getItemsAdjust(opts.items.visible,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts.responsive)opts.items.visibleConf.min||(opts.items.visibleConf.min=opts.items.visible),opts.items.visibleConf.max||(opts.items.visibleConf.max=opts.items.visible),opts=in_getResponsiveValues(opts,i,t);else switch(opts.padding=cf_getPadding(opts.padding),"top"==opts.align?opts.align="left":"bottom"==opts.align&&(opts.align="right"),opts.align){case"center":case"left":case"right":"variable"!=opts[opts.d.width]&&((opts=in_getAlignPadding(opts,i)).usePadding=!0);break;default:opts.align=!1,opts.usePadding=0!=opts.padding[0]||0!=opts.padding[1]||0!=opts.padding[2]||0!=opts.padding[3]}is_number(opts.scroll.duration)||(opts.scroll.duration=500),is_undefined(opts.scroll.items)&&(opts.scroll.items=opts.responsive||opts.items.visibleConf.variable||"*"!=opts.items.filter?"visible":opts.items.visible),opts.auto=$.extend(!0,{},opts.scroll,opts.auto),opts.prev=$.extend(!0,{},opts.scroll,opts.prev),opts.next=$.extend(!0,{},opts.scroll,opts.next),opts.pagination=$.extend(!0,{},opts.scroll,opts.pagination),opts.auto=go_complementAutoObject($tt0,opts.auto),opts.prev=go_complementPrevNextObject($tt0,opts.prev),opts.next=go_complementPrevNextObject($tt0,opts.next),opts.pagination=go_complementPaginationObject($tt0,opts.pagination),opts.swipe=go_complementSwipeObject($tt0,opts.swipe),opts.mousewheel=go_complementMousewheelObject($tt0,opts.mousewheel),opts.synchronise&&(opts.synchronise=cf_getSynchArr(opts.synchronise)),opts.auto.onPauseStart&&(opts.auto.onTimeoutStart=opts.auto.onPauseStart,deprecated("auto.onPauseStart","auto.onTimeoutStart")),opts.auto.onPausePause&&(opts.auto.onTimeoutPause=opts.auto.onPausePause,deprecated("auto.onPausePause","auto.onTimeoutPause")),opts.auto.onPauseEnd&&(opts.auto.onTimeoutEnd=opts.auto.onPauseEnd,deprecated("auto.onPauseEnd","auto.onTimeoutEnd")),opts.auto.pauseDuration&&(opts.auto.timeoutDuration=opts.auto.pauseDuration,deprecated("auto.pauseDuration","auto.timeoutDuration"))},_build:function(){$cfs.data("_cfs_isCarousel",!0);var t=$cfs.children(),e=in_mapCss($cfs,["textAlign","float","position","top","right","bottom","left","zIndex","width","height","marginTop","marginRight","marginBottom","marginLeft"]),s="relative";switch(e.position){case"absolute":case"fixed":s=e.position}"parent"==conf.wrapper?sz_storeOrigCss($wrp):$wrp.css(e),$wrp.css({overflow:"hidden",position:s}),sz_storeOrigCss($cfs),$cfs.data("_cfs_origCssZindex",e.zIndex),$cfs.css({textAlign:"left","float":"none",position:"absolute",top:0,right:"auto",bottom:"auto",left:0,marginTop:0,marginRight:0,marginBottom:0,marginLeft:0}),sz_storeMargin(t,opts),sz_storeOrigCss(t),opts.responsive&&sz_setResponsiveSizes(opts,t)},_bind_events:function(){FN._unbind_events(),$cfs.bind(cf_e("stop",conf),function(t,e){return t.stopPropagation(),crsl.isStopped||opts.auto.button&&opts.auto.button.addClass(cf_c("stopped",conf)),crsl.isStopped=!0,opts.auto.play&&(opts.auto.play=!1,$cfs.trigger(cf_e("pause",conf),e)),!0}),$cfs.bind(cf_e("finish",conf),function(t){return t.stopPropagation(),crsl.isScrolling&&sc_stopScroll(scrl),!0}),$cfs.bind(cf_e("pause",conf),function(t,e,s){var i;return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),e&&crsl.isScrolling&&(scrl.isStopped=!0,i=getTime()-scrl.startTime,scrl.duration-=i,scrl.pre&&(scrl.pre.duration-=i),scrl.post&&(scrl.post.duration-=i),sc_stopScroll(scrl,!1)),crsl.isPaused||crsl.isScrolling||s&&(tmrs.timePassed+=getTime()-tmrs.startTime),crsl.isPaused||opts.auto.button&&opts.auto.button.addClass(cf_c("paused",conf)),crsl.isPaused=!0,opts.auto.onTimeoutPause&&(i=opts.auto.timeoutDuration-tmrs.timePassed,s=100-Math.ceil(100*i/opts.auto.timeoutDuration),opts.auto.onTimeoutPause.call($tt0,s,i)),!0}),$cfs.bind(cf_e("play",conf),function(t,e,s,i){t.stopPropagation(),tmrs=sc_clearTimers(tmrs);var o=cf_sortParams([e,s,i],["string","number","boolean"]);if(e=o[0],s=o[1],i=o[2],"prev"!=e&&"next"!=e&&(e=crsl.direction),is_number(s)||(s=0),(i=!is_boolean(i)?!1:i)&&(crsl.isStopped=!1,opts.auto.play=!0),!opts.auto.play)return t.stopImmediatePropagation(),debug(conf,"Carousel stopped: Not scrolling.");crsl.isPaused&&opts.auto.button&&(opts.auto.button.removeClass(cf_c("stopped",conf)),opts.auto.button.removeClass(cf_c("paused",conf))),crsl.isPaused=!1,tmrs.startTime=getTime();var n=opts.auto.timeoutDuration+s;return dur2=n-tmrs.timePassed,perc=100-Math.ceil(100*dur2/n),opts.auto.progress&&(tmrs.progress=setInterval(function(){var t=getTime()-tmrs.startTime+tmrs.timePassed,t=Math.ceil(100*t/n);opts.auto.progress.updater.call(opts.auto.progress.bar[0],t)},opts.auto.progress.interval)),tmrs.auto=setTimeout(function(){opts.auto.progress&&opts.auto.progress.updater.call(opts.auto.progress.bar[0],100),opts.auto.onTimeoutEnd&&opts.auto.onTimeoutEnd.call($tt0,perc,dur2),crsl.isScrolling?$cfs.trigger(cf_e("play",conf),e):$cfs.trigger(cf_e(e,conf),opts.auto)},dur2),opts.auto.onTimeoutStart&&opts.auto.onTimeoutStart.call($tt0,perc,dur2),!0}),$cfs.bind(cf_e("resume",conf),function(t){return t.stopPropagation(),scrl.isStopped?(scrl.isStopped=!1,crsl.isPaused=!1,crsl.isScrolling=!0,scrl.startTime=getTime(),sc_startScroll(scrl,conf)):$cfs.trigger(cf_e("play",conf)),!0}),$cfs.bind(cf_e("prev",conf)+" "+cf_e("next",conf),function(t,e,s,i,o){if(t.stopPropagation(),crsl.isStopped||$cfs.is(":hidden"))return t.stopImmediatePropagation(),debug(conf,"Carousel stopped or hidden: Not scrolling.");var n=is_number(opts.items.minimum)?opts.items.minimum:opts.items.visible+1;if(n>itms.total)return t.stopImmediatePropagation(),debug(conf,"Not enough items ("+itms.total+" total, "+n+" needed): Not scrolling.");e=(a=cf_sortParams([e,s,i,o],["object","number/string","function","boolean"]))[0],s=a[1],i=a[2],o=a[3];var r=t.type.slice(conf.events.prefix.length);if(is_object(e)||(e={}),is_function(i)&&(e.onAfter=i),is_boolean(o)&&(e.queue=o),(e=$.extend(!0,{},opts[r],e)).conditions&&!e.conditions.call($tt0,r))return t.stopImmediatePropagation(),debug(conf,'Callback "conditions" returned false.');if(!is_number(s)){if("*"!=opts.items.filter)s="visible";else for(var c=[s,e.items,opts[r].items],a=0,f=c.length;a<f;a++)if(is_number(c[a])||"page"==c[a]||"visible"==c[a]){s=c[a];break}switch(s){case"page":return t.stopImmediatePropagation(),$cfs.triggerHandler(cf_e(r+"Page",conf),[e,i]);case"visible":opts.items.visibleConf.variable||"*"!=opts.items.filter||(s=opts.items.visible)}}if(scrl.isStopped)return $cfs.trigger(cf_e("resume",conf)),$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]]),t.stopImmediatePropagation(),debug(conf,"Carousel resumed scrolling.");if(0<e.duration&&crsl.isScrolling)return e.queue&&("last"==e.queue&&(queu=[]),"first"==e.queue&&0!=queu.length||$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]])),t.stopImmediatePropagation(),debug(conf,"Carousel currently scrolling.");if(tmrs.timePassed=0,$cfs.trigger(cf_e("slide_"+r,conf),[e,s]),opts.synchronise)for(var l=opts.synchronise,u=[e,s],p=0,f=l.length;p<f;p++){var d=r;l[p][2]||(d="prev"==d?"next":"prev"),l[p][1]||(u[0]=l[p][0].triggerHandler("_cfs_triggerEvent",["configuration",d])),u[1]=s+l[p][3],l[p][0].trigger("_cfs_triggerEvent",["slide_"+d,u])}return!0}),$cfs.bind(cf_e("slide_prev",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&0==itms.first)return opts.infinite&&$cfs.trigger(cf_e("next",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(i,opts,itms.total-1):"*"!=opts.items.filter?(p=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsPrevFilter(i,opts,itms.total-1,p)):opts.items.visible,opts,e.items,$tt0)),opts.circular||itms.total-s<itms.first&&(s=itms.total-itms.first),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable?(g=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0),opts.items.visible+s<=g&&s<itms.total&&(s++,g=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0)),opts.items.visible=g):"*"!=opts.items.filter&&(g=gn_getVisibleItemsNextFilter(i,opts,itms.total-s),opts.items.visible=cf_getItemsAdjust(g,opts,opts.items.visibleConf.adjust,$tt0)),sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items backward."),itms.first+=s;itms.first>=itms.total;)itms.first-=itms.total;opts.circular||(0==itms.first&&e.onEnd&&e.onEnd.call($tt0,"prev"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),$cfs.children().slice(itms.total-s,itms.total).prependTo($cfs),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var o=gi_getOldItemsPrev(i=$cfs.children(),opts,s),n=gi_getNewItemsPrev(i,opts),r=i.eq(s-1),c=o.last(),a=n.last();sz_resetMargin(i,opts);var f=0,l=0;opts.align&&(f=(x=cf_getAlignPadding(n,opts))[0],l=x[1]);var u,p=f<0?opts.padding[opts.d[3]]:0,d=!1,g=$();opts.items.visible<s&&(g=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(u=opts.items[opts.d.width],r=a,sc_hideHiddenItems(d=g),opts.items[opts.d.width]="variable"));var m=!1,t=ms_getTotalSize(i.slice(0,s),opts,"width"),_=cf_mapWrapperSizes(ms_getSizes(n,opts,!0),opts,!opts.usePadding),b=0,v={},h={},w={},P={},C={},x={},S={},y=sc_getDuration(e,opts,s,t);switch(e.fx){case"cover":case"cover-fade":b=ms_getTotalSize(i.slice(0,opts.items.visible),opts,"width")}d&&(opts.items[opts.d.width]=u),sz_resetMargin(i,opts,!0),0<=l&&sz_resetMargin(c,opts,opts.padding[opts.d[1]]),0<=f&&sz_resetMargin(r,opts,opts.padding[opts.d[3]]),opts.align&&(opts.padding[opts.d[1]]=l,opts.padding[opts.d[3]]=f),x[opts.d.left]=-(t-p),S[opts.d.left]=-(b-p),h[opts.d.left]=_[opts.d.width];var I=function(){},z=function(){},j=function(){},k=function(){},N=function(){},O=function(){},T=function(){},M=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":m=$cfs.clone(!0).appendTo($wrp)}switch(e.fx){case"crossfade":case"uncover":case"uncover-fade":m.children().slice(0,s).remove(),m.children().slice(opts.items.visibleConf.old).remove();break;case"cover":case"cover-fade":m.children().slice(opts.items.visible).remove(),m.css(S)}if($cfs.css(x),scrl=sc_setScroll(y,e.easing,conf),v[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0,"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(I=function(){$wrp.css(_)},z=function(){scrl.anims.push([$wrp,_])}),opts.usePadding){switch(a.not(r).length&&(w[opts.d.marginRight]=r.data("_cfs_origCssMargin"),f<0?r.css(w):(T=function(){r.css(w)},M=function(){scrl.anims.push([r,w])})),e.fx){case"cover":case"cover-fade":m.children().eq(s-1).css(w)}a.not(c).length&&(P[opts.d.marginRight]=c.data("_cfs_origCssMargin"),j=function(){c.css(P)},k=function(){scrl.anims.push([c,P])}),0<=l&&(C[opts.d.marginRight]=a.data("_cfs_origCssMargin")+opts.padding[opts.d[1]],N=function(){a.css(C)},O=function(){scrl.anims.push([a,C])})}var A=function(){$cfs.css(v)},F=opts.items.visible+s-itms.total,H=function(){var t;0<F&&($cfs.children().slice(itms.total).remove(),o=$($cfs.children().slice(itms.total-(opts.items.visible-F)).get().concat($cfs.children().slice(0,F).get()))),sc_showHiddenItems(d),opts.usePadding&&(t=$cfs.children().eq(opts.items.visible+s-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin"))},q=sc_mapCallbackArguments(o,g,n,s,"prev",y,_),D=function(){sc_afterScroll($cfs,m,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",q,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",q,clbk),e.fx){case"none":$cfs.css(v),I(),j(),N(),T(),A(),H(),D();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){I(),j(),N(),T(),A(),H(),(scrl=sc_setScroll(y,e.easing,conf)).anims.push([$cfs,{opacity:1},D]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([m,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},D]),z(),j(),N(),T(),A(),H();break;case"cover":scrl.anims.push([m,v,function(){j(),N(),T(),A(),H(),D()}]),z();break;case"cover-fade":scrl.anims.push([$cfs,{opacity:0}]),scrl.anims.push([m,v,function(){j(),N(),T(),A(),H(),D()}]),z();break;case"uncover":scrl.anims.push([m,h,D]),z(),j(),N(),T(),A(),H();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([m,h,D]),z(),j(),N(),T(),A(),H();break;default:scrl.anims.push([$cfs,v,function(){H(),D()}]),z(),k(),O(),M()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,_]),!0}),$cfs.bind(cf_e("slide_next",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&itms.first==opts.items.visible)return opts.infinite&&$cfs.trigger(cf_e("prev",conf),itms.total-1),t.stopImmediatePropagation();sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s="*"!=opts.items.filter?(p=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsNextFilter(i,opts,0,p)):opts.items.visible,opts,e.items,$tt0));var o=0==itms.first?itms.total:itms.first;if(opts.circular||(p=opts.items.visibleConf.variable?(n=gn_getVisibleItemsNext(i,opts,s),gn_getVisibleItemsPrev(i,opts,o-1)):(n=opts.items.visible,opts.items.visible),o<s+n&&(s=o-p)),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){for(var n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible-s>=n&&s<itms.total;)n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,++s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible=n}else"*"!=opts.items.filter&&(n=gn_getVisibleItemsNextFilter(i,opts,s),opts.items.visible=cf_getItemsAdjust(n,opts,opts.items.visibleConf.adjust,$tt0));if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items forward."),itms.first-=s;itms.first<0;)itms.first+=itms.total;opts.circular||(itms.first==opts.items.visible&&e.onEnd&&e.onEnd.call($tt0,"next"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var r=gi_getOldItemsNext(i=$cfs.children(),opts),c=gi_getNewItemsNext(i,opts,s),a=i.eq(s-1),f=r.last(),l=c.last();sz_resetMargin(i,opts);var u=0,p=0;opts.align&&(u=(_=cf_getAlignPadding(c,opts))[0],p=_[1]);var d,g=!1,t=$();opts.items.visibleConf.old<s&&(t=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(d=opts.items[opts.d.width],a=f,sc_hideHiddenItems(g=t),opts.items[opts.d.width]="variable"));var m=!1,_=ms_getTotalSize(i.slice(0,s),opts,"width"),b=cf_mapWrapperSizes(ms_getSizes(c,opts,!0),opts,!opts.usePadding),v=0,h={},w={},P={},C={},x={},S=sc_getDuration(e,opts,s,_);switch(e.fx){case"uncover":case"uncover-fade":v=ms_getTotalSize(i.slice(0,opts.items.visibleConf.old),opts,"width")}g&&(opts.items[opts.d.width]=d),opts.align&&opts.padding[opts.d[1]]<0&&(opts.padding[opts.d[1]]=0),sz_resetMargin(i,opts,!0),sz_resetMargin(f,opts,opts.padding[opts.d[1]]),opts.align&&(opts.padding[opts.d[1]]=p,opts.padding[opts.d[3]]=u),x[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0;var y=function(){},I=function(){},z=function(){},j=function(){},k=function(){},N=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":(m=$cfs.clone(!0).appendTo($wrp)).children().slice(opts.items.visibleConf.old).remove()}switch(e.fx){case"crossfade":case"cover":case"cover-fade":$cfs.css("zIndex",1),m.css("zIndex",0)}scrl=sc_setScroll(S,e.easing,conf),h[opts.d.left]=-_,w[opts.d.left]=-v,u<0&&(h[opts.d.left]+=u),"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(y=function(){$wrp.css(b)},I=function(){scrl.anims.push([$wrp,b])}),opts.usePadding&&(_=l.data("_cfs_origCssMargin"),0<=p&&(_+=opts.padding[opts.d[1]]),l.css(opts.d.marginRight,_),a.not(f).length&&(C[opts.d.marginRight]=f.data("_cfs_origCssMargin")),z=function(){f.css(C)},j=function(){scrl.anims.push([f,C])},_=a.data("_cfs_origCssMargin"),0<u&&(_+=opts.padding[opts.d[3]]),P[opts.d.marginRight]=_,k=function(){a.css(P)},N=function(){scrl.anims.push([a,P])});var O=function(){$cfs.css(x)},T=opts.items.visible+s-itms.total,M=function(){0<T&&$cfs.children().slice(itms.total).remove();var t,e=$cfs.children().slice(0,s).appendTo($cfs).last();0<T&&(c=gi_getCurrentItems(i,opts)),sc_showHiddenItems(g),opts.usePadding&&(itms.total<opts.items.visible+s&&(t=$cfs.children().eq(opts.items.visible-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin")+opts.padding[opts.d[1]]),e.css(opts.d.marginRight,e.data("_cfs_origCssMargin")))},A=sc_mapCallbackArguments(r,t,c,s,"next",S,b),F=function(){$cfs.css("zIndex",$cfs.data("_cfs_origCssZindex")),sc_afterScroll($cfs,m,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",A,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",A,clbk),e.fx){case"none":$cfs.css(h),y(),z(),k(),O(),M(),F();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){y(),z(),k(),O(),M(),(scrl=sc_setScroll(S,e.easing,conf)).anims.push([$cfs,{opacity:1},F]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([m,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},F]),I(),z(),k(),O(),M();break;case"cover":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([$cfs,x,F]),I(),z(),k(),M();break;case"cover-fade":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([m,{opacity:0}]),scrl.anims.push([$cfs,x,F]),I(),z(),k(),M();break;case"uncover":scrl.anims.push([m,w,F]),I(),z(),k(),O(),M();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([m,w,F]),I(),z(),k(),O(),M();break;default:scrl.anims.push([$cfs,h,function(){O(),M(),F()}]),I(),j(),N()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,b]),!0}),$cfs.bind(cf_e("slideTo",conf),function(t,e,s,i,o,n,r){t.stopPropagation();i=cf_sortParams([e,s,i,o,n,r],["string/number/object","number","boolean","object","string","function"]);return o=i[3],n=i[4],r=i[5],0!=(e=gn_getItemIndex(i[0],i[1],i[2],itms,$cfs))&&(is_object(o)||(o=!1),"prev"==(n="prev"!=n&&"next"!=n?opts.circular?e<=itms.total/2?"next":"prev":0==itms.first||itms.first>e?"next":"prev":n)&&(e=itms.total-e),$cfs.trigger(cf_e(n,conf),[o,e,r]),!0)}),$cfs.bind(cf_e("prevPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t-1,e,"prev",s])}),$cfs.bind(cf_e("nextPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t+1,e,"next",s])}),$cfs.bind(cf_e("slideToPage",conf),function(t,e,s,i,o){t.stopPropagation(),is_number(e)||(e=$cfs.triggerHandler(cf_e("currentPage",conf)));var n=opts.pagination.items||opts.items.visible,t=Math.ceil(itms.total/n)-1;return t<(e=e<0?t:e)&&(e=0),$cfs.triggerHandler(cf_e("slideTo",conf),[e*n,0,!0,s,i,o])}),$cfs.bind(cf_e("jumpToStart",conf),function(t,e){if(t.stopPropagation(),e=e?gn_getItemIndex(e,0,!0,itms,$cfs):0,0!=(e+=itms.first)){if(0<itms.total)for(;e>itms.total;)e-=itms.total;$cfs.prepend($cfs.children().slice(e,itms.total))}return!0}),$cfs.bind(cf_e("synchronise",conf),function(t,e){if(t.stopPropagation(),e)e=cf_getSynchArr(e);else{if(!opts.synchronise)return debug(conf,"No carousel to synchronise.");e=opts.synchronise}for(var s=$cfs.triggerHandler(cf_e("currentPosition",conf)),i=!0,o=0,n=e.length;o<n;o++)e[o][0].triggerHandler(cf_e("slideTo",conf),[s,e[o][3],!0])||(i=!1);return i}),$cfs.bind(cf_e("queue",conf),function(t,e,s){return t.stopPropagation(),is_function(e)?e.call($tt0,queu):is_array(e)?queu=e:is_undefined(e)||queu.push([e,s]),queu}),$cfs.bind(cf_e("insertItem",conf),function(t,e,s,i,o){t.stopPropagation();var n=cf_sortParams([e,s,i,o],["string/object","string/number/object","boolean","number"]);if(e=n[0],s=n[1],i=n[2],o=n[3],(is_object(e)&&!is_jquery(e)||is_string(e))&&(e=$(e)),!is_jquery(e)||0==e.length)return debug(conf,"Not a valid object.");is_undefined(s)&&(s="end"),sz_storeMargin(e,opts),sz_storeOrigCss(e);t=s,n="before";"end"==s?i?(0==itms.first?(s=itms.total-1,n="after"):(s=itms.first,itms.first+=e.length),s<0&&(s=0)):(s=itms.total-1,n="after"):s=gn_getItemIndex(s,o,i,itms,$cfs);o=$cfs.children().eq(s);return o.length?o[n](e):(debug(conf,"Correct insert-position not found! Appending item to the end."),$cfs.append(e)),"end"==t||i||s<itms.first&&(itms.first+=e.length),itms.total=$cfs.children().length,itms.first>=itms.total&&(itms.first-=itms.total),$cfs.trigger(cf_e("updateSizes",conf)),$cfs.trigger(cf_e("linkAnchors",conf)),!0}),$cfs.bind(cf_e("removeItem",conf),function(t,e,i,o){t.stopPropagation();t=cf_sortParams([e,i,o],["string/number/object","boolean","number"]);e=t[0],i=t[1],o=t[2];var n;return e instanceof $&&1<e.length?(n=$(),e.each(function(t,e){var s=$cfs.trigger(cf_e("removeItem",conf),[$(this),i,o]);s&&(n=n.add(s))})):(is_undefined(e)||"end"==e?n=$cfs.children().last():(e=gn_getItemIndex(e,o,i,itms,$cfs),(n=$cfs.children().eq(e)).length&&e<itms.first&&(itms.first-=n.length)),n&&n.length&&(n.detach(),itms.total=$cfs.children().length,$cfs.trigger(cf_e("updateSizes",conf)))),n}),$cfs.bind(cf_e("onBefore",conf)+" "+cf_e("onAfter",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length);return is_array(e)&&(clbk[t]=e),is_function(e)&&clbk[t].push(e),clbk[t]}),$cfs.bind(cf_e("currentPosition",conf),function(t,e){return t.stopPropagation(),t=0==itms.first?0:itms.total-itms.first,is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("currentPage",conf),function(t,e){t.stopPropagation();var s=opts.pagination.items||opts.items.visible,t=Math.ceil(itms.total/s-1),s=0==itms.first||itms.first<itms.total%s?0:itms.first!=s||opts.circular?Math.round((itms.total-itms.first)/s):t;return t<(s=s<0?0:s)&&(s=t),is_function(e)&&e.call($tt0,s),s}),$cfs.bind(cf_e("currentVisible",conf),function(t,e){t.stopPropagation();t=gi_getCurrentItems($cfs.children(),opts);return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("slice",conf),function(t,e,s,i){if(t.stopPropagation(),0==itms.total)return!1;t=cf_sortParams([e,s,i],["number","number","function"]);if(e=is_number(t[0])?t[0]:0,s=is_number(t[1])?t[1]:itms.total,i=t[2],e+=itms.first,s+=itms.first,0<items.total){for(;e>itms.total;)e-=itms.total;for(;s>itms.total;)s-=itms.total;for(;e<0;)e+=itms.total;for(;s<0;)s+=itms.total}t=$cfs.children(),t=e<s?t.slice(e,s):$(t.slice(e,itms.total).get().concat(t.slice(0,s).get()));return is_function(i)&&i.call($tt0,t),t}),$cfs.bind(cf_e("isPaused",conf)+" "+cf_e("isStopped",conf)+" "+cf_e("isScrolling",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length),t=crsl[t];return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("configuration",conf),function(e,a,b,c){e.stopPropagation();var reInit=!1,sz;if(is_function(a))a.call($tt0,opts);else if(is_object(a))opts_orig=$.extend(!0,{},opts_orig,a),!1!==b?reInit=!0:opts=$.extend(!0,{},opts,a);else if(!is_undefined(a))if(is_function(b)){var val=eval("opts."+a);is_undefined(val)&&(val=""),b.call($tt0,val)}else{if(is_undefined(b))return eval("opts."+a);"boolean"!=typeof c&&(c=!0),eval("opts_orig."+a+" = b"),!1!==c?reInit=!0:eval("opts."+a+" = b")}return reInit&&(sz_resetMargin($cfs.children(),opts),FN._init(opts_orig),FN._bind_buttons(),sz=sz_setSizes($cfs,opts),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,sz])),opts}),$cfs.bind(cf_e("linkAnchors",conf),function(t,e,s){return t.stopPropagation(),is_undefined(e)?e=$("body"):is_string(e)&&(e=$(e)),is_jquery(e)&&0!=e.length?(is_string(s)||(s="a.caroufredsel"),e.find(s).each(function(){var e=this.hash||"";0<e.length&&-1!=$cfs.children().index($(e))&&$(this).unbind("click").click(function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),e)})}),!0):debug(conf,"Not a valid object.")}),$cfs.bind(cf_e("updatePageStatus",conf),function(t,e,s){if(t.stopPropagation(),opts.pagination.container){var i=opts.pagination.items||opts.items.visible,o=Math.ceil(itms.total/i);e&&(opts.pagination.anchorBuilder&&(opts.pagination.container.children().remove(),opts.pagination.container.each(function(){for(var t=0;t<o;t++){var e=$cfs.children().eq(gn_getItemIndex(t*i,0,!0,itms,$cfs));$(this).append(opts.pagination.anchorBuilder.call(e[0],t+1))}})),opts.pagination.container.each(function(){$(this).children().unbind(opts.pagination.event).each(function(e){$(this).bind(opts.pagination.event,function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e*i,-opts.pagination.deviation,!0,opts.pagination])})})}));var n=$cfs.triggerHandler(cf_e("currentPage",conf))+opts.pagination.deviation;return(n=o<=n?0:n)<0&&(n=o-1),opts.pagination.container.each(function(){$(this).children().removeClass(cf_c("selected",conf)).eq(n).addClass(cf_c("selected",conf))}),!0}}),$cfs.bind(cf_e("updateSizes",conf),function(t){var e=opts.items.visible,s=$cfs.children(),i=ms_getParentSize($wrp,opts,"width");itms.total=s.length,crsl.primarySizePercentage?(opts.maxDimension=i,opts[opts.d.width]=ms_getPercentage(i,crsl.primarySizePercentage)):opts.maxDimension=ms_getMaxDimension(opts,i),opts.responsive?(opts.items.width=opts.items.sizesConf.width,opts.items.height=opts.items.sizesConf.height,e=(opts=in_getResponsiveValues(opts,s,i)).items.visible,sz_setResponsiveSizes(opts,s)):opts.items.visibleConf.variable?e=gn_getVisibleItemsNext(s,opts,0):"*"!=opts.items.filter&&(e=gn_getVisibleItemsNextFilter(s,opts,0)),!opts.circular&&0!=itms.first&&e>itms.first&&(i=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(s,opts,itms.first)-itms.first:"*"!=opts.items.filter?gn_getVisibleItemsPrevFilter(s,opts,itms.first)-itms.first:opts.items.visible-itms.first,debug(conf,"Preventing non-circular: sliding "+i+" items backward."),$cfs.trigger(cf_e("prev",conf),i)),opts.items.visible=cf_getItemsAdjust(e,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts=in_getAlignPadding(opts,s);s=sz_setSizes($cfs,opts);return $cfs.trigger(cf_e("updatePageStatus",conf),[!0,s]),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),s}),$cfs.bind(cf_e("destroy",conf),function(t,e){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),$cfs.data("_cfs_isCarousel",!1),$cfs.trigger(cf_e("finish",conf)),e&&$cfs.trigger(cf_e("jumpToStart",conf)),sz_restoreOrigCss($cfs.children()),sz_restoreOrigCss($cfs),FN._unbind_events(),FN._unbind_buttons(),"parent"==conf.wrapper?sz_restoreOrigCss($wrp):$wrp.replaceWith($cfs),!0}),$cfs.bind(cf_e("debug",conf),function(t){return debug(conf,"Carousel width: "+opts.width),debug(conf,"Carousel height: "+opts.height),debug(conf,"Item widths: "+opts.items.width),debug(conf,"Item heights: "+opts.items.height),debug(conf,"Number of items visible: "+opts.items.visible),opts.auto.play&&debug(conf,"Number of items scrolled automatically: "+opts.auto.items),opts.prev.button&&debug(conf,"Number of items scrolled backward: "+opts.prev.items),opts.next.button&&debug(conf,"Number of items scrolled forward: "+opts.next.items),conf.debug}),$cfs.bind("_cfs_triggerEvent",function(t,e,s){return t.stopPropagation(),$cfs.triggerHandler(cf_e(e,conf),s)})},_unbind_events:function(){$cfs.unbind(cf_e("",conf)),$cfs.unbind(cf_e("",conf,!1)),$cfs.unbind("_cfs_triggerEvent")},_bind_buttons:function(){var t,s,i,o,n,r,c;if(FN._unbind_buttons(),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),opts.auto.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.auto.pauseOnHover),$wrp.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),opts.auto.button&&opts.auto.button.bind(cf_e(opts.auto.event,conf,!1),function(t){t.preventDefault();var e=!1,t=null;crsl.isPaused?e="play":opts.auto.pauseOnEvent&&(e="pause",t=bt_pauseOnHoverConfig(opts.auto.pauseOnEvent)),e&&$cfs.trigger(cf_e(e,conf),t)}),opts.prev.button&&(opts.prev.button.bind(cf_e(opts.prev.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("prev",conf))}),opts.prev.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.prev.pauseOnHover),opts.prev.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.next.button&&(opts.next.button.bind(cf_e(opts.next.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("next",conf))}),opts.next.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.next.pauseOnHover),opts.next.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.pagination.container&&opts.pagination.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.pagination.pauseOnHover),opts.pagination.container.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),(opts.prev.key||opts.next.key)&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e==opts.next.key&&(t.preventDefault(),$cfs.trigger(cf_e("next",conf))),e==opts.prev.key&&(t.preventDefault(),$cfs.trigger(cf_e("prev",conf)))}),opts.pagination.keys&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;49<=e&&e<58&&(e=(e-49)*opts.items.visible)<=itms.total&&(t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e,0,!0,opts.pagination]))}),$.fn.swipe){var e="ontouchstart"in window;if(e&&opts.swipe.onTouch||!e&&opts.swipe.onMouse){var a=$.extend(!0,{},opts.prev,opts.swipe),f=$.extend(!0,{},opts.next,opts.swipe),l=function(){$cfs.trigger(cf_e("prev",conf),[a])},u=function(){$cfs.trigger(cf_e("next",conf),[f])};switch(opts.direction){case"up":case"down":opts.swipe.options.swipeUp=u,opts.swipe.options.swipeDown=l;break;default:opts.swipe.options.swipeLeft=u,opts.swipe.options.swipeRight=l}crsl.swipe&&$cfs.swipe("destroy"),$wrp.swipe(opts.swipe.options),$wrp.css("cursor","move"),crsl.swipe=!0}}$.fn.mousewheel&&opts.mousewheel&&(s=$.extend(!0,{},opts.prev,opts.mousewheel),i=$.extend(!0,{},opts.next,opts.mousewheel),crsl.mousewheel&&$wrp.unbind(cf_e("mousewheel",conf,!1)),$wrp.bind(cf_e("mousewheel",conf,!1),function(t,e){t.preventDefault(),0<e?$cfs.trigger(cf_e("prev",conf),[s]):$cfs.trigger(cf_e("next",conf),[i])}),crsl.mousewheel=!0),opts.auto.play&&$cfs.trigger(cf_e("play",conf),opts.auto.delay),crsl.upDateOnWindowResize&&(o=function(t){$cfs.trigger(cf_e("finish",conf)),opts.auto.pauseOnResize&&!crsl.isPaused&&$cfs.trigger(cf_e("play",conf)),sz_resetMargin($cfs.children(),opts),$cfs.trigger(cf_e("updateSizes",conf))},n=$(window),e=null,e=$.debounce&&"debounce"==conf.onWindowResize?$.debounce(200,o):$.throttle&&"throttle"==conf.onWindowResize?$.throttle(300,o):(c=r=0,function(){var t=n.width(),e=n.height();t==r&&e==c||(o(),r=t,c=e)}),n.bind(cf_e("resize",conf,!1,!0,!0),e))},_unbind_buttons:function(){cf_e("",conf);var t=cf_e("",conf,!1);ns3=cf_e("",conf,!1,!0,!0),$(document).unbind(ns3),$(window).unbind(ns3),$wrp.unbind(t),opts.auto.button&&opts.auto.button.unbind(t),opts.prev.button&&opts.prev.button.unbind(t),opts.next.button&&opts.next.button.unbind(t),opts.pagination.container&&(opts.pagination.container.unbind(t),opts.pagination.anchorBuilder&&opts.pagination.container.children().remove()),crsl.swipe&&($cfs.swipe("destroy"),$wrp.css("cursor","default"),crsl.swipe=!1),crsl.mousewheel&&(crsl.mousewheel=!1),nv_showNavi(opts,"hide",conf),nv_enableNavi(opts,"removeClass",conf)}};is_boolean(configs)&&(configs={debug:configs});var crsl={direction:"next",isPaused:!0,isScrolling:!1,isStopped:!1,mousewheel:!1,swipe:!1},itms={total:$cfs.children().length,first:0},tmrs={auto:null,progress:null,startTime:getTime(),timePassed:0},scrl={isStopped:!1,duration:0,startTime:0,easing:"",anims:[]},clbk={onBefore:[],onAfter:[]},queu=[],conf=$.extend(!0,{},$.fn.carouFredSel.configs,configs),opts={},opts_orig=$.extend(!0,{},options),$wrp=("parent"==conf.wrapper?$cfs:$cfs.wrap("<"+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />')).parent(),start_arr,start_arr;if(conf.selector=$cfs.selector,conf.serialNumber=$.fn.carouFredSel.serialNumber++,conf.transition=conf.transition&&$.fn.transition?"transition":"animate",FN._init(opts_orig,!0,starting_position),FN._build(),FN._bind_events(),FN._bind_buttons(),is_array(opts.items.start)?start_arr=opts.items.start:(start_arr=[],0!=opts.items.start&&start_arr.push(opts.items.start)),opts.cookie&&start_arr.unshift(parseInt(cf_getCookie(opts.cookie),10)),0<start_arr.length)for(var a=0,l=start_arr.length;a<l;a++){var s=start_arr[a];if(0!=s){if(!0===s){if(s=window.location.hash,s.length<1)continue}else"random"===s&&(s=Math.floor(Math.random()*itms.total));if($cfs.triggerHandler(cf_e("slideTo",conf),[s,0,!0,{fx:"none"}]))break}}var siz=sz_setSizes($cfs,opts),itm=gi_getCurrentItems($cfs.children(),opts);return opts.onCreate&&opts.onCreate.call($tt0,{width:siz.width,height:siz.height,items:itm}),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,siz]),$cfs.trigger(cf_e("linkAnchors",conf)),conf.debug&&$cfs.trigger(cf_e("debug",conf)),$cfs},$.fn.carouFredSel.serialNumber=1,$.fn.carouFredSel.defaults={synchronise:!1,infinite:!0,circular:!0,responsive:!0,direction:"left",items:{start:0},scroll:{easing:"swing",duration:500,pauseOnHover:!1,event:"click",queue:!1}},$.fn.carouFredSel.configs={padding:"5px",debug:!1,transition:!1,onWindowResize:"throttle",events:{prefix:"",namespace:"cfs"},wrapper:{element:"div",classname:"caroufredsel_wrapper"},classnames:{}},$.fn.carouFredSel.pageAnchorBuilder=function(t){return'<a href="#"><span>'+t+"</span></a>"},$.fn.carouFredSel.progressbarUpdater=function(t){$(this).css("width",t+"%")},$.fn.carouFredSel.cookie={get:function(t){t+="=";for(var e=document.cookie.split(";"),s=0,i=e.length;s<i;s++){for(var o=e[s];" "==o.charAt(0);)o=o.slice(1);if(0==o.indexOf(t))return o.slice(t.length)}return 0},set:function(t,e,s){var i,o="";s&&((i=new Date).setTime(i.getTime()+24*s*60*60*1e3),o="; expires="+i.toGMTString()),document.cookie=t+"="+e+o+"; path=/"},remove:function(t){$.fn.carouFredSel.cookie.set(t,"",-1)}},$.extend($.easing,{quadratic:function(t){var e=t*t;return t*(-e*t+4*e-6*t+4)},cubic:function(t){return t*(4*t*t-9*t+6)},elastic:function(t){var e=t*t;return t*(33*e*e-106*e*t+126*e-67*t+15)}}))}(jQuery);
assets/js/yith_magnifier.js CHANGED
@@ -1,1041 +1,1041 @@
1
- /**
2
- * YITH Magnifier
3
- *
4
- * @version 0.1
5
- * @author YITH
6
- * @package YITH\ZoomMagnifier\Assets\JS
7
- *
8
- * MIT License.
9
- */
10
-
11
- (function (window, $, undefined) {
12
- 'use strict';
13
-
14
- // include imagesLoaded plugin.
15
- if ($.fn.imagesLoaded === undefined) {
16
- /*!
17
- * jQuery imagesLoaded plugin v2.1.1
18
- * http://github.com/desandro/imagesloaded
19
- *
20
- * MIT License. by Paul Irish et al.
21
- */
22
-
23
- /*jshint curly: true, eqeqeq: true, noempty: true, strict: true, undef: true, browser: true */
24
- /*global jQuery: false */
25
-
26
- ;
27
- (function ($, undefined) {
28
- 'use strict';
29
-
30
- // blank image data-uri bypasses webkit log warning (thx doug jones).
31
- var BLANK = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
32
-
33
- $.fn.imagesLoaded = function (callback) {
34
- var $this = this,
35
- deferred = $.isFunction( $.Deferred ) ? $.Deferred() : 0,
36
- hasNotify = $.isFunction( deferred.notify ),
37
- $images = $this.find( 'img' ).add( $this.filter( 'img' ) ),
38
- loaded = [],
39
- proper = [],
40
- broken = [];
41
-
42
- // Register deferred callbacks.
43
- if ($.isPlainObject( callback )) {
44
- $.each(
45
- callback,
46
- function (key, value) {
47
- if (key === 'callback') {
48
- callback = value;
49
- } else if (deferred) {
50
- deferred[key]( value );
51
- }
52
- }
53
- );
54
- }
55
-
56
- function doneLoading() {
57
- var $proper = $( proper ),
58
- $broken = $( broken );
59
-
60
- if (deferred) {
61
- if (broken.length) {
62
- deferred.reject( $images, $proper, $broken );
63
- } else {
64
- deferred.resolve( $images );
65
- }
66
- }
67
-
68
- if ($.isFunction( callback )) {
69
- callback.call( $this, $images, $proper, $broken );
70
- }
71
- }
72
-
73
- function imgLoadedHandler(event) {
74
- imgLoaded( event.target, event.type === 'error' );
75
- }
76
-
77
- function imgLoaded(img, isBroken) {
78
- // don't proceed if BLANK image, or image is already loaded.
79
- if (img.src === BLANK || $.inArray( img, loaded ) !== -1) {
80
- return;
81
- }
82
-
83
- // store element in loaded images array.
84
- loaded.push( img );
85
-
86
- // keep track of broken and properly loaded images.
87
- if (isBroken) {
88
- broken.push( img );
89
- } else {
90
- proper.push( img );
91
- }
92
-
93
- // cache image and its state for future calls.
94
- $.data( img, 'imagesLoaded', {isBroken: isBroken, src: img.src} );
95
-
96
- // trigger deferred progress method if present.
97
- if (hasNotify) {
98
- deferred.notifyWith( $( img ), [isBroken, $images, $( proper ), $( broken )] );
99
- }
100
-
101
- // call doneLoading and clean listeners if all images are loaded.
102
- if ($images.length === loaded.length) {
103
- setTimeout( doneLoading );
104
- $images.unbind( '.imagesLoaded', imgLoadedHandler );
105
- }
106
- }
107
-
108
- // if no images, trigger immediately.
109
- if ( ! $images.length) {
110
- doneLoading();
111
- } else {
112
- $images.bind( 'load.imagesLoaded error.imagesLoaded', imgLoadedHandler )
113
- .each(
114
- function (i, el) {
115
- var src = el.src;
116
-
117
- // find out if this image has been already checked for status
118
- // if it was, and src has not changed, call imgLoaded on it.
119
- var cached = $.data( el, 'imagesLoaded' );
120
- if (cached && cached.src === src) {
121
- imgLoaded( el, cached.isBroken );
122
- return;
123
- }
124
-
125
- // if complete is true and browser supports natural sizes, try
126
- // to check for image status manually.
127
- if (el.complete && el.naturalWidth !== undefined) {
128
- imgLoaded( el, el.naturalWidth === 0 || el.naturalHeight === 0 );
129
- return;
130
- }
131
-
132
- // cached images don't fire load sometimes, so we reset src, but only when
133
- // dealing with IE, or image is complete (loaded) and failed manual check
134
- // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f.
135
- if (el.readyState || el.complete) {
136
- el.src = BLANK;
137
- el.src = src;
138
- }
139
- }
140
- );
141
- }
142
-
143
- return deferred ? deferred.promise( $this ) : $this;
144
- };
145
-
146
- })( jQuery );
147
- }
148
-
149
- $.yith_magnifier = function (options, element) {
150
- this.t = element;
151
- this.element = $( element );
152
- this._init( options );
153
- };
154
-
155
- $.yith_magnifier.defaults = {
156
- zoomWidth : 'auto',
157
- zoomHeight : 'auto',
158
- position : 'right',
159
- tint : false,
160
- tintOpacity : 0.5,
161
- lensOpacity : 0.5,
162
- softFocus : false,
163
- smoothMove : 3,
164
- showTitle : true,
165
- titleOpacity: 0.5,
166
- adjustX : 0,
167
- adjustY : 0,
168
-
169
- phoneBehavior: 'inside', // allowed values: inside, disable, default.
170
- loadingLabel : 'Loading...',
171
-
172
- enableSlider : true,
173
- slider : 'carouFredSel',
174
- sliderOptions: {},
175
-
176
- from_gallery : 'no',
177
-
178
- onLoad : function () {
179
- return false;
180
- },
181
- onEnter: function () {
182
- return false
183
- },
184
- onLeave: function () {
185
- return false
186
- },
187
- onMove : function () {
188
- return false
189
- },
190
- onClick: function () {
191
- return false;
192
- },
193
-
194
- elements: {
195
- zoom : $( '.yith_magnifier_zoom' ),
196
- zoomImage: $( '.yith_magnifier_zoom img' ).first(),
197
- gallery : $( '.yith_magnifier_gallery li a' )
198
- }
199
- };
200
-
201
- $.yith_magnifier.prototype = {
202
-
203
- /**
204
- * Let's start the magnifier
205
- *
206
- * @param {Object} options
207
- *
208
- * @private
209
- */
210
- _init: function (options) {
211
- var self = this;
212
- $( document ).trigger( 'yith_magnifier_before_init' );
213
-
214
- $.each(
215
- $.yith_magnifier.defaults.elements,
216
- function (i, v) {
217
- var el = $.yith_magnifier.defaults.elements;
218
- el[i] = $( v, self );
219
- }
220
- );
221
- self.options = $.extend( true, {}, $.yith_magnifier.defaults, options );
222
- self.isPhone = self._isPhone();
223
-
224
- self._loading();
225
-
226
- self.options.onLoad();
227
- self._initZoom();
228
- self._initGallery();
229
-
230
- $( document ).trigger( 'yith_magnifier_after_init' );
231
- },
232
-
233
- /**
234
- * Init gallery handlers
235
- *
236
- * @private
237
- */
238
- _initGallery: function () {
239
-
240
- var self = this;
241
- var elements = self.options.elements;
242
-
243
- var gallery = elements.gallery;
244
- var zoom = elements.zoom;
245
- var zoomImage = elements.zoomImage;
246
-
247
- if ( gallery.length > 0 ) {
248
- gallery.on(
249
- 'click',
250
- function (e) {
251
- e.preventDefault();
252
- e.stopImmediatePropagation();
253
-
254
- if ( $( '#yith_wczm_traffic_light' ).val() == 'free' ) {
255
-
256
-
257
- $( '.yith_magnifier_gallery .yith_magnifier_thumbnail.active-thumbnail' ).removeClass( 'active-thumbnail' );
258
- $( '.yith_magnifier_gallery .yith_magnifier_thumbnail.active-thumbnail' ).addClass( 'inactive-thumbnail' );
259
- $( this ).removeClass( 'inactive-thumbnail' );
260
- $( this ).addClass( 'active-thumbnail' );
261
- $( this ).parent().removeClass( 'inactive-thumbnail' );
262
- $( this ).parent().addClass( 'active-thumbnail' );
263
-
264
- self.options.from_gallery = 'yes';
265
-
266
- var t = $( this );
267
- self.destroy();
268
-
269
- zoom.attr( 'href', this.href );
270
-
271
- zoomImage.attr( 'src', t.data( 'small' ) )
272
- .attr( 'srcset', t.data( 'small' ) )
273
- .attr( 'src-orig', t.data( 'small' ) )
274
- .attr( 'title', '' )
275
- .attr( 'title', t.attr( 'title' ) );
276
- $.data( self.t, 'yith_magnifier', new $.yith_magnifier( self.options, self.element ) );
277
-
278
- }
279
-
280
- }
281
- );
282
-
283
- /* gallery.filter(':first').trigger('click'); */
284
-
285
- if (self.options.enableSlider) {
286
- gallery.closest( 'ul' ).trigger( 'yith_magnifier_slider_destroy' );
287
- /* gallery.closest('ul')[self.options.slider](self.options.sliderOptions); */
288
- }
289
-
290
- } else {
291
- gallery.on(
292
- 'click',
293
- function (e) {
294
- e.preventDefault();
295
- return false;
296
- }
297
- )
298
- }
299
- },
300
-
301
- /**
302
- * Show a loading icon while image isn't properly loaded
303
- *
304
- * @private
305
- */
306
- _loading: function () {
307
- if (this.options.disableRightClick) {
308
- $( document ).on(
309
- 'contextmenu',
310
- function (e) {
311
- return false;
312
- }
313
- );
314
- }
315
-
316
- if (this.mouseTrap === undefined) {
317
- var w = this.options.elements.zoom.width();
318
-
319
- if (this.options.loadingLabel) {
320
- $( '<div class="yith_magnifier_loading">' + this.options.loadingLabel + '</div>' ).css(
321
- {
322
- 'width' : w,
323
- 'text-align': 'center',
324
- opacity : .5
325
- }
326
- ).appendTo( this.options.elements.zoom.parent() );
327
- }
328
- }
329
- },
330
-
331
- /**
332
- * Initialize the zoom images
333
- *
334
- * @private
335
- */
336
- _initZoom: function () {
337
-
338
- if ( $( '#yith_wczm_traffic_light' ).val() == 'free' ) {
339
-
340
- $( '#yith_wczm_traffic_light' ).val( 'blocked' );
341
-
342
- var self = this;
343
- self.zoom = self.options.elements.zoom;
344
- self.zoomImage = self.options.elements.zoomImage;
345
-
346
- var zoom_wrap_css_class = "yith_magnifier_zoom_wrap";
347
-
348
- if (self.options.zoom_wrap_additional_css) {
349
- if ( ! $( '.' + zoom_wrap_css_class ).length) {
350
-
351
- zoom_wrap_css_class += " " + self.options.zoom_wrap_additional_css;
352
- } else {
353
- return;
354
- }
355
- }
356
- self.zoom.wrap( '<div class="' + zoom_wrap_css_class + '"></div>' );
357
-
358
- self.IMG_zoomImage = new Image();
359
-
360
- var product_id = $( '.woocommerce-variation-add-to-cart .variation_id' ).val();
361
-
362
- if ( $.isNumeric( product_id ) && product_id != 0 && self.options.from_gallery == 'no' ) {
363
-
364
- var data = {
365
- action : 'yith_wc_zoom_magnifier_get_main_image',
366
- product_id : product_id,
367
- context : 'frontend'
368
- }
369
-
370
- $.ajax(
371
- {
372
- data : data,
373
- url : yith_wc_zoom_magnifier_storage_object.ajax_url,
374
- type : 'post',
375
- error : function ( response ) {
376
- console.log( 'ERROR - Yith_WC_Zoom_Magnifier' );
377
- console.log( response );
378
- $( '#yith_wczm_traffic_light' ).val( 'free' );
379
- },
380
- success : function ( response ) {
381
-
382
- self.zoom.attr( 'href', response.url );
383
-
384
- self.IMG_zoomImage.src = response.url;
385
-
386
- self.IMG_smallImage = new Image();
387
- self.IMG_smallImage.src = self.zoomImage.attr( 'src' );
388
-
389
- // set new gallery.
390
- if ( response.gallery ) {
391
-
392
- if ($( '.yith_magnifier_gallery' ).length) {
393
- $( '.yith_magnifier_gallery' ).closest( '.thumbnails' ).replaceWith( response.gallery );
394
- } else {
395
- $( '.images' ).append( response.gallery );
396
- }
397
-
398
- self.options.elements.gallery = $( '.yith_magnifier_gallery li a' );
399
- }
400
-
401
- if ($.browser && $.browser.msie && $.browser.version == 8) {
402
- $( self.IMG_zoomImage ).load(
403
- function () {
404
-
405
- self._initGallery();
406
- self._initTrap();
407
- }
408
- );
409
- } else {
410
-
411
- $( [self.IMG_zoomImage, self.IMG_smallImage] ).imagesLoaded(
412
- function () {
413
-
414
- self._initGallery();
415
- self._initTrap();
416
- }
417
- );
418
- }
419
-
420
- $( document ).on(
421
- 'click',
422
- 'a.yith_expand',
423
- function (e) {
424
-
425
- e.preventDefault();
426
-
427
- $().prettyPhoto(
428
- {
429
- social_tools : false,
430
- theme : 'pp_woocommerce',
431
- horizontal_padding: 20,
432
- opacity : 0.8,
433
- deeplinking : false,
434
- callback : function () {
435
- $( ".yith_expand" ).css( 'display', 'inline' );
436
- }
437
- }
438
- );
439
-
440
- $.prettyPhoto.open( self.zoom[0].href, '', '' );
441
- $( ".yith_expand" ).css( 'display', 'none' );
442
- $( ".pp_woocommerce .ppt" ).css(
443
- {
444
- 'height' : 0,
445
- 'marginBottom': 0
446
- }
447
- );
448
-
449
- }
450
- );
451
- $( document ).trigger( 'yith_magnifier_after_init_zoom' )
452
- $( '#yith_wczm_traffic_light' ).val( 'free' );
453
- }
454
- }
455
- );
456
-
457
- } else {
458
-
459
- self.IMG_zoomImage.src = self.zoom.attr( 'href' );
460
-
461
- self.IMG_smallImage = new Image();
462
- self.IMG_smallImage.src = self.zoomImage.attr( 'src' );
463
-
464
- if ($.browser && $.browser.msie && $.browser.version == 8) {
465
- $( self.IMG_zoomImage ).load(
466
- function () {
467
-
468
- self._initTrap();
469
- }
470
- );
471
- } else {
472
-
473
- $( [self.IMG_zoomImage, self.IMG_smallImage] ).imagesLoaded(
474
- function () {
475
-
476
- self._initTrap();
477
- }
478
- );
479
- }
480
-
481
- $( document ).on(
482
- 'click',
483
- 'a.yith_expand',
484
- function (e) {
485
-
486
- e.preventDefault();
487
-
488
- $().prettyPhoto(
489
- {
490
- social_tools : false,
491
- theme : 'pp_woocommerce',
492
- horizontal_padding: 20,
493
- opacity : 0.8,
494
- deeplinking : false,
495
- callback : function () {
496
- $( ".yith_expand" ).css( 'display', 'inline' );
497
- }
498
- }
499
- );
500
-
501
- $.prettyPhoto.open( self.zoom[0].href, '', '' );
502
- $( ".yith_expand" ).css( 'display', 'none' );
503
- $( ".pp_woocommerce .ppt" ).css(
504
- {
505
- 'height' : 0,
506
- 'marginBottom': 0
507
- }
508
- );
509
-
510
- }
511
- );
512
- $( document ).trigger( 'yith_magnifier_after_init_zoom' );
513
-
514
- $( '#yith_wczm_traffic_light' ).val( 'free' );
515
-
516
- }
517
-
518
- }
519
-
520
- },
521
-
522
- /**
523
- * Create the mouse trap
524
- *
525
- * @private
526
- */
527
- _initTrap: function () {
528
-
529
- var self = this;
530
- var zoomImg = self.IMG_zoomImage,
531
- thumbImg = self.IMG_smallImage;
532
-
533
- self.mx = 0;
534
- self.my = 0;
535
- self.controlTimer = 0;
536
- self.lens = null;
537
- self.tint = null;
538
- self.softFocus = null;
539
- self.zoomDiv = null;
540
- self.cw = 0;
541
- self.ch = 0;
542
- self.zw = 0;
543
- self.destU = 0;
544
- self.destV = 0;
545
- self.currU = 0;
546
- self.currV = 0;
547
- self.mouseTrap = null;
548
-
549
- var zoom = self.options.elements.zoom;
550
- var zoomImage = self.options.elements.zoomImage;
551
-
552
- // remove loading div.
553
- /* this.zoom.parent().siblings('.yith_magnifier_loading').remove(); */
554
- $( '.yith_magnifier_loading' ).remove();
555
-
556
- if (this.element.find( '.yith_magnifier_mousetrap' )) {
557
- this.element.find( '.yith_magnifier_mousetrap' ).remove();
558
- }
559
-
560
- this.mouseTrap = $( '<div class="yith_magnifier_mousetrap pp_woocommerce" />' ).css(
561
- {
562
- width : yith_wc_zoom_magnifier_storage_object.mouse_trap_width, //zoomImage.outerWidth(),
563
- height: yith_wc_zoom_magnifier_storage_object.mouse_trap_height, //zoomImage.outerHeight(),
564
- top : 0,
565
- left : 0
566
- }
567
- ).appendTo( zoom.parent() );
568
-
569
- if ( typeof ywzm_data != 'undefined' ) {
570
-
571
- $( '<a href="#" class="yith_expand" style="display: inline;"></a>' ).appendTo( this.mouseTrap );
572
- $( '.expand-button-hidden' ).clone().appendTo( $( '.yith_expand') );
573
- $( '.yith_magnifier_mousetrap .yith_expand .expand-button-hidden' ).show();
574
-
575
-
576
- }
577
-
578
- if (self.isPhone && self.options.phoneBehavior == 'disable') {
579
- return;
580
- }
581
-
582
- // Detect device type, normal mouse or touchy(ipad android) by albanx.
583
- var touchy = ("ontouchstart" in document.documentElement) ? true : false;
584
- var event_move = 'touchmove mousemove';
585
- var event_end = 'touchend mouseleave';
586
- var event_ent = 'touchstart mouseenter';
587
- var event_click = 'touchstart click';
588
-
589
- this.mouseTrap.on(
590
- event_move,
591
- this,
592
- function (e) {
593
-
594
- self.options.onMove();
595
-
596
- self.mx = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageX : e.pageX;
597
- self.my = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageY : e.pageY;
598
-
599
- }
600
- ).on(
601
- event_end,
602
- this,
603
- function (e) {
604
-
605
- clearTimeout( self.controlTimer );
606
- /* event.data.removeBits(); */
607
- if (self.lens) {
608
- self.lens.fadeOut( 299 );
609
- }
610
- if (self.tint) {
611
- self.tint.fadeOut( 299 );
612
- }
613
- if (self.softFocus) {
614
- self.softFocus.fadeOut( 299 );
615
- }
616
- self.zoomDiv.fadeOut(
617
- 300,
618
- function () {
619
- self._onLeave();
620
- }
621
- );
622
-
623
- return false;
624
-
625
- }
626
- ).on(
627
- event_click,
628
- this,
629
- function (e) {
630
- self.options.onClick();
631
- }
632
- ).on(
633
- event_ent,
634
- this,
635
- function (e) {
636
-
637
- if ( $( '#yith_wczm_traffic_light' ).val() == 'free' ) {
638
-
639
- self.options.onEnter();
640
-
641
- if (touchy) {
642
- e.preventDefault();
643
- }
644
-
645
- self.mx = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageX : e.pageX;
646
- self.my = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageY : e.pageY;
647
-
648
- self.zw = e.data;
649
- if (self.zoomDiv) {
650
- self.zoomDiv.stop( true, false );
651
- self.zoomDiv.remove();
652
- }
653
-
654
- var xPos = self.options.adjustX,
655
- yPos = self.options.adjustY;
656
-
657
- var siw = zoomImage.outerWidth();
658
- var sih = zoomImage.outerHeight();
659
-
660
- var w = self.options.zoomWidth;
661
- var h = self.options.zoomHeight;
662
-
663
- if (self.options.zoomWidth == 'auto') {
664
- w = siw;
665
- }
666
-
667
- if (self.options.zoomHeight == 'auto') {
668
- h = sih;
669
- }
670
-
671
- var appendTo = zoom.parent();
672
- switch (self.options.position) {
673
- case 'top':
674
- yPos -= h;
675
- break;
676
- case 'right':
677
- xPos += siw;
678
- break;
679
- case 'bottom':
680
- yPos += sih;
681
- break;
682
- case 'left':
683
- xPos -= w;
684
- break;
685
- case 'inside':
686
- w = siw;
687
- h = sih;
688
- break;
689
-
690
- // All other values, try and find an id in the dom to attach to.
691
- default:
692
- appendTo = $( '#' + self.options.position );
693
- // If dom element doesn't exit, just use 'right' position as default.
694
- if ( ! appendTo.length) {
695
- appendTo = zoom;
696
- xPos += siw; // + opts.adjustX;
697
- yPos += sih; // + opts.adjustY;
698
- } else {
699
- w = appendTo.innerWidth();
700
- h = appendTo.innerHeight();
701
- }
702
- }
703
-
704
- if (self.isPhone && self.options.phoneBehavior == 'inside') {
705
- w = siw;
706
- h = sih;
707
- xPos = 0;
708
- yPos = 0;
709
- }
710
-
711
- self.zoomDiv = $( '<div class="yith_magnifier_zoom_magnifier" />' ).css(
712
- {
713
- left : xPos,
714
- top : yPos,
715
- width : w,
716
- height : h,
717
- 'background-repeat': 'no-repeat',
718
- backgroundImage : 'url(' + zoomImg.src + ')'
719
- }
720
- ).appendTo( appendTo );
721
-
722
- // Add the title from title tag.
723
- if (zoomImage.attr( 'title' ) && self.options.showTitle) {
724
- $( '<div class="yith_magnifier_title">' + zoomImage.attr( 'title' ) + '</div>' ).appendTo( self.zoomDiv );
725
- }
726
-
727
- if (self.isPhone) {
728
- if (self.options.phoneBehavior != 'disable') {
729
- self.zoomDiv.fadeIn( 500 );
730
- } else {
731
- self.lens.fadeOut( 299 );
732
- }
733
- } else {
734
- self.zoomDiv.fadeIn( 500 );
735
- }
736
-
737
- if (self.lens) {
738
- self.lens.remove();
739
- self.lens = null;
740
- }
741
-
742
- if (zoomImg.width <= 1) {
743
- self.cw = (zoomImage.outerWidth() / zoomImg.naturalWidth) * self.zoomDiv.width();
744
- } else {
745
- self.cw = (zoomImage.outerWidth() / zoomImg.width) * self.zoomDiv.width();
746
- }
747
-
748
- if (zoomImg.height <= 1) {
749
- self.ch = (zoomImage.outerHeight() / zoomImg.naturalHeight) * self.zoomDiv.height();
750
- } else {
751
- self.ch = (zoomImage.outerHeight() / zoomImg.height) * self.zoomDiv.height();
752
- }
753
-
754
- // Attach mouse, initially invisible to prevent first frame glitch.
755
- self.lens = $( '<div class="yith_magnifier_lens" />' ).css(
756
- {
757
- width : self.cw,
758
- height: self.ch
759
- }
760
- ).appendTo( zoom );
761
-
762
- // self.mouseTrap.css( 'cursor', self.lens.css( 'cursor' ) );
763
-
764
- var noTrans = false;
765
-
766
- // Init tint layer if needed. (Not relevant if using inside mode).
767
- if (self.options.tint) {
768
- /* self.lens.css('background', 'url("' + zoomImage.attr('src') + '")'); */
769
- self.tint = $( '<div />' ).css(
770
- {
771
- display : 'none',
772
- position : 'absolute',
773
- left : 0,
774
- top : 0,
775
- width : zoomImage.outerWidth(),
776
- height : zoomImage.outerHeight(),
777
- backgroundColor: self.options.tint,
778
- opacity : self.options.tintOpacity
779
- }
780
- ).appendTo( zoom );
781
-
782
- self.lens.append(
783
- $(
784
- '<img />',
785
- {
786
- src: zoomImage.attr( 'src' )
787
- }
788
- )
789
- );
790
-
791
- noTrans = true;
792
- self.tint.fadeIn( 500 );
793
- }
794
-
795
- if (self.options.softFocus) {
796
- /* self.lens.css('background', 'url("' + zoomImage.attr('src') + '")'); */
797
- self.softFocus = $( '<div />' ).css(
798
- {
799
- position: 'absolute',
800
- display : 'none',
801
- top : '1px',
802
- left : '1px',
803
- width : zoomImage.outerWidth(),
804
- height : zoomImage.outerHeight(),
805
- //background: 'url("' + zoomImage.attr( 'src' ) + '")',
806
- //backgroundSize: '100%',
807
- opacity : .5
808
- }
809
- ).appendTo( zoom );
810
-
811
- self.softFocus.append(
812
- $(
813
- '<img />',
814
- {
815
- src: zoomImage.attr( 'src' )
816
- }
817
- )
818
- );
819
-
820
- if (self.lens.find( 'img' ).length == 0) {
821
- self.lens.append(
822
- $(
823
- '<img />',
824
- {
825
- src: zoomImage.attr( 'src' )
826
- }
827
- )
828
- );
829
- }
830
-
831
- noTrans = true;
832
- self.softFocus.fadeIn( 500 );
833
- }
834
-
835
- if ( ! noTrans) {
836
- self.lens.css( 'opacity', self.options.lensOpacity );
837
- }
838
- if (self.options.position !== 'inside') {
839
- self.lens.fadeIn( 500 );
840
- }
841
-
842
- // Start processing.
843
- self.zw._controlLoop();
844
-
845
- return; // Don't return false here otherwise opera will not detect change of the mouse pointer type.
846
-
847
- }
848
-
849
- }
850
- );
851
-
852
- },
853
-
854
- /**
855
- * Control loop
856
- *
857
- * @private
858
- */
859
- _controlLoop: function () {
860
- var self = this;
861
-
862
- if (this.lens) {
863
- var x = (this.mx - this.zoomImage.offset().left - (this.cw * 0.5)) >> 0;
864
- var y = (this.my - this.zoomImage.offset().top - (this.ch * 0.5)) >> 0;
865
-
866
- if (x < 0) {
867
- x = 0;
868
- } else if (x > (this.zoomImage.outerWidth() - this.cw)) {
869
- x = (this.zoomImage.outerWidth() - this.cw);
870
- }
871
-
872
- if (y < 0) {
873
- y = 0;
874
- } else if (y > (this.zoomImage.outerHeight() - this.ch)) {
875
- y = (this.zoomImage.outerHeight() - this.ch);
876
- }
877
-
878
- this.lens.css(
879
- {
880
- left: x - 2,
881
- top : y - 1
882
- }
883
- );
884
-
885
- /* this.lens.css('background-position', (-x) + 'px ' + (-y) + 'px'); */
886
-
887
- this.lens.find( 'img' ).css(
888
- {
889
- width : this.zoomImage.outerWidth(),
890
- height : this.zoomImage.outerHeight(),
891
- marginLeft: (-x) + 'px ',
892
- marginTop : (-y) + 'px'
893
- }
894
- );
895
-
896
- if (this.IMG_zoomImage.width <= 1) {
897
- this.destU = (((x) / this.zoomImage.outerWidth()) * this.IMG_zoomImage.naturalWidth) >> 0;
898
- } else {
899
- this.destU = (((x) / this.zoomImage.outerWidth()) * this.IMG_zoomImage.width) >> 0;
900
- }
901
-
902
- if (this.IMG_zoomImage.height <= 1) {
903
- this.destV = (((y) / this.zoomImage.outerHeight()) * this.IMG_zoomImage.naturalHeight) >> 0;
904
- } else {
905
- this.destV = (((y) / this.zoomImage.outerHeight()) * this.IMG_zoomImage.height) >> 0;
906
- }
907
-
908
- this.currU += (this.destU - this.currU) / this.options.smoothMove;
909
- this.currV += (this.destV - this.currV) / this.options.smoothMove;
910
-
911
- this.zoomDiv.css( 'background-position', (-(this.currU >> 0) + 'px ') + (-(this.currV >> 0) + 'px') );
912
- }
913
-
914
- this.controlTimer = setTimeout(
915
- function () {
916
- self._controlLoop();
917
- },
918
- 30
919
- );
920
- },
921
-
922
- /**
923
- * This method is called when the mouse leave the image
924
- *
925
- * @private
926
- */
927
- _onLeave: function () {
928
- this.options.onLeave();
929
-
930
- if (this.zoomDiv) {
931
- this.zoomDiv.remove();
932
- this.zoomDiv = null;
933
- }
934
-
935
- this._removeElements();
936
- },
937
-
938
- /**
939
- * Remove lens, tint and softfocus
940
- *
941
- * @private
942
- */
943
- _removeElements: function () {
944
- if (this.lens) {
945
- this.lens.remove();
946
- this.lens = null;
947
- }
948
-
949
- if (this.tint) {
950
- this.tint.remove();
951
- this.tint = null;
952
- }
953
-
954
- if (this.softFocus) {
955
- this.softFocus.remove();
956
- this.softFocus = null;
957
- }
958
-
959
- if (this.element.find( '.yith_magnifier_loading' ).length > 0) {
960
- this.element.find( '.yith_magnifier_loading' ).remove();
961
- }
962
- },
963
-
964
- /**
965
- * Detect if user is using a phone device (eg iPhone)
966
- *
967
- * @private
968
- */
969
- _isPhone: function () {
970
- var userAgent = navigator.userAgent.toLowerCase();
971
-
972
- return ( userAgent.match( /iphone/i ) || userAgent.match( /ipod/i ) || userAgent.match( /android/i ) );
973
- },
974
-
975
- /**
976
- * Destroy the instance
977
- */
978
- destroy: function () {
979
- if (this.zoom) {
980
- this.zoom.unwrap();
981
- }
982
-
983
- if (this.mouseTrap) {
984
- this.mouseTrap.unbind();
985
- this.mouseTrap.remove();
986
- this.mouseTrap = null;
987
- }
988
-
989
- if (this.zoomDiv) {
990
- this.zoomDiv.remove();
991
- this.zoomDiv = null;
992
- }
993
-
994
- if (this.options.disableRightClick) {
995
- $( document ).unbind();
996
- }
997
-
998
- this._removeElements();
999
- this.options.elements.gallery.unbind();
1000
- this.element.removeData( 'yith_magnifier' );
1001
- }
1002
- };
1003
-
1004
- $.fn.yith_magnifier = function (options) {
1005
-
1006
- if (typeof options === 'string') {
1007
- var args = Array.prototype.slice.call( arguments, 1 );
1008
-
1009
- this.each(
1010
- function () {
1011
- var instance = $.data( this, 'yith_magnifier' );
1012
- if ( ! instance) {
1013
- $.error(
1014
- "cannot call methods on yith_magnifier prior to initialization; " +
1015
- "attempted to call method '" + options + "'"
1016
- );
1017
- return;
1018
- }
1019
- if ( ! $.isFunction( instance[options] ) || options.charAt( 0 ) === "_") {
1020
- $.error( "no such method '" + options + "' for yith_magnifier instance" );
1021
- return;
1022
- }
1023
- instance[options].apply( instance, args );
1024
- }
1025
- );
1026
- } else {
1027
- this.each(
1028
- function () {
1029
- var instance = $.data( this, 'yith_magnifier' );
1030
- if ( ! instance) {
1031
- $.data( this, 'yith_magnifier', new $.yith_magnifier( options, this ) );
1032
- } else {
1033
- $.error( 'yith_magnifier already istantiated.' );
1034
- }
1035
- }
1036
- );
1037
- }
1038
- return this;
1039
- };
1040
-
1041
- })( window, jQuery );
1
+ /**
2
+ * YITH Magnifier
3
+ *
4
+ * @version 0.1
5
+ * @author YITH
6
+ * @package YITH\ZoomMagnifier\Assets\JS
7
+ *
8
+ * MIT License.
9
+ */
10
+
11
+ (function (window, $, undefined) {
12
+ 'use strict';
13
+
14
+ // include imagesLoaded plugin.
15
+ if ($.fn.imagesLoaded === undefined) {
16
+ /*!
17
+ * jQuery imagesLoaded plugin v2.1.1
18
+ * http://github.com/desandro/imagesloaded
19
+ *
20
+ * MIT License. by Paul Irish et al.
21
+ */
22
+
23
+ /*jshint curly: true, eqeqeq: true, noempty: true, strict: true, undef: true, browser: true */
24
+ /*global jQuery: false */
25
+
26
+ ;
27
+ (function ($, undefined) {
28
+ 'use strict';
29
+
30
+ // blank image data-uri bypasses webkit log warning (thx doug jones).
31
+ var BLANK = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
32
+
33
+ $.fn.imagesLoaded = function (callback) {
34
+ var $this = this,
35
+ deferred = $.isFunction( $.Deferred ) ? $.Deferred() : 0,
36
+ hasNotify = $.isFunction( deferred.notify ),
37
+ $images = $this.find( 'img' ).add( $this.filter( 'img' ) ),
38
+ loaded = [],
39
+ proper = [],
40
+ broken = [];
41
+
42
+ // Register deferred callbacks.
43
+ if ($.isPlainObject( callback )) {
44
+ $.each(
45
+ callback,
46
+ function (key, value) {
47
+ if (key === 'callback') {
48
+ callback = value;
49
+ } else if (deferred) {
50
+ deferred[key]( value );
51
+ }
52
+ }
53
+ );
54
+ }
55
+
56
+ function doneLoading() {
57
+ var $proper = $( proper ),
58
+ $broken = $( broken );
59
+
60
+ if (deferred) {
61
+ if (broken.length) {
62
+ deferred.reject( $images, $proper, $broken );
63
+ } else {
64
+ deferred.resolve( $images );
65
+ }
66
+ }
67
+
68
+ if ($.isFunction( callback )) {
69
+ callback.call( $this, $images, $proper, $broken );
70
+ }
71
+ }
72
+
73
+ function imgLoadedHandler(event) {
74
+ imgLoaded( event.target, event.type === 'error' );
75
+ }
76
+
77
+ function imgLoaded(img, isBroken) {
78
+ // don't proceed if BLANK image, or image is already loaded.
79
+ if (img.src === BLANK || $.inArray( img, loaded ) !== -1) {
80
+ return;
81
+ }
82
+
83
+ // store element in loaded images array.
84
+ loaded.push( img );
85
+
86
+ // keep track of broken and properly loaded images.
87
+ if (isBroken) {
88
+ broken.push( img );
89
+ } else {
90
+ proper.push( img );
91
+ }
92
+
93
+ // cache image and its state for future calls.
94
+ $.data( img, 'imagesLoaded', {isBroken: isBroken, src: img.src} );
95
+
96
+ // trigger deferred progress method if present.
97
+ if (hasNotify) {
98
+ deferred.notifyWith( $( img ), [isBroken, $images, $( proper ), $( broken )] );
99
+ }
100
+
101
+ // call doneLoading and clean listeners if all images are loaded.
102
+ if ($images.length === loaded.length) {
103
+ setTimeout( doneLoading );
104
+ $images.unbind( '.imagesLoaded', imgLoadedHandler );
105
+ }
106
+ }
107
+
108
+ // if no images, trigger immediately.
109
+ if ( ! $images.length) {
110
+ doneLoading();
111
+ } else {
112
+ $images.bind( 'load.imagesLoaded error.imagesLoaded', imgLoadedHandler )
113
+ .each(
114
+ function (i, el) {
115
+ var src = el.src;
116
+
117
+ // find out if this image has been already checked for status
118
+ // if it was, and src has not changed, call imgLoaded on it.
119
+ var cached = $.data( el, 'imagesLoaded' );
120
+ if (cached && cached.src === src) {
121
+ imgLoaded( el, cached.isBroken );
122
+ return;
123
+ }
124
+
125
+ // if complete is true and browser supports natural sizes, try
126
+ // to check for image status manually.
127
+ if (el.complete && el.naturalWidth !== undefined) {
128
+ imgLoaded( el, el.naturalWidth === 0 || el.naturalHeight === 0 );
129
+ return;
130
+ }
131
+
132
+ // cached images don't fire load sometimes, so we reset src, but only when
133
+ // dealing with IE, or image is complete (loaded) and failed manual check
134
+ // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f.
135
+ if (el.readyState || el.complete) {
136
+ el.src = BLANK;
137
+ el.src = src;
138
+ }
139
+ }
140
+ );
141
+ }
142
+
143
+ return deferred ? deferred.promise( $this ) : $this;
144
+ };
145
+
146
+ })( jQuery );
147
+ }
148
+
149
+ $.yith_magnifier = function (options, element) {
150
+ this.t = element;
151
+ this.element = $( element );
152
+ this._init( options );
153
+ };
154
+
155
+ $.yith_magnifier.defaults = {
156
+ zoomWidth : 'auto',
157
+ zoomHeight : 'auto',
158
+ position : 'right',
159
+ tint : false,
160
+ tintOpacity : 0.5,
161
+ lensOpacity : 0.5,
162
+ softFocus : false,
163
+ smoothMove : 3,
164
+ showTitle : true,
165
+ titleOpacity: 0.5,
166
+ adjustX : 0,
167
+ adjustY : 0,
168
+
169
+ phoneBehavior: 'inside', // allowed values: inside, disable, default.
170
+ loadingLabel : 'Loading...',
171
+
172
+ enableSlider : true,
173
+ slider : 'carouFredSel',
174
+ sliderOptions: {},
175
+
176
+ from_gallery : 'no',
177
+
178
+ onLoad : function () {
179
+ return false;
180
+ },
181
+ onEnter: function () {
182
+ return false
183
+ },
184
+ onLeave: function () {
185
+ return false
186
+ },
187
+ onMove : function () {
188
+ return false
189
+ },
190
+ onClick: function () {
191
+ return false;
192
+ },
193
+
194
+ elements: {
195
+ zoom : $( '.yith_magnifier_zoom' ),
196
+ zoomImage: $( '.yith_magnifier_zoom img' ).first(),
197
+ gallery : $( '.yith_magnifier_gallery li a' )
198
+ }
199
+ };
200
+
201
+ $.yith_magnifier.prototype = {
202
+
203
+ /**
204
+ * Let's start the magnifier
205
+ *
206
+ * @param {Object} options
207
+ *
208
+ * @private
209
+ */
210
+ _init: function (options) {
211
+ var self = this;
212
+ $( document ).trigger( 'yith_magnifier_before_init' );
213
+
214
+ $.each(
215
+ $.yith_magnifier.defaults.elements,
216
+ function (i, v) {
217
+ var el = $.yith_magnifier.defaults.elements;
218
+ el[i] = $( v, self );
219
+ }
220
+ );
221
+ self.options = $.extend( true, {}, $.yith_magnifier.defaults, options );
222
+ self.isPhone = self._isPhone();
223
+
224
+ self._loading();
225
+
226
+ self.options.onLoad();
227
+ self._initZoom();
228
+ self._initGallery();
229
+
230
+ $( document ).trigger( 'yith_magnifier_after_init' );
231
+ },
232
+
233
+ /**
234
+ * Init gallery handlers
235
+ *
236
+ * @private
237
+ */
238
+ _initGallery: function () {
239
+
240
+ var self = this;
241
+ var elements = self.options.elements;
242
+
243
+ var gallery = elements.gallery;
244
+ var zoom = elements.zoom;
245
+ var zoomImage = elements.zoomImage;
246
+
247
+ if ( gallery.length > 0 ) {
248
+ gallery.on(
249
+ 'click',
250
+ function (e) {
251
+ e.preventDefault();
252
+ e.stopImmediatePropagation();
253
+
254
+ if ( $( '#yith_wczm_traffic_light' ).val() == 'free' ) {
255
+
256
+
257
+ $( '.yith_magnifier_gallery .yith_magnifier_thumbnail.active-thumbnail' ).removeClass( 'active-thumbnail' );
258
+ $( '.yith_magnifier_gallery .yith_magnifier_thumbnail.active-thumbnail' ).addClass( 'inactive-thumbnail' );
259
+ $( this ).removeClass( 'inactive-thumbnail' );
260
+ $( this ).addClass( 'active-thumbnail' );
261
+ $( this ).parent().removeClass( 'inactive-thumbnail' );
262
+ $( this ).parent().addClass( 'active-thumbnail' );
263
+
264
+ self.options.from_gallery = 'yes';
265
+
266
+ var t = $( this );
267
+ self.destroy();
268
+
269
+ zoom.attr( 'href', this.href );
270
+
271
+ zoomImage.attr( 'src', t.data( 'small' ) )
272
+ .attr( 'srcset', t.data( 'small' ) )
273
+ .attr( 'src-orig', t.data( 'small' ) )
274
+ .attr( 'title', '' )
275
+ .attr( 'title', t.attr( 'title' ) );
276
+ $.data( self.t, 'yith_magnifier', new $.yith_magnifier( self.options, self.element ) );
277
+
278
+ }
279
+
280
+ }
281
+ );
282
+
283
+ /* gallery.filter(':first').trigger('click'); */
284
+
285
+ if (self.options.enableSlider) {
286
+ gallery.closest( 'ul' ).trigger( 'yith_magnifier_slider_destroy' );
287
+ /* gallery.closest('ul')[self.options.slider](self.options.sliderOptions); */
288
+ }
289
+
290
+ } else {
291
+ gallery.on(
292
+ 'click',
293
+ function (e) {
294
+ e.preventDefault();
295
+ return false;
296
+ }
297
+ )
298
+ }
299
+ },
300
+
301
+ /**
302
+ * Show a loading icon while image isn't properly loaded
303
+ *
304
+ * @private
305
+ */
306
+ _loading: function () {
307
+ if (this.options.disableRightClick) {
308
+ $( document ).on(
309
+ 'contextmenu',
310
+ function (e) {
311
+ return false;
312
+ }
313
+ );
314
+ }
315
+
316
+ if (this.mouseTrap === undefined) {
317
+ var w = this.options.elements.zoom.width();
318
+
319
+ if (this.options.loadingLabel) {
320
+ $( '<div class="yith_magnifier_loading">' + this.options.loadingLabel + '</div>' ).css(
321
+ {
322
+ 'width' : w,
323
+ 'text-align': 'center',
324
+ opacity : .5
325
+ }
326
+ ).appendTo( this.options.elements.zoom.parent() );
327
+ }
328
+ }
329
+ },
330
+
331
+ /**
332
+ * Initialize the zoom images
333
+ *
334
+ * @private
335
+ */
336
+ _initZoom: function () {
337
+
338
+ if ( $( '#yith_wczm_traffic_light' ).val() == 'free' ) {
339
+
340
+ $( '#yith_wczm_traffic_light' ).val( 'blocked' );
341
+
342
+ var self = this;
343
+ self.zoom = self.options.elements.zoom;
344
+ self.zoomImage = self.options.elements.zoomImage;
345
+
346
+ var zoom_wrap_css_class = "yith_magnifier_zoom_wrap";
347
+
348
+ if (self.options.zoom_wrap_additional_css) {
349
+ if ( ! $( '.' + zoom_wrap_css_class ).length) {
350
+
351
+ zoom_wrap_css_class += " " + self.options.zoom_wrap_additional_css;
352
+ } else {
353
+ return;
354
+ }
355
+ }
356
+ self.zoom.wrap( '<div class="' + zoom_wrap_css_class + '"></div>' );
357
+
358
+ self.IMG_zoomImage = new Image();
359
+
360
+ var product_id = $( '.woocommerce-variation-add-to-cart .variation_id' ).val();
361
+
362
+ if ( $.isNumeric( product_id ) && product_id != 0 && self.options.from_gallery == 'no' ) {
363
+
364
+ var data = {
365
+ action : 'yith_wc_zoom_magnifier_get_main_image',
366
+ product_id : product_id,
367
+ context : 'frontend'
368
+ }
369
+
370
+ $.ajax(
371
+ {
372
+ data : data,
373
+ url : yith_wc_zoom_magnifier_storage_object.ajax_url,
374
+ type : 'post',
375
+ error : function ( response ) {
376
+ console.log( 'ERROR - Yith_WC_Zoom_Magnifier' );
377
+ console.log( response );
378
+ $( '#yith_wczm_traffic_light' ).val( 'free' );
379
+ },
380
+ success : function ( response ) {
381
+
382
+ self.zoom.attr( 'href', response.url );
383
+
384
+ self.IMG_zoomImage.src = response.url;
385
+
386
+ self.IMG_smallImage = new Image();
387
+ self.IMG_smallImage.src = self.zoomImage.attr( 'src' );
388
+
389
+ // set new gallery.
390
+ if ( response.gallery ) {
391
+
392
+ if ($( '.yith_magnifier_gallery' ).length) {
393
+ $( '.yith_magnifier_gallery' ).closest( '.thumbnails' ).replaceWith( response.gallery );
394
+ } else {
395
+ $( '.images' ).append( response.gallery );
396
+ }
397
+
398
+ self.options.elements.gallery = $( '.yith_magnifier_gallery li a' );
399
+ }
400
+
401
+ if ($.browser && $.browser.msie && $.browser.version == 8) {
402
+ $( self.IMG_zoomImage ).load(
403
+ function () {
404
+
405
+ self._initGallery();
406
+ self._initTrap();
407
+ }
408
+ );
409
+ } else {
410
+
411
+ $( [self.IMG_zoomImage, self.IMG_smallImage] ).imagesLoaded(
412
+ function () {
413
+
414
+ self._initGallery();
415
+ self._initTrap();
416
+ }
417
+ );
418
+ }
419
+
420
+ $( document ).on(
421
+ 'click',
422
+ 'a.yith_expand',
423
+ function (e) {
424
+
425
+ e.preventDefault();
426
+
427
+ $().prettyPhoto(
428
+ {
429
+ social_tools : false,
430
+ theme : 'pp_woocommerce',
431
+ horizontal_padding: 20,
432
+ opacity : 0.8,
433
+ deeplinking : false,
434
+ callback : function () {
435
+ $( ".yith_expand" ).css( 'display', 'inline' );
436
+ }
437
+ }
438
+ );
439
+
440
+ $.prettyPhoto.open( self.zoom[0].href, '', '' );
441
+ $( ".yith_expand" ).css( 'display', 'none' );
442
+ $( ".pp_woocommerce .ppt" ).css(
443
+ {
444
+ 'height' : 0,
445
+ 'marginBottom': 0
446
+ }
447
+ );
448
+
449
+ }
450
+ );
451
+ $( document ).trigger( 'yith_magnifier_after_init_zoom' )
452
+ $( '#yith_wczm_traffic_light' ).val( 'free' );
453
+ }
454
+ }
455
+ );
456
+
457
+ } else {
458
+
459
+ self.IMG_zoomImage.src = self.zoom.attr( 'href' );
460
+
461
+ self.IMG_smallImage = new Image();
462
+ self.IMG_smallImage.src = self.zoomImage.attr( 'src' );
463
+
464
+ if ($.browser && $.browser.msie && $.browser.version == 8) {
465
+ $( self.IMG_zoomImage ).load(
466
+ function () {
467
+
468
+ self._initTrap();
469
+ }
470
+ );
471
+ } else {
472
+
473
+ $( [self.IMG_zoomImage, self.IMG_smallImage] ).imagesLoaded(
474
+ function () {
475
+
476
+ self._initTrap();
477
+ }
478
+ );
479
+ }
480
+
481
+ $( document ).on(
482
+ 'click',
483
+ 'a.yith_expand',
484
+ function (e) {
485
+
486
+ e.preventDefault();
487
+
488
+ $().prettyPhoto(
489
+ {
490
+ social_tools : false,
491
+ theme : 'pp_woocommerce',
492
+ horizontal_padding: 20,
493
+ opacity : 0.8,
494
+ deeplinking : false,
495
+ callback : function () {
496
+ $( ".yith_expand" ).css( 'display', 'inline' );
497
+ }
498
+ }
499
+ );
500
+
501
+ $.prettyPhoto.open( self.zoom[0].href, '', '' );
502
+ $( ".yith_expand" ).css( 'display', 'none' );
503
+ $( ".pp_woocommerce .ppt" ).css(
504
+ {
505
+ 'height' : 0,
506
+ 'marginBottom': 0
507
+ }
508
+ );
509
+
510
+ }
511
+ );
512
+ $( document ).trigger( 'yith_magnifier_after_init_zoom' );
513
+
514
+ $( '#yith_wczm_traffic_light' ).val( 'free' );
515
+
516
+ }
517
+
518
+ }
519
+
520
+ },
521
+
522
+ /**
523
+ * Create the mouse trap
524
+ *
525
+ * @private
526
+ */
527
+ _initTrap: function () {
528
+
529
+ var self = this;
530
+ var zoomImg = self.IMG_zoomImage,
531
+ thumbImg = self.IMG_smallImage;
532
+
533
+ self.mx = 0;
534
+ self.my = 0;
535
+ self.controlTimer = 0;
536
+ self.lens = null;
537
+ self.tint = null;
538
+ self.softFocus = null;
539
+ self.zoomDiv = null;
540
+ self.cw = 0;
541
+ self.ch = 0;
542
+ self.zw = 0;
543
+ self.destU = 0;
544
+ self.destV = 0;
545
+ self.currU = 0;
546
+ self.currV = 0;
547
+ self.mouseTrap = null;
548
+
549
+ var zoom = self.options.elements.zoom;
550
+ var zoomImage = self.options.elements.zoomImage;
551
+
552
+ // remove loading div.
553
+ /* this.zoom.parent().siblings('.yith_magnifier_loading').remove(); */
554
+ $( '.yith_magnifier_loading' ).remove();
555
+
556
+ if (this.element.find( '.yith_magnifier_mousetrap' )) {
557
+ this.element.find( '.yith_magnifier_mousetrap' ).remove();
558
+ }
559
+
560
+ this.mouseTrap = $( '<div class="yith_magnifier_mousetrap pp_woocommerce" />' ).css(
561
+ {
562
+ width : yith_wc_zoom_magnifier_storage_object.mouse_trap_width, //zoomImage.outerWidth(),
563
+ height: yith_wc_zoom_magnifier_storage_object.mouse_trap_height, //zoomImage.outerHeight(),
564
+ top : 0,
565
+ left : 0
566
+ }
567
+ ).appendTo( zoom.parent() );
568
+
569
+ if ( typeof ywzm_data != 'undefined' ) {
570
+
571
+ $( '<a href="#" class="yith_expand" style="display: inline;"></a>' ).appendTo( this.mouseTrap );
572
+ $( '.expand-button-hidden' ).clone().appendTo( $( '.yith_expand') );
573
+ $( '.yith_magnifier_mousetrap .yith_expand .expand-button-hidden' ).show();
574
+
575
+
576
+ }
577
+
578
+ if (self.isPhone && self.options.phoneBehavior == 'disable') {
579
+ return;
580
+ }
581
+
582
+ // Detect device type, normal mouse or touchy(ipad android) by albanx.
583
+ var touchy = ("ontouchstart" in document.documentElement) ? true : false;
584
+ var event_move = 'touchmove mousemove';
585
+ var event_end = 'touchend mouseleave';
586
+ var event_ent = 'touchstart mouseenter';
587
+ var event_click = 'touchstart click';
588
+
589
+ this.mouseTrap.on(
590
+ event_move,
591
+ this,
592
+ function (e) {
593
+
594
+ self.options.onMove();
595
+
596
+ self.mx = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageX : e.pageX;
597
+ self.my = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageY : e.pageY;
598
+
599
+ }
600
+ ).on(
601
+ event_end,
602
+ this,
603
+ function (e) {
604
+
605
+ clearTimeout( self.controlTimer );
606
+ /* event.data.removeBits(); */
607
+ if (self.lens) {
608
+ self.lens.fadeOut( 299 );
609
+ }
610
+ if (self.tint) {
611
+ self.tint.fadeOut( 299 );
612
+ }
613
+ if (self.softFocus) {
614
+ self.softFocus.fadeOut( 299 );
615
+ }
616
+ self.zoomDiv.fadeOut(
617
+ 300,
618
+ function () {
619
+ self._onLeave();
620
+ }
621
+ );
622
+
623
+ return false;
624
+
625
+ }
626
+ ).on(
627
+ event_click,
628
+ this,
629
+ function (e) {
630
+ self.options.onClick();
631
+ }
632
+ ).on(
633
+ event_ent,
634
+ this,
635
+ function (e) {
636
+
637
+ if ( $( '#yith_wczm_traffic_light' ).val() == 'free' ) {
638
+
639
+ self.options.onEnter();
640
+
641
+ if (touchy) {
642
+ e.preventDefault();
643
+ }
644
+
645
+ self.mx = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageX : e.pageX;
646
+ self.my = ( typeof(e.originalEvent.touches) != 'undefined' ) ? e.originalEvent.touches[0].pageY : e.pageY;
647
+
648
+ self.zw = e.data;
649
+ if (self.zoomDiv) {
650
+ self.zoomDiv.stop( true, false );
651
+ self.zoomDiv.remove();
652
+ }
653
+
654
+ var xPos = self.options.adjustX,
655
+ yPos = self.options.adjustY;
656
+
657
+ var siw = zoomImage.outerWidth();
658
+ var sih = zoomImage.outerHeight();
659
+
660
+ var w = self.options.zoomWidth;
661
+ var h = self.options.zoomHeight;
662
+
663
+ if (self.options.zoomWidth == 'auto') {
664
+ w = siw;
665
+ }
666
+
667
+ if (self.options.zoomHeight == 'auto') {
668
+ h = sih;
669
+ }
670
+
671
+ var appendTo = zoom.parent();
672
+ switch (self.options.position) {
673
+ case 'top':
674
+ yPos -= h;
675
+ break;
676
+ case 'right':
677
+ xPos += siw;
678
+ break;
679
+ case 'bottom':
680
+ yPos += sih;
681
+ break;
682
+ case 'left':
683
+ xPos -= w;
684
+ break;
685
+ case 'inside':
686
+ w = siw;
687
+ h = sih;
688
+ break;
689
+
690
+ // All other values, try and find an id in the dom to attach to.
691
+ default:
692
+ appendTo = $( '#' + self.options.position );
693
+ // If dom element doesn't exit, just use 'right' position as default.
694
+ if ( ! appendTo.length) {
695
+ appendTo = zoom;
696
+ xPos += siw; // + opts.adjustX;
697
+ yPos += sih; // + opts.adjustY;
698
+ } else {
699
+ w = appendTo.innerWidth();
700
+ h = appendTo.innerHeight();
701
+ }
702
+ }
703
+
704
+ if (self.isPhone && self.options.phoneBehavior == 'inside') {
705
+ w = siw;
706
+ h = sih;
707
+ xPos = 0;
708
+ yPos = 0;
709
+ }
710
+
711
+ self.zoomDiv = $( '<div class="yith_magnifier_zoom_magnifier" />' ).css(
712
+ {
713
+ left : xPos,
714
+ top : yPos,
715
+ width : w,
716
+ height : h,
717
+ 'background-repeat': 'no-repeat',
718
+ backgroundImage : 'url(' + zoomImg.src + ')'
719
+ }
720
+ ).appendTo( appendTo );
721
+
722
+ // Add the title from title tag.
723
+ if (zoomImage.attr( 'title' ) && self.options.showTitle) {
724
+ $( '<div class="yith_magnifier_title">' + zoomImage.attr( 'title' ) + '</div>' ).appendTo( self.zoomDiv );
725
+ }
726
+
727
+ if (self.isPhone) {
728
+ if (self.options.phoneBehavior != 'disable') {
729
+ self.zoomDiv.fadeIn( 500 );
730
+ } else {
731
+ self.lens.fadeOut( 299 );
732
+ }
733
+ } else {
734
+ self.zoomDiv.fadeIn( 500 );
735
+ }
736
+
737
+ if (self.lens) {
738
+ self.lens.remove();
739
+ self.lens = null;
740
+ }
741
+
742
+ if (zoomImg.width <= 1) {
743
+ self.cw = (zoomImage.outerWidth() / zoomImg.naturalWidth) * self.zoomDiv.width();
744
+ } else {
745
+ self.cw = (zoomImage.outerWidth() / zoomImg.width) * self.zoomDiv.width();
746
+ }
747
+
748
+ if (zoomImg.height <= 1) {
749
+ self.ch = (zoomImage.outerHeight() / zoomImg.naturalHeight) * self.zoomDiv.height();
750
+ } else {
751
+ self.ch = (zoomImage.outerHeight() / zoomImg.height) * self.zoomDiv.height();
752
+ }
753
+
754
+ // Attach mouse, initially invisible to prevent first frame glitch.
755
+ self.lens = $( '<div class="yith_magnifier_lens" />' ).css(
756
+ {
757
+ width : self.cw,
758
+ height: self.ch
759
+ }
760
+ ).appendTo( zoom );
761
+
762
+ // self.mouseTrap.css( 'cursor', self.lens.css( 'cursor' ) );
763
+
764
+ var noTrans = false;
765
+
766
+ // Init tint layer if needed. (Not relevant if using inside mode).
767
+ if (self.options.tint) {
768
+ /* self.lens.css('background', 'url("' + zoomImage.attr('src') + '")'); */
769
+ self.tint = $( '<div />' ).css(
770
+ {
771
+ display : 'none',
772
+ position : 'absolute',
773
+ left : 0,
774
+ top : 0,
775
+ width : zoomImage.outerWidth(),
776
+ height : zoomImage.outerHeight(),
777
+ backgroundColor: self.options.tint,
778
+ opacity : self.options.tintOpacity
779
+ }
780
+ ).appendTo( zoom );
781
+
782
+ self.lens.append(
783
+ $(
784
+ '<img />',
785
+ {
786
+ src: zoomImage.attr( 'src' )
787
+ }
788
+ )
789
+ );
790
+
791
+ noTrans = true;
792
+ self.tint.fadeIn( 500 );
793
+ }
794
+
795
+ if (self.options.softFocus) {
796
+ /* self.lens.css('background', 'url("' + zoomImage.attr('src') + '")'); */
797
+ self.softFocus = $( '<div />' ).css(
798
+ {
799
+ position: 'absolute',
800
+ display : 'none',
801
+ top : '1px',
802
+ left : '1px',
803
+ width : zoomImage.outerWidth(),
804
+ height : zoomImage.outerHeight(),
805
+ //background: 'url("' + zoomImage.attr( 'src' ) + '")',
806
+ //backgroundSize: '100%',
807
+ opacity : .5
808
+ }
809
+ ).appendTo( zoom );
810
+
811
+ self.softFocus.append(
812
+ $(
813
+ '<img />',
814
+ {
815
+ src: zoomImage.attr( 'src' )
816
+ }
817
+ )
818
+ );
819
+
820
+ if (self.lens.find( 'img' ).length == 0) {
821
+ self.lens.append(
822
+ $(
823
+ '<img />',
824
+ {
825
+ src: zoomImage.attr( 'src' )
826
+ }
827
+ )
828
+ );
829
+ }
830
+
831
+ noTrans = true;
832
+ self.softFocus.fadeIn( 500 );
833
+ }
834
+
835
+ if ( ! noTrans) {
836
+ self.lens.css( 'opacity', self.options.lensOpacity );
837
+ }
838
+ if (self.options.position !== 'inside') {
839
+ self.lens.fadeIn( 500 );
840
+ }
841
+
842
+ // Start processing.
843
+ self.zw._controlLoop();
844
+
845
+ return; // Don't return false here otherwise opera will not detect change of the mouse pointer type.
846
+
847
+ }
848
+
849
+ }
850
+ );
851
+
852
+ },
853
+
854
+ /**
855
+ * Control loop
856
+ *
857
+ * @private
858
+ */
859
+ _controlLoop: function () {
860
+ var self = this;
861
+
862
+ if (this.lens) {
863
+ var x = (this.mx - this.zoomImage.offset().left - (this.cw * 0.5)) >> 0;
864
+ var y = (this.my - this.zoomImage.offset().top - (this.ch * 0.5)) >> 0;
865
+
866
+ if (x < 0) {
867
+ x = 0;
868
+ } else if (x > (this.zoomImage.outerWidth() - this.cw)) {
869
+ x = (this.zoomImage.outerWidth() - this.cw);
870
+ }
871
+
872
+ if (y < 0) {
873
+ y = 0;
874
+ } else if (y > (this.zoomImage.outerHeight() - this.ch)) {
875
+ y = (this.zoomImage.outerHeight() - this.ch);
876
+ }
877
+
878
+ this.lens.css(
879
+ {
880
+ left: x - 2,
881
+ top : y - 1
882
+ }
883
+ );
884
+
885
+ /* this.lens.css('background-position', (-x) + 'px ' + (-y) + 'px'); */
886
+
887
+ this.lens.find( 'img' ).css(
888
+ {
889
+ width : this.zoomImage.outerWidth(),
890
+ height : this.zoomImage.outerHeight(),
891
+ marginLeft: (-x) + 'px ',
892
+ marginTop : (-y) + 'px'
893
+ }
894
+ );
895
+
896
+ if (this.IMG_zoomImage.width <= 1) {
897
+ this.destU = (((x) / this.zoomImage.outerWidth()) * this.IMG_zoomImage.naturalWidth) >> 0;
898
+ } else {
899
+ this.destU = (((x) / this.zoomImage.outerWidth()) * this.IMG_zoomImage.width) >> 0;
900
+ }
901
+
902
+ if (this.IMG_zoomImage.height <= 1) {
903
+ this.destV = (((y) / this.zoomImage.outerHeight()) * this.IMG_zoomImage.naturalHeight) >> 0;
904
+ } else {
905
+ this.destV = (((y) / this.zoomImage.outerHeight()) * this.IMG_zoomImage.height) >> 0;
906
+ }
907
+
908
+ this.currU += (this.destU - this.currU) / this.options.smoothMove;
909
+ this.currV += (this.destV - this.currV) / this.options.smoothMove;
910
+
911
+ this.zoomDiv.css( 'background-position', (-(this.currU >> 0) + 'px ') + (-(this.currV >> 0) + 'px') );
912
+ }
913
+
914
+ this.controlTimer = setTimeout(
915
+ function () {
916
+ self._controlLoop();
917
+ },
918
+ 30
919
+ );
920
+ },
921
+
922
+ /**
923
+ * This method is called when the mouse leave the image
924
+ *
925
+ * @private
926
+ */
927
+ _onLeave: function () {
928
+ this.options.onLeave();
929
+
930
+ if (this.zoomDiv) {
931
+ this.zoomDiv.remove();
932
+ this.zoomDiv = null;
933
+ }
934
+
935
+ this._removeElements();
936
+ },
937
+
938
+ /**
939
+ * Remove lens, tint and softfocus
940
+ *
941
+ * @private
942
+ */
943
+ _removeElements: function () {
944
+ if (this.lens) {
945
+ this.lens.remove();
946
+ this.lens = null;
947
+ }
948
+
949
+ if (this.tint) {
950
+ this.tint.remove();
951
+ this.tint = null;
952
+ }
953
+
954
+ if (this.softFocus) {
955
+ this.softFocus.remove();
956
+ this.softFocus = null;
957
+ }
958
+
959
+ if (this.element.find( '.yith_magnifier_loading' ).length > 0) {
960
+ this.element.find( '.yith_magnifier_loading' ).remove();
961
+ }
962
+ },
963
+
964
+ /**
965
+ * Detect if user is using a phone device (eg iPhone)
966
+ *
967
+ * @private
968
+ */
969
+ _isPhone: function () {
970
+ var userAgent = navigator.userAgent.toLowerCase();
971
+
972
+ return ( userAgent.match( /iphone/i ) || userAgent.match( /ipod/i ) || userAgent.match( /android/i ) );
973
+ },
974
+
975
+ /**
976
+ * Destroy the instance
977
+ */
978
+ destroy: function () {
979
+ if (this.zoom) {
980
+ this.zoom.unwrap();
981
+ }
982
+
983
+ if (this.mouseTrap) {
984
+ this.mouseTrap.unbind();
985
+ this.mouseTrap.remove();
986
+ this.mouseTrap = null;
987
+ }
988
+
989
+ if (this.zoomDiv) {
990
+ this.zoomDiv.remove();
991
+ this.zoomDiv = null;
992
+ }
993
+
994
+ if (this.options.disableRightClick) {
995
+ $( document ).unbind();
996
+ }
997
+
998
+ this._removeElements();
999
+ this.options.elements.gallery.unbind();
1000
+ this.element.removeData( 'yith_magnifier' );
1001
+ }
1002
+ };
1003
+
1004
+ $.fn.yith_magnifier = function (options) {
1005
+
1006
+ if (typeof options === 'string') {
1007
+ var args = Array.prototype.slice.call( arguments, 1 );
1008
+
1009
+ this.each(
1010
+ function () {
1011
+ var instance = $.data( this, 'yith_magnifier' );
1012
+ if ( ! instance) {
1013
+ $.error(
1014
+ "cannot call methods on yith_magnifier prior to initialization; " +
1015
+ "attempted to call method '" + options + "'"
1016
+ );
1017
+ return;
1018
+ }
1019
+ if ( ! $.isFunction( instance[options] ) || options.charAt( 0 ) === "_") {
1020
+ $.error( "no such method '" + options + "' for yith_magnifier instance" );
1021
+ return;
1022
+ }
1023
+ instance[options].apply( instance, args );
1024
+ }
1025
+ );
1026
+ } else {
1027
+ this.each(
1028
+ function () {
1029
+ var instance = $.data( this, 'yith_magnifier' );
1030
+ if ( ! instance) {
1031
+ $.data( this, 'yith_magnifier', new $.yith_magnifier( options, this ) );
1032
+ } else {
1033
+ $.error( 'yith_magnifier already istantiated.' );
1034
+ }
1035
+ }
1036
+ );
1037
+ }
1038
+ return this;
1039
+ };
1040
+
1041
+ })( window, jQuery );
assets/js/ywzm_backend.js CHANGED
@@ -1,88 +1,88 @@
1
- /**
2
- * Backend JS
3
- *
4
- * @author YITH
5
- * @package YITH\ZoomMagnifier\Assets\JS
6
- */
7
-
8
- jQuery(function ($) {
9
-
10
- //Settings dependencies
11
- /**
12
- * Hide Slider options if the Thumbnails are hidden
13
- * */
14
- $(function() {
15
- if ($('input#ywzm_hide_thumbnails').prop('checked')) {
16
-
17
- $('[data-dep-target="yith_wcmg_slider_items"]').hide();
18
- $('[data-dep-target="yith_wcmg_slider_style_colors"]').hide();
19
- $('[data-dep-target="yith_wcmg_slider_style_colors_hover"]').hide();
20
- $('[data-dep-target="yith_wcmg_slider_sizes"]').hide();
21
- $('[data-dep-target="yith_wcmg_slider_radius"]').hide();
22
- $('[data-dep-target="ywzm_slider_arrows_display"]').hide();
23
- $('[data-dep-target="yith_wcmg_slider_infinite"]').hide();
24
- $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
25
- $('[data-dep-target="ywzm_auto_carousel"]').hide();
26
-
27
- }});
28
-
29
-
30
- $('input#ywzm_hide_thumbnails').change(function() {
31
-
32
- if ( ! $( this ).hasClass( 'onoffchecked') && $('input#yith_wcmg_enableslider').prop('checked') ){
33
-
34
- $('[data-dep-target="yith_wcmg_slider_items"]').show();
35
- $('[data-dep-target="yith_wcmg_slider_style_colors"]').show();
36
- $('[data-dep-target="yith_wcmg_slider_style_colors_hover"]').show();
37
- $('[data-dep-target="yith_wcmg_slider_sizes"]').show();
38
- $('[data-dep-target="yith_wcmg_slider_radius"]').show();
39
- $('[data-dep-target="ywzm_slider_arrows_display"]').show();
40
- $('[data-dep-target="yith_wcmg_slider_infinite"]').show();
41
- $('[data-dep-target="yith_wcmg_slider_infinite_type"]').show();
42
- $('[data-dep-target="ywzm_auto_carousel"]').show();
43
-
44
- }
45
- else{
46
-
47
- $('[data-dep-target="yith_wcmg_slider_items"]').hide();
48
- $('[data-dep-target="yith_wcmg_slider_style_colors"]').hide();
49
- $('[data-dep-target="yith_wcmg_slider_style_colors_hover"]').hide();
50
- $('[data-dep-target="yith_wcmg_slider_sizes"]').hide();
51
- $('[data-dep-target="yith_wcmg_slider_radius"]').hide();
52
- $('[data-dep-target="ywzm_slider_arrows_display"]').hide();
53
- $('[data-dep-target="yith_wcmg_slider_infinite"]').hide();
54
- $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
55
- $('[data-dep-target="ywzm_auto_carousel"]').hide();
56
-
57
- }
58
- });
59
-
60
-
61
- /**
62
- * Hide Slider type is the slider is not infinite
63
- * */
64
- $(function() {
65
- if ( ! $('input#yith_wcmg_slider_infinite').prop('checked')) {
66
-
67
- $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
68
- $('[data-dep-target="ywzm_auto_carousel"]').hide();
69
-
70
- }});
71
-
72
- $('input#yith_wcmg_slider_infinite').change(function() {
73
-
74
- if ( ! $( this ).hasClass( 'onoffchecked') && $('input#yith_wcmg_enableslider').prop('checked') ){
75
-
76
- $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
77
- $('[data-dep-target="ywzm_auto_carousel"]').hide();
78
- }
79
- else{
80
- $('[data-dep-target="yith_wcmg_slider_infinite_type"]').show();
81
- $('[data-dep-target="ywzm_auto_carousel"]').show();
82
-
83
- }
84
- });
85
-
86
-
87
-
88
- });
1
+ /**
2
+ * Backend JS
3
+ *
4
+ * @author YITH
5
+ * @package YITH\ZoomMagnifier\Assets\JS
6
+ */
7
+
8
+ jQuery(function ($) {
9
+
10
+ //Settings dependencies
11
+ /**
12
+ * Hide Slider options if the Thumbnails are hidden
13
+ * */
14
+ $(function() {
15
+ if ($('input#ywzm_hide_thumbnails').prop('checked')) {
16
+
17
+ $('[data-dep-target="yith_wcmg_slider_items"]').hide();
18
+ $('[data-dep-target="yith_wcmg_slider_style_colors"]').hide();
19
+ $('[data-dep-target="yith_wcmg_slider_style_colors_hover"]').hide();
20
+ $('[data-dep-target="yith_wcmg_slider_sizes"]').hide();
21
+ $('[data-dep-target="yith_wcmg_slider_radius"]').hide();
22
+ $('[data-dep-target="ywzm_slider_arrows_display"]').hide();
23
+ $('[data-dep-target="yith_wcmg_slider_infinite"]').hide();
24
+ $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
25
+ $('[data-dep-target="ywzm_auto_carousel"]').hide();
26
+
27
+ }});
28
+
29
+
30
+ $('input#ywzm_hide_thumbnails').change(function() {
31
+
32
+ if ( ! $( this ).hasClass( 'onoffchecked') && $('input#yith_wcmg_enableslider').prop('checked') ){
33
+
34
+ $('[data-dep-target="yith_wcmg_slider_items"]').show();
35
+ $('[data-dep-target="yith_wcmg_slider_style_colors"]').show();
36
+ $('[data-dep-target="yith_wcmg_slider_style_colors_hover"]').show();
37
+ $('[data-dep-target="yith_wcmg_slider_sizes"]').show();
38
+ $('[data-dep-target="yith_wcmg_slider_radius"]').show();
39
+ $('[data-dep-target="ywzm_slider_arrows_display"]').show();
40
+ $('[data-dep-target="yith_wcmg_slider_infinite"]').show();
41
+ $('[data-dep-target="yith_wcmg_slider_infinite_type"]').show();
42
+ $('[data-dep-target="ywzm_auto_carousel"]').show();
43
+
44
+ }
45
+ else{
46
+
47
+ $('[data-dep-target="yith_wcmg_slider_items"]').hide();
48
+ $('[data-dep-target="yith_wcmg_slider_style_colors"]').hide();
49
+ $('[data-dep-target="yith_wcmg_slider_style_colors_hover"]').hide();
50
+ $('[data-dep-target="yith_wcmg_slider_sizes"]').hide();
51
+ $('[data-dep-target="yith_wcmg_slider_radius"]').hide();
52
+ $('[data-dep-target="ywzm_slider_arrows_display"]').hide();
53
+ $('[data-dep-target="yith_wcmg_slider_infinite"]').hide();
54
+ $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
55
+ $('[data-dep-target="ywzm_auto_carousel"]').hide();
56
+
57
+ }
58
+ });
59
+
60
+
61
+ /**
62
+ * Hide Slider type is the slider is not infinite
63
+ * */
64
+ $(function() {
65
+ if ( ! $('input#yith_wcmg_slider_infinite').prop('checked')) {
66
+
67
+ $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
68
+ $('[data-dep-target="ywzm_auto_carousel"]').hide();
69
+
70
+ }});
71
+
72
+ $('input#yith_wcmg_slider_infinite').change(function() {
73
+
74
+ if ( ! $( this ).hasClass( 'onoffchecked') && $('input#yith_wcmg_enableslider').prop('checked') ){
75
+
76
+ $('[data-dep-target="yith_wcmg_slider_infinite_type"]').hide();
77
+ $('[data-dep-target="ywzm_auto_carousel"]').hide();
78
+ }
79
+ else{
80
+ $('[data-dep-target="yith_wcmg_slider_infinite_type"]').show();
81
+ $('[data-dep-target="ywzm_auto_carousel"]').show();
82
+
83
+ }
84
+ });
85
+
86
+
87
+
88
+ });
assets/js/ywzm_frontend.js CHANGED
@@ -1,285 +1,285 @@
1
- /**
2
- * Frontend JS
3
- *
4
- * @author YITH
5
- * @package YITH\ZoomMagnifier\Assets\JS
6
- */
7
-
8
- jQuery(
9
- function ($) {
10
-
11
- var yith_wcmg = $( '.images' );
12
- var yith_wcmg_zoom = $( '.yith_magnifier_zoom' );
13
- var yith_wcmg_image = $( '.yith_magnifier_zoom img' ).first();
14
-
15
- var yith_wcmg_default_zoom = yith_wcmg.find( '.yith_magnifier_zoom' ).attr( 'href' );
16
- var yith_wcmg_default_image = yith_wcmg.find( '.yith_magnifier_zoom img' ).attr( 'src' );
17
-
18
- var yith_wcmg_default_gallery = yith_wcmg.find( '.thumbnails' );
19
-
20
- if (typeof yith_magnifier_options == 'undefined') {
21
- return false;
22
- }
23
-
24
- yith_wcmg.yith_magnifier( yith_magnifier_options );
25
-
26
- $( document ).on(
27
- 'found_variation',
28
- 'form.variations_form',
29
- function (event, variation) {
30
- var image_magnifier = variation.image_magnifier ? variation.image_magnifier : yith_wcmg_default_zoom;
31
-
32
- var image_src = yith_wcmg_default_image;
33
-
34
- if (variation.image.src) {
35
- image_src = variation.image.src;
36
- }
37
-
38
- yith_wcmg_zoom.attr( 'href', image_magnifier );
39
- yith_wcmg_image.attr( 'src', image_src );
40
- yith_wcmg_image.attr( 'srcset', image_src );
41
- yith_wcmg_image.attr( 'src-orig', image_src );
42
-
43
- if (yith_wcmg.data( 'yith_magnifier' )) {
44
- yith_wcmg.yith_magnifier( 'destroy' );
45
- }
46
-
47
- yith_wcmg.yith_magnifier( yith_magnifier_options );
48
- }
49
- ).on(
50
- 'reset_image',
51
- function (event) {
52
-
53
- yith_wcmg_zoom.attr( 'href', yith_wcmg_default_zoom );
54
- yith_wcmg_image.attr( 'src', yith_wcmg_default_image );
55
- yith_wcmg_image.attr( 'srcset', yith_wcmg_default_image );
56
- yith_wcmg_image.attr( 'src-orig', yith_wcmg_default_image );
57
-
58
- yith_wcmg.find( '.thumbnails' ).replaceWith( yith_wcmg_default_gallery );
59
-
60
- if (yith_wcmg.data( 'yith_magnifier' )) {
61
- yith_wcmg.yith_magnifier( 'destroy' );
62
- }
63
-
64
- yith_wcmg.yith_magnifier( yith_magnifier_options );
65
- }
66
- );
67
-
68
- if ( $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).length ) {
69
-
70
- $( 'form.variations_form .variations select' ).trigger( 'change' );
71
-
72
- function yith_wc_zm_carousel(){
73
-
74
- $( ".single-product.woocommerce div.product div.images div.thumbnails" ).css( 'width', $( ".single-product.woocommerce div.product div.images div.thumbnails" ).width() );
75
-
76
- var yith_wc_zm_circular = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'circular' );
77
- var yith_wc_zm_columns = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'columns' );
78
-
79
- var slider_infinite = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'slider_infinite' );
80
-
81
- // We retrieve the value of the width of a li and the margin to later on multiple it for the numeber of li's and set the width of the ul parent .
82
- var li_width = $( ".single-product.woocommerce div.product div.images .yith_magnifier_gallery li" ).width();
83
- var li_margin_left = $( ".single-product.woocommerce div.product div.images .yith_magnifier_gallery li" ).css( 'margin-left' );
84
-
85
- if ( typeof li_margin_left == 'undefined') {
86
- var li_margin_left_num = 0;
87
- } else {
88
- var li_margin_left_num = li_margin_left.split( "px" ).shift();
89
- }
90
-
91
- // We create an array with all the possible positions and adjust all the li's with a width width px because they were created by % via PHP
92
- // and we are goint to set the width of the ul which contains the li's.
93
- var yith_margins_array = [];
94
- var yith_margins_option = 0;
95
- yith_margins_array.push( yith_margins_option );
96
-
97
- var loop = 1;
98
- $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery li' ).each(
99
- function() {
100
-
101
- $( this ).css( 'width', li_width + 'px' );
102
- $( this ).css( 'margin-left', li_margin_left );
103
- $( this ).css( 'margin-right', li_margin_left );
104
- $( this ).show();
105
-
106
- yith_margins_option = yith_margins_option + ( ( li_margin_left_num * 2 ) + li_width );
107
-
108
- yith_margins_array.push( yith_margins_option );
109
-
110
- loop++;
111
-
112
- }
113
- );
114
-
115
- // set the width of the ul parent.
116
- var ul_w = yith_margins_option;
117
- $( ".single-product.woocommerce div.product div.images .yith_magnifier_gallery" ).css( 'width', ul_w + 'px' );
118
-
119
- $( "#slider-next" ).css( 'top', '50%' );
120
- $( "#slider-next" ).css( 'transform', 'translateY( -50% )' );
121
-
122
- $( "#slider-prev" ).css( 'top', '50%' );
123
- $( "#slider-prev" ).css( 'transform', 'translateY( -50% )' );
124
-
125
- var index_yith_margins_array = 0;
126
-
127
- $( "body" ).on(
128
- "click",
129
- "#slider-next",
130
- function () {
131
-
132
- if ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next().is( 'li' ) ) {
133
-
134
- index_yith_margins_array++;
135
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
136
- {
137
- marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
138
- }
139
- );
140
-
141
- var next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).next();
142
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
143
- next.addClass( 'first' );
144
-
145
- next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next();
146
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
147
- next.addClass( 'last' );
148
-
149
- } else if ( ( yith_wc_zm_circular == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
150
-
151
- index_yith_margins_array--;
152
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).css( 'margin-left', '-' + yith_margins_array[ index_yith_margins_array ] + 'px' );
153
-
154
- var last = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li' ).first();
155
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).after( last );
156
-
157
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
158
- last.addClass( 'last' );
159
-
160
- var first = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).next();
161
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
162
- first.addClass( 'first' );
163
-
164
- index_yith_margins_array++;
165
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
166
- {
167
- marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
168
- }
169
- );
170
-
171
- } else if ( ( slider_infinite == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
172
-
173
- while ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev().is( 'li' ) ) {
174
-
175
- var prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev();
176
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
177
- prev.addClass( 'first' );
178
-
179
- prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).prev();
180
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
181
- prev.addClass( 'last' );
182
-
183
- }
184
-
185
- index_yith_margins_array = 0;
186
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
187
- {
188
- marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
189
- }
190
- );
191
- }
192
-
193
- }
194
- );
195
-
196
- $( "body" ).on(
197
- "click",
198
- "#slider-prev",
199
- function () {
200
-
201
- if ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev().is( 'li' ) ) {
202
-
203
- index_yith_margins_array--;
204
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
205
- {
206
- marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
207
- }
208
- );
209
-
210
- var prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev();
211
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
212
- prev.addClass( 'first' );
213
-
214
- prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).prev();
215
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
216
- prev.addClass( 'last' );
217
-
218
- } else if ( ( yith_wc_zm_circular == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
219
-
220
- index_yith_margins_array++;
221
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).css( 'margin-left', '-' + yith_margins_array[index_yith_margins_array] + 'px' );
222
-
223
- var first = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li' ).last();
224
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).before( first );
225
-
226
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
227
- first.addClass( 'first' );
228
-
229
- var last = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).prev();
230
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
231
- last.addClass( 'last' );
232
-
233
- index_yith_margins_array--;
234
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
235
- {
236
- marginLeft: '-' + yith_margins_array[index_yith_margins_array] + 'px',
237
- }
238
- );
239
-
240
- } else if ( ( slider_infinite == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
241
-
242
- while ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next().is( 'li' ) ) {
243
-
244
- var next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).next();
245
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
246
- next.addClass( 'first' );
247
-
248
- next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next();
249
- $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
250
- next.addClass( 'last' );
251
-
252
- }
253
-
254
- index_yith_margins_array = yith_margins_array.length - 1 - yith_wc_zm_columns;
255
- $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
256
- {
257
- marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
258
- }
259
- );
260
- }
261
-
262
- }
263
- );
264
-
265
- }
266
-
267
- function yith_wc_zm_auto_carousel(){
268
-
269
- $( '#slider-next' ).click();
270
-
271
- setTimeout( yith_wc_zm_auto_carousel, 3000 );
272
-
273
- }
274
-
275
- yith_wc_zm_carousel();
276
-
277
- var auto_carousel = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'auto_carousel' );
278
-
279
- if ( auto_carousel == 'yes' ) {
280
- setTimeout( yith_wc_zm_auto_carousel, 3000 );
281
- }
282
- }
283
-
284
- }
285
- );
1
+ /**
2
+ * Frontend JS
3
+ *
4
+ * @author YITH
5
+ * @package YITH\ZoomMagnifier\Assets\JS
6
+ */
7
+
8
+ jQuery(
9
+ function ($) {
10
+
11
+ var yith_wcmg = $( '.images' );
12
+ var yith_wcmg_zoom = $( '.yith_magnifier_zoom' );
13
+ var yith_wcmg_image = $( '.yith_magnifier_zoom img' ).first();
14
+
15
+ var yith_wcmg_default_zoom = yith_wcmg.find( '.yith_magnifier_zoom' ).attr( 'href' );
16
+ var yith_wcmg_default_image = yith_wcmg.find( '.yith_magnifier_zoom img' ).attr( 'src' );
17
+
18
+ var yith_wcmg_default_gallery = yith_wcmg.find( '.thumbnails' );
19
+
20
+ if (typeof yith_magnifier_options == 'undefined') {
21
+ return false;
22
+ }
23
+
24
+ yith_wcmg.yith_magnifier( yith_magnifier_options );
25
+
26
+ $( document ).on(
27
+ 'found_variation',
28
+ 'form.variations_form',
29
+ function (event, variation) {
30
+ var image_magnifier = variation.image_magnifier ? variation.image_magnifier : yith_wcmg_default_zoom;
31
+
32
+ var image_src = yith_wcmg_default_image;
33
+
34
+ if (variation.image.src) {
35
+ image_src = variation.image.src;
36
+ }
37
+
38
+ yith_wcmg_zoom.attr( 'href', image_magnifier );
39
+ yith_wcmg_image.attr( 'src', image_src );
40
+ yith_wcmg_image.attr( 'srcset', image_src );
41
+ yith_wcmg_image.attr( 'src-orig', image_src );
42
+
43
+ if (yith_wcmg.data( 'yith_magnifier' )) {
44
+ yith_wcmg.yith_magnifier( 'destroy' );
45
+ }
46
+
47
+ yith_wcmg.yith_magnifier( yith_magnifier_options );
48
+ }
49
+ ).on(
50
+ 'reset_image',
51
+ function (event) {
52
+
53
+ yith_wcmg_zoom.attr( 'href', yith_wcmg_default_zoom );
54
+ yith_wcmg_image.attr( 'src', yith_wcmg_default_image );
55
+ yith_wcmg_image.attr( 'srcset', yith_wcmg_default_image );
56
+ yith_wcmg_image.attr( 'src-orig', yith_wcmg_default_image );
57
+
58
+ yith_wcmg.find( '.thumbnails' ).replaceWith( yith_wcmg_default_gallery );
59
+
60
+ if (yith_wcmg.data( 'yith_magnifier' )) {
61
+ yith_wcmg.yith_magnifier( 'destroy' );
62
+ }
63
+
64
+ yith_wcmg.yith_magnifier( yith_magnifier_options );
65
+ }
66
+ );
67
+
68
+ if ( $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).length ) {
69
+
70
+ $( 'form.variations_form .variations select' ).trigger( 'change' );
71
+
72
+ function yith_wc_zm_carousel(){
73
+
74
+ $( ".single-product.woocommerce div.product div.images div.thumbnails" ).css( 'width', $( ".single-product.woocommerce div.product div.images div.thumbnails" ).width() );
75
+
76
+ var yith_wc_zm_circular = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'circular' );
77
+ var yith_wc_zm_columns = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'columns' );
78
+
79
+ var slider_infinite = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'slider_infinite' );
80
+
81
+ // We retrieve the value of the width of a li and the margin to later on multiple it for the numeber of li's and set the width of the ul parent .
82
+ var li_width = $( ".single-product.woocommerce div.product div.images .yith_magnifier_gallery li" ).width();
83
+ var li_margin_left = $( ".single-product.woocommerce div.product div.images .yith_magnifier_gallery li" ).css( 'margin-left' );
84
+
85
+ if ( typeof li_margin_left == 'undefined') {
86
+ var li_margin_left_num = 0;
87
+ } else {
88
+ var li_margin_left_num = li_margin_left.split( "px" ).shift();
89
+ }
90
+
91
+ // We create an array with all the possible positions and adjust all the li's with a width width px because they were created by % via PHP
92
+ // and we are goint to set the width of the ul which contains the li's.
93
+ var yith_margins_array = [];
94
+ var yith_margins_option = 0;
95
+ yith_margins_array.push( yith_margins_option );
96
+
97
+ var loop = 1;
98
+ $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery li' ).each(
99
+ function() {
100
+
101
+ $( this ).css( 'width', li_width + 'px' );
102
+ $( this ).css( 'margin-left', li_margin_left );
103
+ $( this ).css( 'margin-right', li_margin_left );
104
+ $( this ).show();
105
+
106
+ yith_margins_option = yith_margins_option + ( ( li_margin_left_num * 2 ) + li_width );
107
+
108
+ yith_margins_array.push( yith_margins_option );
109
+
110
+ loop++;
111
+
112
+ }
113
+ );
114
+
115
+ // set the width of the ul parent.
116
+ var ul_w = yith_margins_option;
117
+ $( ".single-product.woocommerce div.product div.images .yith_magnifier_gallery" ).css( 'width', ul_w + 'px' );
118
+
119
+ $( "#slider-next" ).css( 'top', '50%' );
120
+ $( "#slider-next" ).css( 'transform', 'translateY( -50% )' );
121
+
122
+ $( "#slider-prev" ).css( 'top', '50%' );
123
+ $( "#slider-prev" ).css( 'transform', 'translateY( -50% )' );
124
+
125
+ var index_yith_margins_array = 0;
126
+
127
+ $( "body" ).on(
128
+ "click",
129
+ "#slider-next",
130
+ function () {
131
+
132
+ if ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next().is( 'li' ) ) {
133
+
134
+ index_yith_margins_array++;
135
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
136
+ {
137
+ marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
138
+ }
139
+ );
140
+
141
+ var next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).next();
142
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
143
+ next.addClass( 'first' );
144
+
145
+ next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next();
146
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
147
+ next.addClass( 'last' );
148
+
149
+ } else if ( ( yith_wc_zm_circular == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
150
+
151
+ index_yith_margins_array--;
152
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).css( 'margin-left', '-' + yith_margins_array[ index_yith_margins_array ] + 'px' );
153
+
154
+ var last = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li' ).first();
155
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).after( last );
156
+
157
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
158
+ last.addClass( 'last' );
159
+
160
+ var first = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).next();
161
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
162
+ first.addClass( 'first' );
163
+
164
+ index_yith_margins_array++;
165
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
166
+ {
167
+ marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
168
+ }
169
+ );
170
+
171
+ } else if ( ( slider_infinite == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
172
+
173
+ while ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev().is( 'li' ) ) {
174
+
175
+ var prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev();
176
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
177
+ prev.addClass( 'first' );
178
+
179
+ prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).prev();
180
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
181
+ prev.addClass( 'last' );
182
+
183
+ }
184
+
185
+ index_yith_margins_array = 0;
186
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
187
+ {
188
+ marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
189
+ }
190
+ );
191
+ }
192
+
193
+ }
194
+ );
195
+
196
+ $( "body" ).on(
197
+ "click",
198
+ "#slider-prev",
199
+ function () {
200
+
201
+ if ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev().is( 'li' ) ) {
202
+
203
+ index_yith_margins_array--;
204
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
205
+ {
206
+ marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
207
+ }
208
+ );
209
+
210
+ var prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).prev();
211
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
212
+ prev.addClass( 'first' );
213
+
214
+ prev = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).prev();
215
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
216
+ prev.addClass( 'last' );
217
+
218
+ } else if ( ( yith_wc_zm_circular == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
219
+
220
+ index_yith_margins_array++;
221
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).css( 'margin-left', '-' + yith_margins_array[index_yith_margins_array] + 'px' );
222
+
223
+ var first = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li' ).last();
224
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).before( first );
225
+
226
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
227
+ first.addClass( 'first' );
228
+
229
+ var last = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).prev();
230
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
231
+ last.addClass( 'last' );
232
+
233
+ index_yith_margins_array--;
234
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
235
+ {
236
+ marginLeft: '-' + yith_margins_array[index_yith_margins_array] + 'px',
237
+ }
238
+ );
239
+
240
+ } else if ( ( slider_infinite == 'yes' ) && ! $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).is( ':animated' ) ) {
241
+
242
+ while ( $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next().is( 'li' ) ) {
243
+
244
+ var next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).next();
245
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.first' ).removeClass( 'first' );
246
+ next.addClass( 'first' );
247
+
248
+ next = $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).next();
249
+ $( '.single-product.woocommerce div.product div.images .yith_magnifier_gallery li.last' ).removeClass( 'last' );
250
+ next.addClass( 'last' );
251
+
252
+ }
253
+
254
+ index_yith_margins_array = yith_margins_array.length - 1 - yith_wc_zm_columns;
255
+ $( ".single-product.woocommerce div.product div.images ul.yith_magnifier_gallery" ).animate(
256
+ {
257
+ marginLeft: '-' + yith_margins_array[ index_yith_margins_array ] + 'px',
258
+ }
259
+ );
260
+ }
261
+
262
+ }
263
+ );
264
+
265
+ }
266
+
267
+ function yith_wc_zm_auto_carousel(){
268
+
269
+ $( '#slider-next' ).click();
270
+
271
+ setTimeout( yith_wc_zm_auto_carousel, 3000 );
272
+
273
+ }
274
+
275
+ yith_wc_zm_carousel();
276
+
277
+ var auto_carousel = $( '.single-product.woocommerce div.product div.images ul.yith_magnifier_gallery' ).data( 'auto_carousel' );
278
+
279
+ if ( auto_carousel == 'yes' ) {
280
+ setTimeout( yith_wc_zm_auto_carousel, 3000 );
281
+ }
282
+ }
283
+
284
+ }
285
+ );
changelog.txt CHANGED
@@ -1,191 +1,191 @@
1
- === YITH WooCommerce Zoom Magnifier ===
2
-
3
- == Changelog History ==
4
-
5
- = Version 1.2.18 - Released: May 02, 2016 =
6
-
7
- * Updated: plugin compatible with WordPress 4.5
8
- * Updated: plugin author name
9
- * Updated: YITH Plugin Framework
10
-
11
- = Version 1.2.17 - Released: Feb 24, 2016 =
12
-
13
- * Updated: YITH Plugin FW
14
- * Fixed: removed trailing comma in JS script that break the page rendering on old IE browser
15
-
16
- = Version 1.2.16 - Released: Jan 18, 2016 =
17
-
18
- * Updated: YITH Plugin FW loading remove unused YIT constant
19
- * Added: filter yith_ywzm_zoom_wrap_additional_css for customizing CSS class for the wrapping div
20
- * Updated: plugin ready for WooCommerce 2.5
21
-
22
- = Version 1.2.15 - Released: Jan 04, 2016 =
23
-
24
- * Fixed: Cannot redeclare yith_ywzm_install_woocommerce_admin_notice() when the plugin is loaded from YITH Essential Kit
25
-
26
- = Version 1.2.14 - Released: Dec 29, 2015 =
27
-
28
- * Added: Compatibility with YIT WooCommerce Featured Audio & Video Content
29
-
30
- = Version 1.2.13 - Released: Dec 21, 2015 =
31
-
32
- * Fixed: multiple wrap of zoom element with the div with class yith_magnifier_zoom_wrap
33
- * Updated: jquery-ui.css is no more linked as external resource but shipped within the plugin, as wordpress.org asked
34
-
35
- = Version 1.2.12 - Released: Oct 29, 2015 =
36
-
37
- * Updated: YITH plugin framework
38
-
39
- = Version 1.2.11 - Released: Oct 23, 2015 =
40
-
41
- * Updated: compatibility with YITH WooCommerce Quick View.
42
-
43
- = Version 1.2.10 - Released: Sep 24, 2015 =
44
-
45
- * Updated: changed text domain as translate.wordpress.org requisite.
46
-
47
- = Version 1.2.9 - Released: Sep 04, 2015 =
48
-
49
- * Updated: Languages file
50
- * Fixed: Changed plugin text domain from yit to ywmz
51
- * Fixed: featured image shown one time on slider.
52
- * Fixed: div not shown if loading text is empty.
53
-
54
- = Version 1.2.8 - Released: Sep 01, 2015 =
55
-
56
- * Fixed: removed deprecated woocommerce_update_option_X hook.
57
-
58
- = Version 1.2.7 - Released: Aug 27, 2015 =
59
-
60
- * Fixed: resolved XSS vulnerability.
61
-
62
- = Version 1.2.6 - Released: Aug 12, 2015 =
63
-
64
- * Tweak: update YITH Plugin framework.
65
-
66
- = Version 1.2.5 - Released: Jul 23, 2015 =
67
-
68
- * Added: italian language.
69
-
70
- = Version 1.2.4 - Released: Jun 26, 2015 =
71
-
72
- * Added: support to srcset and src-orig attributes.
73
-
74
- = Version 1.2.3 - Released: May 29, 2015 =
75
-
76
- * Added: included jquery-migrate as prerequisite.
77
-
78
- = Version 1.2.2 - Released: May 22, 2015 =
79
-
80
- * Fixed: CSS fix for EssentialGrid conflicts.
81
-
82
- = Version 1.2.1 - Released: May 04, 2015 =
83
-
84
- * Fixed: removed z-index that made the zoom area hiding other elements in certain themes.
85
-
86
- = Version 1.2.0 - Released: Apr 22, 2015 =
87
-
88
- * Fix : security issue (https://make.wordpress.org/plugins/2015/04/20/fixing-add_query_arg-and-remove_query_arg-usage/)
89
- * Tweak : support up to Wordpress 4.2
90
-
91
- = 1.1.8 =
92
-
93
- * Fixed: compatibility with some YITHEMES themes.
94
-
95
- = 1.1.7 =
96
-
97
- * Fixed: Unwanted expand link on product image.
98
-
99
- = 1.1.6 =
100
-
101
- * Added: the plugin can be disabled on mobile devices.
102
-
103
- = 1.1.5 =
104
-
105
- * Fixed: multiple wrap
106
-
107
- = 1.1.4 =
108
-
109
- * Tweak: WooCommerce 2.2. support
110
- * Fixed: Placeholder in product without featured image
111
- * Fixed: Slider items number options doesn't work
112
-
113
- = 1.1.3 =
114
-
115
- * Added: Support to WC 2.2.2
116
- * Updated: Plugin Core Framework
117
-
118
- = 1.1.2 =
119
-
120
- * Restored: Image size options on WC 2.1.x
121
- * Fixed: Items number option on thumb slider
122
- * Fixed: Hard crop issue on WC 2.1.x
123
-
124
- = 1.1.1 =
125
-
126
- * Fixed: Thumbnails slider direction on single product page
127
-
128
- = 1.1.0 =
129
-
130
- * Added: Support to WooCommerce 2.1.x
131
-
132
- = 1.0.8 =
133
-
134
- * Added: ability to change the slider programmatically
135
-
136
- = 1.0.7 =
137
-
138
- * Fixed: zoomed image did not change when select a variation
139
-
140
- = 1.0.6 =
141
-
142
- * Removed white space from frontend.php
143
-
144
- = 1.0.5 =
145
-
146
- * Fixed: magnifier override the plugin for featured video
147
-
148
- = 1.0.4 =
149
-
150
- * Minor bugs fixes
151
-
152
- = 1.0.3 =
153
-
154
- * Added ability to load the plugin even when WooCommerce is installed in a different folder
155
-
156
- = 1.0.2 =
157
-
158
- * Fixed fatal error to yit_debug with yit themes
159
-
160
- = 1.0.1 =
161
-
162
- * Optimized images
163
- * Updated internal framework
164
-
165
- = 1.0.0 =
166
-
167
- * Initial release
168
-
169
- == Suggestions ==
170
-
171
- If you have suggestions about how to improve YITH WooCommerce Zoom Magnifier, you can [write us](mailto:plugins@yithemes.com "Your Inspiration Themes") so we can bundle them into YITH Zoom WooCommerce Magnifier.
172
-
173
- == Translators ==
174
-
175
- = Available Languages =
176
- * English (Default)
177
- * Italian
178
- * Spanish
179
-
180
- If you have created your own language pack, or have an update for an existing one, you can send [gettext PO and MO file](http://codex.wordpress.org/Translating_WordPress "Translating WordPress")
181
- [use](http://yithemes.com/contact/ "Your Inspiration Themes") so we can bundle it into YITH WooCommerce Zoom Magnfier Languages.
182
-
183
- == Documentation ==
184
-
185
- Full documentation is available [here](http://yithemes.com/docs-plugins/yith_woocommerce_magnifier/).
186
-
187
- == Upgrade notice ==
188
-
189
- = 1.0.0 =
190
-
191
  Initial release
1
+ === YITH WooCommerce Zoom Magnifier ===
2
+
3
+ == Changelog History ==
4
+
5
+ = Version 1.2.18 - Released: May 02, 2016 =
6
+
7
+ * Updated: plugin compatible with WordPress 4.5
8
+ * Updated: plugin author name
9
+ * Updated: YITH Plugin Framework
10
+
11
+ = Version 1.2.17 - Released: Feb 24, 2016 =
12
+
13
+ * Updated: YITH Plugin FW
14
+ * Fixed: removed trailing comma in JS script that break the page rendering on old IE browser
15
+
16
+ = Version 1.2.16 - Released: Jan 18, 2016 =
17
+
18
+ * Updated: YITH Plugin FW loading remove unused YIT constant
19
+ * Added: filter yith_ywzm_zoom_wrap_additional_css for customizing CSS class for the wrapping div
20
+ * Updated: plugin ready for WooCommerce 2.5
21
+
22
+ = Version 1.2.15 - Released: Jan 04, 2016 =
23
+
24
+ * Fixed: Cannot redeclare yith_ywzm_install_woocommerce_admin_notice() when the plugin is loaded from YITH Essential Kit
25
+
26
+ = Version 1.2.14 - Released: Dec 29, 2015 =
27
+
28
+ * Added: Compatibility with YIT WooCommerce Featured Audio & Video Content
29
+
30
+ = Version 1.2.13 - Released: Dec 21, 2015 =
31
+
32
+ * Fixed: multiple wrap of zoom element with the div with class yith_magnifier_zoom_wrap
33
+ * Updated: jquery-ui.css is no more linked as external resource but shipped within the plugin, as wordpress.org asked
34
+
35
+ = Version 1.2.12 - Released: Oct 29, 2015 =
36
+
37
+ * Updated: YITH plugin framework
38
+
39
+ = Version 1.2.11 - Released: Oct 23, 2015 =
40
+
41
+ * Updated: compatibility with YITH WooCommerce Quick View.
42
+
43
+ = Version 1.2.10 - Released: Sep 24, 2015 =
44
+
45
+ * Updated: changed text domain as translate.wordpress.org requisite.
46
+
47
+ = Version 1.2.9 - Released: Sep 04, 2015 =
48
+
49
+ * Updated: Languages file
50
+ * Fixed: Changed plugin text domain from yit to ywmz
51
+ * Fixed: featured image shown one time on slider.
52
+ * Fixed: div not shown if loading text is empty.
53
+
54
+ = Version 1.2.8 - Released: Sep 01, 2015 =
55
+
56
+ * Fixed: removed deprecated woocommerce_update_option_X hook.
57
+
58
+ = Version 1.2.7 - Released: Aug 27, 2015 =
59
+
60
+ * Fixed: resolved XSS vulnerability.
61
+
62
+ = Version 1.2.6 - Released: Aug 12, 2015 =
63
+
64
+ * Tweak: update YITH Plugin framework.
65
+
66
+ = Version 1.2.5 - Released: Jul 23, 2015 =
67
+
68
+ * Added: italian language.
69
+
70
+ = Version 1.2.4 - Released: Jun 26, 2015 =
71
+
72
+ * Added: support to srcset and src-orig attributes.
73
+
74
+ = Version 1.2.3 - Released: May 29, 2015 =
75
+
76
+ * Added: included jquery-migrate as prerequisite.
77
+
78
+ = Version 1.2.2 - Released: May 22, 2015 =
79
+
80
+ * Fixed: CSS fix for EssentialGrid conflicts.
81
+
82
+ = Version 1.2.1 - Released: May 04, 2015 =
83
+
84
+ * Fixed: removed z-index that made the zoom area hiding other elements in certain themes.
85
+
86
+ = Version 1.2.0 - Released: Apr 22, 2015 =
87
+
88
+ * Fix : security issue (https://make.wordpress.org/plugins/2015/04/20/fixing-add_query_arg-and-remove_query_arg-usage/)
89
+ * Tweak : support up to Wordpress 4.2
90
+
91
+ = 1.1.8 =
92
+
93
+ * Fixed: compatibility with some YITHEMES themes.
94
+
95
+ = 1.1.7 =
96
+
97
+ * Fixed: Unwanted expand link on product image.
98
+
99
+ = 1.1.6 =
100
+
101
+ * Added: the plugin can be disabled on mobile devices.
102
+
103
+ = 1.1.5 =
104
+
105
+ * Fixed: multiple wrap
106
+
107
+ = 1.1.4 =
108
+
109
+ * Tweak: WooCommerce 2.2. support
110
+ * Fixed: Placeholder in product without featured image
111
+ * Fixed: Slider items number options doesn't work
112
+
113
+ = 1.1.3 =
114
+
115
+ * Added: Support to WC 2.2.2
116
+ * Updated: Plugin Core Framework
117
+
118
+ = 1.1.2 =
119
+
120
+ * Restored: Image size options on WC 2.1.x
121
+ * Fixed: Items number option on thumb slider
122
+ * Fixed: Hard crop issue on WC 2.1.x
123
+
124
+ = 1.1.1 =
125
+
126
+ * Fixed: Thumbnails slider direction on single product page
127
+
128
+ = 1.1.0 =
129
+
130
+ * Added: Support to WooCommerce 2.1.x
131
+
132
+ = 1.0.8 =
133
+
134
+ * Added: ability to change the slider programmatically
135
+
136
+ = 1.0.7 =
137
+
138
+ * Fixed: zoomed image did not change when select a variation
139
+
140
+ = 1.0.6 =
141
+
142
+ * Removed white space from frontend.php
143
+
144
+ = 1.0.5 =
145
+
146
+ * Fixed: magnifier override the plugin for featured video
147
+
148
+ = 1.0.4 =
149
+
150
+ * Minor bugs fixes
151
+
152
+ = 1.0.3 =
153
+
154
+ * Added ability to load the plugin even when WooCommerce is installed in a different folder
155
+
156
+ = 1.0.2 =
157
+
158
+ * Fixed fatal error to yit_debug with yit themes
159
+
160
+ = 1.0.1 =
161
+
162
+ * Optimized images
163
+ * Updated internal framework
164
+
165
+ = 1.0.0 =
166
+
167
+ * Initial release
168
+
169
+ == Suggestions ==
170
+
171
+ If you have suggestions about how to improve YITH WooCommerce Zoom Magnifier, you can [write us](mailto:plugins@yithemes.com "Your Inspiration Themes") so we can bundle them into YITH Zoom WooCommerce Magnifier.
172
+
173
+ == Translators ==
174
+
175
+ = Available Languages =
176
+ * English (Default)
177
+ * Italian
178
+ * Spanish
179
+
180
+ If you have created your own language pack, or have an update for an existing one, you can send [gettext PO and MO file](http://codex.wordpress.org/Translating_WordPress "Translating WordPress")
181
+ [use](http://yithemes.com/contact/ "Your Inspiration Themes") so we can bundle it into YITH WooCommerce Zoom Magnfier Languages.
182
+
183
+ == Documentation ==
184
+
185
+ Full documentation is available [here](http://yithemes.com/docs-plugins/yith_woocommerce_magnifier/).
186
+
187
+ == Upgrade notice ==
188
+
189
+ = 1.0.0 =
190
+
191
  Initial release
init.php CHANGED
@@ -1,154 +1,155 @@
1
- <?php
2
- /**
3
- * Plugin Name: YITH WooCommerce Product Gallery & Image Zoom
4
- * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-zoom-magnifier/
5
- * Description: <code><strong>YITH WooCommerce Product Gallery & Image Zoom</strong></code> allows you to add a zoom effect to product images and a thumbnail slider for the product image gallery. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
- * Version: 2.0.1
7
- * Author: YITH
8
- * Author URI: https://yithemes.com/
9
- * Text Domain: yith-woocommerce-zoom-magnifier
10
- * Domain Path: /languages/
11
- * WC requires at least: 5.3
12
- * WC tested up to: 5.7
13
- **/
14
-
15
- /* Copyright 2013-2018 Your Inspiration Themes (email : plugins@yithemes.com)
16
-
17
- This program is free software; you can redistribute it and/or modify
18
- it under the terms of the GNU General Public License, version 2, as
19
- published by the Free Software Foundation.
20
-
21
- This program is distributed in the hope that it will be useful,
22
- but WITHOUT ANY WARRANTY; without even the implied warranty of
23
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
- GNU General Public License for more details.
25
-
26
- You should have received a copy of the GNU General Public License
27
- along with this program; if not, write to the Free Software
28
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29
- */
30
-
31
- if ( ! defined ( 'ABSPATH' ) ) {
32
- exit;
33
- } // Exit if accessed directly
34
-
35
- if ( ! function_exists( 'is_plugin_active' ) ) {
36
- if ( ! function_exists( 'get_plugin_data' ) ) {
37
- require_once(ABSPATH . 'wp-admin/includes/plugin.php');
38
- }
39
- }
40
-
41
- if ( ! function_exists ( 'yith_ywzm_install_woocommerce_admin_notice' ) ) {
42
- /**
43
- * WooCommerce is not enabled, the plugin will not be effective
44
- *
45
- * @author Lorenzo Giuffrida
46
- * @since 1.0.0
47
- */
48
- function yith_ywzm_install_woocommerce_admin_notice () {
49
- ?>
50
- <div class="error">
51
- <p><?php _e ( 'YITH WooCommerce Product Gallery & Image Zoom is enabled but not effective. It requires WooCommerce in order to work.', 'yith-woocommerce-zoom-magnifier' ); ?></p>
52
- </div>
53
- <?php
54
- }
55
- }
56
-
57
- if ( ! function_exists ( 'yith_ywzm_install_free_admin_notice' ) ) {
58
- /**
59
- * Unable to activate the free version while the premium version is active
60
- *
61
- * @author Lorenzo Giuffrida
62
- * @since 1.0.0
63
- */
64
- function yith_ywzm_install_free_admin_notice () {
65
- ?>
66
- <div class="error">
67
- <p><?php _e ( 'You can\'t activate the free version of YITH WooCommerce Product Gallery & Image Zoom while you are using the premium one.', 'yith-woocommerce-zoom-magnifier' ); ?></p>
68
- </div>
69
- <?php
70
- }
71
- }
72
-
73
- if ( ! function_exists ( 'yith_plugin_registration_hook' ) ) {
74
- require_once 'plugin-fw/yit-plugin-registration-hook.php';
75
- }
76
-
77
- register_activation_hook ( __FILE__, 'yith_plugin_registration_hook' );
78
-
79
- defined ( 'YITH_YWZM_FREE_INIT' ) || define ( 'YITH_YWZM_FREE_INIT', plugin_basename ( __FILE__ ) );
80
- defined ( 'YITH_YWZM_SLUG' ) || define ( 'YITH_YWZM_SLUG', 'yith-woocommerce-zoom-magnifier' );
81
- defined ( 'YITH_YWZM_VERSION' ) || define ( 'YITH_YWZM_VERSION', '2.0.1' );
82
- defined ( 'YITH_YWZM_SCRIPT_VERSION' ) || define ( 'YITH_YWZM_SCRIPT_VERSION', '2.0.1' );
83
-
84
- defined ( 'YITH_YWZM_FILE' ) || define ( 'YITH_YWZM_FILE', __FILE__ );
85
- defined ( 'YITH_YWZM_DIR' ) || define ( 'YITH_YWZM_DIR', plugin_dir_path ( __FILE__ ) );
86
- defined ( 'YITH_YWZM_URL' ) || define ( 'YITH_YWZM_URL', plugins_url ( '/', __FILE__ ) );
87
- defined ( 'YITH_YWZM_ASSETS_URL' ) || define ( 'YITH_YWZM_ASSETS_URL', YITH_YWZM_URL . 'assets' );
88
- defined ( 'YITH_YWZM_TEMPLATE_DIR' ) || define ( 'YITH_YWZM_TEMPLATE_DIR', YITH_YWZM_DIR . 'templates' );
89
- defined ( 'YITH_YWZM_ASSETS_IMAGES_URL' ) || define ( 'YITH_YWZM_ASSETS_IMAGES_URL', YITH_YWZM_ASSETS_URL . '/images/' );
90
- defined ( 'YITH_YWZM_LIB_DIR' ) || define ( 'YITH_YWZM_LIB_DIR', YITH_YWZM_DIR . 'lib/' );
91
-
92
- /* Plugin Framework Version Check */
93
- if ( ! function_exists ( 'yit_maybe_plugin_fw_loader' ) && file_exists ( YITH_YWZM_DIR . 'plugin-fw/init.php' ) ) {
94
- require_once ( YITH_YWZM_DIR . 'plugin-fw/init.php' );
95
- }
96
- yit_maybe_plugin_fw_loader ( YITH_YWZM_DIR );
97
-
98
- if ( ! function_exists ( 'yith_ywzm_init' ) ) {
99
- /**
100
- * Init the plugin
101
- *
102
- * @author Lorenzo Giuffrida
103
- * @since 1.0.0
104
- */
105
- function yith_ywzm_init () {
106
-
107
- /**
108
- * Load text domain and start plugin
109
- */
110
- load_plugin_textdomain ( 'yith-woocommerce-zoom-magnifier', false, dirname ( plugin_basename ( __FILE__ ) ) . '/languages/' );
111
-
112
- add_option ( 'yith_wcmg_slider_direction', apply_filters ( 'yith_wcmg_slider_direction', 'left' ) );
113
-
114
- define ( 'YITH_WCMG', true );
115
- define ( 'YITH_WCMG_URL', plugin_dir_url ( __FILE__ ) );
116
-
117
- // Load required classes and functions
118
- require_once ( YITH_YWZM_LIB_DIR . 'class.yith-wcmg-admin.php' );
119
- require_once ( YITH_YWZM_LIB_DIR . 'class.yith-wcmg-frontend.php' );
120
- require_once ( YITH_YWZM_LIB_DIR . 'class.yith-woocommerce-zoom-magnifier.php' );
121
- require_once ( YITH_YWZM_LIB_DIR . 'class.yith-ywzm-plugin-fw-loader.php' );
122
-
123
- YITH_YWZM_Plugin_FW_Loader::get_instance ();
124
-
125
- // Let's start the game!
126
- global $yith_wcmg;
127
-
128
- $yith_wcmg = new YITH_WooCommerce_Zoom_Magnifier();
129
- }
130
- }
131
- add_action ( 'yith_ywzm_init', 'yith_ywzm_init' );
132
-
133
- if ( ! function_exists ( 'yith_ywzm_install' ) ) {
134
- /**
135
- * install the plugin
136
- *
137
- * @author Lorenzo Giuffrida
138
- * @since 1.0.0
139
- */
140
- function yith_ywzm_install () {
141
-
142
- if ( ! function_exists ( 'WC' ) ) {
143
- add_action ( 'admin_notices', 'yith_ywzm_install_woocommerce_admin_notice' );
144
- } elseif ( defined ( 'YITH_YWZM_PREMIUM' ) ) {
145
- add_action ( 'admin_notices', 'yith_ywzm_install_free_admin_notice' );
146
- deactivate_plugins ( plugin_basename ( __FILE__ ) );
147
- } else {
148
- do_action ( 'yith_ywzm_init' );
149
- }
150
-
151
- }
152
- }
153
-
154
- add_action ( 'plugins_loaded', 'yith_ywzm_install', 11 );
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: YITH WooCommerce Product Gallery & Image Zoom
4
+ * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-zoom-magnifier/
5
+ * Description: <code><strong>YITH WooCommerce Product Gallery & Image Zoom</strong></code> allows you to add a zoom effect to product images and a thumbnail slider for the product image gallery. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
+ * Version: 2.0.2
7
+ * Author: YITH
8
+ * Author URI: https://yithemes.com/
9
+ * Text Domain: yith-woocommerce-zoom-magnifier
10
+ * Domain Path: /languages/
11
+ * WC requires at least: 5.3
12
+ * WC tested up to: 5.7
13
+ **/
14
+
15
+ /* Copyright 2013-2018 Your Inspiration Themes (email : plugins@yithemes.com)
16
+
17
+ This program is free software; you can redistribute it and/or modify
18
+ it under the terms of the GNU General Public License, version 2, as
19
+ published by the Free Software Foundation.
20
+
21
+ This program is distributed in the hope that it will be useful,
22
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
+ GNU General Public License for more details.
25
+
26
+ You should have received a copy of the GNU General Public License
27
+ along with this program; if not, write to the Free Software
28
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29
+ */
30
+
31
+ if ( ! defined ( 'ABSPATH' ) ) {
32
+ exit;
33
+ } // Exit if accessed directly
34
+
35
+ if ( ! function_exists( 'is_plugin_active' ) ) {
36
+ if ( ! function_exists( 'get_plugin_data' ) ) {
37
+ require_once(ABSPATH . 'wp-admin/includes/plugin.php');
38
+ }
39
+ }
40
+
41
+ if ( ! function_exists ( 'yith_ywzm_install_woocommerce_admin_notice' ) ) {
42
+ /**
43
+ * WooCommerce is not enabled, the plugin will not be effective
44
+ *
45
+ * @author Lorenzo Giuffrida
46
+ * @since 1.0.0
47
+ */
48
+ function yith_ywzm_install_woocommerce_admin_notice () {
49
+ ?>
50
+ <div class="error">
51
+ <p><?php _e ( 'YITH WooCommerce Product Gallery & Image Zoom is enabled but not effective. It requires WooCommerce in order to work.', 'yith-woocommerce-zoom-magnifier' ); ?></p>
52
+ </div>
53
+ <?php
54
+ }
55
+ }
56
+
57
+ if ( ! function_exists ( 'yith_ywzm_install_free_admin_notice' ) ) {
58
+ /**
59
+ * Unable to activate the free version while the premium version is active
60
+ *
61
+ * @author Lorenzo Giuffrida
62
+ * @since 1.0.0
63
+ */
64
+ function yith_ywzm_install_free_admin_notice () {
65
+ ?>
66
+ <div class="error">
67
+ <p><?php _e ( 'You can\'t activate the free version of YITH WooCommerce Product Gallery & Image Zoom while you are using the premium one.', 'yith-woocommerce-zoom-magnifier' ); ?></p>
68
+ </div>
69
+ <?php
70
+ }
71
+ }
72
+
73
+ if ( ! function_exists ( 'yith_plugin_registration_hook' ) ) {
74
+ require_once 'plugin-fw/yit-plugin-registration-hook.php';
75
+ }
76
+
77
+ register_activation_hook ( __FILE__, 'yith_plugin_registration_hook' );
78
+
79
+ defined ( 'YITH_YWZM_FREE_INIT' ) || define ( 'YITH_YWZM_FREE_INIT', plugin_basename ( __FILE__ ) );
80
+ defined ( 'YITH_YWZM_SLUG' ) || define ( 'YITH_YWZM_SLUG', 'yith-woocommerce-zoom-magnifier' );
81
+ defined ( 'YITH_YWZM_VERSION' ) || define ( 'YITH_YWZM_VERSION', '2.0.1' );
82
+ defined ( 'YITH_YWZM_SCRIPT_VERSION' ) || define ( 'YITH_YWZM_SCRIPT_VERSION', '2.0.2' );
83
+
84
+ defined ( 'YITH_YWZM_FILE' ) || define ( 'YITH_YWZM_FILE', __FILE__ );
85
+ defined ( 'YITH_YWZM_DIR' ) || define ( 'YITH_YWZM_DIR', plugin_dir_path ( __FILE__ ) );
86
+ defined ( 'YITH_YWZM_URL' ) || define ( 'YITH_YWZM_URL', plugins_url ( '/', __FILE__ ) );
87
+ defined ( 'YITH_YWZM_ASSETS_URL' ) || define ( 'YITH_YWZM_ASSETS_URL', YITH_YWZM_URL . 'assets' );
88
+ defined ( 'YITH_YWZM_TEMPLATE_DIR' ) || define ( 'YITH_YWZM_TEMPLATE_DIR', YITH_YWZM_DIR . 'templates' );
89
+ defined ( 'YITH_YWZM_ASSETS_IMAGES_URL' ) || define ( 'YITH_YWZM_ASSETS_IMAGES_URL', YITH_YWZM_ASSETS_URL . '/images/' );
90
+ defined ( 'YITH_YWZM_LIB_DIR' ) || define ( 'YITH_YWZM_LIB_DIR', YITH_YWZM_DIR . 'lib/' );
91
+
92
+ /* Plugin Framework Version Check */
93
+ if ( ! function_exists ( 'yit_maybe_plugin_fw_loader' ) && file_exists ( YITH_YWZM_DIR . 'plugin-fw/init.php' ) ) {
94
+ require_once ( YITH_YWZM_DIR . 'plugin-fw/init.php' );
95
+ }
96
+ yit_maybe_plugin_fw_loader ( YITH_YWZM_DIR );
97
+
98
+ if ( ! function_exists ( 'yith_ywzm_init' ) ) {
99
+ /**
100
+ * Init the plugin
101
+ *
102
+ * @author Lorenzo Giuffrida
103
+ * @since 1.0.0
104
+ */
105
+ function yith_ywzm_init () {
106
+
107
+ /**
108
+ * Load text domain and start plugin
109
+ */
110
+ load_plugin_textdomain ( 'yith-woocommerce-zoom-magnifier', false, dirname ( plugin_basename ( __FILE__ ) ) . '/languages/' );
111
+
112
+ add_option ( 'yith_wcmg_slider_direction', apply_filters ( 'yith_wcmg_slider_direction', 'left' ) );
113
+
114
+ define ( 'YITH_WCMG', true );
115
+ define ( 'YITH_WCMG_URL', plugin_dir_url ( __FILE__ ) );
116
+
117
+ // Load required classes and functions
118
+ require_once ( YITH_YWZM_LIB_DIR . 'class.yith-wcmg-admin.php' );
119
+ require_once ( YITH_YWZM_LIB_DIR . 'class.yith-wcmg-frontend.php' );
120
+ require_once ( YITH_YWZM_LIB_DIR . 'class.yith-woocommerce-zoom-magnifier.php' );
121
+ require_once ( YITH_YWZM_LIB_DIR . 'class.yith-ywzm-plugin-fw-loader.php' );
122
+ require_once ( YITH_YWZM_LIB_DIR . 'functions.yith-ywzm.php' );
123
+
124
+ YITH_YWZM_Plugin_FW_Loader::get_instance ();
125
+
126
+ // Let's start the game!
127
+ global $yith_wcmg;
128
+
129
+ $yith_wcmg = new YITH_WooCommerce_Zoom_Magnifier();
130
+ }
131
+ }
132
+ add_action ( 'yith_ywzm_init', 'yith_ywzm_init' );
133
+
134
+ if ( ! function_exists ( 'yith_ywzm_install' ) ) {
135
+ /**
136
+ * install the plugin
137
+ *
138
+ * @author Lorenzo Giuffrida
139
+ * @since 1.0.0
140
+ */
141
+ function yith_ywzm_install () {
142
+
143
+ if ( ! function_exists ( 'WC' ) ) {
144
+ add_action ( 'admin_notices', 'yith_ywzm_install_woocommerce_admin_notice' );
145
+ } elseif ( defined ( 'YITH_YWZM_PREMIUM' ) ) {
146
+ add_action ( 'admin_notices', 'yith_ywzm_install_free_admin_notice' );
147
+ deactivate_plugins ( plugin_basename ( __FILE__ ) );
148
+ } else {
149
+ do_action ( 'yith_ywzm_init' );
150
+ }
151
+
152
+ }
153
+ }
154
+
155
+ add_action ( 'plugins_loaded', 'yith_ywzm_install', 11 );
languages/yith-woocommerce-zoom-magnifier-es_ES.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: YITH WooCommerce Order Tracking\n"
4
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
5
- "POT-Creation-Date: 2021-06-11 15:12:55+00:00\n"
6
  "PO-Revision-Date: 2016-06-13 16:57+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -19,305 +19,518 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPathExcluded-0: plugin-fw\n"
21
 
22
- #: class.yith-wcmg-admin.php:75
23
- msgid "Image Size"
24
- msgstr "Tamaño de la imagen"
25
-
26
- #: class.yith-wcmg-admin.php:76 plugin-options/general-options.php:17
27
- msgid "The size of the images used within the magnifier box"
28
- msgstr "El tamaño de las imágenes usadas dentro de la caja de zoom"
29
-
30
  #: init.php:51
 
31
  msgid ""
32
- "YITH WooCommerce Zoom Magnifier is enabled but not effective. It requires "
33
- "WooCommerce in order to work."
34
  msgstr ""
35
  "YITH WooCommerce Zoom Magnifier está habilitado pero no es efectivo. "
36
  "Requiere WooCommerce para funcionar."
37
 
38
  #: init.php:67
39
  msgid ""
40
- "You can't activate the free version of YITH WooCommerce Zoom Magnifier while "
41
- "you are using the premium one."
42
  msgstr ""
43
 
44
- #: lib/class.yith-ywzm-custom-types.php:159
45
- msgid "Do you want to hard crop the image?"
46
- msgstr "¿Quieres recortar la imagen?"
47
 
48
- #: lib/class.yith-ywzm-plugin-fw-loader.php:120
49
- msgid "General"
50
- msgstr "General"
 
51
 
52
- #: lib/class.yith-ywzm-plugin-fw-loader.php:123
53
  msgid "Premium Version"
54
  msgstr "Versión Premium"
55
 
56
- #: lib/class.yith-ywzm-plugin-fw-loader.php:125
57
- msgid "Product exclusion list"
58
- msgstr ""
59
-
60
- #: lib/class.yith-ywzm-plugin-fw-loader.php:180
61
  msgid ""
62
- "YITH WooCommerce Zoom Magnifier is available in an outstanding PREMIUM "
63
- "version with many new options, discover it now."
64
  msgstr ""
65
  "YITH WooCommerce Zoom Magnifier está disponible en una espectacular versión "
66
  "PREMIUM con muchas nuevas opciones, descúbrela ahora."
67
 
68
- #: lib/class.yith-ywzm-plugin-fw-loader.php:181
69
  msgid "Premium version"
70
  msgstr "Versión Pemium"
71
 
72
- #: lib/class.yith-ywzm-plugin-fw-loader.php:189
 
 
 
 
 
73
  msgid ""
74
- "In YIT Plugins tab you can find YITH WooCommerce Zoom Magnifier options."
75
- "<br> From this menu you can access all settings of the YITH plugins "
76
- "activated."
77
  msgstr ""
78
  "En la pestaña YITH Plugins puedes encontrar opciones de YITH WooCommerce "
79
  "Zoom Magnifier. <br> Desde este menú puedes acceder a todos los ajustes de "
80
  "los plugin YITH activados."
81
 
82
- #: plugin-options/general-options.php:16
83
- msgid "Image size"
84
- msgstr "Tamaño de imagen"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
 
86
- #: plugin-options/general-options.php:36
87
- msgid "General Settings"
88
- msgstr "Ajustes Generales"
 
89
 
90
- #: plugin-options/general-options.php:42
91
- msgid "Activate YITH WooCommerce Zoom Magnifier"
92
- msgstr "Activar YITH WooCommerce Zoom Magnifier"
 
93
 
94
- #: plugin-options/general-options.php:43
95
- msgid "Activate the plugin or use the WooCommerce default product image."
96
  msgstr ""
97
- "Activar el plugin o usar la imagen de producto por defecto de WooComerce."
98
 
99
- #: plugin-options/general-options.php:50
100
- msgid "Activate on mobile device"
101
- msgstr "Activar en dispositivos móviles"
102
 
103
- #: plugin-options/general-options.php:51
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  msgid ""
105
- "Set if zoom and slider functionalities should be shown also on mobile "
106
- "devices."
107
  msgstr ""
108
- "Establecer si las funcionalidades del zoom y el deslizador deberían "
109
- "mostrarse también en dispositivos móviles."
110
 
111
- #: plugin-options/general-options.php:59
112
- msgid "Forced Image Size"
113
- msgstr "Tamaño de imagen obligatiorio"
 
 
 
 
114
 
115
- #: plugin-options/general-options.php:60
116
  msgid ""
117
- "If disabled, you will able to customize the sizes of the zoomed images. "
118
- "Disable it at your own risk; the magnifier could not properly work with "
119
- "images out of proportion."
120
  msgstr ""
121
- "Si está deshabilitado, podrás personalizar los tamaños de las imágenes "
122
- "aumentadas. Desactívalo bajo tu propio riesgo, la lupa no funciona "
123
- "correctamente con imágenes desproporcionadas."
124
 
125
- #: plugin-options/general-options.php:74
126
- msgid "Magnifier Settings"
127
- msgstr "Ajustes del xoom"
 
 
128
 
129
- #: plugin-options/general-options.php:80
130
- msgid "Zoom Box Width"
131
- msgstr "Ancho del cuadro de zoom"
 
132
 
133
- #: plugin-options/general-options.php:81
134
- msgid "The width of the magnifier box (default: auto)"
135
- msgstr "El ancho del cuadro de zoom (por defecto: auto)"
136
 
137
- #: plugin-options/general-options.php:88
138
- msgid "Zoom Box Height"
139
- msgstr "Altura del cuadro de zoom"
140
 
141
- #: plugin-options/general-options.php:89
142
- msgid "The height of the magnifier box (default: auto)"
143
- msgstr "La altura del cuadro de zoom (por defecto: auto)"
144
 
145
- #: plugin-options/general-options.php:97
146
- msgid "Zoom Box Position"
147
- msgstr "Posición del cuadro de zoom"
 
 
 
 
148
 
149
- #: plugin-options/general-options.php:98
150
- msgid "The magnifier position"
151
- msgstr "La posición del cuadro de zoom"
152
 
153
- #: plugin-options/general-options.php:105
154
- msgid "Right"
155
- msgstr "Derecha"
156
 
157
- #: plugin-options/general-options.php:106
158
- #: plugin-options/general-options.php:119
159
- msgid "Inside"
160
- msgstr "Dentro"
161
 
162
- #: plugin-options/general-options.php:110
163
- msgid "Zoom Box Position for mobile devices"
164
- msgstr "Posición del cuadro de zoom en dispositivos móviles"
165
 
166
- #: plugin-options/general-options.php:111
167
- msgid "The magnifier position for the mobile devices (iPhone, Android, etc.)"
168
- msgstr "La posición del zoom en dispositivos móviles (iPhone, Android, etc.)"
169
 
170
- #: plugin-options/general-options.php:118
171
- msgid "Default"
172
- msgstr "Por defecto"
173
 
174
- #: plugin-options/general-options.php:120
175
- msgid "Disable"
176
- msgstr "Deshabilitar"
177
 
178
- #: plugin-options/general-options.php:124
179
- msgid "Loading label"
180
- msgstr "Etiqueta de cargando"
181
 
182
- #: plugin-options/general-options.php:127
183
- #: plugin-options/general-options.php:128
184
- msgid "Loading..."
185
- msgstr "Cargando..."
186
 
187
- #: plugin-options/general-options.php:133
188
- msgid "Lens Opacity"
189
- msgstr "Opacidad de la lente"
 
 
 
 
 
 
190
 
191
- #: plugin-options/general-options.php:142
192
- msgid "Blur"
193
- msgstr "Difuminar"
 
 
 
 
 
 
194
 
195
- #: plugin-options/general-options.php:143
196
- msgid "Add a blur effect to the small image on mouse hover."
197
  msgstr ""
198
- "Añadir un efecto de disolverse a la imagen pequeña con el evento hover del "
199
- "ratón."
200
 
201
- #: plugin-options/general-options.php:154
202
- msgid "Slider Settings"
203
- msgstr "Ajustes de Deslizador"
 
204
 
205
- #: plugin-options/general-options.php:160
206
- msgid "Activate Slider"
207
- msgstr "Activar Deslizador"
208
 
209
- #: plugin-options/general-options.php:161
210
- msgid "Activate Thumbnail Slider."
211
- msgstr "Activar miniatura de Deslizador."
212
 
213
- #: plugin-options/general-options.php:168
214
- msgid "Activate Responsive Slider"
215
- msgstr "Activar Deslizador Responsive"
216
 
217
- #: plugin-options/general-options.php:169
218
- msgid ""
219
- "This option fits the thumbnails within the available space. Disable it if "
220
- "you want to manage freely the thumbnails (eg. add margins, paddings, etc.)"
221
  msgstr ""
222
- "Esta opción ajusta las miniaturas dentro del espacio disponible. "
223
- "Deshabilítala si quieres administrar libremente las miniaturas (p.ej.: "
224
- "añadir márgenes, rellenos, etc.)"
225
 
226
- #: plugin-options/general-options.php:176
227
- msgid "Items"
228
- msgstr "Elementos"
 
229
 
230
- #: plugin-options/general-options.php:177
231
- msgid "Number of items to show"
232
- msgstr "Número de elementos que se muestran"
233
 
234
- #: plugin-options/general-options.php:186
235
- msgid "Circular carousel"
236
- msgstr "Carrusel circular"
237
 
238
- #: plugin-options/general-options.php:187
239
- msgid "It defines whether the carousel should be circular."
240
- msgstr "Define si el carrusel debe ser circular"
 
241
 
242
- #: plugin-options/general-options.php:194
243
- msgid "Infinite carousel"
244
- msgstr "Carrusel infinito"
 
245
 
246
- #: plugin-options/general-options.php:195
247
- msgid ""
248
- "It defines whether the carousel should be infinite. Note: It is possible to "
249
- "create a non-circular, infinite carousel, but it is not possible to create a "
250
- "circular, non-infinite carousel."
251
  msgstr ""
252
- "Define si el carrusel debe ser infinito. Nota: es posible crear un carrusel "
253
- "infinito no circular, pero no es posible crear un carrusel circular no "
254
- "infinito."
255
 
256
- #: templates/admin/premium.php:193
257
- msgid ""
258
- "Upgrade to the %1$s premium version %2$s of %1$s YITH WooCommerce Zoom "
259
- "Magnifier %2$s to benefit from all features!"
260
  msgstr ""
261
 
262
- #: templates/admin/premium.php:196
263
- msgid "%1$sUPGRADE%2$s%3$sto the premium version%2$s"
 
 
 
 
 
 
264
  msgstr ""
265
 
266
- #: templates/admin/premium.php:202
267
- msgid "%1$sPremium Features%2$s"
268
  msgstr ""
269
 
270
- #: templates/admin/premium.php:210
271
- msgid "ZOOM BOX POSITION"
 
 
 
 
 
272
  msgstr ""
273
 
274
- #: templates/admin/premium.php:213
275
  msgid ""
276
- "Choose where you want to show the %1$szoomed version%2$s of the image of "
277
- "your products. Place it above or below the original image, on its left or "
278
- "its right, or you can even place it over it.$2$s"
 
279
  msgstr ""
280
 
281
- #: templates/admin/premium.php:223
282
- msgid "ENLARGE THE IMAGES"
 
 
283
  msgstr ""
284
 
285
- #: templates/admin/premium.php:225
286
  msgid ""
287
- "Just one click and the product image will appear in a bigger size in a modal "
288
- "window. A further chance to let users analyze in a better way what you sell."
 
289
  msgstr ""
290
 
291
- #: templates/admin/premium.php:240
292
- msgid "EXCLUDE PRODUCTS"
293
  msgstr ""
294
 
295
- #: templates/admin/premium.php:242
296
  msgid ""
297
- "Tailored options to limit the plugin features only to certain products. Some "
298
- "of these could have too small images to be zoomed, or maybe being part of "
299
- "categories that do not imply zoomed images. Select the products and the "
300
- "categories to exclude and delete all your problems"
301
  msgstr ""
302
 
303
- #: templates/admin/premium.php:251
304
- msgid ""
305
- "Upgrade to the %1$spremium version%2$s of %1$sYITH WooCommerce Zoom Magnifier"
306
- "%2$s to benefit from all features!"
307
  msgstr ""
308
 
309
- #: templates/admin/premium.php:254
310
- msgid "%1$sUPGRADE%2$s %3$sto the premium version%2$s"
 
 
311
  msgstr ""
312
 
313
  #. Description of the plugin/theme
314
  msgid ""
315
- "<code><strong>YITH WooCommerce Zoom Magnifier</strong></code> allows you to "
316
- "add a zoom effect to product images and a thumbnail slider for the product "
317
- "image gallery. <a href=\"https://yithemes.com/\" target=\"_blank\">Get more "
318
- "plugins for your e-commerce shop on <strong>YITH</strong></a>."
319
  msgstr ""
320
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  #~ msgid "Settings"
322
  #~ msgstr "Ajustes"
323
 
@@ -457,9 +670,6 @@ msgstr ""
457
  #~ msgid "Top"
458
  #~ msgstr "Arriba"
459
 
460
- #~ msgid "Bottom"
461
- #~ msgstr "Abajo"
462
-
463
  #~ msgid "Left"
464
  #~ msgstr "Izquierda"
465
 
2
  msgstr ""
3
  "Project-Id-Version: YITH WooCommerce Order Tracking\n"
4
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
5
+ "POT-Creation-Date: 2021-09-22 08:03:23+00:00\n"
6
  "PO-Revision-Date: 2016-06-13 16:57+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPathExcluded-0: plugin-fw\n"
21
 
 
 
 
 
 
 
 
 
22
  #: init.php:51
23
+ #, fuzzy
24
  msgid ""
25
+ "YITH WooCommerce Product Gallery & Image Zoom is enabled but not effective. "
26
+ "It requires WooCommerce in order to work."
27
  msgstr ""
28
  "YITH WooCommerce Zoom Magnifier está habilitado pero no es efectivo. "
29
  "Requiere WooCommerce para funcionar."
30
 
31
  #: init.php:67
32
  msgid ""
33
+ "You can't activate the free version of YITH WooCommerce Product Gallery & "
34
+ "Image Zoom while you are using the premium one."
35
  msgstr ""
36
 
37
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:136
38
+ msgid "Main image options"
39
+ msgstr ""
40
 
41
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:137
42
+ #: plugin-options/gallery-options.php:19
43
+ msgid "Product gallery options"
44
+ msgstr ""
45
 
46
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:138
47
  msgid "Premium Version"
48
  msgstr "Versión Premium"
49
 
50
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:190
51
+ #, fuzzy
 
 
 
52
  msgid ""
53
+ "YITH WooCommerce Product Gallery & Image Zoom is available in an "
54
+ "outstanding PREMIUM version with many new options, discover it now."
55
  msgstr ""
56
  "YITH WooCommerce Zoom Magnifier está disponible en una espectacular versión "
57
  "PREMIUM con muchas nuevas opciones, descúbrela ahora."
58
 
59
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:191
60
  msgid "Premium version"
61
  msgstr "Versión Pemium"
62
 
63
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:199
64
+ msgid "YITH WooCommerce Product Gallery & Image Zoom "
65
+ msgstr ""
66
+
67
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:200
68
+ #, fuzzy
69
  msgid ""
70
+ "In YIT Plugins tab you can find YITH WooCommerce Product Gallery & Image "
71
+ "Zoom options.<br> From this menu you can access all settings of the YITH "
72
+ "plugins activated."
73
  msgstr ""
74
  "En la pestaña YITH Plugins puedes encontrar opciones de YITH WooCommerce "
75
  "Zoom Magnifier. <br> Desde este menú puedes acceder a todos los ajustes de "
76
  "los plugin YITH activados."
77
 
78
+ #: lib/compatibility/elementor/class-yith-wczm-product-images-widget.php:37
79
+ msgid "Zoom Product images"
80
+ msgstr ""
81
+
82
+ #: plugin-options/gallery-options.php:25
83
+ msgid "Hide gallery thumbnails from single product page"
84
+ msgstr ""
85
+
86
+ #: plugin-options/gallery-options.php:26
87
+ msgid ""
88
+ "Enable to hide the product gallery thumbs from the single product details "
89
+ "page."
90
+ msgstr ""
91
+
92
+ #: plugin-options/gallery-options.php:33
93
+ #, fuzzy
94
+ msgid "Enable Slider"
95
+ msgstr "Activar Deslizador"
96
 
97
+ #: plugin-options/gallery-options.php:34
98
+ #, fuzzy
99
+ msgid "Enable the thumbnails slider."
100
+ msgstr "Activar miniatura de Deslizador."
101
 
102
+ #: plugin-options/gallery-options.php:46
103
+ #, fuzzy
104
+ msgid "Thumbnails to show"
105
+ msgstr "Número de elementos que se muestran"
106
 
107
+ #: plugin-options/gallery-options.php:47
108
+ msgid "Set how many thumbnails to show. You can show max 10 thumbnails."
109
  msgstr ""
 
110
 
111
+ #: plugin-options/gallery-options.php:63
112
+ msgid "Slider colors"
113
+ msgstr ""
114
 
115
+ #: plugin-options/gallery-options.php:70
116
+ msgid "Background color"
117
+ msgstr ""
118
+
119
+ #: plugin-options/gallery-options.php:75
120
+ msgid "Border color"
121
+ msgstr ""
122
+
123
+ #: plugin-options/gallery-options.php:80
124
+ msgid "Arrow color"
125
+ msgstr ""
126
+
127
+ #: plugin-options/gallery-options.php:90
128
+ msgid "Set colors of the slider elements."
129
+ msgstr ""
130
+
131
+ #: plugin-options/gallery-options.php:97
132
+ msgid "Background color hover"
133
+ msgstr ""
134
+
135
+ #: plugin-options/gallery-options.php:102
136
+ msgid "Border color hover"
137
+ msgstr ""
138
+
139
+ #: plugin-options/gallery-options.php:107
140
+ msgid "Arrow color hover"
141
+ msgstr ""
142
+
143
+ #: plugin-options/gallery-options.php:118
144
+ msgid "Slider sizes (px)"
145
+ msgstr ""
146
+
147
+ #: plugin-options/gallery-options.php:119
148
+ msgid "Set the size of the slider elements."
149
+ msgstr ""
150
+
151
+ #: plugin-options/gallery-options.php:123
152
+ msgid "Slider"
153
+ msgstr ""
154
+
155
+ #: plugin-options/gallery-options.php:124
156
+ msgid "Arrow"
157
+ msgstr ""
158
+
159
+ #: plugin-options/gallery-options.php:125
160
+ msgid "Border"
161
+ msgstr ""
162
+
163
+ #: plugin-options/gallery-options.php:144
164
+ #, fuzzy
165
+ msgid "Infinite slider"
166
+ msgstr "Carrusel infinito"
167
+
168
+ #: plugin-options/gallery-options.php:145
169
  msgid ""
170
+ "Enable to set the slider as infinite. At the last thumbnail, the slider will "
171
+ "start again from the 1st image."
172
  msgstr ""
 
 
173
 
174
+ #: plugin-options/gallery-options.php:157
175
+ msgid "Infinite slider type"
176
+ msgstr ""
177
+
178
+ #: plugin-options/gallery-options.php:158
179
+ msgid "Choose the infinite slider type to apply."
180
+ msgstr ""
181
 
182
+ #: plugin-options/gallery-options.php:163
183
  msgid ""
184
+ "Circular - the thumbnail after the last one will be the 1st of the list and "
185
+ "the slider will start again."
 
186
  msgstr ""
 
 
 
187
 
188
+ #: plugin-options/gallery-options.php:164
189
+ msgid ""
190
+ "Back to the 1st - after the last thumbnail the slider goes back and jumps to "
191
+ "the 1st thumbnail."
192
+ msgstr ""
193
 
194
+ #: plugin-options/gallery-options.php:173
195
+ #, fuzzy
196
+ msgid "Autoplay slider"
197
+ msgstr "Activar Deslizador"
198
 
199
+ #: plugin-options/gallery-options.php:174
200
+ msgid "Enable to set the slider in autoplay mode."
201
+ msgstr ""
202
 
203
+ #: plugin-options/image/lightbox-options.php:25
204
+ msgid "Lightbox icon colors"
205
+ msgstr ""
206
 
207
+ #: plugin-options/image/lightbox-options.php:26
208
+ msgid "Set the lightbox icon colors."
209
+ msgstr ""
210
 
211
+ #: plugin-options/image/lightbox-options.php:33
212
+ msgid "Background"
213
+ msgstr ""
214
+
215
+ #: plugin-options/image/lightbox-options.php:38
216
+ msgid "Icon"
217
+ msgstr ""
218
 
219
+ #: plugin-options/image/lightbox-options.php:44
220
+ msgid "Lightbox icon size (px)"
221
+ msgstr ""
222
 
223
+ #: plugin-options/image/lightbox-options.php:45
224
+ msgid "Set the lightbox icon size."
225
+ msgstr ""
226
 
227
+ #: plugin-options/image/lightbox-options.php:54
228
+ msgid "Lightbox icon radius (%)"
229
+ msgstr ""
 
230
 
231
+ #: plugin-options/image/lightbox-options.php:55
232
+ msgid "Set the border radius to change the shape of the lightbox background."
233
+ msgstr ""
234
 
235
+ #: plugin-options/image/lightbox-options.php:64
236
+ msgid "Lightbox icon position"
237
+ msgstr ""
238
 
239
+ #: plugin-options/image/lightbox-options.php:65
240
+ msgid "Choose in which position to show the lightbox icon."
241
+ msgstr ""
242
 
243
+ #: plugin-options/image/lightbox-options.php:73
244
+ msgid "Top left"
245
+ msgstr ""
246
 
247
+ #: plugin-options/image/lightbox-options.php:74
248
+ msgid "Top right"
249
+ msgstr ""
250
 
251
+ #: plugin-options/image/lightbox-options.php:75
252
+ #, fuzzy
253
+ msgid "Bottom left"
254
+ msgstr "Abajo"
255
 
256
+ #: plugin-options/image/lightbox-options.php:76
257
+ #, fuzzy
258
+ msgid "Bottom right"
259
+ msgstr "Abajo"
260
+
261
+ #: plugin-options/image/zoom-options.php:34
262
+ #, fuzzy
263
+ msgid "Hide zoom on mobile devices"
264
+ msgstr "Activar en dispositivos móviles"
265
 
266
+ #: plugin-options/image/zoom-options.php:35
267
+ #, fuzzy
268
+ msgid "Enable to hide the zoom on mobile devices"
269
+ msgstr "Activar en dispositivos móviles"
270
+
271
+ #: plugin-options/image/zoom-options.php:43
272
+ #, fuzzy
273
+ msgid "Zoom window position"
274
+ msgstr "Posición del cuadro de zoom"
275
 
276
+ #: plugin-options/image/zoom-options.php:44
277
+ msgid "Choose on which position to open the zoom window."
278
  msgstr ""
 
 
279
 
280
+ #: plugin-options/image/zoom-options.php:52
281
+ #, fuzzy
282
+ msgid "Right side"
283
+ msgstr "Derecha"
284
 
285
+ #: plugin-options/image/zoom-options.php:53
286
+ msgid "Inside"
287
+ msgstr "Dentro"
288
 
289
+ #: plugin-options/image/zoom-options.php:58
290
+ msgid "Zoom window sizes (px)"
291
+ msgstr ""
292
 
293
+ #: plugin-options/image/zoom-options.php:59
294
+ msgid "Set the zoom window width and height."
295
+ msgstr ""
296
 
297
+ #: plugin-options/image/zoom-options.php:63
298
+ msgid "Width"
 
 
299
  msgstr ""
 
 
 
300
 
301
+ #: plugin-options/image/zoom-options.php:64
302
+ #, fuzzy
303
+ msgid "Height"
304
+ msgstr "Derecha"
305
 
306
+ #: plugin-options/image/zoom-options.php:83
307
+ msgid "Loading label"
308
+ msgstr "Etiqueta de cargando"
309
 
310
+ #: plugin-options/image/zoom-options.php:84
311
+ msgid "Choose the text to show when the zoom is loading."
312
+ msgstr ""
313
 
314
+ #: plugin-options/image/zoom-options.php:86
315
+ #: plugin-options/image/zoom-options.php:87
316
+ msgid "Loading..."
317
+ msgstr "Cargando..."
318
 
319
+ #: plugin-options/image/zoom-options.php:92
320
+ #, fuzzy
321
+ msgid "Lens border opacity"
322
+ msgstr "Opacidad de la lente"
323
 
324
+ #: plugin-options/image/zoom-options.php:93
325
+ msgid "Set the opacity of the zoom lens border."
 
 
 
326
  msgstr ""
 
 
 
327
 
328
+ #: plugin-options/image/zoom-options.php:106
329
+ msgid "Blur main image"
 
 
330
  msgstr ""
331
 
332
+ #: plugin-options/image/zoom-options.php:107
333
+ msgid "Enable to blur the main image when zooming."
334
+ msgstr ""
335
+
336
+ #: templates/admin/premium.php:172 templates/admin/premium.php:242
337
+ msgid ""
338
+ "Upgrade to the %1$spremium version%2$s%3$sof %1$sYITH WooCommerce Product "
339
+ "Gallery & Image Zoom%2$s to benefit from all features!"
340
  msgstr ""
341
 
342
+ #: templates/admin/premium.php:174 templates/admin/premium.php:244
343
+ msgid "Upgrade"
344
  msgstr ""
345
 
346
+ #: templates/admin/premium.php:181
347
+ #, fuzzy
348
+ msgid "Premium Features"
349
+ msgstr "Versión Premium"
350
+
351
+ #: templates/admin/premium.php:186
352
+ msgid "THE BIGGER THE IMAGE, THE MORE PERSUADED THE CLIENT"
353
  msgstr ""
354
 
355
+ #: templates/admin/premium.php:188
356
  msgid ""
357
+ "It is hard to get a sense of the real quality and the details of an online "
358
+ "product when you look at it. Because of this, YITH WooCommerce Product "
359
+ "Gallery & Image Zoom offers a great tool to perceive the quality of the "
360
+ "products with great care."
361
  msgstr ""
362
 
363
+ #: templates/admin/premium.php:203
364
+ msgid ""
365
+ "Use the exclusion list to disable the zoom option on specific products or "
366
+ "categories"
367
  msgstr ""
368
 
369
+ #: templates/admin/premium.php:205
370
  msgid ""
371
+ "Do you want to disable the zoom option on some products or specific "
372
+ "categories of your shop and keep it active only on selected products? The "
373
+ "Exclusion List bundled in the plugin will grant you the highest flexibility."
374
  msgstr ""
375
 
376
+ #: templates/admin/premium.php:214
377
+ msgid "Change the main image on click or hover for gallery thumbnails"
378
  msgstr ""
379
 
380
+ #: templates/admin/premium.php:216
381
  msgid ""
382
+ "Since version 2.0, you will find an option to edit the main product image "
383
+ "whenever you hover over one of the gallery thumbnails. This solution draws "
384
+ "inspiration from Amazon and many other big e-commerce stores for better "
385
+ "usability and to spare your customers any extra clicks."
386
  msgstr ""
387
 
388
+ #: templates/admin/premium.php:231
389
+ msgid "Show a zoom icon on main product image"
 
 
390
  msgstr ""
391
 
392
+ #: templates/admin/premium.php:233
393
+ msgid ""
394
+ "Enable a glass icon to visually identify the zoom feature available for your "
395
+ "images. You can customize colors, size and position of this icon."
396
  msgstr ""
397
 
398
  #. Description of the plugin/theme
399
  msgid ""
400
+ "<code><strong>YITH WooCommerce Product Gallery & Image Zoom</strong></code> "
401
+ "allows you to add a zoom effect to product images and a thumbnail slider for "
402
+ "the product image gallery. <a href=\"https://yithemes.com/\" target=\"_blank"
403
+ "\">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>."
404
  msgstr ""
405
 
406
+ #: plugin-options/image-options.php:26
407
+ #, fuzzy
408
+ msgctxt "Admin title of tab"
409
+ msgid "Zoom options"
410
+ msgstr "Posición del cuadro de zoom"
411
+
412
+ #: plugin-options/image-options.php:32
413
+ #, fuzzy
414
+ msgctxt "Admin title of tab"
415
+ msgid "Lightbox"
416
+ msgstr "Derecha"
417
+
418
+ #~ msgid "Image Size"
419
+ #~ msgstr "Tamaño de la imagen"
420
+
421
+ #~ msgid "The size of the images used within the magnifier box"
422
+ #~ msgstr "El tamaño de las imágenes usadas dentro de la caja de zoom"
423
+
424
+ #~ msgid "Do you want to hard crop the image?"
425
+ #~ msgstr "¿Quieres recortar la imagen?"
426
+
427
+ #~ msgid "General"
428
+ #~ msgstr "General"
429
+
430
+ #~ msgid "Image size"
431
+ #~ msgstr "Tamaño de imagen"
432
+
433
+ #~ msgid "General Settings"
434
+ #~ msgstr "Ajustes Generales"
435
+
436
+ #~ msgid "Activate YITH WooCommerce Zoom Magnifier"
437
+ #~ msgstr "Activar YITH WooCommerce Zoom Magnifier"
438
+
439
+ #~ msgid "Activate the plugin or use the WooCommerce default product image."
440
+ #~ msgstr ""
441
+ #~ "Activar el plugin o usar la imagen de producto por defecto de WooComerce."
442
+
443
+ #~ msgid ""
444
+ #~ "Set if zoom and slider functionalities should be shown also on mobile "
445
+ #~ "devices."
446
+ #~ msgstr ""
447
+ #~ "Establecer si las funcionalidades del zoom y el deslizador deberían "
448
+ #~ "mostrarse también en dispositivos móviles."
449
+
450
+ #~ msgid "Forced Image Size"
451
+ #~ msgstr "Tamaño de imagen obligatiorio"
452
+
453
+ #~ msgid ""
454
+ #~ "If disabled, you will able to customize the sizes of the zoomed images. "
455
+ #~ "Disable it at your own risk; the magnifier could not properly work with "
456
+ #~ "images out of proportion."
457
+ #~ msgstr ""
458
+ #~ "Si está deshabilitado, podrás personalizar los tamaños de las imágenes "
459
+ #~ "aumentadas. Desactívalo bajo tu propio riesgo, la lupa no funciona "
460
+ #~ "correctamente con imágenes desproporcionadas."
461
+
462
+ #~ msgid "Magnifier Settings"
463
+ #~ msgstr "Ajustes del xoom"
464
+
465
+ #~ msgid "Zoom Box Width"
466
+ #~ msgstr "Ancho del cuadro de zoom"
467
+
468
+ #~ msgid "The width of the magnifier box (default: auto)"
469
+ #~ msgstr "El ancho del cuadro de zoom (por defecto: auto)"
470
+
471
+ #~ msgid "Zoom Box Height"
472
+ #~ msgstr "Altura del cuadro de zoom"
473
+
474
+ #~ msgid "The height of the magnifier box (default: auto)"
475
+ #~ msgstr "La altura del cuadro de zoom (por defecto: auto)"
476
+
477
+ #~ msgid "The magnifier position"
478
+ #~ msgstr "La posición del cuadro de zoom"
479
+
480
+ #~ msgid "Zoom Box Position for mobile devices"
481
+ #~ msgstr "Posición del cuadro de zoom en dispositivos móviles"
482
+
483
+ #~ msgid ""
484
+ #~ "The magnifier position for the mobile devices (iPhone, Android, etc.)"
485
+ #~ msgstr ""
486
+ #~ "La posición del zoom en dispositivos móviles (iPhone, Android, etc.)"
487
+
488
+ #~ msgid "Default"
489
+ #~ msgstr "Por defecto"
490
+
491
+ #~ msgid "Disable"
492
+ #~ msgstr "Deshabilitar"
493
+
494
+ #~ msgid "Blur"
495
+ #~ msgstr "Difuminar"
496
+
497
+ #~ msgid "Add a blur effect to the small image on mouse hover."
498
+ #~ msgstr ""
499
+ #~ "Añadir un efecto de disolverse a la imagen pequeña con el evento hover "
500
+ #~ "del ratón."
501
+
502
+ #~ msgid "Slider Settings"
503
+ #~ msgstr "Ajustes de Deslizador"
504
+
505
+ #~ msgid "Activate Responsive Slider"
506
+ #~ msgstr "Activar Deslizador Responsive"
507
+
508
+ #~ msgid ""
509
+ #~ "This option fits the thumbnails within the available space. Disable it if "
510
+ #~ "you want to manage freely the thumbnails (eg. add margins, paddings, etc.)"
511
+ #~ msgstr ""
512
+ #~ "Esta opción ajusta las miniaturas dentro del espacio disponible. "
513
+ #~ "Deshabilítala si quieres administrar libremente las miniaturas (p.ej.: "
514
+ #~ "añadir márgenes, rellenos, etc.)"
515
+
516
+ #~ msgid "Items"
517
+ #~ msgstr "Elementos"
518
+
519
+ #~ msgid "Circular carousel"
520
+ #~ msgstr "Carrusel circular"
521
+
522
+ #~ msgid "It defines whether the carousel should be circular."
523
+ #~ msgstr "Define si el carrusel debe ser circular"
524
+
525
+ #~ msgid ""
526
+ #~ "It defines whether the carousel should be infinite. Note: It is possible "
527
+ #~ "to create a non-circular, infinite carousel, but it is not possible to "
528
+ #~ "create a circular, non-infinite carousel."
529
+ #~ msgstr ""
530
+ #~ "Define si el carrusel debe ser infinito. Nota: es posible crear un "
531
+ #~ "carrusel infinito no circular, pero no es posible crear un carrusel "
532
+ #~ "circular no infinito."
533
+
534
  #~ msgid "Settings"
535
  #~ msgstr "Ajustes"
536
 
670
  #~ msgid "Top"
671
  #~ msgstr "Arriba"
672
 
 
 
 
673
  #~ msgid "Left"
674
  #~ msgstr "Izquierda"
675
 
languages/yith-woocommerce-zoom-magnifier-it_IT.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: YITH WooCommerce Zoom Magnifier\n"
4
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
5
- "POT-Creation-Date: 2021-06-11 15:12:55+00:00\n"
6
  "PO-Revision-Date: 2015-10-07 15:48+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
@@ -19,321 +19,580 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPathExcluded-0: plugin-fw\n"
21
 
22
- #: class.yith-wcmg-admin.php:75
23
- msgid "Image Size"
24
- msgstr "Dimensioni Immagine"
25
-
26
- #: class.yith-wcmg-admin.php:76 plugin-options/general-options.php:17
27
- msgid "The size of the images used within the magnifier box"
28
- msgstr "La dimensione delle immagini utilizzata nel riquadro di zoom"
29
-
30
  #: init.php:51
 
31
  msgid ""
32
- "YITH WooCommerce Zoom Magnifier is enabled but not effective. It requires "
33
- "WooCommerce in order to work."
34
  msgstr ""
35
  "YITH WooCommerce Zoom Magnifier è attivo ma non funzionante. Il plugin "
36
  "richiede WooCommerce per funzionare correttamente."
37
 
38
  #: init.php:67
 
39
  msgid ""
40
- "You can't activate the free version of YITH WooCommerce Zoom Magnifier while "
41
- "you are using the premium one."
42
  msgstr ""
43
  "Non è possibile attivare la versione gratuita di YITH WooCommerce Zoom "
44
  "Magnifier mentre si utilizza quella premium."
45
 
46
- #: lib/class.yith-ywzm-custom-types.php:159
47
- msgid "Do you want to hard crop the image?"
48
- msgstr "Vuoi ritagliare l'immagine?"
49
 
50
- #: lib/class.yith-ywzm-plugin-fw-loader.php:120
51
- msgid "General"
52
- msgstr "Generale"
 
53
 
54
- #: lib/class.yith-ywzm-plugin-fw-loader.php:123
55
  msgid "Premium Version"
56
  msgstr "Versione Premium"
57
 
58
- #: lib/class.yith-ywzm-plugin-fw-loader.php:125
59
- msgid "Product exclusion list"
60
- msgstr "Elenco esclusioni prodotti"
61
-
62
- #: lib/class.yith-ywzm-plugin-fw-loader.php:180
63
  msgid ""
64
- "YITH WooCommerce Zoom Magnifier is available in an outstanding PREMIUM "
65
- "version with many new options, discover it now."
66
  msgstr ""
67
  "YITH WooCommerce Zoom Magnifier è disponibile in una straordinaria versione "
68
  "PREMIUM con molte nuove opzioni, scoprila subito."
69
 
70
- #: lib/class.yith-ywzm-plugin-fw-loader.php:181
71
  msgid "Premium version"
72
  msgstr "Versione premium"
73
 
74
- #: lib/class.yith-ywzm-plugin-fw-loader.php:189
 
 
 
 
 
75
  msgid ""
76
- "In YIT Plugins tab you can find YITH WooCommerce Zoom Magnifier options."
77
- "<br> From this menu you can access all settings of the YITH plugins "
78
- "activated."
79
  msgstr ""
80
  "Nella tab YIT Plugins puoi trovare le optioni di YITH WooCommerce Zoom "
81
  "Magnifier.<br> Da questo menu puoi accedere a tutte le impostazioni dei "
82
  "plugin YITH attivati."
83
 
84
- #: plugin-options/general-options.php:16
85
- msgid "Image size"
86
- msgstr "Dimensione immagine"
87
 
88
- #: plugin-options/general-options.php:36
89
- msgid "General Settings"
90
- msgstr "Impostazioni generali"
91
 
92
- #: plugin-options/general-options.php:42
93
- msgid "Activate YITH WooCommerce Zoom Magnifier"
94
- msgstr "Attiva YITH WooCommerce Zoom Magnifier"
 
 
95
 
96
- #: plugin-options/general-options.php:43
97
- msgid "Activate the plugin or use the WooCommerce default product image."
98
- msgstr "Attiva il plugin o usa le immagini prodotto di default di WooCommerce."
 
99
 
100
- #: plugin-options/general-options.php:50
101
- msgid "Activate on mobile device"
102
- msgstr "Attiva su dispositivi mobili"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
 
104
- #: plugin-options/general-options.php:51
105
  msgid ""
106
- "Set if zoom and slider functionalities should be shown also on mobile "
107
- "devices."
108
- msgstr "Decidi se mostrare lo zoom e lo slider anche sui dispositivi mobili."
 
 
 
 
109
 
110
- #: plugin-options/general-options.php:59
111
- msgid "Forced Image Size"
112
- msgstr "Dimensioni Immagini Forzate"
113
 
114
- #: plugin-options/general-options.php:60
115
  msgid ""
116
- "If disabled, you will able to customize the sizes of the zoomed images. "
117
- "Disable it at your own risk; the magnifier could not properly work with "
118
- "images out of proportion."
119
  msgstr ""
120
- "Se disabilitata, questa opzione permette di personalizzare la dimensione "
121
- "delle immagini zoomate. Disabilitare a proprio rischio: lo zoom potrebbe non "
122
- "funzionare correttamente con immagini sproporzionate."
123
 
124
- #: plugin-options/general-options.php:74
125
- msgid "Magnifier Settings"
126
- msgstr "Impostazioni Zoom"
 
 
127
 
128
- #: plugin-options/general-options.php:80
129
- msgid "Zoom Box Width"
130
- msgstr "Larghezza Riquadro Zoom"
 
131
 
132
- #: plugin-options/general-options.php:81
133
- msgid "The width of the magnifier box (default: auto)"
134
- msgstr "La larghezza del riquadro di zoom (default: auto)"
135
 
136
- #: plugin-options/general-options.php:88
137
- msgid "Zoom Box Height"
138
- msgstr "Altezza Riquadro Zoom"
139
 
140
- #: plugin-options/general-options.php:89
141
- msgid "The height of the magnifier box (default: auto)"
142
- msgstr "L'altezza del riquadro di zoom (default: auto)"
143
 
144
- #: plugin-options/general-options.php:97
145
- msgid "Zoom Box Position"
146
- msgstr "Posizione Riquadro Zoom"
147
 
148
- #: plugin-options/general-options.php:98
149
- msgid "The magnifier position"
150
- msgstr "Dove apparirà la finestra di zoom"
151
 
152
- #: plugin-options/general-options.php:105
153
- msgid "Right"
154
- msgstr "Destra"
155
 
156
- #: plugin-options/general-options.php:106
157
- #: plugin-options/general-options.php:119
158
- msgid "Inside"
159
- msgstr "Interno"
160
 
161
- #: plugin-options/general-options.php:110
162
- msgid "Zoom Box Position for mobile devices"
163
- msgstr "Posizione Riquadro Zoom su dispositivi mobili"
164
 
165
- #: plugin-options/general-options.php:111
166
- msgid "The magnifier position for the mobile devices (iPhone, Android, etc.)"
167
  msgstr ""
168
- "Dove apparirà la finestra di zoom sui dispositivi mobili (iPhone, Android, "
169
- "etc.)"
170
 
171
- #: plugin-options/general-options.php:118
172
- msgid "Default"
173
- msgstr "Default"
174
 
175
- #: plugin-options/general-options.php:120
176
- msgid "Disable"
177
- msgstr "Disattiva"
178
 
179
- #: plugin-options/general-options.php:124
180
- msgid "Loading label"
181
- msgstr "Etichetta di caricamento"
182
 
183
- #: plugin-options/general-options.php:127
184
- #: plugin-options/general-options.php:128
185
- msgid "Loading..."
186
- msgstr "Caricamento..."
187
 
188
- #: plugin-options/general-options.php:133
189
- msgid "Lens Opacity"
190
- msgstr "Opacità Lenti"
 
191
 
192
- #: plugin-options/general-options.php:142
193
- msgid "Blur"
194
- msgstr "Sfocatura"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
 
196
- #: plugin-options/general-options.php:143
197
- msgid "Add a blur effect to the small image on mouse hover."
198
  msgstr ""
199
- "Aggiungi un effetto di sfocatura all'immagine piccola al passaggio del mouse."
200
 
201
- #: plugin-options/general-options.php:154
202
- msgid "Slider Settings"
203
- msgstr "Impostazioni Slider"
 
204
 
205
- #: plugin-options/general-options.php:160
206
- msgid "Activate Slider"
207
- msgstr "Attiva Slider"
208
 
209
- #: plugin-options/general-options.php:161
210
- msgid "Activate Thumbnail Slider."
211
- msgstr "Attiva lo slider con anteprime."
212
 
213
- #: plugin-options/general-options.php:168
214
- msgid "Activate Responsive Slider"
215
- msgstr "Attiva Slider Responsive"
216
 
217
- #: plugin-options/general-options.php:169
218
- msgid ""
219
- "This option fits the thumbnails within the available space. Disable it if "
220
- "you want to manage freely the thumbnails (eg. add margins, paddings, etc.)"
221
  msgstr ""
222
- "Questa opzione adatta le anteprime allo spazio disponibile. Disabilitala se "
223
- "vuoi gestire liberamente le anteprime (per esempio aggiungere margini, "
224
- "padding, ecc.)"
225
 
226
- #: plugin-options/general-options.php:176
227
- msgid "Items"
228
- msgstr "Elementi"
 
229
 
230
- #: plugin-options/general-options.php:177
231
- msgid "Number of items to show"
232
- msgstr "Numero di elementi da mostrare"
233
 
234
- #: plugin-options/general-options.php:186
235
- msgid "Circular carousel"
236
- msgstr "Carosello circolare"
237
 
238
- #: plugin-options/general-options.php:187
239
- msgid "It defines whether the carousel should be circular."
240
- msgstr "Imposta se il carosello deve essere circolare."
 
241
 
242
- #: plugin-options/general-options.php:194
243
- msgid "Infinite carousel"
244
- msgstr "Carosello infinito"
 
245
 
246
- #: plugin-options/general-options.php:195
247
- msgid ""
248
- "It defines whether the carousel should be infinite. Note: It is possible to "
249
- "create a non-circular, infinite carousel, but it is not possible to create a "
250
- "circular, non-infinite carousel."
 
251
  msgstr ""
252
- "Imposta se il carosello deve essere infinito. Attenzione: è possibile creare "
253
- "un carosello infinito non circolare, ma non puoi creare un carosello "
254
- "circolare non infinito."
255
 
256
- #: templates/admin/premium.php:193
 
 
 
 
 
257
  msgid ""
258
- "Upgrade to the %1$s premium version %2$s of %1$s YITH WooCommerce Zoom "
259
- "Magnifier %2$s to benefit from all features!"
260
  msgstr ""
261
- "Aggiorna alla %1$s versione premium %2$s di %1$s YITH WooCommerce Zoom "
262
  "Magnifier %2$s per usufruire di tutte le funzionalità!"
263
 
264
- #: templates/admin/premium.php:196
265
- msgid "%1$sUPGRADE%2$s%3$sto the premium version%2$s"
266
- msgstr "%1$sAGGIORNA%2$s%3$salla versione premium%2$s "
267
 
268
- #: templates/admin/premium.php:202
269
- msgid "%1$sPremium Features%2$s"
 
270
  msgstr "%1$sFunzionalità premium%2$s"
271
 
272
- #: templates/admin/premium.php:210
273
- msgid "ZOOM BOX POSITION"
274
- msgstr "POSIZIONE RIQUADRO ZOOM"
275
 
276
- #: templates/admin/premium.php:213
277
  msgid ""
278
- "Choose where you want to show the %1$szoomed version%2$s of the image of "
279
- "your products. Place it above or below the original image, on its left or "
280
- "its right, or you can even place it over it.$2$s"
 
281
  msgstr ""
282
- "Scegli dove far apparire la %1$sversione ingrandita%2$s dell’immagine dei "
283
- "tuoi prodotti. Posizionala in alto o in basso rispetto all’immagine "
284
- "originale, alla sua destra o alla sua sinistra, o fa’ sì che si sovrapponga "
285
- "ad essa.$2$s"
286
 
287
- #: templates/admin/premium.php:223
288
- msgid "ENLARGE THE IMAGES"
289
- msgstr "ESPANDI L’IMMAGINE"
 
 
290
 
291
- #: templates/admin/premium.php:225
292
  msgid ""
293
- "Just one click and the product image will appear in a bigger size in a modal "
294
- "window. A further chance to let users analyze in a better way what you sell."
 
295
  msgstr ""
296
- "Un clic e l’immagine del prodotto apparirà a dimensioni maggiori e "
297
- "all’interno di una finestra modale. Una possibilità in più per mettere "
298
- "l’utente nelle condizioni di valutare al meglio ciò che vede."
299
 
300
- #: templates/admin/premium.php:240
301
- msgid "EXCLUDE PRODUCTS"
302
- msgstr "ESCLUSIONE PRODOTTI"
303
 
304
- #: templates/admin/premium.php:242
305
- msgid ""
306
- "Tailored options to limit the plugin features only to certain products. Some "
307
- "of these could have too small images to be zoomed, or maybe being part of "
308
- "categories that do not imply zoomed images. Select the products and the "
309
- "categories to exclude and delete all your problems"
310
- msgstr ""
311
- "Opzioni su misura per limitare le funzionalità del plugin solo a determinati "
312
- "prodotti. Alcuni di questi possono avere immagini troppo piccole per essere "
313
- "zoomate o appartenere a categorie in cui lo zoom immagine non è necessario. "
314
- "Seleziona i prodotti e le categorie da escludere e risolvi questo tipo di "
315
- "problemi."
316
-
317
- #: templates/admin/premium.php:251
318
  msgid ""
319
- "Upgrade to the %1$spremium version%2$s of %1$sYITH WooCommerce Zoom Magnifier"
320
- "%2$s to benefit from all features!"
 
 
321
  msgstr ""
322
- "Aggiorna alla %1$sversione premium%2$s di %1$s YITH WooCommerce Zoom "
323
- "Magnifier %2$s per usufruire di tutte le funzionalità!"
324
 
325
- #: templates/admin/premium.php:254
326
- msgid "%1$sUPGRADE%2$s %3$sto the premium version%2$s"
327
- msgstr "%1$sAGGIORNA%2$s %3$salla versione premium%2$s "
 
 
 
 
 
 
328
 
329
  #. Description of the plugin/theme
330
  msgid ""
331
- "<code><strong>YITH WooCommerce Zoom Magnifier</strong></code> allows you to "
332
- "add a zoom effect to product images and a thumbnail slider for the product "
333
- "image gallery. <a href=\"https://yithemes.com/\" target=\"_blank\">Get more "
334
- "plugins for your e-commerce shop on <strong>YITH</strong></a>."
335
  msgstr ""
336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
  #~ msgid "Settings"
338
  #~ msgstr "Impostazioni"
339
 
@@ -424,9 +683,6 @@ msgstr ""
424
  #~ msgid "Activate YITH Magnifier"
425
  #~ msgstr "Attiva YITH Magnifier"
426
 
427
- #~ msgid "Activate the plugin on mobile device"
428
- #~ msgstr "Attiva il plugin su dispositivi mobili"
429
-
430
  #~ msgid ""
431
  #~ "Purchasing the premium version of the plugin, you will take advantage of "
432
  #~ "the advanced features of the product and you will get one year of free "
@@ -492,8 +748,5 @@ msgstr ""
492
  #~ msgid "Top"
493
  #~ msgstr "Sopra"
494
 
495
- #~ msgid "Bottom"
496
- #~ msgstr "Sotto"
497
-
498
  #~ msgid "Left"
499
  #~ msgstr "Sinistra"
2
  msgstr ""
3
  "Project-Id-Version: YITH WooCommerce Zoom Magnifier\n"
4
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
5
+ "POT-Creation-Date: 2021-09-22 08:03:23+00:00\n"
6
  "PO-Revision-Date: 2015-10-07 15:48+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPathExcluded-0: plugin-fw\n"
21
 
 
 
 
 
 
 
 
 
22
  #: init.php:51
23
+ #, fuzzy
24
  msgid ""
25
+ "YITH WooCommerce Product Gallery & Image Zoom is enabled but not effective. "
26
+ "It requires WooCommerce in order to work."
27
  msgstr ""
28
  "YITH WooCommerce Zoom Magnifier è attivo ma non funzionante. Il plugin "
29
  "richiede WooCommerce per funzionare correttamente."
30
 
31
  #: init.php:67
32
+ #, fuzzy
33
  msgid ""
34
+ "You can't activate the free version of YITH WooCommerce Product Gallery & "
35
+ "Image Zoom while you are using the premium one."
36
  msgstr ""
37
  "Non è possibile attivare la versione gratuita di YITH WooCommerce Zoom "
38
  "Magnifier mentre si utilizza quella premium."
39
 
40
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:136
41
+ msgid "Main image options"
42
+ msgstr ""
43
 
44
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:137
45
+ #: plugin-options/gallery-options.php:19
46
+ msgid "Product gallery options"
47
+ msgstr ""
48
 
49
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:138
50
  msgid "Premium Version"
51
  msgstr "Versione Premium"
52
 
53
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:190
54
+ #, fuzzy
 
 
 
55
  msgid ""
56
+ "YITH WooCommerce Product Gallery & Image Zoom is available in an "
57
+ "outstanding PREMIUM version with many new options, discover it now."
58
  msgstr ""
59
  "YITH WooCommerce Zoom Magnifier è disponibile in una straordinaria versione "
60
  "PREMIUM con molte nuove opzioni, scoprila subito."
61
 
62
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:191
63
  msgid "Premium version"
64
  msgstr "Versione premium"
65
 
66
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:199
67
+ msgid "YITH WooCommerce Product Gallery & Image Zoom "
68
+ msgstr ""
69
+
70
+ #: lib/class.yith-ywzm-plugin-fw-loader.php:200
71
+ #, fuzzy
72
  msgid ""
73
+ "In YIT Plugins tab you can find YITH WooCommerce Product Gallery & Image "
74
+ "Zoom options.<br> From this menu you can access all settings of the YITH "
75
+ "plugins activated."
76
  msgstr ""
77
  "Nella tab YIT Plugins puoi trovare le optioni di YITH WooCommerce Zoom "
78
  "Magnifier.<br> Da questo menu puoi accedere a tutte le impostazioni dei "
79
  "plugin YITH attivati."
80
 
81
+ #: lib/compatibility/elementor/class-yith-wczm-product-images-widget.php:37
82
+ msgid "Zoom Product images"
83
+ msgstr ""
84
 
85
+ #: plugin-options/gallery-options.php:25
86
+ msgid "Hide gallery thumbnails from single product page"
87
+ msgstr ""
88
 
89
+ #: plugin-options/gallery-options.php:26
90
+ msgid ""
91
+ "Enable to hide the product gallery thumbs from the single product details "
92
+ "page."
93
+ msgstr ""
94
 
95
+ #: plugin-options/gallery-options.php:33
96
+ #, fuzzy
97
+ msgid "Enable Slider"
98
+ msgstr "Attiva Slider"
99
 
100
+ #: plugin-options/gallery-options.php:34
101
+ #, fuzzy
102
+ msgid "Enable the thumbnails slider."
103
+ msgstr "Attiva lo slider con anteprime."
104
+
105
+ #: plugin-options/gallery-options.php:46
106
+ #, fuzzy
107
+ msgid "Thumbnails to show"
108
+ msgstr "Numero di elementi da mostrare"
109
+
110
+ #: plugin-options/gallery-options.php:47
111
+ msgid "Set how many thumbnails to show. You can show max 10 thumbnails."
112
+ msgstr ""
113
+
114
+ #: plugin-options/gallery-options.php:63
115
+ msgid "Slider colors"
116
+ msgstr ""
117
+
118
+ #: plugin-options/gallery-options.php:70
119
+ msgid "Background color"
120
+ msgstr ""
121
+
122
+ #: plugin-options/gallery-options.php:75
123
+ msgid "Border color"
124
+ msgstr ""
125
+
126
+ #: plugin-options/gallery-options.php:80
127
+ msgid "Arrow color"
128
+ msgstr ""
129
+
130
+ #: plugin-options/gallery-options.php:90
131
+ msgid "Set colors of the slider elements."
132
+ msgstr ""
133
+
134
+ #: plugin-options/gallery-options.php:97
135
+ msgid "Background color hover"
136
+ msgstr ""
137
+
138
+ #: plugin-options/gallery-options.php:102
139
+ msgid "Border color hover"
140
+ msgstr ""
141
+
142
+ #: plugin-options/gallery-options.php:107
143
+ msgid "Arrow color hover"
144
+ msgstr ""
145
+
146
+ #: plugin-options/gallery-options.php:118
147
+ msgid "Slider sizes (px)"
148
+ msgstr ""
149
+
150
+ #: plugin-options/gallery-options.php:119
151
+ msgid "Set the size of the slider elements."
152
+ msgstr ""
153
+
154
+ #: plugin-options/gallery-options.php:123
155
+ msgid "Slider"
156
+ msgstr ""
157
+
158
+ #: plugin-options/gallery-options.php:124
159
+ msgid "Arrow"
160
+ msgstr ""
161
+
162
+ #: plugin-options/gallery-options.php:125
163
+ msgid "Border"
164
+ msgstr ""
165
+
166
+ #: plugin-options/gallery-options.php:144
167
+ #, fuzzy
168
+ msgid "Infinite slider"
169
+ msgstr "Carosello infinito"
170
 
171
+ #: plugin-options/gallery-options.php:145
172
  msgid ""
173
+ "Enable to set the slider as infinite. At the last thumbnail, the slider will "
174
+ "start again from the 1st image."
175
+ msgstr ""
176
+
177
+ #: plugin-options/gallery-options.php:157
178
+ msgid "Infinite slider type"
179
+ msgstr ""
180
 
181
+ #: plugin-options/gallery-options.php:158
182
+ msgid "Choose the infinite slider type to apply."
183
+ msgstr ""
184
 
185
+ #: plugin-options/gallery-options.php:163
186
  msgid ""
187
+ "Circular - the thumbnail after the last one will be the 1st of the list and "
188
+ "the slider will start again."
 
189
  msgstr ""
 
 
 
190
 
191
+ #: plugin-options/gallery-options.php:164
192
+ msgid ""
193
+ "Back to the 1st - after the last thumbnail the slider goes back and jumps to "
194
+ "the 1st thumbnail."
195
+ msgstr ""
196
 
197
+ #: plugin-options/gallery-options.php:173
198
+ #, fuzzy
199
+ msgid "Autoplay slider"
200
+ msgstr "Attiva Slider"
201
 
202
+ #: plugin-options/gallery-options.php:174
203
+ msgid "Enable to set the slider in autoplay mode."
204
+ msgstr ""
205
 
206
+ #: plugin-options/image/lightbox-options.php:25
207
+ msgid "Lightbox icon colors"
208
+ msgstr ""
209
 
210
+ #: plugin-options/image/lightbox-options.php:26
211
+ msgid "Set the lightbox icon colors."
212
+ msgstr ""
213
 
214
+ #: plugin-options/image/lightbox-options.php:33
215
+ msgid "Background"
216
+ msgstr ""
217
 
218
+ #: plugin-options/image/lightbox-options.php:38
219
+ msgid "Icon"
220
+ msgstr ""
221
 
222
+ #: plugin-options/image/lightbox-options.php:44
223
+ msgid "Lightbox icon size (px)"
224
+ msgstr ""
225
 
226
+ #: plugin-options/image/lightbox-options.php:45
227
+ msgid "Set the lightbox icon size."
228
+ msgstr ""
 
229
 
230
+ #: plugin-options/image/lightbox-options.php:54
231
+ msgid "Lightbox icon radius (%)"
232
+ msgstr ""
233
 
234
+ #: plugin-options/image/lightbox-options.php:55
235
+ msgid "Set the border radius to change the shape of the lightbox background."
236
  msgstr ""
 
 
237
 
238
+ #: plugin-options/image/lightbox-options.php:64
239
+ msgid "Lightbox icon position"
240
+ msgstr ""
241
 
242
+ #: plugin-options/image/lightbox-options.php:65
243
+ msgid "Choose in which position to show the lightbox icon."
244
+ msgstr ""
245
 
246
+ #: plugin-options/image/lightbox-options.php:73
247
+ msgid "Top left"
248
+ msgstr ""
249
 
250
+ #: plugin-options/image/lightbox-options.php:74
251
+ msgid "Top right"
252
+ msgstr ""
 
253
 
254
+ #: plugin-options/image/lightbox-options.php:75
255
+ #, fuzzy
256
+ msgid "Bottom left"
257
+ msgstr "Sotto"
258
 
259
+ #: plugin-options/image/lightbox-options.php:76
260
+ #, fuzzy
261
+ msgid "Bottom right"
262
+ msgstr "Sotto"
263
+
264
+ #: plugin-options/image/zoom-options.php:34
265
+ #, fuzzy
266
+ msgid "Hide zoom on mobile devices"
267
+ msgstr "Attiva su dispositivi mobili"
268
+
269
+ #: plugin-options/image/zoom-options.php:35
270
+ #, fuzzy
271
+ msgid "Enable to hide the zoom on mobile devices"
272
+ msgstr "Attiva il plugin su dispositivi mobili"
273
+
274
+ #: plugin-options/image/zoom-options.php:43
275
+ #, fuzzy
276
+ msgid "Zoom window position"
277
+ msgstr "Posizione Riquadro Zoom"
278
 
279
+ #: plugin-options/image/zoom-options.php:44
280
+ msgid "Choose on which position to open the zoom window."
281
  msgstr ""
 
282
 
283
+ #: plugin-options/image/zoom-options.php:52
284
+ #, fuzzy
285
+ msgid "Right side"
286
+ msgstr "Destra"
287
 
288
+ #: plugin-options/image/zoom-options.php:53
289
+ msgid "Inside"
290
+ msgstr "Interno"
291
 
292
+ #: plugin-options/image/zoom-options.php:58
293
+ msgid "Zoom window sizes (px)"
294
+ msgstr ""
295
 
296
+ #: plugin-options/image/zoom-options.php:59
297
+ msgid "Set the zoom window width and height."
298
+ msgstr ""
299
 
300
+ #: plugin-options/image/zoom-options.php:63
301
+ msgid "Width"
 
 
302
  msgstr ""
 
 
 
303
 
304
+ #: plugin-options/image/zoom-options.php:64
305
+ #, fuzzy
306
+ msgid "Height"
307
+ msgstr "Destra"
308
 
309
+ #: plugin-options/image/zoom-options.php:83
310
+ msgid "Loading label"
311
+ msgstr "Etichetta di caricamento"
312
 
313
+ #: plugin-options/image/zoom-options.php:84
314
+ msgid "Choose the text to show when the zoom is loading."
315
+ msgstr ""
316
 
317
+ #: plugin-options/image/zoom-options.php:86
318
+ #: plugin-options/image/zoom-options.php:87
319
+ msgid "Loading..."
320
+ msgstr "Caricamento..."
321
 
322
+ #: plugin-options/image/zoom-options.php:92
323
+ #, fuzzy
324
+ msgid "Lens border opacity"
325
+ msgstr "Opacità Lenti"
326
 
327
+ #: plugin-options/image/zoom-options.php:93
328
+ msgid "Set the opacity of the zoom lens border."
329
+ msgstr ""
330
+
331
+ #: plugin-options/image/zoom-options.php:106
332
+ msgid "Blur main image"
333
  msgstr ""
 
 
 
334
 
335
+ #: plugin-options/image/zoom-options.php:107
336
+ msgid "Enable to blur the main image when zooming."
337
+ msgstr ""
338
+
339
+ #: templates/admin/premium.php:172 templates/admin/premium.php:242
340
+ #, fuzzy
341
  msgid ""
342
+ "Upgrade to the %1$spremium version%2$s%3$sof %1$sYITH WooCommerce Product "
343
+ "Gallery & Image Zoom%2$s to benefit from all features!"
344
  msgstr ""
345
+ "Aggiorna alla %1$sversione premium%2$s di %1$s YITH WooCommerce Zoom "
346
  "Magnifier %2$s per usufruire di tutte le funzionalità!"
347
 
348
+ #: templates/admin/premium.php:174 templates/admin/premium.php:244
349
+ msgid "Upgrade"
350
+ msgstr ""
351
 
352
+ #: templates/admin/premium.php:181
353
+ #, fuzzy
354
+ msgid "Premium Features"
355
  msgstr "%1$sFunzionalità premium%2$s"
356
 
357
+ #: templates/admin/premium.php:186
358
+ msgid "THE BIGGER THE IMAGE, THE MORE PERSUADED THE CLIENT"
359
+ msgstr ""
360
 
361
+ #: templates/admin/premium.php:188
362
  msgid ""
363
+ "It is hard to get a sense of the real quality and the details of an online "
364
+ "product when you look at it. Because of this, YITH WooCommerce Product "
365
+ "Gallery & Image Zoom offers a great tool to perceive the quality of the "
366
+ "products with great care."
367
  msgstr ""
 
 
 
 
368
 
369
+ #: templates/admin/premium.php:203
370
+ msgid ""
371
+ "Use the exclusion list to disable the zoom option on specific products or "
372
+ "categories"
373
+ msgstr ""
374
 
375
+ #: templates/admin/premium.php:205
376
  msgid ""
377
+ "Do you want to disable the zoom option on some products or specific "
378
+ "categories of your shop and keep it active only on selected products? The "
379
+ "Exclusion List bundled in the plugin will grant you the highest flexibility."
380
  msgstr ""
 
 
 
381
 
382
+ #: templates/admin/premium.php:214
383
+ msgid "Change the main image on click or hover for gallery thumbnails"
384
+ msgstr ""
385
 
386
+ #: templates/admin/premium.php:216
 
 
 
 
 
 
 
 
 
 
 
 
 
387
  msgid ""
388
+ "Since version 2.0, you will find an option to edit the main product image "
389
+ "whenever you hover over one of the gallery thumbnails. This solution draws "
390
+ "inspiration from Amazon and many other big e-commerce stores for better "
391
+ "usability and to spare your customers any extra clicks."
392
  msgstr ""
 
 
393
 
394
+ #: templates/admin/premium.php:231
395
+ msgid "Show a zoom icon on main product image"
396
+ msgstr ""
397
+
398
+ #: templates/admin/premium.php:233
399
+ msgid ""
400
+ "Enable a glass icon to visually identify the zoom feature available for your "
401
+ "images. You can customize colors, size and position of this icon."
402
+ msgstr ""
403
 
404
  #. Description of the plugin/theme
405
  msgid ""
406
+ "<code><strong>YITH WooCommerce Product Gallery & Image Zoom</strong></code> "
407
+ "allows you to add a zoom effect to product images and a thumbnail slider for "
408
+ "the product image gallery. <a href=\"https://yithemes.com/\" target=\"_blank"
409
+ "\">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>."
410
  msgstr ""
411
 
412
+ #: plugin-options/image-options.php:26
413
+ #, fuzzy
414
+ msgctxt "Admin title of tab"
415
+ msgid "Zoom options"
416
+ msgstr "Posizione Riquadro Zoom"
417
+
418
+ #: plugin-options/image-options.php:32
419
+ #, fuzzy
420
+ msgctxt "Admin title of tab"
421
+ msgid "Lightbox"
422
+ msgstr "Destra"
423
+
424
+ #~ msgid "Image Size"
425
+ #~ msgstr "Dimensioni Immagine"
426
+
427
+ #~ msgid "The size of the images used within the magnifier box"
428
+ #~ msgstr "La dimensione delle immagini utilizzata nel riquadro di zoom"
429
+
430
+ #~ msgid "Do you want to hard crop the image?"
431
+ #~ msgstr "Vuoi ritagliare l'immagine?"
432
+
433
+ #~ msgid "General"
434
+ #~ msgstr "Generale"
435
+
436
+ #~ msgid "Product exclusion list"
437
+ #~ msgstr "Elenco esclusioni prodotti"
438
+
439
+ #~ msgid "Image size"
440
+ #~ msgstr "Dimensione immagine"
441
+
442
+ #~ msgid "General Settings"
443
+ #~ msgstr "Impostazioni generali"
444
+
445
+ #~ msgid "Activate YITH WooCommerce Zoom Magnifier"
446
+ #~ msgstr "Attiva YITH WooCommerce Zoom Magnifier"
447
+
448
+ #~ msgid "Activate the plugin or use the WooCommerce default product image."
449
+ #~ msgstr ""
450
+ #~ "Attiva il plugin o usa le immagini prodotto di default di WooCommerce."
451
+
452
+ #~ msgid ""
453
+ #~ "Set if zoom and slider functionalities should be shown also on mobile "
454
+ #~ "devices."
455
+ #~ msgstr ""
456
+ #~ "Decidi se mostrare lo zoom e lo slider anche sui dispositivi mobili."
457
+
458
+ #~ msgid "Forced Image Size"
459
+ #~ msgstr "Dimensioni Immagini Forzate"
460
+
461
+ #~ msgid ""
462
+ #~ "If disabled, you will able to customize the sizes of the zoomed images. "
463
+ #~ "Disable it at your own risk; the magnifier could not properly work with "
464
+ #~ "images out of proportion."
465
+ #~ msgstr ""
466
+ #~ "Se disabilitata, questa opzione permette di personalizzare la dimensione "
467
+ #~ "delle immagini zoomate. Disabilitare a proprio rischio: lo zoom potrebbe "
468
+ #~ "non funzionare correttamente con immagini sproporzionate."
469
+
470
+ #~ msgid "Magnifier Settings"
471
+ #~ msgstr "Impostazioni Zoom"
472
+
473
+ #~ msgid "Zoom Box Width"
474
+ #~ msgstr "Larghezza Riquadro Zoom"
475
+
476
+ #~ msgid "The width of the magnifier box (default: auto)"
477
+ #~ msgstr "La larghezza del riquadro di zoom (default: auto)"
478
+
479
+ #~ msgid "Zoom Box Height"
480
+ #~ msgstr "Altezza Riquadro Zoom"
481
+
482
+ #~ msgid "The height of the magnifier box (default: auto)"
483
+ #~ msgstr "L'altezza del riquadro di zoom (default: auto)"
484
+
485
+ #~ msgid "The magnifier position"
486
+ #~ msgstr "Dove apparirà la finestra di zoom"
487
+
488
+ #~ msgid "Zoom Box Position for mobile devices"
489
+ #~ msgstr "Posizione Riquadro Zoom su dispositivi mobili"
490
+
491
+ #~ msgid ""
492
+ #~ "The magnifier position for the mobile devices (iPhone, Android, etc.)"
493
+ #~ msgstr ""
494
+ #~ "Dove apparirà la finestra di zoom sui dispositivi mobili (iPhone, "
495
+ #~ "Android, etc.)"
496
+
497
+ #~ msgid "Default"
498
+ #~ msgstr "Default"
499
+
500
+ #~ msgid "Disable"
501
+ #~ msgstr "Disattiva"
502
+
503
+ #~ msgid "Blur"
504
+ #~ msgstr "Sfocatura"
505
+
506
+ #~ msgid "Add a blur effect to the small image on mouse hover."
507
+ #~ msgstr ""
508
+ #~ "Aggiungi un effetto di sfocatura all'immagine piccola al passaggio del "
509
+ #~ "mouse."
510
+
511
+ #~ msgid "Slider Settings"
512
+ #~ msgstr "Impostazioni Slider"
513
+
514
+ #~ msgid "Activate Responsive Slider"
515
+ #~ msgstr "Attiva Slider Responsive"
516
+
517
+ #~ msgid ""
518
+ #~ "This option fits the thumbnails within the available space. Disable it if "
519
+ #~ "you want to manage freely the thumbnails (eg. add margins, paddings, etc.)"
520
+ #~ msgstr ""
521
+ #~ "Questa opzione adatta le anteprime allo spazio disponibile. Disabilitala "
522
+ #~ "se vuoi gestire liberamente le anteprime (per esempio aggiungere margini, "
523
+ #~ "padding, ecc.)"
524
+
525
+ #~ msgid "Items"
526
+ #~ msgstr "Elementi"
527
+
528
+ #~ msgid "Circular carousel"
529
+ #~ msgstr "Carosello circolare"
530
+
531
+ #~ msgid "It defines whether the carousel should be circular."
532
+ #~ msgstr "Imposta se il carosello deve essere circolare."
533
+
534
+ #~ msgid ""
535
+ #~ "It defines whether the carousel should be infinite. Note: It is possible "
536
+ #~ "to create a non-circular, infinite carousel, but it is not possible to "
537
+ #~ "create a circular, non-infinite carousel."
538
+ #~ msgstr ""
539
+ #~ "Imposta se il carosello deve essere infinito. Attenzione: è possibile "
540
+ #~ "creare un carosello infinito non circolare, ma non puoi creare un "
541
+ #~ "carosello circolare non infinito."
542
+
543
+ #~ msgid ""
544
+ #~ "Upgrade to the %1$s premium version %2$s of %1$s YITH WooCommerce Zoom "
545
+ #~ "Magnifier %2$s to benefit from all features!"
546
+ #~ msgstr ""
547
+ #~ "Aggiorna alla %1$s versione premium %2$s di %1$s YITH WooCommerce Zoom "
548
+ #~ "Magnifier %2$s per usufruire di tutte le funzionalità!"
549
+
550
+ #~ msgid "%1$sUPGRADE%2$s%3$sto the premium version%2$s"
551
+ #~ msgstr "%1$sAGGIORNA%2$s%3$salla versione premium%2$s "
552
+
553
+ #~ msgid "ZOOM BOX POSITION"
554
+ #~ msgstr "POSIZIONE RIQUADRO ZOOM"
555
+
556
+ #~ msgid ""
557
+ #~ "Choose where you want to show the %1$szoomed version%2$s of the image of "
558
+ #~ "your products. Place it above or below the original image, on its left or "
559
+ #~ "its right, or you can even place it over it.$2$s"
560
+ #~ msgstr ""
561
+ #~ "Scegli dove far apparire la %1$sversione ingrandita%2$s dell’immagine dei "
562
+ #~ "tuoi prodotti. Posizionala in alto o in basso rispetto all’immagine "
563
+ #~ "originale, alla sua destra o alla sua sinistra, o fa’ sì che si "
564
+ #~ "sovrapponga ad essa.$2$s"
565
+
566
+ #~ msgid "ENLARGE THE IMAGES"
567
+ #~ msgstr "ESPANDI L’IMMAGINE"
568
+
569
+ #~ msgid ""
570
+ #~ "Just one click and the product image will appear in a bigger size in a "
571
+ #~ "modal window. A further chance to let users analyze in a better way what "
572
+ #~ "you sell."
573
+ #~ msgstr ""
574
+ #~ "Un clic e l’immagine del prodotto apparirà a dimensioni maggiori e "
575
+ #~ "all’interno di una finestra modale. Una possibilità in più per mettere "
576
+ #~ "l’utente nelle condizioni di valutare al meglio ciò che vede."
577
+
578
+ #~ msgid "EXCLUDE PRODUCTS"
579
+ #~ msgstr "ESCLUSIONE PRODOTTI"
580
+
581
+ #~ msgid ""
582
+ #~ "Tailored options to limit the plugin features only to certain products. "
583
+ #~ "Some of these could have too small images to be zoomed, or maybe being "
584
+ #~ "part of categories that do not imply zoomed images. Select the products "
585
+ #~ "and the categories to exclude and delete all your problems"
586
+ #~ msgstr ""
587
+ #~ "Opzioni su misura per limitare le funzionalità del plugin solo a "
588
+ #~ "determinati prodotti. Alcuni di questi possono avere immagini troppo "
589
+ #~ "piccole per essere zoomate o appartenere a categorie in cui lo zoom "
590
+ #~ "immagine non è necessario. Seleziona i prodotti e le categorie da "
591
+ #~ "escludere e risolvi questo tipo di problemi."
592
+
593
+ #~ msgid "%1$sUPGRADE%2$s %3$sto the premium version%2$s"
594
+ #~ msgstr "%1$sAGGIORNA%2$s %3$salla versione premium%2$s "
595
+
596
  #~ msgid "Settings"
597
  #~ msgstr "Impostazioni"
598
 
683
  #~ msgid "Activate YITH Magnifier"
684
  #~ msgstr "Attiva YITH Magnifier"
685
 
 
 
 
686
  #~ msgid ""
687
  #~ "Purchasing the premium version of the plugin, you will take advantage of "
688
  #~ "the advanced features of the product and you will get one year of free "
748
  #~ msgid "Top"
749
  #~ msgstr "Sopra"
750
 
 
 
 
751
  #~ msgid "Left"
752
  #~ msgstr "Sinistra"
languages/yith-woocommerce-zoom-magnifier.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the YITH WooCommerce Product Gallery & Image Zoom package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: YITH WooCommerce Product Gallery & Image Zoom 2.0.1\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2021-09-18 13:50:19+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
2
  # This file is distributed under the same license as the YITH WooCommerce Product Gallery & Image Zoom package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: YITH WooCommerce Product Gallery & Image Zoom 2.0.2\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2021-09-22 08:03:23+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
lib/class.yith-wcmg-admin.php CHANGED
@@ -1,97 +1,97 @@
1
- <?php // phpcs:ignore WordPress.Files.FileName
2
- /**
3
- * Admin class
4
- *
5
- * @author YITH
6
- * @package YITH\ZoomMagnifier\Classes
7
- * @version 1.1.2
8
- */
9
-
10
- if ( ! defined( 'YITH_WCMG' ) ) {
11
- exit;
12
- } // Exit if accessed directly
13
-
14
- if ( ! class_exists( 'YITH_WCMG_Admin' ) ) {
15
- /**
16
- * Admin class.
17
- * The class manage all the admin behaviors.
18
- *
19
- * @since 1.0.0
20
- */
21
- class YITH_WCMG_Admin {
22
- /**
23
- * Plugin options
24
- *
25
- * @var array
26
- * @access public
27
- * @since 1.0.0
28
- */
29
- public $options = array();
30
-
31
- /**
32
- * Docs URL.
33
- *
34
- * @var string
35
- * @access public
36
- * @since 1.0.0
37
- */
38
- public $doc_url = 'https://docs.yithemes.com/yith-woocommerce-zoom-magnifier/';
39
-
40
- /**
41
- * Constructor
42
- *
43
- * @access public
44
- * @since 1.0.0
45
- */
46
- public function __construct() {
47
-
48
- // Actions.
49
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles_scripts' ) );
50
-
51
- // YITH WCMG Loaded.
52
- do_action( 'yith_wcmg_loaded' );
53
- }
54
-
55
- /**
56
- * Enqueue admin styles and scripts
57
- *
58
- * @access public
59
- * @return void
60
- * @since 1.0.0
61
- */
62
- public function enqueue_styles_scripts() {
63
-
64
- wp_enqueue_script( 'jquery-ui' );
65
- wp_enqueue_script( 'jquery-ui-core' );
66
- wp_enqueue_script( 'jquery-ui-mouse' );
67
- wp_enqueue_script( 'jquery-ui-slider' );
68
-
69
- wp_enqueue_style( 'yith_wcmg_admin', YITH_WCMG_URL . 'assets/css/admin.css', array(), YITH_YWZM_SCRIPT_VERSION );
70
-
71
- if ( isset( $_REQUEST[ 'page' ] ) && $_REQUEST[ 'page' ] === 'yith_woocommerce_zoom-magnifier_panel' ){
72
-
73
- wp_register_script(
74
- 'ywzm_backend',
75
- YITH_YWZM_ASSETS_URL . '/js/ywzm_backend.js',
76
- array(
77
- 'jquery',
78
- ),
79
- YITH_YWZM_SCRIPT_VERSION,
80
- true
81
- );
82
-
83
- wp_localize_script(
84
- 'ywzm_backend',
85
- 'ywzm_data',
86
- array()
87
- );
88
-
89
- wp_enqueue_script( 'ywzm_backend' );
90
-
91
- }
92
-
93
-
94
-
95
- }
96
- }
97
- }
1
+ <?php // phpcs:ignore WordPress.Files.FileName
2
+ /**
3
+ * Admin class
4
+ *
5
+ * @author YITH
6
+ * @package YITH\ZoomMagnifier\Classes
7
+ * @version 1.1.2
8
+ */
9
+
10
+ if ( ! defined( 'YITH_WCMG' ) ) {
11
+ exit;
12
+ } // Exit if accessed directly
13
+
14
+ if ( ! class_exists( 'YITH_WCMG_Admin' ) ) {
15
+ /**
16
+ * Admin class.
17
+ * The class manage all the admin behaviors.
18
+ *
19
+ * @since 1.0.0
20
+ */
21
+ class YITH_WCMG_Admin {
22
+ /**
23
+ * Plugin options
24
+ *
25
+ * @var array
26
+ * @access public
27
+ * @since 1.0.0
28
+ */
29
+ public $options = array();
30
+
31
+ /**
32
+ * Docs URL.
33
+ *
34
+ * @var string
35
+ * @access public
36
+ * @since 1.0.0
37
+ */
38
+ public $doc_url = 'https://docs.yithemes.com/yith-woocommerce-zoom-magnifier/';
39
+
40
+ /**
41
+ * Constructor
42
+ *
43
+ * @access public
44
+ * @since 1.0.0
45
+ */
46
+ public function __construct() {
47
+
48
+ // Actions.
49
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles_scripts' ) );
50
+
51
+ // YITH WCMG Loaded.
52
+ do_action( 'yith_wcmg_loaded' );
53
+ }
54
+
55
+ /**
56
+ * Enqueue admin styles and scripts
57
+ *
58
+ * @access public
59
+ * @return void
60
+ * @since 1.0.0
61
+ */
62
+ public function enqueue_styles_scripts() {
63
+
64
+ wp_enqueue_script( 'jquery-ui' );
65
+ wp_enqueue_script( 'jquery-ui-core' );
66
+ wp_enqueue_script( 'jquery-ui-mouse' );
67
+ wp_enqueue_script( 'jquery-ui-slider' );
68
+
69
+ wp_enqueue_style( 'yith_wcmg_admin', YITH_WCMG_URL . 'assets/css/admin.css', array(), YITH_YWZM_SCRIPT_VERSION );
70
+
71
+ if ( isset( $_REQUEST[ 'page' ] ) && $_REQUEST[ 'page' ] === 'yith_woocommerce_zoom-magnifier_panel' ){
72
+
73
+ wp_register_script(
74
+ 'ywzm_backend',
75
+ YITH_YWZM_ASSETS_URL . '/js/ywzm_backend.js',
76
+ array(
77
+ 'jquery',
78
+ ),
79
+ YITH_YWZM_SCRIPT_VERSION,
80
+ true
81
+ );
82
+
83
+ wp_localize_script(
84
+ 'ywzm_backend',
85
+ 'ywzm_data',
86
+ array()
87
+ );
88
+
89
+ wp_enqueue_script( 'ywzm_backend' );
90
+
91
+ }
92
+
93
+
94
+
95
+ }
96
+ }
97
+ }
lib/class.yith-wcmg-frontend.php CHANGED
@@ -1,370 +1,370 @@
1
- <?php // phpcs:ignore WordPress.Files.FileName
2
- /**
3
- * Frontend class
4
- *
5
- * @author YITH
6
- * @package YITH\ZoomMagnifier\Classes
7
- * @version 1.1.2
8
- */
9
-
10
- if ( ! defined( 'YITH_WCMG' ) ) {
11
- exit;
12
- } // Exit if accessed directly
13
-
14
- if ( ! class_exists( 'YITH_WCMG_Frontend' ) ) {
15
- /**
16
- * Admin class.
17
- * The class manage all the Frontend behaviors.
18
- *
19
- * @since 1.0.0
20
- */
21
- class YITH_WCMG_Frontend {
22
-
23
-
24
- /**
25
- * Constructor
26
- *
27
- * @access public
28
- * @since 1.0.0
29
- */
30
- public function __construct() {
31
-
32
- // add the action only when the loop is initializate.
33
- add_action( 'template_redirect', array( $this, 'render' ) );
34
- }
35
-
36
- /**
37
- * Render zoom.
38
- */
39
- public function render() {
40
- if ( ! apply_filters( 'yith_wczm_featured_video_enabled', false ) ) {
41
-
42
-
43
- //Zoom template
44
- remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
45
- add_action( 'woocommerce_before_single_product_summary', array( $this, 'show_product_images' ), 20 );
46
-
47
- //Slider template
48
- remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
49
-
50
- if ( get_option( 'ywzm_hide_thumbnails', 'no' ) !== 'yes' )
51
- add_action( 'woocommerce_product_thumbnails', array( $this, 'show_product_thumbnails' ), 20 );
52
-
53
-
54
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles_scripts' ) );
55
-
56
- // add attributes to product variations.
57
- add_filter( 'woocommerce_available_variation', array( $this, 'available_variation' ), 10, 3 );
58
- }
59
- }
60
-
61
-
62
- /**
63
- * Change product-single.php template
64
- *
65
- * @access public
66
- * @return void
67
- * @since 1.0.0
68
- */
69
- public function show_product_images() {
70
- wc_get_template( 'single-product/product-image-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
71
- }
72
-
73
-
74
- /**
75
- * Change product-thumbnails.php template
76
- *
77
- * @access public
78
- * @return void
79
- * @since 1.0.0
80
- */
81
- public function show_product_thumbnails() {
82
-
83
- wc_get_template( 'single-product/product-thumbnails-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
84
- }
85
-
86
-
87
- /**
88
- * Enqueue styles and scripts
89
- *
90
- * @access public
91
- * @return void
92
- * @since 1.0.0
93
- */
94
- public function enqueue_styles_scripts() {
95
- global $post;
96
-
97
- if ( is_product() || ( ! empty( $post->post_content ) && strpos($post->post_content, 'product_page') !== false ) ) {
98
-
99
- wp_register_script(
100
- 'ywzm-magnifier',
101
- apply_filters( 'ywzm_magnifier_script_register_path', YITH_WCMG_URL . 'assets/js/' . yit_load_js_file( 'yith_magnifier.js' ) ),
102
- array( 'jquery' ),
103
- YITH_YWZM_SCRIPT_VERSION,
104
- true
105
- );
106
-
107
- wp_localize_script(
108
- 'ywzm-magnifier',
109
- 'yith_wc_zoom_magnifier_storage_object',
110
- apply_filters(
111
- 'yith_wc_zoom_magnifier_front_magnifier_localize',
112
- array(
113
- 'ajax_url' => admin_url( 'admin-ajax.php' ),
114
- 'mouse_trap_width' => apply_filters( 'yith_wczm_mouse_trap_with', '100%' ),
115
- 'mouse_trap_height' => apply_filters( 'yith_wczm_mouse_trap_height', '100%' ),
116
- )
117
- )
118
- );
119
-
120
- wp_register_script(
121
- 'ywzm_frontend',
122
- YITH_WCMG_URL . 'assets/js/' . yit_load_js_file( 'ywzm_frontend.js' ),
123
- array(
124
- 'jquery',
125
- 'ywzm-magnifier',
126
- ),
127
- YITH_YWZM_SCRIPT_VERSION,
128
- true
129
- );
130
-
131
- wp_register_style( 'ywzm-magnifier', YITH_WCMG_URL . 'assets/css/yith_magnifier.css', array(), YITH_YWZM_SCRIPT_VERSION );
132
-
133
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
134
-
135
- wp_localize_script(
136
- 'ywzm_frontend',
137
- 'ywzm_data',
138
- array()
139
- );
140
-
141
- // Enqueue PrettyPhoto style and script.
142
- $wc_assets_path = str_replace( array( 'http:', 'https:' ), '', WC()->plugin_url() ) . '/assets/';
143
-
144
- // Enqueue scripts.
145
- wp_enqueue_script( 'prettyPhoto', $wc_assets_path . 'js/prettyPhoto/jquery.prettyPhoto' . $suffix . '.js', array( 'jquery' ), WC()->version, true );
146
- wp_enqueue_script( 'ywzm-magnifier' );
147
- wp_enqueue_script( 'ywzm_frontend' );
148
-
149
- wp_enqueue_style( 'dashicons' );
150
-
151
- /**
152
- * Add custom init PrettyPhoto
153
- */
154
-
155
- wp_localize_script(
156
- 'ywzm_frontend',
157
- 'ywzm_prettyphoto_data',
158
- array(
159
- )
160
- );
161
-
162
- wp_enqueue_script( //phpcs:ignore
163
- 'yith-ywzm-prettyPhoto-init',
164
- apply_filters( 'ywzm_src_prettyphoto_script', YITH_WCMG_URL . 'assets/js/' . yit_load_js_file( 'init.prettyPhoto.js' ) ),
165
- array(
166
- 'jquery',
167
- 'prettyPhoto',
168
- ),
169
- false,
170
- true
171
- );
172
-
173
- // Enqueue Style.
174
- $css = file_exists( get_stylesheet_directory() . '/woocommerce/yith_magnifier.css' ) ? get_stylesheet_directory_uri() . '/woocommerce/yith_magnifier.css' : YITH_WCMG_URL . 'assets/css/frontend.css';
175
- wp_enqueue_style( 'ywzm-prettyPhoto', $wc_assets_path . 'css/prettyPhoto.css', array(), YITH_YWZM_SCRIPT_VERSION );
176
- wp_enqueue_style( 'ywzm-magnifier' );
177
- wp_enqueue_style( 'ywzm_frontend', $css, array(), YITH_YWZM_SCRIPT_VERSION );
178
-
179
- wp_add_inline_style( 'ywzm_frontend', $this->get_custom_css() );
180
- wp_add_inline_style( 'ywzm-prettyPhoto', $this->get_custom_css_prettyphoto() );
181
-
182
- }
183
- }
184
-
185
- public function get_custom_css(){
186
-
187
- $custom_css = '';
188
-
189
- $slider_colors_default = Array(
190
- 'background' => 'white',
191
- 'border' => 'black',
192
- 'arrow' => 'black',
193
- );
194
-
195
- $sizes_default = Array(
196
- 'dimensions' => array(
197
- 'slider' => '25',
198
- 'arrow' => '22',
199
- 'border' => '2',
200
- ));
201
-
202
- $colors_default = Array(
203
- 'background' => 'white',
204
- 'icon' => 'black',
205
- );
206
-
207
- $slider_colors_array = get_option( 'yith_wcmg_slider_style_colors', $slider_colors_default );
208
- $slider_colors_hover_array = get_option( 'yith_wcmg_slider_style_colors_hover', $slider_colors_default );
209
- $sizes = get_option( 'yith_wcmg_slider_sizes', $sizes_default );
210
-
211
- if ( is_array($slider_colors_array) ){
212
-
213
- $custom_css .= "
214
- #slider-prev, #slider-next {
215
- background-color: {$slider_colors_array['background']};
216
- border: {$sizes['dimensions']['border']}px solid {$slider_colors_array['border']};
217
- width:{$sizes['dimensions']['slider']}px !important;
218
- height:{$sizes['dimensions']['slider']}px !important;
219
- }
220
- ";
221
-
222
- $custom_css .= "
223
- #slider-prev:hover, #slider-next:hover {
224
- background-color: {$slider_colors_hover_array['background']};
225
- border: {$sizes['dimensions']['border']}px solid {$slider_colors_hover_array['border']};
226
- }
227
- ";
228
-
229
- $custom_css .= "
230
- .thumbnails.slider .dashicons:hover {
231
- color:{$slider_colors_hover_array['arrow']};
232
- }
233
- ";
234
-
235
- $custom_css .= "
236
- .thumbnails.slider .dashicons {
237
- color:{$slider_colors_array['arrow']};
238
- font-size:{$sizes['dimensions']['arrow']}px;
239
- width:{$sizes['dimensions']['slider']}px !important;
240
- height:{$sizes['dimensions']['slider']}px !important;
241
- }
242
- ";
243
-
244
-
245
- //Lighbox expand icon
246
- $lighbox_colors_array = get_option( 'ywzm_lightbox_icon_colors', $colors_default );
247
- $lighbox_icon_size = get_option( 'ywzm_lightbox_icon_size', '25' );
248
- $lighbox_radius = get_option( 'yith_wcmg_lightbox_radius', '0' );
249
- $lighbox_icon_position = get_option( 'ywzm_lightbox_icon_position', 'top-right' );
250
-
251
-
252
-
253
- $arr = explode("-", $lighbox_icon_position, 2);
254
- $position = $arr[0];
255
-
256
- if ( $position == 'top' ){
257
- $top = '10px';
258
- $bottom = 'initial';
259
- }
260
- else{
261
- $top = 'initial';
262
- $bottom = '10px';
263
- }
264
-
265
- if ( $lighbox_icon_position === 'top-right' || $lighbox_icon_position === 'bottom-right' ){
266
- $left = 'initial';
267
- $right = '10px';
268
- }
269
- else{
270
- $left = '10px';
271
- $right = 'initial';
272
- }
273
-
274
- $custom_css .= "
275
- div.pp_woocommerce a.yith_expand {
276
- background-color: {$lighbox_colors_array['background']};
277
- width: {$lighbox_icon_size}px;
278
- height: {$lighbox_icon_size}px;
279
- top: {$top};
280
- bottom: {$bottom};
281
- left: {$left};
282
- right: {$right};
283
- border-radius: {$lighbox_radius}%;
284
- }
285
-
286
- .expand-button-hidden svg{
287
- width: {$lighbox_icon_size}px;
288
- height: {$lighbox_icon_size}px;
289
- }
290
-
291
- .expand-button-hidden path{
292
- fill: {$lighbox_colors_array['icon']};
293
- }
294
- ";
295
-
296
- }
297
-
298
- return apply_filters( 'yith_ywzm_custom_css', $custom_css );
299
- }
300
-
301
- public function get_custom_css_prettyphoto (){
302
-
303
- $colors_default = Array(
304
- 'background' => 'white',
305
- 'icon' => 'black',
306
- );
307
-
308
- $lighbox_colors_array = get_option( 'ywzm_lightbox_icon_colors', $colors_default );
309
- $lighbox_icon_size = get_option( 'ywzm_lightbox_icon_size', '25' );
310
-
311
- $custom_css = '';
312
-
313
- $custom_css .= "
314
- div.pp_woocommerce a.pp_contract, div.pp_woocommerce a.pp_expand{
315
- content: unset !important;
316
- background-color: {$lighbox_colors_array['background']};
317
- width: {$lighbox_icon_size}px;
318
- height: {$lighbox_icon_size}px;
319
- margin-top: 5px;
320
- margin-left: 5px;
321
- }
322
-
323
- div.pp_woocommerce a.pp_contract, div.pp_woocommerce a.pp_expand:hover{
324
- background-color: {$lighbox_colors_array['background']};
325
- }
326
- div.pp_woocommerce a.pp_contract, div.pp_woocommerce a.pp_contract:hover{
327
- background-color: {$lighbox_colors_array['background']};
328
- }
329
-
330
- a.pp_expand:before, a.pp_contract:before{
331
- content: unset !important;
332
- }
333
-
334
- a.pp_expand .expand-button-hidden svg, a.pp_contract .expand-button-hidden svg{
335
- width: {$lighbox_icon_size}px;
336
- height: {$lighbox_icon_size}px;
337
- padding: 5px;
338
- }
339
-
340
- .expand-button-hidden path{
341
- fill: {$lighbox_colors_array['icon']};
342
- }
343
-
344
- ";
345
-
346
-
347
- return apply_filters( 'yith_ywzm_custom_css_prettyphoto', $custom_css );
348
- }
349
-
350
-
351
- /**
352
- * Add attributes to product variations
353
- *
354
- * @param array $data Data.
355
- * @param WC_Product_Variable $wc_prod Variable product.
356
- * @param WC_Product_Variation $variation Variation.
357
- *
358
- * @return mixed
359
- */
360
- public function available_variation( $data, $wc_prod, $variation ) {
361
-
362
- $attachment_id = get_post_thumbnail_id( $variation->get_id() );
363
- $attachment = wp_get_attachment_image_src( $attachment_id, 'shop_magnifier' );
364
-
365
- $data['image_magnifier'] = $attachment ? current( $attachment ) : '';
366
-
367
- return $data;
368
- }
369
- }
370
- }
1
+ <?php // phpcs:ignore WordPress.Files.FileName
2
+ /**
3
+ * Frontend class
4
+ *
5
+ * @author YITH
6
+ * @package YITH\ZoomMagnifier\Classes
7
+ * @version 1.1.2
8
+ */
9
+
10
+ if ( ! defined( 'YITH_WCMG' ) ) {
11
+ exit;
12
+ } // Exit if accessed directly
13
+
14
+ if ( ! class_exists( 'YITH_WCMG_Frontend' ) ) {
15
+ /**
16
+ * Admin class.
17
+ * The class manage all the Frontend behaviors.
18
+ *
19
+ * @since 1.0.0
20
+ */
21
+ class YITH_WCMG_Frontend {
22
+
23
+
24
+ /**
25
+ * Constructor
26
+ *
27
+ * @access public
28
+ * @since 1.0.0
29
+ */
30
+ public function __construct() {
31
+
32
+ // add the action only when the loop is initializate.
33
+ add_action( 'template_redirect', array( $this, 'render' ) );
34
+ }
35
+
36
+ /**
37
+ * Render zoom.
38
+ */
39
+ public function render() {
40
+ if ( ! apply_filters( 'yith_wczm_featured_video_enabled', false ) ) {
41
+
42
+
43
+ //Zoom template
44
+ remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
45
+ add_action( 'woocommerce_before_single_product_summary', array( $this, 'show_product_images' ), 20 );
46
+
47
+ //Slider template
48
+ remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
49
+
50
+ if ( get_option( 'ywzm_hide_thumbnails', 'no' ) !== 'yes' )
51
+ add_action( 'woocommerce_product_thumbnails', array( $this, 'show_product_thumbnails' ), 20 );
52
+
53
+
54
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles_scripts' ) );
55
+
56
+ // add attributes to product variations.
57
+ add_filter( 'woocommerce_available_variation', array( $this, 'available_variation' ), 10, 3 );
58
+ }
59
+ }
60
+
61
+
62
+ /**
63
+ * Change product-single.php template
64
+ *
65
+ * @access public
66
+ * @return void
67
+ * @since 1.0.0
68
+ */
69
+ public function show_product_images() {
70
+ wc_get_template( 'single-product/product-image-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
71
+ }
72
+
73
+
74
+ /**
75
+ * Change product-thumbnails.php template
76
+ *
77
+ * @access public
78
+ * @return void
79
+ * @since 1.0.0
80
+ */
81
+ public function show_product_thumbnails() {
82
+
83
+ wc_get_template( 'single-product/product-thumbnails-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
84
+ }
85
+
86
+
87
+ /**
88
+ * Enqueue styles and scripts
89
+ *
90
+ * @access public
91
+ * @return void
92
+ * @since 1.0.0
93
+ */
94
+ public function enqueue_styles_scripts() {
95
+ global $post;
96
+
97
+ if ( is_product() || ( ! empty( $post->post_content ) && strpos($post->post_content, 'product_page') !== false ) ) {
98
+
99
+ wp_register_script(
100
+ 'ywzm-magnifier',
101
+ apply_filters( 'ywzm_magnifier_script_register_path', YITH_WCMG_URL . 'assets/js/' . yit_load_js_file( 'yith_magnifier.js' ) ),
102
+ array( 'jquery' ),
103
+ YITH_YWZM_SCRIPT_VERSION,
104
+ true
105
+ );
106
+
107
+ wp_localize_script(
108
+ 'ywzm-magnifier',
109
+ 'yith_wc_zoom_magnifier_storage_object',
110
+ apply_filters(
111
+ 'yith_wc_zoom_magnifier_front_magnifier_localize',
112
+ array(
113
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
114
+ 'mouse_trap_width' => apply_filters( 'yith_wczm_mouse_trap_with', '100%' ),
115
+ 'mouse_trap_height' => apply_filters( 'yith_wczm_mouse_trap_height', '100%' ),
116
+ )
117
+ )
118
+ );
119
+
120
+ wp_register_script(
121
+ 'ywzm_frontend',
122
+ YITH_WCMG_URL . 'assets/js/' . yit_load_js_file( 'ywzm_frontend.js' ),
123
+ array(
124
+ 'jquery',
125
+ 'ywzm-magnifier',
126
+ ),
127
+ YITH_YWZM_SCRIPT_VERSION,
128
+ true
129
+ );
130
+
131
+ wp_register_style( 'ywzm-magnifier', YITH_WCMG_URL . 'assets/css/yith_magnifier.css', array(), YITH_YWZM_SCRIPT_VERSION );
132
+
133
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
134
+
135
+ wp_localize_script(
136
+ 'ywzm_frontend',
137
+ 'ywzm_data',
138
+ array()
139
+ );
140
+
141
+ // Enqueue PrettyPhoto style and script.
142
+ $wc_assets_path = str_replace( array( 'http:', 'https:' ), '', WC()->plugin_url() ) . '/assets/';
143
+
144
+ // Enqueue scripts.
145
+ wp_enqueue_script( 'prettyPhoto', $wc_assets_path . 'js/prettyPhoto/jquery.prettyPhoto' . $suffix . '.js', array( 'jquery' ), WC()->version, true );
146
+ wp_enqueue_script( 'ywzm-magnifier' );
147
+ wp_enqueue_script( 'ywzm_frontend' );
148
+
149
+ wp_enqueue_style( 'dashicons' );
150
+
151
+ /**
152
+ * Add custom init PrettyPhoto
153
+ */
154
+
155
+ wp_localize_script(
156
+ 'ywzm_frontend',
157
+ 'ywzm_prettyphoto_data',
158
+ array(
159
+ )
160
+ );
161
+
162
+ wp_enqueue_script( //phpcs:ignore
163
+ 'yith-ywzm-prettyPhoto-init',
164
+ apply_filters( 'ywzm_src_prettyphoto_script', YITH_WCMG_URL . 'assets/js/' . yit_load_js_file( 'init.prettyPhoto.js' ) ),
165
+ array(
166
+ 'jquery',
167
+ 'prettyPhoto',
168
+ ),
169
+ false,
170
+ true
171
+ );
172
+
173
+ // Enqueue Style.
174
+ $css = file_exists( get_stylesheet_directory() . '/woocommerce/yith_magnifier.css' ) ? get_stylesheet_directory_uri() . '/woocommerce/yith_magnifier.css' : YITH_WCMG_URL . 'assets/css/frontend.css';
175
+ wp_enqueue_style( 'ywzm-prettyPhoto', $wc_assets_path . 'css/prettyPhoto.css', array(), YITH_YWZM_SCRIPT_VERSION );
176
+ wp_enqueue_style( 'ywzm-magnifier' );
177
+ wp_enqueue_style( 'ywzm_frontend', $css, array(), YITH_YWZM_SCRIPT_VERSION );
178
+
179
+ wp_add_inline_style( 'ywzm_frontend', $this->get_custom_css() );
180
+ wp_add_inline_style( 'ywzm-prettyPhoto', $this->get_custom_css_prettyphoto() );
181
+
182
+ }
183
+ }
184
+
185
+ public function get_custom_css(){
186
+
187
+ $custom_css = '';
188
+
189
+ $slider_colors_default = Array(
190
+ 'background' => 'white',
191
+ 'border' => 'black',
192
+ 'arrow' => 'black',
193
+ );
194
+
195
+ $sizes_default = Array(
196
+ 'dimensions' => array(
197
+ 'slider' => '25',
198
+ 'arrow' => '22',
199
+ 'border' => '2',
200
+ ));
201
+
202
+ $colors_default = Array(
203
+ 'background' => 'white',
204
+ 'icon' => 'black',
205
+ );
206
+
207
+ $slider_colors_array = get_option( 'yith_wcmg_slider_style_colors', $slider_colors_default );
208
+ $slider_colors_hover_array = get_option( 'yith_wcmg_slider_style_colors_hover', $slider_colors_default );
209
+ $sizes = get_option( 'yith_wcmg_slider_sizes', $sizes_default );
210
+
211
+ if ( is_array($slider_colors_array) ){
212
+
213
+ $custom_css .= "
214
+ #slider-prev, #slider-next {
215
+ background-color: {$slider_colors_array['background']};
216
+ border: {$sizes['dimensions']['border']}px solid {$slider_colors_array['border']};
217
+ width:{$sizes['dimensions']['slider']}px !important;
218
+ height:{$sizes['dimensions']['slider']}px !important;
219
+ }
220
+ ";
221
+
222
+ $custom_css .= "
223
+ #slider-prev:hover, #slider-next:hover {
224
+ background-color: {$slider_colors_hover_array['background']};
225
+ border: {$sizes['dimensions']['border']}px solid {$slider_colors_hover_array['border']};
226
+ }
227
+ ";
228
+
229
+ $custom_css .= "
230
+ .thumbnails.slider .dashicons:hover {
231
+ color:{$slider_colors_hover_array['arrow']};
232
+ }
233
+ ";
234
+
235
+ $custom_css .= "
236
+ .thumbnails.slider .dashicons {
237
+ color:{$slider_colors_array['arrow']};
238
+ font-size:{$sizes['dimensions']['arrow']}px;
239
+ width:{$sizes['dimensions']['slider']}px !important;
240
+ height:{$sizes['dimensions']['slider']}px !important;
241
+ }
242
+ ";
243
+
244
+
245
+ //Lighbox expand icon
246
+ $lighbox_colors_array = get_option( 'ywzm_lightbox_icon_colors', $colors_default );
247
+ $lighbox_icon_size = get_option( 'ywzm_lightbox_icon_size', '25' );
248
+ $lighbox_radius = get_option( 'yith_wcmg_lightbox_radius', '0' );
249
+ $lighbox_icon_position = get_option( 'ywzm_lightbox_icon_position', 'top-right' );
250
+
251
+
252
+
253
+ $arr = explode("-", $lighbox_icon_position, 2);
254
+ $position = $arr[0];
255
+
256
+ if ( $position == 'top' ){
257
+ $top = '10px';
258
+ $bottom = 'initial';
259
+ }
260
+ else{
261
+ $top = 'initial';
262
+ $bottom = '10px';
263
+ }
264
+
265
+ if ( $lighbox_icon_position === 'top-right' || $lighbox_icon_position === 'bottom-right' ){
266
+ $left = 'initial';
267
+ $right = '10px';
268
+ }
269
+ else{
270
+ $left = '10px';
271
+ $right = 'initial';
272
+ }
273
+
274
+ $custom_css .= "
275
+ div.pp_woocommerce a.yith_expand {
276
+ background-color: {$lighbox_colors_array['background']};
277
+ width: {$lighbox_icon_size}px;
278
+ height: {$lighbox_icon_size}px;
279
+ top: {$top};
280
+ bottom: {$bottom};
281
+ left: {$left};
282
+ right: {$right};
283
+ border-radius: {$lighbox_radius}%;
284
+ }
285
+
286
+ .expand-button-hidden svg{
287
+ width: {$lighbox_icon_size}px;
288
+ height: {$lighbox_icon_size}px;
289
+ }
290
+
291
+ .expand-button-hidden path{
292
+ fill: {$lighbox_colors_array['icon']};
293
+ }
294
+ ";
295
+
296
+ }
297
+
298
+ return apply_filters( 'yith_ywzm_custom_css', $custom_css );
299
+ }
300
+
301
+ public function get_custom_css_prettyphoto (){
302
+
303
+ $colors_default = Array(
304
+ 'background' => 'white',
305
+ 'icon' => 'black',
306
+ );
307
+
308
+ $lighbox_colors_array = get_option( 'ywzm_lightbox_icon_colors', $colors_default );
309
+ $lighbox_icon_size = get_option( 'ywzm_lightbox_icon_size', '25' );
310
+
311
+ $custom_css = '';
312
+
313
+ $custom_css .= "
314
+ div.pp_woocommerce a.pp_contract, div.pp_woocommerce a.pp_expand{
315
+ content: unset !important;
316
+ background-color: {$lighbox_colors_array['background']};
317
+ width: {$lighbox_icon_size}px;
318
+ height: {$lighbox_icon_size}px;
319
+ margin-top: 5px;
320
+ margin-left: 5px;
321
+ }
322
+
323
+ div.pp_woocommerce a.pp_contract, div.pp_woocommerce a.pp_expand:hover{
324
+ background-color: {$lighbox_colors_array['background']};
325
+ }
326
+ div.pp_woocommerce a.pp_contract, div.pp_woocommerce a.pp_contract:hover{
327
+ background-color: {$lighbox_colors_array['background']};
328
+ }
329
+
330
+ a.pp_expand:before, a.pp_contract:before{
331
+ content: unset !important;
332
+ }
333
+
334
+ a.pp_expand .expand-button-hidden svg, a.pp_contract .expand-button-hidden svg{
335
+ width: {$lighbox_icon_size}px;
336
+ height: {$lighbox_icon_size}px;
337
+ padding: 5px;
338
+ }
339
+
340
+ .expand-button-hidden path{
341
+ fill: {$lighbox_colors_array['icon']};
342
+ }
343
+
344
+ ";
345
+
346
+
347
+ return apply_filters( 'yith_ywzm_custom_css_prettyphoto', $custom_css );
348
+ }
349
+
350
+
351
+ /**
352
+ * Add attributes to product variations
353
+ *
354
+ * @param array $data Data.
355
+ * @param WC_Product_Variable $wc_prod Variable product.
356
+ * @param WC_Product_Variation $variation Variation.
357
+ *
358
+ * @return mixed
359
+ */
360
+ public function available_variation( $data, $wc_prod, $variation ) {
361
+
362
+ $attachment_id = get_post_thumbnail_id( $variation->get_id() );
363
+ $attachment = wp_get_attachment_image_src( $attachment_id, 'shop_magnifier' );
364
+
365
+ $data['image_magnifier'] = $attachment ? current( $attachment ) : '';
366
+
367
+ return $data;
368
+ }
369
+ }
370
+ }
lib/class.yith-woocommerce-zoom-magnifier.php CHANGED
@@ -1,177 +1,177 @@
1
- <?php // phpcs:ignore WordPress.Files.FileName
2
- /**
3
- * Main class
4
- *
5
- * @author YITH
6
- * @package YITH\ZoomMagnifier\Classes
7
- * @version 1.1.2
8
- */
9
-
10
- if ( ! defined( 'YITH_WCMG' ) ) {
11
- exit;
12
- } // Exit if accessed directly
13
-
14
- if ( ! class_exists( 'YITH_WooCommerce_Zoom_Magnifier' ) ) {
15
- /**
16
- * YITH WooCommerce Product Gallery & Image Zoom
17
- *
18
- * @since 1.0.0
19
- */
20
- class YITH_WooCommerce_Zoom_Magnifier {
21
-
22
- /**
23
- * Plugin object
24
- *
25
- * @var string
26
- * @since 1.0.0
27
- */
28
- public $obj = null;
29
-
30
- /**
31
- * Plugin panel page
32
- *
33
- * @var string
34
- */
35
- protected $panel_page = 'yith_woocommerce_zoom-magnifier_panel';
36
-
37
- /**
38
- * Constructor
39
- *
40
- * @return mixed|YITH_WCMG_Admin|YITH_WCMG_Frontend
41
- * @since 1.0.0
42
- */
43
- public function __construct() {
44
-
45
- add_action(
46
- 'wp_ajax_nopriv_yith_wc_zoom_magnifier_get_main_image',
47
- array(
48
- $this,
49
- 'yith_wc_zoom_magnifier_get_main_image_call_back',
50
- ),
51
- 10
52
- );
53
-
54
- add_action(
55
- 'wp_ajax_yith_wc_zoom_magnifier_get_main_image',
56
- array(
57
- $this,
58
- 'yith_wc_zoom_magnifier_get_main_image_call_back',
59
- ),
60
- 10
61
- );
62
-
63
- // actions.
64
- add_action( 'init', array( $this, 'init' ) );
65
-
66
- if ( is_admin() && ( ! isset( $_REQUEST['action'] ) || ( isset( $_REQUEST['action'] ) && 'yith_load_product_quick_view' !== $_REQUEST['action'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
67
- $this->obj = new YITH_WCMG_Admin();
68
- } else {
69
-
70
-
71
- /** Stop the plugin on mobile devices */
72
- if ( ( 'yes' == get_option( 'ywzm_hide_zoom_mobile' ) ) && wp_is_mobile() ) {
73
- return;
74
- }
75
-
76
- $this->obj = new YITH_WCMG_Frontend();
77
- }
78
-
79
- return $this->obj;
80
- }
81
-
82
- /**
83
- * Init method:
84
- * - default options
85
- *
86
- * @access public
87
- * @since 1.0.0
88
- */
89
- public function init() {
90
-
91
- /* === Show Plugin Information === */
92
- add_filter( 'plugin_action_links_' . plugin_basename( YITH_YWZM_DIR . '/' . basename( YITH_YWZM_FILE ) ), array( $this, 'action_links' ) );
93
- add_filter( 'yith_show_plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 5 );
94
- }
95
-
96
- /**
97
- * Action links.
98
- *
99
- * @param array $links Action links.
100
- * @since 1.4.1
101
- * @author Carlos Rodríguez <carlos.rodriguez@youirinspiration.it>
102
- *
103
- * @return array
104
- */
105
- public function action_links( $links ) {
106
- $links = yith_add_action_links( $links, $this->panel_page, false, YITH_YWZM_SLUG );
107
- return $links;
108
- }
109
- /**
110
- * Plugin Row Meta.
111
- *
112
- * @param mixed $new_row_meta_args Row meta args.
113
- * @param mixed $plugin_meta Plugin meta.
114
- * @param mixed $plugin_file Plugin file.
115
- * @param mixed $plugin_data Plugin data.
116
- * @param mixed $status Status.
117
- * @param mixed $init_file Init file.
118
- *
119
- * @since 1.4.1
120
- * @author Carlos Rodríguez <carlos.rodriguez@youirinspiration.it>
121
- *
122
- * @return array
123
- */
124
- public function plugin_row_meta( $new_row_meta_args, $plugin_meta, $plugin_file, $plugin_data, $status, $init_file = 'YITH_YWZM_FREE_INIT' ) {
125
- if ( defined( $init_file ) && constant( $init_file ) === $plugin_file ) {
126
- $new_row_meta_args['slug'] = YITH_YWZM_SLUG;
127
- }
128
-
129
- return $new_row_meta_args;
130
- }
131
-
132
- /**
133
- * Ajax method to retrieve the product main imavge
134
- *
135
- * @access public
136
- * @author Daniel Sanchez Saez
137
- * @since 1.3.4
138
- */
139
- public function yith_wc_zoom_magnifier_get_main_image_call_back() {
140
-
141
- // set the main wp query for the product.
142
- global $post, $product;
143
-
144
- $product_id = isset( $_POST['product_id'] ) ? $_POST['product_id'] : 0; // phpcs:ignore
145
- $post = get_post( $product_id ); // phpcs:ignore
146
- $product = wc_get_product( $product_id );
147
-
148
- if ( empty( $product ) ) {
149
- wp_send_json_error();
150
- }
151
-
152
- $url = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), 'full' );
153
-
154
- if ( function_exists( 'YITH_WCCL_Frontend' ) && function_exists( 'yith_wccl_get_variation_gallery' ) ) {
155
-
156
- $gallery = yith_wccl_get_variation_gallery( $product );
157
- // filter gallery based on current variation.
158
- if ( ! empty( $gallery ) ) {
159
-
160
- add_filter( 'woocommerce_product_variation_get_gallery_image_ids', array( YITH_WCCL_Frontend(), 'filter_gallery_ids' ), 10, 2 );
161
- }
162
- }
163
-
164
- ob_start();
165
- wc_get_template( 'single-product/product-thumbnails-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
166
- $gallery_html = ob_get_clean();
167
-
168
- wp_send_json(
169
- array(
170
- 'url' => isset( $url[0] ) ? $url[0] : '',
171
- 'gallery' => $gallery_html,
172
- )
173
- );
174
-
175
- }
176
- }
177
- }
1
+ <?php // phpcs:ignore WordPress.Files.FileName
2
+ /**
3
+ * Main class
4
+ *
5
+ * @author YITH
6
+ * @package YITH\ZoomMagnifier\Classes
7
+ * @version 1.1.2
8
+ */
9
+
10
+ if ( ! defined( 'YITH_WCMG' ) ) {
11
+ exit;
12
+ } // Exit if accessed directly
13
+
14
+ if ( ! class_exists( 'YITH_WooCommerce_Zoom_Magnifier' ) ) {
15
+ /**
16
+ * YITH WooCommerce Product Gallery & Image Zoom
17
+ *
18
+ * @since 1.0.0
19
+ */
20
+ class YITH_WooCommerce_Zoom_Magnifier {
21
+
22
+ /**
23
+ * Plugin object
24
+ *
25
+ * @var string
26
+ * @since 1.0.0
27
+ */
28
+ public $obj = null;
29
+
30
+ /**
31
+ * Plugin panel page
32
+ *
33
+ * @var string
34
+ */
35
+ protected $panel_page = 'yith_woocommerce_zoom-magnifier_panel';
36
+
37
+ /**
38
+ * Constructor
39
+ *
40
+ * @return mixed|YITH_WCMG_Admin|YITH_WCMG_Frontend
41
+ * @since 1.0.0
42
+ */
43
+ public function __construct() {
44
+
45
+ add_action(
46
+ 'wp_ajax_nopriv_yith_wc_zoom_magnifier_get_main_image',
47
+ array(
48
+ $this,
49
+ 'yith_wc_zoom_magnifier_get_main_image_call_back',
50
+ ),
51
+ 10
52
+ );
53
+
54
+ add_action(
55
+ 'wp_ajax_yith_wc_zoom_magnifier_get_main_image',
56
+ array(
57
+ $this,
58
+ 'yith_wc_zoom_magnifier_get_main_image_call_back',
59
+ ),
60
+ 10
61
+ );
62
+
63
+ // actions.
64
+ add_action( 'init', array( $this, 'init' ) );
65
+
66
+ if ( is_admin() && ( ! isset( $_REQUEST['action'] ) || ( isset( $_REQUEST['action'] ) && 'yith_load_product_quick_view' !== $_REQUEST['action'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
67
+ $this->obj = new YITH_WCMG_Admin();
68
+ } else {
69
+
70
+
71
+ /** Stop the plugin on mobile devices */
72
+ if ( ( 'yes' == get_option( 'ywzm_hide_zoom_mobile' ) ) && wp_is_mobile() ) {
73
+ return;
74
+ }
75
+
76
+ $this->obj = new YITH_WCMG_Frontend();
77
+ }
78
+
79
+ return $this->obj;
80
+ }
81
+
82
+ /**
83
+ * Init method:
84
+ * - default options
85
+ *
86
+ * @access public
87
+ * @since 1.0.0
88
+ */
89
+ public function init() {
90
+
91
+ /* === Show Plugin Information === */
92
+ add_filter( 'plugin_action_links_' . plugin_basename( YITH_YWZM_DIR . '/' . basename( YITH_YWZM_FILE ) ), array( $this, 'action_links' ) );
93
+ add_filter( 'yith_show_plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 5 );
94
+ }
95
+
96
+ /**
97
+ * Action links.
98
+ *
99
+ * @param array $links Action links.
100
+ * @since 1.4.1
101
+ * @author Carlos Rodríguez <carlos.rodriguez@youirinspiration.it>
102
+ *
103
+ * @return array
104
+ */
105
+ public function action_links( $links ) {
106
+ $links = yith_add_action_links( $links, $this->panel_page, false, YITH_YWZM_SLUG );
107
+ return $links;
108
+ }
109
+ /**
110
+ * Plugin Row Meta.
111
+ *
112
+ * @param mixed $new_row_meta_args Row meta args.
113
+ * @param mixed $plugin_meta Plugin meta.
114
+ * @param mixed $plugin_file Plugin file.
115
+ * @param mixed $plugin_data Plugin data.
116
+ * @param mixed $status Status.
117
+ * @param mixed $init_file Init file.
118
+ *
119
+ * @since 1.4.1
120
+ * @author Carlos Rodríguez <carlos.rodriguez@youirinspiration.it>
121
+ *
122
+ * @return array
123
+ */
124
+ public function plugin_row_meta( $new_row_meta_args, $plugin_meta, $plugin_file, $plugin_data, $status, $init_file = 'YITH_YWZM_FREE_INIT' ) {
125
+ if ( defined( $init_file ) && constant( $init_file ) === $plugin_file ) {
126
+ $new_row_meta_args['slug'] = YITH_YWZM_SLUG;
127
+ }
128
+
129
+ return $new_row_meta_args;
130
+ }
131
+
132
+ /**
133
+ * Ajax method to retrieve the product main imavge
134
+ *
135
+ * @access public
136
+ * @author Daniel Sanchez Saez
137
+ * @since 1.3.4
138
+ */
139
+ public function yith_wc_zoom_magnifier_get_main_image_call_back() {
140
+
141
+ // set the main wp query for the product.
142
+ global $post, $product;
143
+
144
+ $product_id = isset( $_POST['product_id'] ) ? $_POST['product_id'] : 0; // phpcs:ignore
145
+ $post = get_post( $product_id ); // phpcs:ignore
146
+ $product = wc_get_product( $product_id );
147
+
148
+ if ( empty( $product ) ) {
149
+ wp_send_json_error();
150
+ }
151
+
152
+ $url = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), 'full' );
153
+
154
+ if ( function_exists( 'YITH_WCCL_Frontend' ) && function_exists( 'yith_wccl_get_variation_gallery' ) ) {
155
+
156
+ $gallery = yith_wccl_get_variation_gallery( $product );
157
+ // filter gallery based on current variation.
158
+ if ( ! empty( $gallery ) ) {
159
+
160
+ add_filter( 'woocommerce_product_variation_get_gallery_image_ids', array( YITH_WCCL_Frontend(), 'filter_gallery_ids' ), 10, 2 );
161
+ }
162
+ }
163
+
164
+ ob_start();
165
+ wc_get_template( 'single-product/product-thumbnails-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
166
+ $gallery_html = ob_get_clean();
167
+
168
+ wp_send_json(
169
+ array(
170
+ 'url' => isset( $url[0] ) ? $url[0] : '',
171
+ 'gallery' => $gallery_html,
172
+ )
173
+ );
174
+
175
+ }
176
+ }
177
+ }
lib/class.yith-ywzm-plugin-fw-loader.php CHANGED
@@ -1,266 +1,266 @@
1
- <?php // phpcs:ignore WordPress.Files.FileName
2
- /**
3
- * Plugin FW Loader class
4
- *
5
- * @author YITH
6
- * @package YITH\ZoomMagnifier\Classes
7
- */
8
-
9
- if ( ! defined( 'ABSPATH' ) ) {
10
- exit; // Exit if accessed directly.
11
- }
12
-
13
- if ( ! class_exists( 'YITH_YWZM_Plugin_FW_Loader' ) ) {
14
-
15
- /**
16
- * Implements features related to an invoice document
17
- */
18
- class YITH_YWZM_Plugin_FW_Loader {
19
-
20
- /**
21
- * Panel Object
22
- *
23
- * @var $panel
24
- */
25
- protected $panel;
26
-
27
- /**
28
- * Premium tab template file name
29
- *
30
- * @var $_premium
31
- */
32
- protected $_premium = 'premium.php';
33
-
34
- /**
35
- * Premium version landing link
36
- *
37
- * @var string
38
- */
39
- protected $_premium_landing = 'https://yithemes.com/themes/plugins/yith-woocommerce-zoom-magnifier/';
40
-
41
- /**
42
- * Plugin official documentation
43
- *
44
- * @var string
45
- */
46
- protected $official_documentation = 'https://docs.yithemes.com/yith-woocommerce-zoom-magnifier/';
47
-
48
- /**
49
- * Plugin panel page
50
- *
51
- * @var string
52
- */
53
- protected $panel_page = 'yith_woocommerce_zoom-magnifier_panel';
54
-
55
- /**
56
- * Single instance of the class
57
- *
58
- * @var YITH_YWZM_Plugin_FW_Loader
59
- * @since 1.0.0
60
- */
61
- protected static $instance;
62
-
63
- /**
64
- * Returns single instance of the class
65
- *
66
- * @since 1.0.0
67
- */
68
- public static function get_instance() {
69
- if ( is_null( self::$instance ) ) {
70
- self::$instance = new self();
71
- }
72
-
73
- return self::$instance;
74
- }
75
-
76
- /**
77
- * Constructor
78
- */
79
- public function __construct() {
80
- /**
81
- * Register actions and filters to be used for creating an entry on YIT Plugin menu
82
- */
83
- add_action( 'admin_init', array( $this, 'register_pointer' ) );
84
-
85
- add_action( 'plugins_loaded', array( $this, 'plugin_fw_loader' ), 15 );
86
-
87
- // Add stylesheets and scripts files.
88
- add_action( 'admin_menu', array( $this, 'register_panel' ), 5 );
89
-
90
- if ( ! defined( 'YITH_YWZM_PREMIUM' ) ) {
91
-
92
- // Show plugin premium tab.
93
- add_action( 'yith_zoom_magnifier_premium', array( $this, 'premium_tab' ) );
94
- } else {
95
- /**
96
- * Register plugin to licence/update system.
97
- */
98
- $this->licence_activation();
99
- }
100
- }
101
-
102
-
103
- /**
104
- * Load YIT core plugin
105
- *
106
- * @since 1.0
107
- * @access public
108
- * @return void
109
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
110
- */
111
- public function plugin_fw_loader() {
112
- if ( ! defined( 'YIT_CORE_PLUGIN' ) ) {
113
- global $plugin_fw_data;
114
- if ( ! empty( $plugin_fw_data ) ) {
115
- $plugin_fw_file = array_shift( $plugin_fw_data );
116
- require_once $plugin_fw_file;
117
- }
118
- }
119
- }
120
-
121
- /**
122
- * Add a panel under YITH Plugins tab
123
- *
124
- * @return void
125
- * @since 1.0
126
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
127
- * @use /Yit_Plugin_Panel class
128
- * @see plugin-fw/lib/yit-plugin-panel.php
129
- */
130
- public function register_panel() {
131
-
132
- if ( ! empty( $this->panel ) ) {
133
- return;
134
- }
135
-
136
- $admin_tabs['image'] = esc_html__( 'Main image options', 'yith-woocommerce-zoom-magnifier' );
137
- $admin_tabs['gallery'] = esc_html__( 'Product gallery options', 'yith-woocommerce-zoom-magnifier' );
138
- $admin_tabs['premium'] = esc_html__( 'Premium Version', 'yith-woocommerce-zoom-magnifier' );
139
-
140
- $args = array(
141
- 'create_menu_page' => true,
142
- 'parent_slug' => '',
143
- 'page_title' => 'Product Gallery & Image Zoom',
144
- 'menu_title' => 'Product Gallery & Image Zoom',
145
- 'capability' => 'manage_options',
146
- 'parent' => '',
147
- 'parent_page' => 'yit_plugin_panel',
148
- 'page' => $this->panel_page,
149
- 'admin-tabs' => $admin_tabs,
150
- 'class' => yith_set_wrapper_class(),
151
- 'options-path' => YITH_YWZM_DIR . '/plugin-options',
152
- );
153
-
154
- /* === Fixed: not updated theme === */
155
- if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
156
-
157
- require_once 'plugin-fw/lib/yit-plugin-panel-wc.php';
158
- }
159
-
160
- $this->panel = new YIT_Plugin_Panel_WooCommerce( $args );
161
-
162
- }
163
-
164
- /**
165
- * Premium Tab Template
166
- *
167
- * Load the premium tab template on admin page
168
- *
169
- * @since 1.0
170
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
171
- * @return void
172
- */
173
- public function premium_tab() {
174
- $premium_tab_template = YITH_YWZM_TEMPLATE_DIR . '/admin/' . $this->_premium;
175
- if ( file_exists( $premium_tab_template ) ) {
176
- include_once( $premium_tab_template );
177
- }
178
- }
179
-
180
- /**
181
- * Register pointer.
182
- */
183
- public function register_pointer() {
184
- if ( ! class_exists( 'YIT_Pointers' ) ) {
185
- include_once 'plugin-fw/lib/yit-pointers.php';
186
- }
187
-
188
- $premium_message = defined( 'YITH_YWZM_PREMIUM' )
189
- ? ''
190
- : esc_html__( 'YITH WooCommerce Product Gallery & Image Zoom is available in an outstanding PREMIUM version with many new options, discover it now.', 'yith-woocommerce-zoom-magnifier' ) .
191
- ' <a href="' . $this->_premium_landing . '">' . esc_html__( 'Premium version', 'yith-woocommerce-zoom-magnifier' ) . '</a>';
192
-
193
- $args[] = array(
194
- 'screen_id' => 'plugins',
195
- 'pointer_id' => 'yith_woocommerce_zoom-magnifier',
196
- 'target' => '#toplevel_page_yit_plugin_panel',
197
- 'content' => sprintf(
198
- '<h3> %s </h3> <p> %s </p>',
199
- esc_html__( 'YITH WooCommerce Product Gallery & Image Zoom ', 'yith-woocommerce-zoom-magnifier' ),
200
- esc_html__( 'In YIT Plugins tab you can find YITH WooCommerce Product Gallery & Image Zoom options.<br> From this menu you can access all settings of the YITH plugins activated.', 'yith-woocommerce-zoom-magnifier' ) . '<br>' . $premium_message
201
- ),
202
- 'position' => array(
203
- 'edge' => 'left',
204
- 'align' => 'center',
205
- ),
206
- 'init' => defined( 'YITH_YWZM_PREMIUM' ) ? YITH_YWZM_INIT : YITH_YWZM_FREE_INIT,
207
- );
208
-
209
- YIT_Pointers()->register( $args );
210
- }
211
-
212
- /**
213
- * Get the premium landing uri
214
- *
215
- * @since 1.0.0
216
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
217
- * @return string The premium landing link
218
- */
219
- public function get_premium_landing_uri() {
220
- return defined( 'YITH_REFER_ID' ) ? $this->_premium_landing . '?refer_id=' . YITH_REFER_ID : $this->_premium_landing;
221
- }
222
-
223
- // region **** licence related methods ****.
224
-
225
- /**
226
- * Add actions to manage licence activation and updates
227
- */
228
- public function licence_activation() {
229
- if ( ! defined( 'YITH_YWZM_PREMIUM' ) ) {
230
- return;
231
- }
232
-
233
- add_action( 'wp_loaded', array( $this, 'register_plugin_for_activation' ), 99 );
234
- add_action( 'admin_init', array( $this, 'register_plugin_for_updates' ) );
235
- }
236
-
237
- /**
238
- * Register plugins for activation tab
239
- *
240
- * @return void
241
- * @since 2.0.0
242
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
243
- */
244
- public function register_plugin_for_activation() {
245
- if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
246
- require_once 'plugin-fw/lib/yit-plugin-licence.php';
247
- }
248
- YIT_Plugin_Licence()->register( YITH_YWZM_INIT, YITH_YWZM_SECRET_KEY, YITH_YWZM_SLUG );
249
- }
250
-
251
- /**
252
- * Register plugins for update tab
253
- *
254
- * @return void
255
- * @since 2.0.0
256
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
257
- */
258
- public function register_plugin_for_updates() {
259
- if ( ! class_exists( 'YIT_Upgrade' ) ) {
260
- require_once 'plugin-fw/lib/yit-upgrade.php';
261
- }
262
- YIT_Upgrade()->register( YITH_YWZM_SLUG, YITH_YWZM_INIT );
263
- }
264
- // endregion.
265
- }
266
- }
1
+ <?php // phpcs:ignore WordPress.Files.FileName
2
+ /**
3
+ * Plugin FW Loader class
4
+ *
5
+ * @author YITH
6
+ * @package YITH\ZoomMagnifier\Classes
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit; // Exit if accessed directly.
11
+ }
12
+
13
+ if ( ! class_exists( 'YITH_YWZM_Plugin_FW_Loader' ) ) {
14
+
15
+ /**
16
+ * Implements features related to an invoice document
17
+ */
18
+ class YITH_YWZM_Plugin_FW_Loader {
19
+
20
+ /**
21
+ * Panel Object
22
+ *
23
+ * @var $panel
24
+ */
25
+ protected $panel;
26
+
27
+ /**
28
+ * Premium tab template file name
29
+ *
30
+ * @var $_premium
31
+ */
32
+ protected $_premium = 'premium.php';
33
+
34
+ /**
35
+ * Premium version landing link
36
+ *
37
+ * @var string
38
+ */
39
+ protected $_premium_landing = 'https://yithemes.com/themes/plugins/yith-woocommerce-zoom-magnifier/';
40
+
41
+ /**
42
+ * Plugin official documentation
43
+ *
44
+ * @var string
45
+ */
46
+ protected $official_documentation = 'https://docs.yithemes.com/yith-woocommerce-zoom-magnifier/';
47
+
48
+ /**
49
+ * Plugin panel page
50
+ *
51
+ * @var string
52
+ */
53
+ protected $panel_page = 'yith_woocommerce_zoom-magnifier_panel';
54
+
55
+ /**
56
+ * Single instance of the class
57
+ *
58
+ * @var YITH_YWZM_Plugin_FW_Loader
59
+ * @since 1.0.0
60
+ */
61
+ protected static $instance;
62
+
63
+ /**
64
+ * Returns single instance of the class
65
+ *
66
+ * @since 1.0.0
67
+ */
68
+ public static function get_instance() {
69
+ if ( is_null( self::$instance ) ) {
70
+ self::$instance = new self();
71
+ }
72
+
73
+ return self::$instance;
74
+ }
75
+
76
+ /**
77
+ * Constructor
78
+ */
79
+ public function __construct() {
80
+ /**
81
+ * Register actions and filters to be used for creating an entry on YIT Plugin menu
82
+ */
83
+ add_action( 'admin_init', array( $this, 'register_pointer' ) );
84
+
85
+ add_action( 'plugins_loaded', array( $this, 'plugin_fw_loader' ), 15 );
86
+
87
+ // Add stylesheets and scripts files.
88
+ add_action( 'admin_menu', array( $this, 'register_panel' ), 5 );
89
+
90
+ if ( ! defined( 'YITH_YWZM_PREMIUM' ) ) {
91
+
92
+ // Show plugin premium tab.
93
+ add_action( 'yith_zoom_magnifier_premium', array( $this, 'premium_tab' ) );
94
+ } else {
95
+ /**
96
+ * Register plugin to licence/update system.
97
+ */
98
+ $this->licence_activation();
99
+ }
100
+ }
101
+
102
+
103
+ /**
104
+ * Load YIT core plugin
105
+ *
106
+ * @since 1.0
107
+ * @access public
108
+ * @return void
109
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
110
+ */
111
+ public function plugin_fw_loader() {
112
+ if ( ! defined( 'YIT_CORE_PLUGIN' ) ) {
113
+ global $plugin_fw_data;
114
+ if ( ! empty( $plugin_fw_data ) ) {
115
+ $plugin_fw_file = array_shift( $plugin_fw_data );
116
+ require_once $plugin_fw_file;
117
+ }
118
+ }
119
+ }
120
+
121
+ /**
122
+ * Add a panel under YITH Plugins tab
123
+ *
124
+ * @return void
125
+ * @since 1.0
126
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
127
+ * @use /Yit_Plugin_Panel class
128
+ * @see plugin-fw/lib/yit-plugin-panel.php
129
+ */
130
+ public function register_panel() {
131
+
132
+ if ( ! empty( $this->panel ) ) {
133
+ return;
134
+ }
135
+
136
+ $admin_tabs['image'] = esc_html__( 'Main image options', 'yith-woocommerce-zoom-magnifier' );
137
+ $admin_tabs['gallery'] = esc_html__( 'Product gallery options', 'yith-woocommerce-zoom-magnifier' );
138
+ $admin_tabs['premium'] = esc_html__( 'Premium Version', 'yith-woocommerce-zoom-magnifier' );
139
+
140
+ $args = array(
141
+ 'create_menu_page' => true,
142
+ 'parent_slug' => '',
143
+ 'page_title' => 'Product Gallery & Image Zoom',
144
+ 'menu_title' => 'Product Gallery & Image Zoom',
145
+ 'capability' => 'manage_options',
146
+ 'parent' => '',
147
+ 'parent_page' => 'yit_plugin_panel',
148
+ 'page' => $this->panel_page,
149
+ 'admin-tabs' => $admin_tabs,
150
+ 'class' => yith_set_wrapper_class(),
151
+ 'options-path' => YITH_YWZM_DIR . '/plugin-options',
152
+ );
153
+
154
+ /* === Fixed: not updated theme === */
155
+ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
156
+
157
+ require_once 'plugin-fw/lib/yit-plugin-panel-wc.php';
158
+ }
159
+
160
+ $this->panel = new YIT_Plugin_Panel_WooCommerce( $args );
161
+
162
+ }
163
+
164
+ /**
165
+ * Premium Tab Template
166
+ *
167
+ * Load the premium tab template on admin page
168
+ *
169
+ * @since 1.0
170
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
171
+ * @return void
172
+ */
173
+ public function premium_tab() {
174
+ $premium_tab_template = YITH_YWZM_TEMPLATE_DIR . '/admin/' . $this->_premium;
175
+ if ( file_exists( $premium_tab_template ) ) {
176
+ include_once( $premium_tab_template );
177
+ }
178
+ }
179
+
180
+ /**
181
+ * Register pointer.
182
+ */
183
+ public function register_pointer() {
184
+ if ( ! class_exists( 'YIT_Pointers' ) ) {
185
+ include_once 'plugin-fw/lib/yit-pointers.php';
186
+ }
187
+
188
+ $premium_message = defined( 'YITH_YWZM_PREMIUM' )
189
+ ? ''
190
+ : esc_html__( 'YITH WooCommerce Product Gallery & Image Zoom is available in an outstanding PREMIUM version with many new options, discover it now.', 'yith-woocommerce-zoom-magnifier' ) .
191
+ ' <a href="' . $this->_premium_landing . '">' . esc_html__( 'Premium version', 'yith-woocommerce-zoom-magnifier' ) . '</a>';
192
+
193
+ $args[] = array(
194
+ 'screen_id' => 'plugins',
195
+ 'pointer_id' => 'yith_woocommerce_zoom-magnifier',
196
+ 'target' => '#toplevel_page_yit_plugin_panel',
197
+ 'content' => sprintf(
198
+ '<h3> %s </h3> <p> %s </p>',
199
+ esc_html__( 'YITH WooCommerce Product Gallery & Image Zoom ', 'yith-woocommerce-zoom-magnifier' ),
200
+ esc_html__( 'In YIT Plugins tab you can find YITH WooCommerce Product Gallery & Image Zoom options.<br> From this menu you can access all settings of the YITH plugins activated.', 'yith-woocommerce-zoom-magnifier' ) . '<br>' . $premium_message
201
+ ),
202
+ 'position' => array(
203
+ 'edge' => 'left',
204
+ 'align' => 'center',
205
+ ),
206
+ 'init' => defined( 'YITH_YWZM_PREMIUM' ) ? YITH_YWZM_INIT : YITH_YWZM_FREE_INIT,
207
+ );
208
+
209
+ YIT_Pointers()->register( $args );
210
+ }
211
+
212
+ /**
213
+ * Get the premium landing uri
214
+ *
215
+ * @since 1.0.0
216
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
217
+ * @return string The premium landing link
218
+ */
219
+ public function get_premium_landing_uri() {
220
+ return defined( 'YITH_REFER_ID' ) ? $this->_premium_landing . '?refer_id=' . YITH_REFER_ID : $this->_premium_landing;
221
+ }
222
+
223
+ // region **** licence related methods ****.
224
+
225
+ /**
226
+ * Add actions to manage licence activation and updates
227
+ */
228
+ public function licence_activation() {
229
+ if ( ! defined( 'YITH_YWZM_PREMIUM' ) ) {
230
+ return;
231
+ }
232
+
233
+ add_action( 'wp_loaded', array( $this, 'register_plugin_for_activation' ), 99 );
234
+ add_action( 'admin_init', array( $this, 'register_plugin_for_updates' ) );
235
+ }
236
+
237
+ /**
238
+ * Register plugins for activation tab
239
+ *
240
+ * @return void
241
+ * @since 2.0.0
242
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
243
+ */
244
+ public function register_plugin_for_activation() {
245
+ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
246
+ require_once 'plugin-fw/lib/yit-plugin-licence.php';
247
+ }
248
+ YIT_Plugin_Licence()->register( YITH_YWZM_INIT, YITH_YWZM_SECRET_KEY, YITH_YWZM_SLUG );
249
+ }
250
+
251
+ /**
252
+ * Register plugins for update tab
253
+ *
254
+ * @return void
255
+ * @since 2.0.0
256
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
257
+ */
258
+ public function register_plugin_for_updates() {
259
+ if ( ! class_exists( 'YIT_Upgrade' ) ) {
260
+ require_once 'plugin-fw/lib/yit-upgrade.php';
261
+ }
262
+ YIT_Upgrade()->register( YITH_YWZM_SLUG, YITH_YWZM_INIT );
263
+ }
264
+ // endregion.
265
+ }
266
+ }
lib/compatibility/class-yith-wczm-compatibility.php CHANGED
@@ -1,113 +1,113 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- *
10
- * @package YITH\ZoomMagnifier\Classes\Compatibility
11
- */
12
-
13
- if ( ! defined( 'YITH_YWZM_VERSION' ) ) {
14
- exit( 'Direct access forbidden.' );
15
- }
16
-
17
- /**
18
- * Implements the YITH_WCZM_Compatibility class.
19
- *
20
- * @class YITH_WCZM_Compatibility
21
- * @since 1.5.6
22
- * @author YITH
23
- */
24
- if ( ! class_exists( 'YITH_WCZM_Compatibility' ) ) {
25
- /**
26
- * Class YITH_WCZM_Compatibility
27
- */
28
- class YITH_WCZM_Compatibility {
29
-
30
- /**
31
- * Single instance of the class
32
- *
33
- * @var YITH_WCZM_Compatibility
34
- */
35
- protected static $instance;
36
-
37
- /**
38
- * Plugins
39
- *
40
- * @var array
41
- */
42
- protected $_plugins = array(); // phpcs:ignore
43
-
44
- /**
45
- * Returns single instance of the class
46
- *
47
- * @return YITH_WCZM_Compatibility
48
- */
49
- public static function get_instance() {
50
- if ( is_null( self::$instance ) ) {
51
- self::$instance = new self();
52
- }
53
-
54
- return self::$instance;
55
- }
56
-
57
- /**
58
- * YITH_WCZM_Compatibility constructor.
59
- */
60
- public function __construct() {
61
- $this->_plugins = array(
62
- 'elementor' => 'Elementor',
63
- );
64
- $this->_load();
65
- }
66
-
67
- /**
68
- * _load
69
- */
70
- private function _load() { // phpcs:ignore
71
- foreach ( $this->_plugins as $slug => $class_slug ) {
72
- $filename = YITH_YWZM_LIB_DIR . 'compatibility/class-yith-wczm-' . $slug . '-compatibility.php';
73
- $classname = 'YITH_WCZM_' . $class_slug . '_Compatibility';
74
- $var = str_replace( '-', '_', $slug );
75
- if ( $this::has_plugin( $slug ) && file_exists( $filename ) && ! function_exists( $classname ) ) {
76
- require_once $filename;
77
- }
78
-
79
- if ( function_exists( $classname ) ) {
80
- $this->$var = $classname();
81
- }
82
- }
83
- }
84
-
85
- /**
86
- * Has plugin
87
- *
88
- * @param mixed $slug The slug.
89
- *
90
- * @return bool
91
- */
92
- public static function has_plugin( $slug ) {
93
- switch ( $slug ) {
94
- case 'elementor':
95
- return defined( 'ELEMENTOR_VERSION' ) && ELEMENTOR_VERSION;
96
- default:
97
- return false;
98
- }
99
- }
100
- }
101
- }
102
-
103
-
104
- /**
105
- * Unique access to instance of YITH_WCZM_Compatibility class
106
- *
107
- * @return YITH_WCZM_Compatibility
108
- */
109
- function yith_wczm_compatibility() {
110
- return YITH_WCZM_Compatibility::get_instance();
111
- }
112
-
113
- yith_wczm_compatibility();
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ *
10
+ * @package YITH\ZoomMagnifier\Classes\Compatibility
11
+ */
12
+
13
+ if ( ! defined( 'YITH_YWZM_VERSION' ) ) {
14
+ exit( 'Direct access forbidden.' );
15
+ }
16
+
17
+ /**
18
+ * Implements the YITH_WCZM_Compatibility class.
19
+ *
20
+ * @class YITH_WCZM_Compatibility
21
+ * @since 1.5.6
22
+ * @author YITH
23
+ */
24
+ if ( ! class_exists( 'YITH_WCZM_Compatibility' ) ) {
25
+ /**
26
+ * Class YITH_WCZM_Compatibility
27
+ */
28
+ class YITH_WCZM_Compatibility {
29
+
30
+ /**
31
+ * Single instance of the class
32
+ *
33
+ * @var YITH_WCZM_Compatibility
34
+ */
35
+ protected static $instance;
36
+
37
+ /**
38
+ * Plugins
39
+ *
40
+ * @var array
41
+ */
42
+ protected $_plugins = array(); // phpcs:ignore
43
+
44
+ /**
45
+ * Returns single instance of the class
46
+ *
47
+ * @return YITH_WCZM_Compatibility
48
+ */
49
+ public static function get_instance() {
50
+ if ( is_null( self::$instance ) ) {
51
+ self::$instance = new self();
52
+ }
53
+
54
+ return self::$instance;
55
+ }
56
+
57
+ /**
58
+ * YITH_WCZM_Compatibility constructor.
59
+ */
60
+ public function __construct() {
61
+ $this->_plugins = array(
62
+ 'elementor' => 'Elementor',
63
+ );
64
+ $this->_load();
65
+ }
66
+
67
+ /**
68
+ * _load
69
+ */
70
+ private function _load() { // phpcs:ignore
71
+ foreach ( $this->_plugins as $slug => $class_slug ) {
72
+ $filename = YITH_YWZM_LIB_DIR . 'compatibility/class-yith-wczm-' . $slug . '-compatibility.php';
73
+ $classname = 'YITH_WCZM_' . $class_slug . '_Compatibility';
74
+ $var = str_replace( '-', '_', $slug );
75
+ if ( $this::has_plugin( $slug ) && file_exists( $filename ) && ! function_exists( $classname ) ) {
76
+ require_once $filename;
77
+ }
78
+
79
+ if ( function_exists( $classname ) ) {
80
+ $this->$var = $classname();
81
+ }
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Has plugin
87
+ *
88
+ * @param mixed $slug The slug.
89
+ *
90
+ * @return bool
91
+ */
92
+ public static function has_plugin( $slug ) {
93
+ switch ( $slug ) {
94
+ case 'elementor':
95
+ return defined( 'ELEMENTOR_VERSION' ) && ELEMENTOR_VERSION;
96
+ default:
97
+ return false;
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+
104
+ /**
105
+ * Unique access to instance of YITH_WCZM_Compatibility class
106
+ *
107
+ * @return YITH_WCZM_Compatibility
108
+ */
109
+ function yith_wczm_compatibility() {
110
+ return YITH_WCZM_Compatibility::get_instance();
111
+ }
112
+
113
+ yith_wczm_compatibility();
lib/compatibility/class-yith-wczm-elementor-compatibility.php CHANGED
@@ -1,102 +1,102 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Plugin Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- *
10
- * @package YITH\ZoomMagnifier\Classes\Compatibility
11
- */
12
-
13
- if ( ! defined( 'ABSPATH' ) || ! defined( 'YITH_YWZM_VERSION' ) ) {
14
- exit; // Exit if accessed directly.
15
- }
16
-
17
- /**
18
- * Implements the YITH_WCZM_Elementor_Compatibility class.
19
- *
20
- * @class YITH_WCZM_Elementor_Compatibility
21
- * @since 1.5.6
22
- * @author YITH
23
- */
24
- if ( ! class_exists( 'YITH_WCZM_Elementor_Compatibility' ) ) {
25
-
26
- /**
27
- * Class YITH_WCZM_Elementor_Compatibility
28
- */
29
- class YITH_WCZM_Elementor_Compatibility {
30
- /**
31
- * Single instance of the class
32
- *
33
- * @var YITH_WCZM_Elementor_Compatibility
34
- */
35
- protected static $instance;
36
-
37
- /**
38
- * Returns single instance of the class
39
- *
40
- * @return YITH_WCZM_Elementor_Compatibility
41
- */
42
- public static function get_instance() {
43
- if ( is_null( self::$instance ) ) {
44
- self::$instance = new self();
45
- }
46
- return self::$instance;
47
- }
48
-
49
- /**
50
- * YITH_WCZM_Elementor_Compatibility constructor.
51
- */
52
- public function __construct() {
53
- if ( did_action( 'elementor/loaded' ) ) {
54
- add_action( 'elementor/elements/categories_registered', array( $this, 'add_elementor_yith_widget_category' ) );
55
- add_action( 'elementor/widgets/widgets_registered', array( $this, 'elementor_init_widgets' ) );
56
-
57
- }
58
- }
59
-
60
- /**
61
- * Add elementor category for YITH.
62
- *
63
- * @param mixed $elements_manager Elementor manager.
64
- */
65
- public function add_elementor_yith_widget_category( $elements_manager ) {
66
- $elements_manager->add_category(
67
- 'yith',
68
- array(
69
- 'title' => 'YITH',
70
- 'icon' => 'fa fa-plug',
71
- )
72
- );
73
-
74
- }
75
-
76
- /**
77
- * Initialize Elementor widget.
78
- *
79
- * @throws Exception OnCreateClass.
80
- */
81
- public function elementor_init_widgets() {
82
- // Include Widget files.
83
- require_once YITH_YWZM_LIB_DIR . 'compatibility/elementor/class-yith-wczm-product-images-widget.php';
84
-
85
- // Register widget.
86
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new \YITH_WCZM_Product_Images_Elementor_Widget() );
87
-
88
- }
89
- }
90
-
91
- }
92
-
93
- /**
94
- * Unique access to instance of YITH_WCZM_Elementor_Compatibility class
95
- *
96
- * @return YITH_WCZM_Elementor_Compatibility
97
- */
98
- function yith_wczm_elementor_compatibility() {
99
- return YITH_WCZM_Elementor_Compatibility::get_instance();
100
- }
101
-
102
- yith_wczm_elementor_compatibility();
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ *
10
+ * @package YITH\ZoomMagnifier\Classes\Compatibility
11
+ */
12
+
13
+ if ( ! defined( 'ABSPATH' ) || ! defined( 'YITH_YWZM_VERSION' ) ) {
14
+ exit; // Exit if accessed directly.
15
+ }
16
+
17
+ /**
18
+ * Implements the YITH_WCZM_Elementor_Compatibility class.
19
+ *
20
+ * @class YITH_WCZM_Elementor_Compatibility
21
+ * @since 1.5.6
22
+ * @author YITH
23
+ */
24
+ if ( ! class_exists( 'YITH_WCZM_Elementor_Compatibility' ) ) {
25
+
26
+ /**
27
+ * Class YITH_WCZM_Elementor_Compatibility
28
+ */
29
+ class YITH_WCZM_Elementor_Compatibility {
30
+ /**
31
+ * Single instance of the class
32
+ *
33
+ * @var YITH_WCZM_Elementor_Compatibility
34
+ */
35
+ protected static $instance;
36
+
37
+ /**
38
+ * Returns single instance of the class
39
+ *
40
+ * @return YITH_WCZM_Elementor_Compatibility
41
+ */
42
+ public static function get_instance() {
43
+ if ( is_null( self::$instance ) ) {
44
+ self::$instance = new self();
45
+ }
46
+ return self::$instance;
47
+ }
48
+
49
+ /**
50
+ * YITH_WCZM_Elementor_Compatibility constructor.
51
+ */
52
+ public function __construct() {
53
+ if ( did_action( 'elementor/loaded' ) ) {
54
+ add_action( 'elementor/elements/categories_registered', array( $this, 'add_elementor_yith_widget_category' ) );
55
+ add_action( 'elementor/widgets/widgets_registered', array( $this, 'elementor_init_widgets' ) );
56
+
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Add elementor category for YITH.
62
+ *
63
+ * @param mixed $elements_manager Elementor manager.
64
+ */
65
+ public function add_elementor_yith_widget_category( $elements_manager ) {
66
+ $elements_manager->add_category(
67
+ 'yith',
68
+ array(
69
+ 'title' => 'YITH',
70
+ 'icon' => 'fa fa-plug',
71
+ )
72
+ );
73
+
74
+ }
75
+
76
+ /**
77
+ * Initialize Elementor widget.
78
+ *
79
+ * @throws Exception OnCreateClass.
80
+ */
81
+ public function elementor_init_widgets() {
82
+ // Include Widget files.
83
+ require_once YITH_YWZM_LIB_DIR . 'compatibility/elementor/class-yith-wczm-product-images-widget.php';
84
+
85
+ // Register widget.
86
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new \YITH_WCZM_Product_Images_Elementor_Widget() );
87
+
88
+ }
89
+ }
90
+
91
+ }
92
+
93
+ /**
94
+ * Unique access to instance of YITH_WCZM_Elementor_Compatibility class
95
+ *
96
+ * @return YITH_WCZM_Elementor_Compatibility
97
+ */
98
+ function yith_wczm_elementor_compatibility() {
99
+ return YITH_WCZM_Elementor_Compatibility::get_instance();
100
+ }
101
+
102
+ yith_wczm_elementor_compatibility();
lib/compatibility/elementor/class-yith-wczm-product-images-widget.php CHANGED
@@ -1,80 +1,80 @@
1
- <?php // phpcs:ignore WordPress.Files.FileName
2
- /**
3
- * This file belongs to the YIT Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- *
10
- * @package YITH\ZoomMagnifier\Classes\Compatibility\Elementor
11
- */
12
-
13
- use Elementor\Controls_Manager;
14
- use Elementor\Widget_Button;
15
- use ElementorPro\Modules\QueryControl\Module;
16
-
17
- /**
18
- * Class YITH_WCZM_Product_Images_Elementor_Widget
19
- */
20
- class YITH_WCZM_Product_Images_Elementor_Widget extends ElementorPro\Modules\Woocommerce\Widgets\Product_Images {
21
-
22
- /**
23
- * Get name.
24
- *
25
- * @return string
26
- */
27
- public function get_name() {
28
- return 'yith-wczm-auction-form';
29
- }
30
-
31
- /**
32
- * Get title
33
- *
34
- * @return string
35
- */
36
- public function get_title() {
37
- return esc_html__( 'Zoom Product images', 'yith-woocommerce-zoom-magnifier' );
38
- }
39
-
40
-
41
- /**
42
- * Get categories
43
- *
44
- * @return array
45
- */
46
- public function get_categories() {
47
- return array( 'yith' );
48
- }
49
-
50
- /**
51
- * Render
52
- */
53
- public function render() {
54
- $settings = $this->get_settings_for_display();
55
- global $product;
56
-
57
- $product = wc_get_product();
58
-
59
- if ( empty( $product ) ) {
60
- return;
61
- }
62
-
63
- if ( 'yes' === $settings['sale_flash'] ) {
64
- wc_get_template( 'loop/sale-flash.php' );
65
- }
66
- wc_get_template( 'single-product/product-image-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
67
- // On render widget from Editor - trigger the init manually.
68
- if ( wp_doing_ajax() ) {
69
- ?>
70
- <script>
71
- jQuery( '.woocommerce-product-gallery' ).each( function() {
72
- jQuery( this ).wc_product_gallery();
73
- } );
74
- </script>
75
- <?php
76
- }
77
- }
78
-
79
-
80
- }
1
+ <?php // phpcs:ignore WordPress.Files.FileName
2
+ /**
3
+ * This file belongs to the YIT Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ *
10
+ * @package YITH\ZoomMagnifier\Classes\Compatibility\Elementor
11
+ */
12
+
13
+ use Elementor\Controls_Manager;
14
+ use Elementor\Widget_Button;
15
+ use ElementorPro\Modules\QueryControl\Module;
16
+
17
+ /**
18
+ * Class YITH_WCZM_Product_Images_Elementor_Widget
19
+ */
20
+ class YITH_WCZM_Product_Images_Elementor_Widget extends ElementorPro\Modules\Woocommerce\Widgets\Product_Images {
21
+
22
+ /**
23
+ * Get name.
24
+ *
25
+ * @return string
26
+ */
27
+ public function get_name() {
28
+ return 'yith-wczm-auction-form';
29
+ }
30
+
31
+ /**
32
+ * Get title
33
+ *
34
+ * @return string
35
+ */
36
+ public function get_title() {
37
+ return esc_html__( 'Zoom Product images', 'yith-woocommerce-zoom-magnifier' );
38
+ }
39
+
40
+
41
+ /**
42
+ * Get categories
43
+ *
44
+ * @return array
45
+ */
46
+ public function get_categories() {
47
+ return array( 'yith' );
48
+ }
49
+
50
+ /**
51
+ * Render
52
+ */
53
+ public function render() {
54
+ $settings = $this->get_settings_for_display();
55
+ global $product;
56
+
57
+ $product = wc_get_product();
58
+
59
+ if ( empty( $product ) ) {
60
+ return;
61
+ }
62
+
63
+ if ( 'yes' === $settings['sale_flash'] ) {
64
+ wc_get_template( 'loop/sale-flash.php' );
65
+ }
66
+ wc_get_template( 'single-product/product-image-magnifier.php', array(), '', YITH_YWZM_DIR . 'templates/' );
67
+ // On render widget from Editor - trigger the init manually.
68
+ if ( wp_doing_ajax() ) {
69
+ ?>
70
+ <script>
71
+ jQuery( '.woocommerce-product-gallery' ).each( function() {
72
+ jQuery( this ).wc_product_gallery();
73
+ } );
74
+ </script>
75
+ <?php
76
+ }
77
+ }
78
+
79
+
80
+ }
lib/functions.yith-ywzm.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Functions
4
+ *
5
+ * @author YITH
6
+ * @package YITH\ZoomMagnifier
7
+ * @version 1.1.2
8
+ */
9
+
10
+ if ( ! defined( 'YITH_WCMG' ) ) {
11
+ exit;
12
+ } // Exit if accessed directly
13
+
14
+ if ( ! function_exists( 'yith_wcmg_is_enabled' ) ) {
15
+ /**
16
+ * Check if the plugin is enabled for the current context
17
+ *
18
+ * @since 1.0.0
19
+ * @return bool
20
+ */
21
+ function yith_wcmg_is_enabled() {
22
+
23
+ if ( wp_is_mobile() ) {
24
+ if ( 'yes' === get_option( 'ywzm_hide_zoom_mobile' ) ){
25
+ return false;
26
+ }
27
+ else{
28
+ return true;
29
+ }
30
+ }
31
+ else{
32
+ if ( defined( 'YITH_YWZM_INIT' ) ) {
33
+ return true;
34
+ }
35
+ else{
36
+ return false;
37
+ }
38
+ }
39
+ }
40
+ }
41
+
plugin-fw/LICENSE.txt CHANGED
@@ -1,696 +1,696 @@
1
- YITH Plugin Framework
2
-
3
- Copyright 2015 Your Inspiration Themes (email : plugins@yithemes.com)
4
-
5
- This program is free software; you can redistribute it and/or modify
6
- it under the terms of the GNU General Public License as published by
7
- the Free Software Foundation; either version 3 of the License, or
8
- (at your option) any later version.
9
-
10
- This program is distributed in the hope that it will be useful,
11
- but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- GNU General Public License for more details.
14
-
15
- You should have received a copy of the GNU General Public License
16
- along with this program; if not, write to the Free Software
17
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
-
19
- YITH Plugin Framework is released under the GPL
20
-
21
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22
-
23
- GNU GENERAL PUBLIC LICENSE
24
- Version 3, 29 June 2007
25
-
26
- Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
27
- Everyone is permitted to copy and distribute verbatim copies
28
- of this license document, but changing it is not allowed.
29
-
30
- Preamble
31
-
32
- The GNU General Public License is a free, copyleft license for
33
- software and other kinds of works.
34
-
35
- The licenses for most software and other practical works are designed
36
- to take away your freedom to share and change the works. By contrast,
37
- the GNU General Public License is intended to guarantee your freedom to
38
- share and change all versions of a program--to make sure it remains free
39
- software for all its users. We, the Free Software Foundation, use the
40
- GNU General Public License for most of our software; it applies also to
41
- any other work released this way by its authors. You can apply it to
42
- your programs, too.
43
-
44
- When we speak of free software, we are referring to freedom, not
45
- price. Our General Public Licenses are designed to make sure that you
46
- have the freedom to distribute copies of free software (and charge for
47
- them if you wish), that you receive source code or can get it if you
48
- want it, that you can change the software or use pieces of it in new
49
- free programs, and that you know you can do these things.
50
-
51
- To protect your rights, we need to prevent others from denying you
52
- these rights or asking you to surrender the rights. Therefore, you have
53
- certain responsibilities if you distribute copies of the software, or if
54
- you modify it: responsibilities to respect the freedom of others.
55
-
56
- For example, if you distribute copies of such a program, whether
57
- gratis or for a fee, you must pass on to the recipients the same
58
- freedoms that you received. You must make sure that they, too, receive
59
- or can get the source code. And you must show them these terms so they
60
- know their rights.
61
-
62
- Developers that use the GNU GPL protect your rights with two steps:
63
- (1) assert copyright on the software, and (2) offer you this License
64
- giving you legal permission to copy, distribute and/or modify it.
65
-
66
- For the developers' and authors' protection, the GPL clearly explains
67
- that there is no warranty for this free software. For both users' and
68
- authors' sake, the GPL requires that modified versions be marked as
69
- changed, so that their problems will not be attributed erroneously to
70
- authors of previous versions.
71
-
72
- Some devices are designed to deny users access to install or run
73
- modified versions of the software inside them, although the manufacturer
74
- can do so. This is fundamentally incompatible with the aim of
75
- protecting users' freedom to change the software. The systematic
76
- pattern of such abuse occurs in the area of products for individuals to
77
- use, which is precisely where it is most unacceptable. Therefore, we
78
- have designed this version of the GPL to prohibit the practice for those
79
- products. If such problems arise substantially in other domains, we
80
- stand ready to extend this provision to those domains in future versions
81
- of the GPL, as needed to protect the freedom of users.
82
-
83
- Finally, every program is threatened constantly by software patents.
84
- States should not allow patents to restrict development and use of
85
- software on general-purpose computers, but in those that do, we wish to
86
- avoid the special danger that patents applied to a free program could
87
- make it effectively proprietary. To prevent this, the GPL assures that
88
- patents cannot be used to render the program non-free.
89
-
90
- The precise terms and conditions for copying, distribution and
91
- modification follow.
92
-
93
- TERMS AND CONDITIONS
94
-
95
- 0. Definitions.
96
-
97
- "This License" refers to version 3 of the GNU General Public License.
98
-
99
- "Copyright" also means copyright-like laws that apply to other kinds of
100
- works, such as semiconductor masks.
101
-
102
- "The Program" refers to any copyrightable work licensed under this
103
- License. Each licensee is addressed as "you". "Licensees" and
104
- "recipients" may be individuals or organizations.
105
-
106
- To "modify" a work means to copy from or adapt all or part of the work
107
- in a fashion requiring copyright permission, other than the making of an
108
- exact copy. The resulting work is called a "modified version" of the
109
- earlier work or a work "based on" the earlier work.
110
-
111
- A "covered work" means either the unmodified Program or a work based
112
- on the Program.
113
-
114
- To "propagate" a work means to do anything with it that, without
115
- permission, would make you directly or secondarily liable for
116
- infringement under applicable copyright law, except executing it on a
117
- computer or modifying a private copy. Propagation includes copying,
118
- distribution (with or without modification), making available to the
119
- public, and in some countries other activities as well.
120
-
121
- To "convey" a work means any kind of propagation that enables other
122
- parties to make or receive copies. Mere interaction with a user through
123
- a computer network, with no transfer of a copy, is not conveying.
124
-
125
- An interactive user interface displays "Appropriate Legal Notices"
126
- to the extent that it includes a convenient and prominently visible
127
- feature that (1) displays an appropriate copyright notice, and (2)
128
- tells the user that there is no warranty for the work (except to the
129
- extent that warranties are provided), that licensees may convey the
130
- work under this License, and how to view a copy of this License. If
131
- the interface presents a list of user commands or options, such as a
132
- menu, a prominent item in the list meets this criterion.
133
-
134
- 1. Source Code.
135
-
136
- The "source code" for a work means the preferred form of the work
137
- for making modifications to it. "Object code" means any non-source
138
- form of a work.
139
-
140
- A "Standard Interface" means an interface that either is an official
141
- standard defined by a recognized standards body, or, in the case of
142
- interfaces specified for a particular programming language, one that
143
- is widely used among developers working in that language.
144
-
145
- The "System Libraries" of an executable work include anything, other
146
- than the work as a whole, that (a) is included in the normal form of
147
- packaging a Major Component, but which is not part of that Major
148
- Component, and (b) serves only to enable use of the work with that
149
- Major Component, or to implement a Standard Interface for which an
150
- implementation is available to the public in source code form. A
151
- "Major Component", in this context, means a major essential component
152
- (kernel, window system, and so on) of the specific operating system
153
- (if any) on which the executable work runs, or a compiler used to
154
- produce the work, or an object code interpreter used to run it.
155
-
156
- The "Corresponding Source" for a work in object code form means all
157
- the source code needed to generate, install, and (for an executable
158
- work) run the object code and to modify the work, including scripts to
159
- control those activities. However, it does not include the work's
160
- System Libraries, or general-purpose tools or generally available free
161
- programs which are used unmodified in performing those activities but
162
- which are not part of the work. For example, Corresponding Source
163
- includes interface definition files associated with source files for
164
- the work, and the source code for shared libraries and dynamically
165
- linked subprograms that the work is specifically designed to require,
166
- such as by intimate data communication or control flow between those
167
- subprograms and other parts of the work.
168
-
169
- The Corresponding Source need not include anything that users
170
- can regenerate automatically from other parts of the Corresponding
171
- Source.
172
-
173
- The Corresponding Source for a work in source code form is that
174
- same work.
175
-
176
- 2. Basic Permissions.
177
-
178
- All rights granted under this License are granted for the term of
179
- copyright on the Program, and are irrevocable provided the stated
180
- conditions are met. This License explicitly affirms your unlimited
181
- permission to run the unmodified Program. The output from running a
182
- covered work is covered by this License only if the output, given its
183
- content, constitutes a covered work. This License acknowledges your
184
- rights of fair use or other equivalent, as provided by copyright law.
185
-
186
- You may make, run and propagate covered works that you do not
187
- convey, without conditions so long as your license otherwise remains
188
- in force. You may convey covered works to others for the sole purpose
189
- of having them make modifications exclusively for you, or provide you
190
- with facilities for running those works, provided that you comply with
191
- the terms of this License in conveying all material for which you do
192
- not control copyright. Those thus making or running the covered works
193
- for you must do so exclusively on your behalf, under your direction
194
- and control, on terms that prohibit them from making any copies of
195
- your copyrighted material outside their relationship with you.
196
-
197
- Conveying under any other circumstances is permitted solely under
198
- the conditions stated below. Sublicensing is not allowed; section 10
199
- makes it unnecessary.
200
-
201
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
202
-
203
- No covered work shall be deemed part of an effective technological
204
- measure under any applicable law fulfilling obligations under article
205
- 11 of the WIPO copyright treaty adopted on 20 December 1996, or
206
- similar laws prohibiting or restricting circumvention of such
207
- measures.
208
-
209
- When you convey a covered work, you waive any legal power to forbid
210
- circumvention of technological measures to the extent such circumvention
211
- is effected by exercising rights under this License with respect to
212
- the covered work, and you disclaim any intention to limit operation or
213
- modification of the work as a means of enforcing, against the work's
214
- users, your or third parties' legal rights to forbid circumvention of
215
- technological measures.
216
-
217
- 4. Conveying Verbatim Copies.
218
-
219
- You may convey verbatim copies of the Program's source code as you
220
- receive it, in any medium, provided that you conspicuously and
221
- appropriately publish on each copy an appropriate copyright notice;
222
- keep intact all notices stating that this License and any
223
- non-permissive terms added in accord with section 7 apply to the code;
224
- keep intact all notices of the absence of any warranty; and give all
225
- recipients a copy of this License along with the Program.
226
-
227
- You may charge any price or no price for each copy that you convey,
228
- and you may offer support or warranty protection for a fee.
229
-
230
- 5. Conveying Modified Source Versions.
231
-
232
- You may convey a work based on the Program, or the modifications to
233
- produce it from the Program, in the form of source code under the
234
- terms of section 4, provided that you also meet all of these conditions:
235
-
236
- a) The work must carry prominent notices stating that you modified
237
- it, and giving a relevant date.
238
-
239
- b) The work must carry prominent notices stating that it is
240
- released under this License and any conditions added under section
241
- 7. This requirement modifies the requirement in section 4 to
242
- "keep intact all notices".
243
-
244
- c) You must license the entire work, as a whole, under this
245
- License to anyone who comes into possession of a copy. This
246
- License will therefore apply, along with any applicable section 7
247
- additional terms, to the whole of the work, and all its parts,
248
- regardless of how they are packaged. This License gives no
249
- permission to license the work in any other way, but it does not
250
- invalidate such permission if you have separately received it.
251
-
252
- d) If the work has interactive user interfaces, each must display
253
- Appropriate Legal Notices; however, if the Program has interactive
254
- interfaces that do not display Appropriate Legal Notices, your
255
- work need not make them do so.
256
-
257
- A compilation of a covered work with other separate and independent
258
- works, which are not by their nature extensions of the covered work,
259
- and which are not combined with it such as to form a larger program,
260
- in or on a volume of a storage or distribution medium, is called an
261
- "aggregate" if the compilation and its resulting copyright are not
262
- used to limit the access or legal rights of the compilation's users
263
- beyond what the individual works permit. Inclusion of a covered work
264
- in an aggregate does not cause this License to apply to the other
265
- parts of the aggregate.
266
-
267
- 6. Conveying Non-Source Forms.
268
-
269
- You may convey a covered work in object code form under the terms
270
- of sections 4 and 5, provided that you also convey the
271
- machine-readable Corresponding Source under the terms of this License,
272
- in one of these ways:
273
-
274
- a) Convey the object code in, or embodied in, a physical product
275
- (including a physical distribution medium), accompanied by the
276
- Corresponding Source fixed on a durable physical medium
277
- customarily used for software interchange.
278
-
279
- b) Convey the object code in, or embodied in, a physical product
280
- (including a physical distribution medium), accompanied by a
281
- written offer, valid for at least three years and valid for as
282
- long as you offer spare parts or customer support for that product
283
- model, to give anyone who possesses the object code either (1) a
284
- copy of the Corresponding Source for all the software in the
285
- product that is covered by this License, on a durable physical
286
- medium customarily used for software interchange, for a price no
287
- more than your reasonable cost of physically performing this
288
- conveying of source, or (2) access to copy the
289
- Corresponding Source from a network server at no charge.
290
-
291
- c) Convey individual copies of the object code with a copy of the
292
- written offer to provide the Corresponding Source. This
293
- alternative is allowed only occasionally and noncommercially, and
294
- only if you received the object code with such an offer, in accord
295
- with subsection 6b.
296
-
297
- d) Convey the object code by offering access from a designated
298
- place (gratis or for a charge), and offer equivalent access to the
299
- Corresponding Source in the same way through the same place at no
300
- further charge. You need not require recipients to copy the
301
- Corresponding Source along with the object code. If the place to
302
- copy the object code is a network server, the Corresponding Source
303
- may be on a different server (operated by you or a third party)
304
- that supports equivalent copying facilities, provided you maintain
305
- clear directions next to the object code saying where to find the
306
- Corresponding Source. Regardless of what server hosts the
307
- Corresponding Source, you remain obligated to ensure that it is
308
- available for as long as needed to satisfy these requirements.
309
-
310
- e) Convey the object code using peer-to-peer transmission, provided
311
- you inform other peers where the object code and Corresponding
312
- Source of the work are being offered to the general public at no
313
- charge under subsection 6d.
314
-
315
- A separable portion of the object code, whose source code is excluded
316
- from the Corresponding Source as a System Library, need not be
317
- included in conveying the object code work.
318
-
319
- A "User Product" is either (1) a "consumer product", which means any
320
- tangible personal property which is normally used for personal, family,
321
- or household purposes, or (2) anything designed or sold for incorporation
322
- into a dwelling. In determining whether a product is a consumer product,
323
- doubtful cases shall be resolved in favor of coverage. For a particular
324
- product received by a particular user, "normally used" refers to a
325
- typical or common use of that class of product, regardless of the status
326
- of the particular user or of the way in which the particular user
327
- actually uses, or expects or is expected to use, the product. A product
328
- is a consumer product regardless of whether the product has substantial
329
- commercial, industrial or non-consumer uses, unless such uses represent
330
- the only significant mode of use of the product.
331
-
332
- "Installation Information" for a User Product means any methods,
333
- procedures, authorization keys, or other information required to install
334
- and execute modified versions of a covered work in that User Product from
335
- a modified version of its Corresponding Source. The information must
336
- suffice to ensure that the continued functioning of the modified object
337
- code is in no case prevented or interfered with solely because
338
- modification has been made.
339
-
340
- If you convey an object code work under this section in, or with, or
341
- specifically for use in, a User Product, and the conveying occurs as
342
- part of a transaction in which the right of possession and use of the
343
- User Product is transferred to the recipient in perpetuity or for a
344
- fixed term (regardless of how the transaction is characterized), the
345
- Corresponding Source conveyed under this section must be accompanied
346
- by the Installation Information. But this requirement does not apply
347
- if neither you nor any third party retains the ability to install
348
- modified object code on the User Product (for example, the work has
349
- been installed in ROM).
350
-
351
- The requirement to provide Installation Information does not include a
352
- requirement to continue to provide support service, warranty, or updates
353
- for a work that has been modified or installed by the recipient, or for
354
- the User Product in which it has been modified or installed. Access to a
355
- network may be denied when the modification itself materially and
356
- adversely affects the operation of the network or violates the rules and
357
- protocols for communication across the network.
358
-
359
- Corresponding Source conveyed, and Installation Information provided,
360
- in accord with this section must be in a format that is publicly
361
- documented (and with an implementation available to the public in
362
- source code form), and must require no special password or key for
363
- unpacking, reading or copying.
364
-
365
- 7. Additional Terms.
366
-
367
- "Additional permissions" are terms that supplement the terms of this
368
- License by making exceptions from one or more of its conditions.
369
- Additional permissions that are applicable to the entire Program shall
370
- be treated as though they were included in this License, to the extent
371
- that they are valid under applicable law. If additional permissions
372
- apply only to part of the Program, that part may be used separately
373
- under those permissions, but the entire Program remains governed by
374
- this License without regard to the additional permissions.
375
-
376
- When you convey a copy of a covered work, you may at your option
377
- remove any additional permissions from that copy, or from any part of
378
- it. (Additional permissions may be written to require their own
379
- removal in certain cases when you modify the work.) You may place
380
- additional permissions on material, added by you to a covered work,
381
- for which you have or can give appropriate copyright permission.
382
-
383
- Notwithstanding any other provision of this License, for material you
384
- add to a covered work, you may (if authorized by the copyright holders of
385
- that material) supplement the terms of this License with terms:
386
-
387
- a) Disclaiming warranty or limiting liability differently from the
388
- terms of sections 15 and 16 of this License; or
389
-
390
- b) Requiring preservation of specified reasonable legal notices or
391
- author attributions in that material or in the Appropriate Legal
392
- Notices displayed by works containing it; or
393
-
394
- c) Prohibiting misrepresentation of the origin of that material, or
395
- requiring that modified versions of such material be marked in
396
- reasonable ways as different from the original version; or
397
-
398
- d) Limiting the use for publicity purposes of names of licensors or
399
- authors of the material; or
400
-
401
- e) Declining to grant rights under trademark law for use of some
402
- trade names, trademarks, or service marks; or
403
-
404
- f) Requiring indemnification of licensors and authors of that
405
- material by anyone who conveys the material (or modified versions of
406
- it) with contractual assumptions of liability to the recipient, for
407
- any liability that these contractual assumptions directly impose on
408
- those licensors and authors.
409
-
410
- All other non-permissive additional terms are considered "further
411
- restrictions" within the meaning of section 10. If the Program as you
412
- received it, or any part of it, contains a notice stating that it is
413
- governed by this License along with a term that is a further
414
- restriction, you may remove that term. If a license document contains
415
- a further restriction but permits relicensing or conveying under this
416
- License, you may add to a covered work material governed by the terms
417
- of that license document, provided that the further restriction does
418
- not survive such relicensing or conveying.
419
-
420
- If you add terms to a covered work in accord with this section, you
421
- must place, in the relevant source files, a statement of the
422
- additional terms that apply to those files, or a notice indicating
423
- where to find the applicable terms.
424
-
425
- Additional terms, permissive or non-permissive, may be stated in the
426
- form of a separately written license, or stated as exceptions;
427
- the above requirements apply either way.
428
-
429
- 8. Termination.
430
-
431
- You may not propagate or modify a covered work except as expressly
432
- provided under this License. Any attempt otherwise to propagate or
433
- modify it is void, and will automatically terminate your rights under
434
- this License (including any patent licenses granted under the third
435
- paragraph of section 11).
436
-
437
- However, if you cease all violation of this License, then your
438
- license from a particular copyright holder is reinstated (a)
439
- provisionally, unless and until the copyright holder explicitly and
440
- finally terminates your license, and (b) permanently, if the copyright
441
- holder fails to notify you of the violation by some reasonable means
442
- prior to 60 days after the cessation.
443
-
444
- Moreover, your license from a particular copyright holder is
445
- reinstated permanently if the copyright holder notifies you of the
446
- violation by some reasonable means, this is the first time you have
447
- received notice of violation of this License (for any work) from that
448
- copyright holder, and you cure the violation prior to 30 days after
449
- your receipt of the notice.
450
-
451
- Termination of your rights under this section does not terminate the
452
- licenses of parties who have received copies or rights from you under
453
- this License. If your rights have been terminated and not permanently
454
- reinstated, you do not qualify to receive new licenses for the same
455
- material under section 10.
456
-
457
- 9. Acceptance Not Required for Having Copies.
458
-
459
- You are not required to accept this License in order to receive or
460
- run a copy of the Program. Ancillary propagation of a covered work
461
- occurring solely as a consequence of using peer-to-peer transmission
462
- to receive a copy likewise does not require acceptance. However,
463
- nothing other than this License grants you permission to propagate or
464
- modify any covered work. These actions infringe copyright if you do
465
- not accept this License. Therefore, by modifying or propagating a
466
- covered work, you indicate your acceptance of this License to do so.
467
-
468
- 10. Automatic Licensing of Downstream Recipients.
469
-
470
- Each time you convey a covered work, the recipient automatically
471
- receives a license from the original licensors, to run, modify and
472
- propagate that work, subject to this License. You are not responsible
473
- for enforcing compliance by third parties with this License.
474
-
475
- An "entity transaction" is a transaction transferring control of an
476
- organization, or substantially all assets of one, or subdividing an
477
- organization, or merging organizations. If propagation of a covered
478
- work results from an entity transaction, each party to that
479
- transaction who receives a copy of the work also receives whatever
480
- licenses to the work the party's predecessor in interest had or could
481
- give under the previous paragraph, plus a right to possession of the
482
- Corresponding Source of the work from the predecessor in interest, if
483
- the predecessor has it or can get it with reasonable efforts.
484
-
485
- You may not impose any further restrictions on the exercise of the
486
- rights granted or affirmed under this License. For example, you may
487
- not impose a license fee, royalty, or other charge for exercise of
488
- rights granted under this License, and you may not initiate litigation
489
- (including a cross-claim or counterclaim in a lawsuit) alleging that
490
- any patent claim is infringed by making, using, selling, offering for
491
- sale, or importing the Program or any portion of it.
492
-
493
- 11. Patents.
494
-
495
- A "contributor" is a copyright holder who authorizes use under this
496
- License of the Program or a work on which the Program is based. The
497
- work thus licensed is called the contributor's "contributor version".
498
-
499
- A contributor's "essential patent claims" are all patent claims
500
- owned or controlled by the contributor, whether already acquired or
501
- hereafter acquired, that would be infringed by some manner, permitted
502
- by this License, of making, using, or selling its contributor version,
503
- but do not include claims that would be infringed only as a
504
- consequence of further modification of the contributor version. For
505
- purposes of this definition, "control" includes the right to grant
506
- patent sublicenses in a manner consistent with the requirements of
507
- this License.
508
-
509
- Each contributor grants you a non-exclusive, worldwide, royalty-free
510
- patent license under the contributor's essential patent claims, to
511
- make, use, sell, offer for sale, import and otherwise run, modify and
512
- propagate the contents of its contributor version.
513
-
514
- In the following three paragraphs, a "patent license" is any express
515
- agreement or commitment, however denominated, not to enforce a patent
516
- (such as an express permission to practice a patent or covenant not to
517
- sue for patent infringement). To "grant" such a patent license to a
518
- party means to make such an agreement or commitment not to enforce a
519
- patent against the party.
520
-
521
- If you convey a covered work, knowingly relying on a patent license,
522
- and the Corresponding Source of the work is not available for anyone
523
- to copy, free of charge and under the terms of this License, through a
524
- publicly available network server or other readily accessible means,
525
- then you must either (1) cause the Corresponding Source to be so
526
- available, or (2) arrange to deprive yourself of the benefit of the
527
- patent license for this particular work, or (3) arrange, in a manner
528
- consistent with the requirements of this License, to extend the patent
529
- license to downstream recipients. "Knowingly relying" means you have
530
- actual knowledge that, but for the patent license, your conveying the
531
- covered work in a country, or your recipient's use of the covered work
532
- in a country, would infringe one or more identifiable patents in that
533
- country that you have reason to believe are valid.
534
-
535
- If, pursuant to or in connection with a single transaction or
536
- arrangement, you convey, or propagate by procuring conveyance of, a
537
- covered work, and grant a patent license to some of the parties
538
- receiving the covered work authorizing them to use, propagate, modify
539
- or convey a specific copy of the covered work, then the patent license
540
- you grant is automatically extended to all recipients of the covered
541
- work and works based on it.
542
-
543
- A patent license is "discriminatory" if it does not include within
544
- the scope of its coverage, prohibits the exercise of, or is
545
- conditioned on the non-exercise of one or more of the rights that are
546
- specifically granted under this License. You may not convey a covered
547
- work if you are a party to an arrangement with a third party that is
548
- in the business of distributing software, under which you make payment
549
- to the third party based on the extent of your activity of conveying
550
- the work, and under which the third party grants, to any of the
551
- parties who would receive the covered work from you, a discriminatory
552
- patent license (a) in connection with copies of the covered work
553
- conveyed by you (or copies made from those copies), or (b) primarily
554
- for and in connection with specific products or compilations that
555
- contain the covered work, unless you entered into that arrangement,
556
- or that patent license was granted, prior to 28 March 2007.
557
-
558
- Nothing in this License shall be construed as excluding or limiting
559
- any implied license or other defenses to infringement that may
560
- otherwise be available to you under applicable patent law.
561
-
562
- 12. No Surrender of Others' Freedom.
563
-
564
- If conditions are imposed on you (whether by court order, agreement or
565
- otherwise) that contradict the conditions of this License, they do not
566
- excuse you from the conditions of this License. If you cannot convey a
567
- covered work so as to satisfy simultaneously your obligations under this
568
- License and any other pertinent obligations, then as a consequence you may
569
- not convey it at all. For example, if you agree to terms that obligate you
570
- to collect a royalty for further conveying from those to whom you convey
571
- the Program, the only way you could satisfy both those terms and this
572
- License would be to refrain entirely from conveying the Program.
573
-
574
- 13. Use with the GNU Affero General Public License.
575
-
576
- Notwithstanding any other provision of this License, you have
577
- permission to link or combine any covered work with a work licensed
578
- under version 3 of the GNU Affero General Public License into a single
579
- combined work, and to convey the resulting work. The terms of this
580
- License will continue to apply to the part which is the covered work,
581
- but the special requirements of the GNU Affero General Public License,
582
- section 13, concerning interaction through a network will apply to the
583
- combination as such.
584
-
585
- 14. Revised Versions of this License.
586
-
587
- The Free Software Foundation may publish revised and/or new versions of
588
- the GNU General Public License from time to time. Such new versions will
589
- be similar in spirit to the present version, but may differ in detail to
590
- address new problems or concerns.
591
-
592
- Each version is given a distinguishing version number. If the
593
- Program specifies that a certain numbered version of the GNU General
594
- Public License "or any later version" applies to it, you have the
595
- option of following the terms and conditions either of that numbered
596
- version or of any later version published by the Free Software
597
- Foundation. If the Program does not specify a version number of the
598
- GNU General Public License, you may choose any version ever published
599
- by the Free Software Foundation.
600
-
601
- If the Program specifies that a proxy can decide which future
602
- versions of the GNU General Public License can be used, that proxy's
603
- public statement of acceptance of a version permanently authorizes you
604
- to choose that version for the Program.
605
-
606
- Later license versions may give you additional or different
607
- permissions. However, no additional obligations are imposed on any
608
- author or copyright holder as a result of your choosing to follow a
609
- later version.
610
-
611
- 15. Disclaimer of Warranty.
612
-
613
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
614
- APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
615
- HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
616
- OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
617
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
618
- PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
619
- IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
620
- ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
621
-
622
- 16. Limitation of Liability.
623
-
624
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
625
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
626
- THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
627
- GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
628
- USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
629
- DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
630
- PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
631
- EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
632
- SUCH DAMAGES.
633
-
634
- 17. Interpretation of Sections 15 and 16.
635
-
636
- If the disclaimer of warranty and limitation of liability provided
637
- above cannot be given local legal effect according to their terms,
638
- reviewing courts shall apply local law that most closely approximates
639
- an absolute waiver of all civil liability in connection with the
640
- Program, unless a warranty or assumption of liability accompanies a
641
- copy of the Program in return for a fee.
642
-
643
- END OF TERMS AND CONDITIONS
644
-
645
- How to Apply These Terms to Your New Programs
646
-
647
- If you develop a new program, and you want it to be of the greatest
648
- possible use to the public, the best way to achieve this is to make it
649
- free software which everyone can redistribute and change under these terms.
650
-
651
- To do so, attach the following notices to the program. It is safest
652
- to attach them to the start of each source file to most effectively
653
- state the exclusion of warranty; and each file should have at least
654
- the "copyright" line and a pointer to where the full notice is found.
655
-
656
- <one line to give the program's name and a brief idea of what it does.>
657
- Copyright © <year> <name of author>
658
-
659
- This program is free software: you can redistribute it and/or modify
660
- it under the terms of the GNU General Public License as published by
661
- the Free Software Foundation, either version 3 of the License, or
662
- (at your option) any later version.
663
-
664
- This program is distributed in the hope that it will be useful,
665
- but WITHOUT ANY WARRANTY; without even the implied warranty of
666
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
667
- GNU General Public License for more details.
668
-
669
- You should have received a copy of the GNU General Public License
670
- along with this program. If not, see <https://www.gnu.org/licenses/>.
671
-
672
- Also add information on how to contact you by electronic and paper mail.
673
-
674
- If the program does terminal interaction, make it output a short
675
- notice like this when it starts in an interactive mode:
676
-
677
- <program> Copyright © <year> <name of author>
678
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
679
- This is free software, and you are welcome to redistribute it
680
- under certain conditions; type `show c' for details.
681
-
682
- The hypothetical commands `show w' and `show c' should show the appropriate
683
- parts of the General Public License. Of course, your program's commands
684
- might be different; for a GUI interface, you would use an "about box".
685
-
686
- You should also get your employer (if you work as a programmer) or school,
687
- if any, to sign a "copyright disclaimer" for the program, if necessary.
688
- For more information on this, and how to apply and follow the GNU GPL, see
689
- <https://www.gnu.org/licenses/>.
690
-
691
- The GNU General Public License does not permit incorporating your program
692
- into proprietary programs. If your program is a subroutine library, you
693
- may consider it more useful to permit linking proprietary applications with
694
- the library. If this is what you want to do, use the GNU Lesser General
695
- Public License instead of this License. But first, please read
696
  <https://www.gnu.org/philosophy/why-not-lgpl.html>.
1
+ YITH Plugin Framework
2
+
3
+ Copyright 2015 Your Inspiration Themes (email : plugins@yithemes.com)
4
+
5
+ This program is free software; you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation; either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ YITH Plugin Framework is released under the GPL
20
+
21
+ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22
+
23
+ GNU GENERAL PUBLIC LICENSE
24
+ Version 3, 29 June 2007
25
+
26
+ Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
27
+ Everyone is permitted to copy and distribute verbatim copies
28
+ of this license document, but changing it is not allowed.
29
+
30
+ Preamble
31
+
32
+ The GNU General Public License is a free, copyleft license for
33
+ software and other kinds of works.
34
+
35
+ The licenses for most software and other practical works are designed
36
+ to take away your freedom to share and change the works. By contrast,
37
+ the GNU General Public License is intended to guarantee your freedom to
38
+ share and change all versions of a program--to make sure it remains free
39
+ software for all its users. We, the Free Software Foundation, use the
40
+ GNU General Public License for most of our software; it applies also to
41
+ any other work released this way by its authors. You can apply it to
42
+ your programs, too.
43
+
44
+ When we speak of free software, we are referring to freedom, not
45
+ price. Our General Public Licenses are designed to make sure that you
46
+ have the freedom to distribute copies of free software (and charge for
47
+ them if you wish), that you receive source code or can get it if you
48
+ want it, that you can change the software or use pieces of it in new
49
+ free programs, and that you know you can do these things.
50
+
51
+ To protect your rights, we need to prevent others from denying you
52
+ these rights or asking you to surrender the rights. Therefore, you have
53
+ certain responsibilities if you distribute copies of the software, or if
54
+ you modify it: responsibilities to respect the freedom of others.
55
+
56
+ For example, if you distribute copies of such a program, whether
57
+ gratis or for a fee, you must pass on to the recipients the same
58
+ freedoms that you received. You must make sure that they, too, receive
59
+ or can get the source code. And you must show them these terms so they
60
+ know their rights.
61
+
62
+ Developers that use the GNU GPL protect your rights with two steps:
63
+ (1) assert copyright on the software, and (2) offer you this License
64
+ giving you legal permission to copy, distribute and/or modify it.
65
+
66
+ For the developers' and authors' protection, the GPL clearly explains
67
+ that there is no warranty for this free software. For both users' and
68
+ authors' sake, the GPL requires that modified versions be marked as
69
+ changed, so that their problems will not be attributed erroneously to
70
+ authors of previous versions.
71
+
72
+ Some devices are designed to deny users access to install or run
73
+ modified versions of the software inside them, although the manufacturer
74
+ can do so. This is fundamentally incompatible with the aim of
75
+ protecting users' freedom to change the software. The systematic
76
+ pattern of such abuse occurs in the area of products for individuals to
77
+ use, which is precisely where it is most unacceptable. Therefore, we
78
+ have designed this version of the GPL to prohibit the practice for those
79
+ products. If such problems arise substantially in other domains, we
80
+ stand ready to extend this provision to those domains in future versions
81
+ of the GPL, as needed to protect the freedom of users.
82
+
83
+ Finally, every program is threatened constantly by software patents.
84
+ States should not allow patents to restrict development and use of
85
+ software on general-purpose computers, but in those that do, we wish to
86
+ avoid the special danger that patents applied to a free program could
87
+ make it effectively proprietary. To prevent this, the GPL assures that
88
+ patents cannot be used to render the program non-free.
89
+
90
+ The precise terms and conditions for copying, distribution and
91
+ modification follow.
92
+
93
+ TERMS AND CONDITIONS
94
+
95
+ 0. Definitions.
96
+
97
+ "This License" refers to version 3 of the GNU General Public License.
98
+
99
+ "Copyright" also means copyright-like laws that apply to other kinds of
100
+ works, such as semiconductor masks.
101
+
102
+ "The Program" refers to any copyrightable work licensed under this
103
+ License. Each licensee is addressed as "you". "Licensees" and
104
+ "recipients" may be individuals or organizations.
105
+
106
+ To "modify" a work means to copy from or adapt all or part of the work
107
+ in a fashion requiring copyright permission, other than the making of an
108
+ exact copy. The resulting work is called a "modified version" of the
109
+ earlier work or a work "based on" the earlier work.
110
+
111
+ A "covered work" means either the unmodified Program or a work based
112
+ on the Program.
113
+
114
+ To "propagate" a work means to do anything with it that, without
115
+ permission, would make you directly or secondarily liable for
116
+ infringement under applicable copyright law, except executing it on a
117
+ computer or modifying a private copy. Propagation includes copying,
118
+ distribution (with or without modification), making available to the
119
+ public, and in some countries other activities as well.
120
+
121
+ To "convey" a work means any kind of propagation that enables other
122
+ parties to make or receive copies. Mere interaction with a user through
123
+ a computer network, with no transfer of a copy, is not conveying.
124
+
125
+ An interactive user interface displays "Appropriate Legal Notices"
126
+ to the extent that it includes a convenient and prominently visible
127
+ feature that (1) displays an appropriate copyright notice, and (2)
128
+ tells the user that there is no warranty for the work (except to the
129
+ extent that warranties are provided), that licensees may convey the
130
+ work under this License, and how to view a copy of this License. If
131
+ the interface presents a list of user commands or options, such as a
132
+ menu, a prominent item in the list meets this criterion.
133
+
134
+ 1. Source Code.
135
+
136
+ The "source code" for a work means the preferred form of the work
137
+ for making modifications to it. "Object code" means any non-source
138
+ form of a work.
139
+
140
+ A "Standard Interface" means an interface that either is an official
141
+ standard defined by a recognized standards body, or, in the case of
142
+ interfaces specified for a particular programming language, one that
143
+ is widely used among developers working in that language.
144
+
145
+ The "System Libraries" of an executable work include anything, other
146
+ than the work as a whole, that (a) is included in the normal form of
147
+ packaging a Major Component, but which is not part of that Major
148
+ Component, and (b) serves only to enable use of the work with that
149
+ Major Component, or to implement a Standard Interface for which an
150
+ implementation is available to the public in source code form. A
151
+ "Major Component", in this context, means a major essential component
152
+ (kernel, window system, and so on) of the specific operating system
153
+ (if any) on which the executable work runs, or a compiler used to
154
+ produce the work, or an object code interpreter used to run it.
155
+
156
+ The "Corresponding Source" for a work in object code form means all
157
+ the source code needed to generate, install, and (for an executable
158
+ work) run the object code and to modify the work, including scripts to
159
+ control those activities. However, it does not include the work's
160
+ System Libraries, or general-purpose tools or generally available free
161
+ programs which are used unmodified in performing those activities but
162
+ which are not part of the work. For example, Corresponding Source
163
+ includes interface definition files associated with source files for
164
+ the work, and the source code for shared libraries and dynamically
165
+ linked subprograms that the work is specifically designed to require,
166
+ such as by intimate data communication or control flow between those
167
+ subprograms and other parts of the work.
168
+
169
+ The Corresponding Source need not include anything that users
170
+ can regenerate automatically from other parts of the Corresponding
171
+ Source.
172
+
173
+ The Corresponding Source for a work in source code form is that
174
+ same work.
175
+
176
+ 2. Basic Permissions.
177
+
178
+ All rights granted under this License are granted for the term of
179
+ copyright on the Program, and are irrevocable provided the stated
180
+ conditions are met. This License explicitly affirms your unlimited
181
+ permission to run the unmodified Program. The output from running a
182
+ covered work is covered by this License only if the output, given its
183
+ content, constitutes a covered work. This License acknowledges your
184
+ rights of fair use or other equivalent, as provided by copyright law.
185
+
186
+ You may make, run and propagate covered works that you do not
187
+ convey, without conditions so long as your license otherwise remains
188
+ in force. You may convey covered works to others for the sole purpose
189
+ of having them make modifications exclusively for you, or provide you
190
+ with facilities for running those works, provided that you comply with
191
+ the terms of this License in conveying all material for which you do
192
+ not control copyright. Those thus making or running the covered works
193
+ for you must do so exclusively on your behalf, under your direction
194
+ and control, on terms that prohibit them from making any copies of
195
+ your copyrighted material outside their relationship with you.
196
+
197
+ Conveying under any other circumstances is permitted solely under
198
+ the conditions stated below. Sublicensing is not allowed; section 10
199
+ makes it unnecessary.
200
+
201
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
202
+
203
+ No covered work shall be deemed part of an effective technological
204
+ measure under any applicable law fulfilling obligations under article
205
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
206
+ similar laws prohibiting or restricting circumvention of such
207
+ measures.
208
+
209
+ When you convey a covered work, you waive any legal power to forbid
210
+ circumvention of technological measures to the extent such circumvention
211
+ is effected by exercising rights under this License with respect to
212
+ the covered work, and you disclaim any intention to limit operation or
213
+ modification of the work as a means of enforcing, against the work's
214
+ users, your or third parties' legal rights to forbid circumvention of
215
+ technological measures.
216
+
217
+ 4. Conveying Verbatim Copies.
218
+
219
+ You may convey verbatim copies of the Program's source code as you
220
+ receive it, in any medium, provided that you conspicuously and
221
+ appropriately publish on each copy an appropriate copyright notice;
222
+ keep intact all notices stating that this License and any
223
+ non-permissive terms added in accord with section 7 apply to the code;
224
+ keep intact all notices of the absence of any warranty; and give all
225
+ recipients a copy of this License along with the Program.
226
+
227
+ You may charge any price or no price for each copy that you convey,
228
+ and you may offer support or warranty protection for a fee.
229
+
230
+ 5. Conveying Modified Source Versions.
231
+
232
+ You may convey a work based on the Program, or the modifications to
233
+ produce it from the Program, in the form of source code under the
234
+ terms of section 4, provided that you also meet all of these conditions:
235
+
236
+ a) The work must carry prominent notices stating that you modified
237
+ it, and giving a relevant date.
238
+
239
+ b) The work must carry prominent notices stating that it is
240
+ released under this License and any conditions added under section
241
+ 7. This requirement modifies the requirement in section 4 to
242
+ "keep intact all notices".
243
+
244
+ c) You must license the entire work, as a whole, under this
245
+ License to anyone who comes into possession of a copy. This
246
+ License will therefore apply, along with any applicable section 7
247
+ additional terms, to the whole of the work, and all its parts,
248
+ regardless of how they are packaged. This License gives no
249
+ permission to license the work in any other way, but it does not
250
+ invalidate such permission if you have separately received it.
251
+
252
+ d) If the work has interactive user interfaces, each must display
253
+ Appropriate Legal Notices; however, if the Program has interactive
254
+ interfaces that do not display Appropriate Legal Notices, your
255
+ work need not make them do so.
256
+
257
+ A compilation of a covered work with other separate and independent
258
+ works, which are not by their nature extensions of the covered work,
259
+ and which are not combined with it such as to form a larger program,
260
+ in or on a volume of a storage or distribution medium, is called an
261
+ "aggregate" if the compilation and its resulting copyright are not
262
+ used to limit the access or legal rights of the compilation's users
263
+ beyond what the individual works permit. Inclusion of a covered work
264
+ in an aggregate does not cause this License to apply to the other
265
+ parts of the aggregate.
266
+
267
+ 6. Conveying Non-Source Forms.
268
+
269
+ You may convey a covered work in object code form under the terms
270
+ of sections 4 and 5, provided that you also convey the
271
+ machine-readable Corresponding Source under the terms of this License,
272
+ in one of these ways:
273
+
274
+ a) Convey the object code in, or embodied in, a physical product
275
+ (including a physical distribution medium), accompanied by the
276
+ Corresponding Source fixed on a durable physical medium
277
+ customarily used for software interchange.
278
+
279
+ b) Convey the object code in, or embodied in, a physical product
280
+ (including a physical distribution medium), accompanied by a
281
+ written offer, valid for at least three years and valid for as
282
+ long as you offer spare parts or customer support for that product
283
+ model, to give anyone who possesses the object code either (1) a
284
+ copy of the Corresponding Source for all the software in the
285
+ product that is covered by this License, on a durable physical
286
+ medium customarily used for software interchange, for a price no
287
+ more than your reasonable cost of physically performing this
288
+ conveying of source, or (2) access to copy the
289
+ Corresponding Source from a network server at no charge.
290
+
291
+ c) Convey individual copies of the object code with a copy of the
292
+ written offer to provide the Corresponding Source. This
293
+ alternative is allowed only occasionally and noncommercially, and
294
+ only if you received the object code with such an offer, in accord
295
+ with subsection 6b.
296
+
297
+ d) Convey the object code by offering access from a designated
298
+ place (gratis or for a charge), and offer equivalent access to the
299
+ Corresponding Source in the same way through the same place at no
300
+ further charge. You need not require recipients to copy the
301
+ Corresponding Source along with the object code. If the place to
302
+ copy the object code is a network server, the Corresponding Source
303
+ may be on a different server (operated by you or a third party)
304
+ that supports equivalent copying facilities, provided you maintain
305
+ clear directions next to the object code saying where to find the
306
+ Corresponding Source. Regardless of what server hosts the
307
+ Corresponding Source, you remain obligated to ensure that it is
308
+ available for as long as needed to satisfy these requirements.
309
+
310
+ e) Convey the object code using peer-to-peer transmission, provided
311
+ you inform other peers where the object code and Corresponding
312
+ Source of the work are being offered to the general public at no
313
+ charge under subsection 6d.
314
+
315
+ A separable portion of the object code, whose source code is excluded
316
+ from the Corresponding Source as a System Library, need not be
317
+ included in conveying the object code work.
318
+
319
+ A "User Product" is either (1) a "consumer product", which means any
320
+ tangible personal property which is normally used for personal, family,
321
+ or household purposes, or (2) anything designed or sold for incorporation
322
+ into a dwelling. In determining whether a product is a consumer product,
323
+ doubtful cases shall be resolved in favor of coverage. For a particular
324
+ product received by a particular user, "normally used" refers to a
325
+ typical or common use of that class of product, regardless of the status
326
+ of the particular user or of the way in which the particular user
327
+ actually uses, or expects or is expected to use, the product. A product
328
+ is a consumer product regardless of whether the product has substantial
329
+ commercial, industrial or non-consumer uses, unless such uses represent
330
+ the only significant mode of use of the product.
331
+
332
+ "Installation Information" for a User Product means any methods,
333
+ procedures, authorization keys, or other information required to install
334
+ and execute modified versions of a covered work in that User Product from
335
+ a modified version of its Corresponding Source. The information must
336
+ suffice to ensure that the continued functioning of the modified object
337
+ code is in no case prevented or interfered with solely because
338
+ modification has been made.
339
+
340
+ If you convey an object code work under this section in, or with, or
341
+ specifically for use in, a User Product, and the conveying occurs as
342
+ part of a transaction in which the right of possession and use of the
343
+ User Product is transferred to the recipient in perpetuity or for a
344
+ fixed term (regardless of how the transaction is characterized), the
345
+ Corresponding Source conveyed under this section must be accompanied
346
+ by the Installation Information. But this requirement does not apply
347
+ if neither you nor any third party retains the ability to install
348
+ modified object code on the User Product (for example, the work has
349
+ been installed in ROM).
350
+
351
+ The requirement to provide Installation Information does not include a
352
+ requirement to continue to provide support service, warranty, or updates
353
+ for a work that has been modified or installed by the recipient, or for
354
+ the User Product in which it has been modified or installed. Access to a
355
+ network may be denied when the modification itself materially and
356
+ adversely affects the operation of the network or violates the rules and
357
+ protocols for communication across the network.
358
+
359
+ Corresponding Source conveyed, and Installation Information provided,
360
+ in accord with this section must be in a format that is publicly
361
+ documented (and with an implementation available to the public in
362
+ source code form), and must require no special password or key for
363
+ unpacking, reading or copying.
364
+
365
+ 7. Additional Terms.
366
+
367
+ "Additional permissions" are terms that supplement the terms of this
368
+ License by making exceptions from one or more of its conditions.
369
+ Additional permissions that are applicable to the entire Program shall
370
+ be treated as though they were included in this License, to the extent
371
+ that they are valid under applicable law. If additional permissions
372
+ apply only to part of the Program, that part may be used separately
373
+ under those permissions, but the entire Program remains governed by
374
+ this License without regard to the additional permissions.
375
+
376
+ When you convey a copy of a covered work, you may at your option
377
+ remove any additional permissions from that copy, or from any part of
378
+ it. (Additional permissions may be written to require their own
379
+ removal in certain cases when you modify the work.) You may place
380
+ additional permissions on material, added by you to a covered work,
381
+ for which you have or can give appropriate copyright permission.
382
+
383
+ Notwithstanding any other provision of this License, for material you
384
+ add to a covered work, you may (if authorized by the copyright holders of
385
+ that material) supplement the terms of this License with terms:
386
+
387
+ a) Disclaiming warranty or limiting liability differently from the
388
+ terms of sections 15 and 16 of this License; or
389
+
390
+ b) Requiring preservation of specified reasonable legal notices or
391
+ author attributions in that material or in the Appropriate Legal
392
+ Notices displayed by works containing it; or
393
+
394
+ c) Prohibiting misrepresentation of the origin of that material, or
395
+ requiring that modified versions of such material be marked in
396
+ reasonable ways as different from the original version; or
397
+
398
+ d) Limiting the use for publicity purposes of names of licensors or
399
+ authors of the material; or
400
+
401
+ e) Declining to grant rights under trademark law for use of some
402
+ trade names, trademarks, or service marks; or
403
+
404
+ f) Requiring indemnification of licensors and authors of that
405
+ material by anyone who conveys the material (or modified versions of
406
+ it) with contractual assumptions of liability to the recipient, for
407
+ any liability that these contractual assumptions directly impose on
408
+ those licensors and authors.
409
+
410
+ All other non-permissive additional terms are considered "further
411
+ restrictions" within the meaning of section 10. If the Program as you
412
+ received it, or any part of it, contains a notice stating that it is
413
+ governed by this License along with a term that is a further
414
+ restriction, you may remove that term. If a license document contains
415
+ a further restriction but permits relicensing or conveying under this
416
+ License, you may add to a covered work material governed by the terms
417
+ of that license document, provided that the further restriction does
418
+ not survive such relicensing or conveying.
419
+
420
+ If you add terms to a covered work in accord with this section, you
421
+ must place, in the relevant source files, a statement of the
422
+ additional terms that apply to those files, or a notice indicating
423
+ where to find the applicable terms.
424
+
425
+ Additional terms, permissive or non-permissive, may be stated in the
426
+ form of a separately written license, or stated as exceptions;
427
+ the above requirements apply either way.
428
+
429
+ 8. Termination.
430
+
431
+ You may not propagate or modify a covered work except as expressly
432
+ provided under this License. Any attempt otherwise to propagate or
433
+ modify it is void, and will automatically terminate your rights under
434
+ this License (including any patent licenses granted under the third
435
+ paragraph of section 11).
436
+
437
+ However, if you cease all violation of this License, then your
438
+ license from a particular copyright holder is reinstated (a)
439
+ provisionally, unless and until the copyright holder explicitly and
440
+ finally terminates your license, and (b) permanently, if the copyright
441
+ holder fails to notify you of the violation by some reasonable means
442
+ prior to 60 days after the cessation.
443
+
444
+ Moreover, your license from a particular copyright holder is
445
+ reinstated permanently if the copyright holder notifies you of the
446
+ violation by some reasonable means, this is the first time you have
447
+ received notice of violation of this License (for any work) from that
448
+ copyright holder, and you cure the violation prior to 30 days after
449
+ your receipt of the notice.
450
+
451
+ Termination of your rights under this section does not terminate the
452
+ licenses of parties who have received copies or rights from you under
453
+ this License. If your rights have been terminated and not permanently
454
+ reinstated, you do not qualify to receive new licenses for the same
455
+ material under section 10.
456
+
457
+ 9. Acceptance Not Required for Having Copies.
458
+
459
+ You are not required to accept this License in order to receive or
460
+ run a copy of the Program. Ancillary propagation of a covered work
461
+ occurring solely as a consequence of using peer-to-peer transmission
462
+ to receive a copy likewise does not require acceptance. However,
463
+ nothing other than this License grants you permission to propagate or
464
+ modify any covered work. These actions infringe copyright if you do
465
+ not accept this License. Therefore, by modifying or propagating a
466
+ covered work, you indicate your acceptance of this License to do so.
467
+
468
+ 10. Automatic Licensing of Downstream Recipients.
469
+
470
+ Each time you convey a covered work, the recipient automatically
471
+ receives a license from the original licensors, to run, modify and
472
+ propagate that work, subject to this License. You are not responsible
473
+ for enforcing compliance by third parties with this License.
474
+
475
+ An "entity transaction" is a transaction transferring control of an
476
+ organization, or substantially all assets of one, or subdividing an
477
+ organization, or merging organizations. If propagation of a covered
478
+ work results from an entity transaction, each party to that
479
+ transaction who receives a copy of the work also receives whatever
480
+ licenses to the work the party's predecessor in interest had or could
481
+ give under the previous paragraph, plus a right to possession of the
482
+ Corresponding Source of the work from the predecessor in interest, if
483
+ the predecessor has it or can get it with reasonable efforts.
484
+
485
+ You may not impose any further restrictions on the exercise of the
486
+ rights granted or affirmed under this License. For example, you may
487
+ not impose a license fee, royalty, or other charge for exercise of
488
+ rights granted under this License, and you may not initiate litigation
489
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
490
+ any patent claim is infringed by making, using, selling, offering for
491
+ sale, or importing the Program or any portion of it.
492
+
493
+ 11. Patents.
494
+
495
+ A "contributor" is a copyright holder who authorizes use under this
496
+ License of the Program or a work on which the Program is based. The
497
+ work thus licensed is called the contributor's "contributor version".
498
+
499
+ A contributor's "essential patent claims" are all patent claims
500
+ owned or controlled by the contributor, whether already acquired or
501
+ hereafter acquired, that would be infringed by some manner, permitted
502
+ by this License, of making, using, or selling its contributor version,
503
+ but do not include claims that would be infringed only as a
504
+ consequence of further modification of the contributor version. For
505
+ purposes of this definition, "control" includes the right to grant
506
+ patent sublicenses in a manner consistent with the requirements of
507
+ this License.
508
+
509
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
510
+ patent license under the contributor's essential patent claims, to
511
+ make, use, sell, offer for sale, import and otherwise run, modify and
512
+ propagate the contents of its contributor version.
513
+
514
+ In the following three paragraphs, a "patent license" is any express
515
+ agreement or commitment, however denominated, not to enforce a patent
516
+ (such as an express permission to practice a patent or covenant not to
517
+ sue for patent infringement). To "grant" such a patent license to a
518
+ party means to make such an agreement or commitment not to enforce a
519
+ patent against the party.
520
+
521
+ If you convey a covered work, knowingly relying on a patent license,
522
+ and the Corresponding Source of the work is not available for anyone
523
+ to copy, free of charge and under the terms of this License, through a
524
+ publicly available network server or other readily accessible means,
525
+ then you must either (1) cause the Corresponding Source to be so
526
+ available, or (2) arrange to deprive yourself of the benefit of the
527
+ patent license for this particular work, or (3) arrange, in a manner
528
+ consistent with the requirements of this License, to extend the patent
529
+ license to downstream recipients. "Knowingly relying" means you have
530
+ actual knowledge that, but for the patent license, your conveying the
531
+ covered work in a country, or your recipient's use of the covered work
532
+ in a country, would infringe one or more identifiable patents in that
533
+ country that you have reason to believe are valid.
534
+
535
+ If, pursuant to or in connection with a single transaction or
536
+ arrangement, you convey, or propagate by procuring conveyance of, a
537
+ covered work, and grant a patent license to some of the parties
538
+ receiving the covered work authorizing them to use, propagate, modify
539
+ or convey a specific copy of the covered work, then the patent license
540
+ you grant is automatically extended to all recipients of the covered
541
+ work and works based on it.
542
+
543
+ A patent license is "discriminatory" if it does not include within
544
+ the scope of its coverage, prohibits the exercise of, or is
545
+ conditioned on the non-exercise of one or more of the rights that are
546
+ specifically granted under this License. You may not convey a covered
547
+ work if you are a party to an arrangement with a third party that is
548
+ in the business of distributing software, under which you make payment
549
+ to the third party based on the extent of your activity of conveying
550
+ the work, and under which the third party grants, to any of the
551
+ parties who would receive the covered work from you, a discriminatory
552
+ patent license (a) in connection with copies of the covered work
553
+ conveyed by you (or copies made from those copies), or (b) primarily
554
+ for and in connection with specific products or compilations that
555
+ contain the covered work, unless you entered into that arrangement,
556
+ or that patent license was granted, prior to 28 March 2007.
557
+
558
+ Nothing in this License shall be construed as excluding or limiting
559
+ any implied license or other defenses to infringement that may
560
+ otherwise be available to you under applicable patent law.
561
+
562
+ 12. No Surrender of Others' Freedom.
563
+
564
+ If conditions are imposed on you (whether by court order, agreement or
565
+ otherwise) that contradict the conditions of this License, they do not
566
+ excuse you from the conditions of this License. If you cannot convey a
567
+ covered work so as to satisfy simultaneously your obligations under this
568
+ License and any other pertinent obligations, then as a consequence you may
569
+ not convey it at all. For example, if you agree to terms that obligate you
570
+ to collect a royalty for further conveying from those to whom you convey
571
+ the Program, the only way you could satisfy both those terms and this
572
+ License would be to refrain entirely from conveying the Program.
573
+
574
+ 13. Use with the GNU Affero General Public License.
575
+
576
+ Notwithstanding any other provision of this License, you have
577
+ permission to link or combine any covered work with a work licensed
578
+ under version 3 of the GNU Affero General Public License into a single
579
+ combined work, and to convey the resulting work. The terms of this
580
+ License will continue to apply to the part which is the covered work,
581
+ but the special requirements of the GNU Affero General Public License,
582
+ section 13, concerning interaction through a network will apply to the
583
+ combination as such.
584
+
585
+ 14. Revised Versions of this License.
586
+
587
+ The Free Software Foundation may publish revised and/or new versions of
588
+ the GNU General Public License from time to time. Such new versions will
589
+ be similar in spirit to the present version, but may differ in detail to
590
+ address new problems or concerns.
591
+
592
+ Each version is given a distinguishing version number. If the
593
+ Program specifies that a certain numbered version of the GNU General
594
+ Public License "or any later version" applies to it, you have the
595
+ option of following the terms and conditions either of that numbered
596
+ version or of any later version published by the Free Software
597
+ Foundation. If the Program does not specify a version number of the
598
+ GNU General Public License, you may choose any version ever published
599
+ by the Free Software Foundation.
600
+
601
+ If the Program specifies that a proxy can decide which future
602
+ versions of the GNU General Public License can be used, that proxy's
603
+ public statement of acceptance of a version permanently authorizes you
604
+ to choose that version for the Program.
605
+
606
+ Later license versions may give you additional or different
607
+ permissions. However, no additional obligations are imposed on any
608
+ author or copyright holder as a result of your choosing to follow a
609
+ later version.
610
+
611
+ 15. Disclaimer of Warranty.
612
+
613
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
614
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
615
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
616
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
617
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
618
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
619
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
620
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
621
+
622
+ 16. Limitation of Liability.
623
+
624
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
625
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
626
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
627
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
628
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
629
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
630
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
631
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
632
+ SUCH DAMAGES.
633
+
634
+ 17. Interpretation of Sections 15 and 16.
635
+
636
+ If the disclaimer of warranty and limitation of liability provided
637
+ above cannot be given local legal effect according to their terms,
638
+ reviewing courts shall apply local law that most closely approximates
639
+ an absolute waiver of all civil liability in connection with the
640
+ Program, unless a warranty or assumption of liability accompanies a
641
+ copy of the Program in return for a fee.
642
+
643
+ END OF TERMS AND CONDITIONS
644
+
645
+ How to Apply These Terms to Your New Programs
646
+
647
+ If you develop a new program, and you want it to be of the greatest
648
+ possible use to the public, the best way to achieve this is to make it
649
+ free software which everyone can redistribute and change under these terms.
650
+
651
+ To do so, attach the following notices to the program. It is safest
652
+ to attach them to the start of each source file to most effectively
653
+ state the exclusion of warranty; and each file should have at least
654
+ the "copyright" line and a pointer to where the full notice is found.
655
+
656
+ <one line to give the program's name and a brief idea of what it does.>
657
+ Copyright © <year> <name of author>
658
+
659
+ This program is free software: you can redistribute it and/or modify
660
+ it under the terms of the GNU General Public License as published by
661
+ the Free Software Foundation, either version 3 of the License, or
662
+ (at your option) any later version.
663
+
664
+ This program is distributed in the hope that it will be useful,
665
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
666
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
667
+ GNU General Public License for more details.
668
+
669
+ You should have received a copy of the GNU General Public License
670
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
671
+
672
+ Also add information on how to contact you by electronic and paper mail.
673
+
674
+ If the program does terminal interaction, make it output a short
675
+ notice like this when it starts in an interactive mode:
676
+
677
+ <program> Copyright © <year> <name of author>
678
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
679
+ This is free software, and you are welcome to redistribute it
680
+ under certain conditions; type `show c' for details.
681
+
682
+ The hypothetical commands `show w' and `show c' should show the appropriate
683
+ parts of the General Public License. Of course, your program's commands
684
+ might be different; for a GUI interface, you would use an "about box".
685
+
686
+ You should also get your employer (if you work as a programmer) or school,
687
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
688
+ For more information on this, and how to apply and follow the GNU GPL, see
689
+ <https://www.gnu.org/licenses/>.
690
+
691
+ The GNU General Public License does not permit incorporating your program
692
+ into proprietary programs. If your program is a subroutine library, you
693
+ may consider it more useful to permit linking proprietary applications with
694
+ the library. If this is what you want to do, use the GNU Lesser General
695
+ Public License instead of this License. But first, please read
696
  <https://www.gnu.org/philosophy/why-not-lgpl.html>.
plugin-fw/assets/css/admin.css CHANGED
@@ -1,333 +1,333 @@
1
- /*-----------------------
2
- YITH Debug
3
- ------------------------*/
4
- #wpadminbar .yith-debug-admin-bar div,
5
- #wpadminbar .yith-debug-admin-bar:hover div {
6
- background: #05789c !important;
7
- color: #fff !important;
8
- }
9
-
10
- #wpadminbar .yith-debug-admin-bar a,
11
- #wpadminbar .yith-debug-admin-bar strong {
12
- color: #fff !important;
13
- }
14
-
15
- #wpadminbar .yith-debug-admin-bar strong {
16
- font-weight: 600;
17
- }
18
-
19
- #wpadminbar .yith-debug-admin-bar-post-meta .ab-empty-item,
20
- #wpadminbar .yith-debug-admin-bar-option .ab-empty-item {
21
- display: none;
22
- }
23
-
24
- #wpadminbar #wp-admin-bar-yith-debug-admin-bar-post-meta-default,
25
- #wpadminbar #wp-admin-bar-yith-debug-admin-bar-option-default {
26
- padding: 0;
27
- max-height: 500px;
28
- overflow-y: auto;
29
- }
30
-
31
- #wpadminbar .yith-debug-admin-bar pre {
32
- padding: 10px;
33
- line-height: 1.5em;
34
- }
35
-
36
- .notice-yith {
37
- margin-left: 0;
38
- border-left-color: #acc327;
39
- }
40
-
41
- .notice-yith.notice-alt {
42
- background-color: #ecf7ed;
43
- }
44
-
45
- .yith-promo-banner-image-link {
46
- display: block;
47
- margin-bottom: 15px;
48
- }
49
-
50
- .yith-promo-banner-image {
51
- max-width: 100%;
52
- margin: 0 auto;
53
- display: block;
54
- }
55
-
56
- /*-----------------------
57
- YITH FEEDS
58
- ------------------------*/
59
-
60
- .yith-feeds-logo {
61
- display: table-cell;
62
- background: #005b7c;
63
- padding: 5px;
64
- border-radius: 50%;
65
- margin-right: 10px;
66
- vertical-align: text-bottom;
67
- width: 18px;
68
- height: auto;
69
- vertical-align: middle;
70
- }
71
-
72
- .yith-feeds-plugin-name {
73
- display: table-cell;
74
- vertical-align: middle;
75
- }
76
-
77
- /*-----------------------
78
- YITH Plugins Columns
79
- ------------------------*/
80
- @media screen and (min-width: 783px) {
81
-
82
- .auto-fold #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu-head {
83
- width: 100%;
84
- }
85
-
86
- #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu {
87
- min-width: 320px;
88
- display: flex;
89
- flex-flow: row wrap;
90
- }
91
-
92
- #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
93
- width: 50%;
94
- border-left: 1px solid #555;
95
- box-sizing: border-box;
96
- }
97
-
98
- #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(2n) {
99
- border-left: none;
100
- }
101
-
102
- #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu {
103
- min-width: 480px;
104
- display: flex;
105
- flex-flow: row wrap;
106
- }
107
-
108
- #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
109
- width: calc(100% / 3);
110
- border-left: 1px solid #555;
111
- box-sizing: border-box;
112
- }
113
-
114
- #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(3n + 2) {
115
- border-left: none;
116
- }
117
- }
118
-
119
- /*---------------------------
120
- YITH System Information
121
- ----------------------------*/
122
-
123
- .yith-system-info-wrap table.form-table {
124
- margin: 0;
125
- background: #fff;
126
- }
127
-
128
- .yith-system-info-wrap table.form-table th, .yith-system-info-wrap table.form-table td {
129
- padding: 30px 20px !important;
130
- }
131
-
132
- .yith-system-info-wrap table.form-table textarea.yith-system-info-debug {
133
- width: 100%;
134
- height: 400px !important;
135
- }
136
-
137
- .yith-phpinfo-wrap div table.form-table {
138
- border-bottom: none;
139
- margin-bottom: 0;
140
- }
141
-
142
- .yith-phpinfo-wrap div h2 {
143
- border-top: 1px solid #d8d8d8 !important;
144
- }
145
-
146
- .yith-phpinfo-wrap div {
147
- margin-bottom: 40px;
148
- border-bottom: 1px solid #d8d8d8;
149
- }
150
-
151
- .yith-phpinfo-wrap div:last-child {
152
- margin-bottom: 0;
153
- }
154
-
155
- .yith-phpinfo-wrap table.form-table h1.p {
156
- color: #2a8db0;
157
- text-transform: uppercase;
158
- padding: 0;
159
- line-height: 64px;
160
- }
161
-
162
-
163
- .yith-phpinfo-wrap table.form-table img {
164
- float: right;
165
- border: 0;
166
- }
167
-
168
- .yith-system-info-wrap .yith-plugin-fw-field-wrapper.progress:after {
169
- color: #336374;
170
- display: inline-block;
171
- font: 400 20px/1 dashicons;
172
- speak: none;
173
- -webkit-font-smoothing: antialiased;
174
- -moz-osx-font-smoothing: grayscale;
175
- vertical-align: top;
176
- line-height: 28px;
177
- content: '\f463';
178
- -webkit-animation: rotation 2s infinite linear;
179
- animation: rotation 2s infinite linear
180
- }
181
-
182
- .yith-system-info h2.yith-sysinfo-title {
183
- color: #00729f;
184
- font-size: 25px;
185
- text-transform: uppercase;
186
- font-weight: 800;
187
- line-height: 25px;
188
- padding: 20px 0;
189
- background: none;
190
- border: none;
191
- }
192
-
193
- #yith-system-alert span.yith-logo,
194
- .yith-system-info h2 span.yith-logo {
195
- border-radius: 50%;
196
- background: #265b7a;
197
- height: 30px;
198
- width: 30px;
199
- display: flex;
200
- text-align: center;
201
- margin: 0 10px 0 0;
202
- float: left;
203
- align-items: center;
204
- justify-content: center;
205
- }
206
-
207
-
208
- .yith-system-info table td {
209
- word-break: break-all;
210
- padding: 20px 12px;
211
- }
212
-
213
- .yith-system-info table td.requirement-value,
214
- .yith-system-info table td.info-value {
215
- font-size: 14px;
216
- vertical-align: middle;
217
- text-align: left;
218
- color: #5da726;
219
- line-height: 19px;
220
- }
221
-
222
- .yith-system-info table td.requirement-value {
223
- width: 120px;
224
- }
225
-
226
- .yith-system-info table td.requirement-value.has-errors {
227
- color: #a00;
228
- }
229
-
230
- .yith-system-info table td.requirement-value.has-warnings {
231
- color: #ffa200;
232
- }
233
-
234
- .yith-system-info table td.requirement-messages ul {
235
- margin: 0;
236
- padding: 0 0 10px 0;
237
- list-style: none !important;
238
- }
239
-
240
- .yith-system-info table td.requirement-messages ul li {
241
- margin-bottom: 3px;
242
- }
243
-
244
- .yith-system-info table td.requirement-messages span.error {
245
- color: #a00;
246
- font-weight: bold;
247
- }
248
-
249
- .yith-system-info table td.requirement-messages span.warning {
250
- color: #a00;
251
- font-weight: bold;
252
- }
253
-
254
- .yith-system-info .debug-code {
255
- font-family: monospace;
256
- padding: 15px;
257
- display: inline-block;
258
- background: #f2f3f4;
259
- line-height: 22px;
260
- border: 2px solid #dfe3e6;
261
- border-radius: 5px;
262
- margin-right: 20px;
263
- }
264
-
265
- .yith-system-info .copy-link {
266
- font-size: 11px;
267
- font-weight: 600;
268
- padding-left: 1.7em;
269
- position: relative;
270
- text-decoration: none;
271
- color: #3889d3;
272
- }
273
-
274
- .yith-system-info .copy-link:hover {
275
- color: #004b91;
276
- }
277
-
278
- .yith-system-info .copy-link:before {
279
- background-color: #ffffff;
280
- border: 1px solid;
281
- bottom: 2px;
282
- content: '';
283
- display: inline-block;
284
- height: 0.9em;
285
- left: 0;
286
- position: absolute;
287
- width: 0.9em;
288
- z-index: 2;
289
- }
290
-
291
- .yith-system-info .copy-link:after {
292
- background-color: #ffffff;
293
- border: 1px solid;
294
- bottom: 5px;
295
- content: '';
296
- display: inline-block;
297
- height: 0.9em;
298
- left: 3px;
299
- position: absolute;
300
- width: 0.9em;
301
- z-index: 1;
302
- }
303
-
304
- .yith-system-info .copy-link .copied-tooltip {
305
- width: 140px;
306
- background-color: #555;
307
- color: #fff;
308
- text-align: center;
309
- border-radius: 6px;
310
- padding: 5px;
311
- position: absolute;
312
- z-index: 1;
313
- bottom: 150%;
314
- left: 50%;
315
- margin-left: -75px;
316
- transition: all ease .3s;
317
- }
318
-
319
- .yith-system-info .copy-link .copied-tooltip:after {
320
- content: "";
321
- position: absolute;
322
- top: 100%;
323
- left: 50%;
324
- margin-left: -5px;
325
- border-width: 5px;
326
- border-style: solid;
327
- border-color: #555 transparent transparent transparent;
328
- }
329
-
330
- .yith-system-info-menu {
331
- font-weight: bold;
332
- font-size: 11px !important;
333
- }
1
+ /*-----------------------
2
+ YITH Debug
3
+ ------------------------*/
4
+ #wpadminbar .yith-debug-admin-bar div,
5
+ #wpadminbar .yith-debug-admin-bar:hover div {
6
+ background: #05789c !important;
7
+ color: #fff !important;
8
+ }
9
+
10
+ #wpadminbar .yith-debug-admin-bar a,
11
+ #wpadminbar .yith-debug-admin-bar strong {
12
+ color: #fff !important;
13
+ }
14
+
15
+ #wpadminbar .yith-debug-admin-bar strong {
16
+ font-weight: 600;
17
+ }
18
+
19
+ #wpadminbar .yith-debug-admin-bar-post-meta .ab-empty-item,
20
+ #wpadminbar .yith-debug-admin-bar-option .ab-empty-item {
21
+ display: none;
22
+ }
23
+
24
+ #wpadminbar #wp-admin-bar-yith-debug-admin-bar-post-meta-default,
25
+ #wpadminbar #wp-admin-bar-yith-debug-admin-bar-option-default {
26
+ padding: 0;
27
+ max-height: 500px;
28
+ overflow-y: auto;
29
+ }
30
+
31
+ #wpadminbar .yith-debug-admin-bar pre {
32
+ padding: 10px;
33
+ line-height: 1.5em;
34
+ }
35
+
36
+ .notice-yith {
37
+ margin-left: 0;
38
+ border-left-color: #acc327;
39
+ }
40
+
41
+ .notice-yith.notice-alt {
42
+ background-color: #ecf7ed;
43
+ }
44
+
45
+ .yith-promo-banner-image-link {
46
+ display: block;
47
+ margin-bottom: 15px;
48
+ }
49
+
50
+ .yith-promo-banner-image {
51
+ max-width: 100%;
52
+ margin: 0 auto;
53
+ display: block;
54
+ }
55
+
56
+ /*-----------------------
57
+ YITH FEEDS
58
+ ------------------------*/
59
+
60
+ .yith-feeds-logo {
61
+ display: table-cell;
62
+ background: #005b7c;
63
+ padding: 5px;
64
+ border-radius: 50%;
65
+ margin-right: 10px;
66
+ vertical-align: text-bottom;
67
+ width: 18px;
68
+ height: auto;
69
+ vertical-align: middle;
70
+ }
71
+
72
+ .yith-feeds-plugin-name {
73
+ display: table-cell;
74
+ vertical-align: middle;
75
+ }
76
+
77
+ /*-----------------------
78
+ YITH Plugins Columns
79
+ ------------------------*/
80
+ @media screen and (min-width: 783px) {
81
+
82
+ .auto-fold #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu-head {
83
+ width: 100%;
84
+ }
85
+
86
+ #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu {
87
+ min-width: 320px;
88
+ display: flex;
89
+ flex-flow: row wrap;
90
+ }
91
+
92
+ #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
93
+ width: 50%;
94
+ border-left: 1px solid #555;
95
+ box-sizing: border-box;
96
+ }
97
+
98
+ #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(2n) {
99
+ border-left: none;
100
+ }
101
+
102
+ #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu {
103
+ min-width: 480px;
104
+ display: flex;
105
+ flex-flow: row wrap;
106
+ }
107
+
108
+ #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
109
+ width: calc(100% / 3);
110
+ border-left: 1px solid #555;
111
+ box-sizing: border-box;
112
+ }
113
+
114
+ #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(3n + 2) {
115
+ border-left: none;
116
+ }
117
+ }
118
+
119
+ /*---------------------------
120
+ YITH System Information
121
+ ----------------------------*/
122
+
123
+ .yith-system-info-wrap table.form-table {
124
+ margin: 0;
125
+ background: #fff;
126
+ }
127
+
128
+ .yith-system-info-wrap table.form-table th, .yith-system-info-wrap table.form-table td {
129
+ padding: 30px 20px !important;
130
+ }
131
+
132
+ .yith-system-info-wrap table.form-table textarea.yith-system-info-debug {
133
+ width: 100%;
134
+ height: 400px !important;
135
+ }
136
+
137
+ .yith-phpinfo-wrap div table.form-table {
138
+ border-bottom: none;
139
+ margin-bottom: 0;
140
+ }
141
+
142
+ .yith-phpinfo-wrap div h2 {
143
+ border-top: 1px solid #d8d8d8 !important;
144
+ }
145
+
146
+ .yith-phpinfo-wrap div {
147
+ margin-bottom: 40px;
148
+ border-bottom: 1px solid #d8d8d8;
149
+ }
150
+
151
+ .yith-phpinfo-wrap div:last-child {
152
+ margin-bottom: 0;
153
+ }
154
+
155
+ .yith-phpinfo-wrap table.form-table h1.p {
156
+ color: #2a8db0;
157
+ text-transform: uppercase;
158
+ padding: 0;
159
+ line-height: 64px;
160
+ }
161
+
162
+
163
+ .yith-phpinfo-wrap table.form-table img {
164
+ float: right;
165
+ border: 0;
166
+ }
167
+
168
+ .yith-system-info-wrap .yith-plugin-fw-field-wrapper.progress:after {
169
+ color: #336374;
170
+ display: inline-block;
171
+ font: 400 20px/1 dashicons;
172
+ speak: none;
173
+ -webkit-font-smoothing: antialiased;
174
+ -moz-osx-font-smoothing: grayscale;
175
+ vertical-align: top;
176
+ line-height: 28px;
177
+ content: '\f463';
178
+ -webkit-animation: rotation 2s infinite linear;
179
+ animation: rotation 2s infinite linear
180
+ }
181
+
182
+ .yith-system-info h2.yith-sysinfo-title {
183
+ color: #00729f;
184
+ font-size: 25px;
185
+ text-transform: uppercase;
186
+ font-weight: 800;
187
+ line-height: 25px;
188
+ padding: 20px 0;
189
+ background: none;
190
+ border: none;
191
+ }
192
+
193
+ #yith-system-alert span.yith-logo,
194
+ .yith-system-info h2 span.yith-logo {
195
+ border-radius: 50%;
196
+ background: #265b7a;
197
+ height: 30px;
198
+ width: 30px;
199
+ display: flex;
200
+ text-align: center;
201
+ margin: 0 10px 0 0;
202
+ float: left;
203
+ align-items: center;
204
+ justify-content: center;
205
+ }
206
+
207
+
208
+ .yith-system-info table td {
209
+ word-break: break-all;
210
+ padding: 20px 12px;
211
+ }
212
+
213
+ .yith-system-info table td.requirement-value,
214
+ .yith-system-info table td.info-value {
215
+ font-size: 14px;
216
+ vertical-align: middle;
217
+ text-align: left;
218
+ color: #5da726;
219
+ line-height: 19px;
220
+ }
221
+
222
+ .yith-system-info table td.requirement-value {
223
+ width: 120px;
224
+ }
225
+
226
+ .yith-system-info table td.requirement-value.has-errors {
227
+ color: #a00;
228
+ }
229
+
230
+ .yith-system-info table td.requirement-value.has-warnings {
231
+ color: #ffa200;
232
+ }
233
+
234
+ .yith-system-info table td.requirement-messages ul {
235
+ margin: 0;
236
+ padding: 0 0 10px 0;
237
+ list-style: none !important;
238
+ }
239
+
240
+ .yith-system-info table td.requirement-messages ul li {
241
+ margin-bottom: 3px;
242
+ }
243
+
244
+ .yith-system-info table td.requirement-messages span.error {
245
+ color: #a00;
246
+ font-weight: bold;
247
+ }
248
+
249
+ .yith-system-info table td.requirement-messages span.warning {
250
+ color: #a00;
251
+ font-weight: bold;
252
+ }
253
+
254
+ .yith-system-info .debug-code {
255
+ font-family: monospace;
256
+ padding: 15px;
257
+ display: inline-block;
258
+ background: #f2f3f4;
259
+ line-height: 22px;
260
+ border: 2px solid #dfe3e6;
261
+ border-radius: 5px;
262
+ margin-right: 20px;
263
+ }
264
+
265
+ .yith-system-info .copy-link {
266
+ font-size: 11px;
267
+ font-weight: 600;
268
+ padding-left: 1.7em;
269
+ position: relative;
270
+ text-decoration: none;
271
+ color: #3889d3;
272
+ }
273
+
274
+ .yith-system-info .copy-link:hover {
275
+ color: #004b91;
276
+ }
277
+
278
+ .yith-system-info .copy-link:before {
279
+ background-color: #ffffff;
280
+ border: 1px solid;
281
+ bottom: 2px;
282
+ content: '';
283
+ display: inline-block;
284
+ height: 0.9em;
285
+ left: 0;
286
+ position: absolute;
287
+ width: 0.9em;
288
+ z-index: 2;
289
+ }
290
+
291
+ .yith-system-info .copy-link:after {
292
+ background-color: #ffffff;
293
+ border: 1px solid;
294
+ bottom: 5px;
295
+ content: '';
296
+ display: inline-block;
297
+ height: 0.9em;
298
+ left: 3px;
299
+ position: absolute;
300
+ width: 0.9em;
301
+ z-index: 1;
302
+ }
303
+
304
+ .yith-system-info .copy-link .copied-tooltip {
305
+ width: 140px;
306
+ background-color: #555;
307
+ color: #fff;
308
+ text-align: center;
309
+ border-radius: 6px;
310
+ padding: 5px;
311
+ position: absolute;
312
+ z-index: 1;
313
+ bottom: 150%;
314
+ left: 50%;
315
+ margin-left: -75px;
316
+ transition: all ease .3s;
317
+ }
318
+
319
+ .yith-system-info .copy-link .copied-tooltip:after {
320
+ content: "";
321
+ position: absolute;
322
+ top: 100%;
323
+ left: 50%;
324
+ margin-left: -5px;
325
+ border-width: 5px;
326
+ border-style: solid;
327
+ border-color: #555 transparent transparent transparent;
328
+ }
329
+
330
+ .yith-system-info-menu {
331
+ font-weight: bold;
332
+ font-size: 11px !important;
333
+ }
plugin-fw/assets/css/codemirror/codemirror.css CHANGED
@@ -1,260 +1,260 @@
1
- /* BASICS */
2
-
3
- .CodeMirror {
4
- /* Set height, width, borders, and global font properties here */
5
- font-family: monospace;
6
- height: 400px;
7
- clear: both;
8
- padding: 0;
9
- }
10
- .CodeMirror-scroll {
11
- /* Set scrolling behaviour here */
12
- overflow: auto;
13
- }
14
-
15
- /* PADDING */
16
-
17
- .CodeMirror-lines {
18
- padding: 4px 0; /* Vertical padding around content */
19
- }
20
- .CodeMirror pre {
21
- padding: 0 4px; /* Horizontal padding of content */
22
- }
23
-
24
- .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
25
- background-color: white; /* The little square between H and V scrollbars */
26
- }
27
-
28
- /* GUTTER */
29
-
30
- .CodeMirror-gutters {
31
- border-right: 1px solid #ddd;
32
- background-color: #f7f7f7;
33
- white-space: nowrap;
34
- }
35
- .CodeMirror-linenumbers {}
36
- .CodeMirror-linenumber {
37
- padding: 0 3px 0 5px;
38
- min-width: 20px;
39
- text-align: right;
40
- color: #999;
41
- }
42
-
43
- /* CURSOR */
44
-
45
- .CodeMirror div.CodeMirror-cursor {
46
- border-left: 1px solid black;
47
- z-index: 3;
48
- }
49
- /* Shown when moving in bi-directional text */
50
- .CodeMirror div.CodeMirror-secondarycursor {
51
- border-left: 1px solid silver;
52
- }
53
- .CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
54
- width: auto;
55
- border: 0;
56
- background: #7e7;
57
- z-index: 1;
58
- }
59
- /* Can style cursor different in overwrite (non-insert) mode */
60
- .CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {}
61
-
62
- .cm-tab { display: inline-block; }
63
-
64
- /* DEFAULT THEME */
65
-
66
- .cm-s-default .cm-keyword {color: #708;}
67
- .cm-s-default .cm-atom {color: #219;}
68
- .cm-s-default .cm-number {color: #164;}
69
- .cm-s-default .cm-def {color: #00f;}
70
- .cm-s-default .cm-variable {color: black;}
71
- .cm-s-default .cm-variable-2 {color: #05a;}
72
- .cm-s-default .cm-variable-3 {color: #085;}
73
- .cm-s-default .cm-property {color: black;}
74
- .cm-s-default .cm-operator {color: black;}
75
- .cm-s-default .cm-comment {color: #a50;}
76
- .cm-s-default .cm-string {color: #a11;}
77
- .cm-s-default .cm-string-2 {color: #f50;}
78
- .cm-s-default .cm-meta {color: #555;}
79
- .cm-s-default .cm-error {color: #f00;}
80
- .cm-s-default .cm-qualifier {color: #555;}
81
- .cm-s-default .cm-builtin {color: #30a;}
82
- .cm-s-default .cm-bracket {color: #997;}
83
- .cm-s-default .cm-tag {color: #170;}
84
- .cm-s-default .cm-attribute {color: #00c;}
85
- .cm-s-default .cm-header {color: blue;}
86
- .cm-s-default .cm-quote {color: #090;}
87
- .cm-s-default .cm-hr {color: #999;}
88
- .cm-s-default .cm-link {color: #00c;}
89
-
90
- .cm-negative {color: #d44;}
91
- .cm-positive {color: #292;}
92
- .cm-header, .cm-strong {font-weight: bold;}
93
- .cm-em {font-style: italic;}
94
- .cm-link {text-decoration: underline;}
95
-
96
- .cm-invalidchar {color: #f00;}
97
-
98
- div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
99
- div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
100
-
101
- /* STOP */
102
-
103
- /* The rest of this file contains styles related to the mechanics of
104
- the editor. You probably shouldn't touch them. */
105
-
106
- .CodeMirror {
107
- line-height: 1;
108
- position: relative;
109
- overflow: hidden;
110
- background: #fafafa;
111
- color: black;
112
- }
113
-
114
- .CodeMirror-scroll {
115
- /* 30px is the magic margin used to hide the element's real scrollbars */
116
- /* See overflow: hidden in .CodeMirror */
117
- margin-bottom: -30px; margin-right: -30px;
118
- padding-bottom: 30px; padding-right: 30px;
119
- height: 100%;
120
- outline: none; /* Prevent dragging from highlighting the element */
121
- position: relative;
122
- }
123
- .CodeMirror-sizer {
124
- position: relative;
125
- }
126
-
127
- /* The fake, visible scrollbars. Used to force redraw during scrolling
128
- before actuall scrolling happens, thus preventing shaking and
129
- flickering artifacts. */
130
- .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
131
- position: absolute;
132
- z-index: 6;
133
- display: none;
134
- }
135
- .CodeMirror-vscrollbar {
136
- right: 0; top: 0;
137
- overflow-x: hidden;
138
- overflow-y: scroll;
139
- }
140
- .CodeMirror-hscrollbar {
141
- bottom: 0; left: 0;
142
- overflow-y: hidden;
143
- overflow-x: scroll;
144
- }
145
- .CodeMirror-scrollbar-filler {
146
- right: 0; bottom: 0;
147
- }
148
- .CodeMirror-gutter-filler {
149
- left: 0; bottom: 0;
150
- }
151
-
152
- .CodeMirror-gutters {
153
- position: absolute; left: 0; top: 0;
154
- padding-bottom: 30px;
155
- z-index: 3;
156
- }
157
- .CodeMirror-gutter {
158
- white-space: normal;
159
- height: 100%;
160
- padding-bottom: 30px;
161
- margin-bottom: -32px;
162
- display: inline-block;
163
- /* Hack to make IE7 behave */
164
- *zoom:1;
165
- *display:inline;
166
- }
167
- .CodeMirror-gutter-elt {
168
- position: absolute;
169
- cursor: default;
170
- z-index: 4;
171
- }
172
-
173
- .CodeMirror-lines {
174
- cursor: text;
175
- }
176
- .CodeMirror pre {
177
- /* Reset some styles that the rest of the page might have set */
178
- -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
179
- border-width: 0;
180
- background: transparent;
181
- font-family: inherit;
182
- font-size: inherit;
183
- margin: 0;
184
- white-space: pre;
185
- word-wrap: normal;
186
- line-height: inherit;
187
- color: inherit;
188
- z-index: 2;
189
- position: relative;
190
- overflow: visible;
191
- }
192
- .CodeMirror-wrap pre {
193
- word-wrap: break-word;
194
- white-space: pre-wrap;
195
- word-break: normal;
196
- }
197
- .CodeMirror-code pre {
198
- border-right: 30px solid transparent;
199
- width: -webkit-fit-content;
200
- width: -moz-fit-content;
201
- width: fit-content;
202
- }
203
- .CodeMirror-wrap .CodeMirror-code pre {
204
- border-right: none;
205
- width: auto;
206
- }
207
- .CodeMirror-linebackground {
208
- position: absolute;
209
- left: 0; right: 0; top: 0; bottom: 0;
210
- z-index: 0;
211
- }
212
-
213
- .CodeMirror-linewidget {
214
- position: relative;
215
- z-index: 2;
216
- overflow: auto;
217
- }
218
-
219
- .CodeMirror-widget {
220
- }
221
-
222
- .CodeMirror-wrap .CodeMirror-scroll {
223
- overflow-x: hidden;
224
- }
225
-
226
- .CodeMirror-measure {
227
- position: absolute;
228
- width: 100%; height: 0px;
229
- overflow: hidden;
230
- visibility: hidden;
231
- }
232
- .CodeMirror-measure pre { position: static; }
233
-
234
- .CodeMirror div.CodeMirror-cursor {
235
- position: absolute;
236
- visibility: hidden;
237
- border-right: none;
238
- width: 0;
239
- }
240
- .CodeMirror-focused div.CodeMirror-cursor {
241
- visibility: visible;
242
- }
243
-
244
- .CodeMirror-selected { background: #d9d9d9; }
245
- .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
246
-
247
- .cm-searching {
248
- background: #ffa;
249
- background: rgba(255, 255, 0, .4);
250
- }
251
-
252
- /* IE7 hack to prevent it from returning funny offsetTops on the spans */
253
- .CodeMirror span { *vertical-align: text-bottom; }
254
-
255
- @media print {
256
- /* Hide the cursor when printing */
257
- .CodeMirror div.CodeMirror-cursor {
258
- visibility: hidden;
259
- }
260
- }
1
+ /* BASICS */
2
+
3
+ .CodeMirror {
4
+ /* Set height, width, borders, and global font properties here */
5
+ font-family: monospace;
6
+ height: 400px;
7
+ clear: both;
8
+ padding: 0;
9
+ }
10
+ .CodeMirror-scroll {
11
+ /* Set scrolling behaviour here */
12
+ overflow: auto;
13
+ }
14
+
15
+ /* PADDING */
16
+
17
+ .CodeMirror-lines {
18
+ padding: 4px 0; /* Vertical padding around content */
19
+ }
20
+ .CodeMirror pre {
21
+ padding: 0 4px; /* Horizontal padding of content */
22
+ }
23
+
24
+ .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
25
+ background-color: white; /* The little square between H and V scrollbars */
26
+ }
27
+
28
+ /* GUTTER */
29
+
30
+ .CodeMirror-gutters {
31
+ border-right: 1px solid #ddd;
32
+ background-color: #f7f7f7;
33
+ white-space: nowrap;
34
+ }
35
+ .CodeMirror-linenumbers {}
36
+ .CodeMirror-linenumber {
37
+ padding: 0 3px 0 5px;
38
+ min-width: 20px;
39
+ text-align: right;
40
+ color: #999;
41
+ }
42
+
43
+ /* CURSOR */
44
+
45
+ .CodeMirror div.CodeMirror-cursor {
46
+ border-left: 1px solid black;
47
+ z-index: 3;
48
+ }
49
+ /* Shown when moving in bi-directional text */
50
+ .CodeMirror div.CodeMirror-secondarycursor {
51
+ border-left: 1px solid silver;
52
+ }
53
+ .CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
54
+ width: auto;
55
+ border: 0;
56
+ background: #7e7;
57
+ z-index: 1;
58
+ }
59
+ /* Can style cursor different in overwrite (non-insert) mode */
60
+ .CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {}
61
+
62
+ .cm-tab { display: inline-block; }
63
+
64
+ /* DEFAULT THEME */
65
+
66
+ .cm-s-default .cm-keyword {color: #708;}
67
+ .cm-s-default .cm-atom {color: #219;}
68
+ .cm-s-default .cm-number {color: #164;}
69
+ .cm-s-default .cm-def {color: #00f;}
70
+ .cm-s-default .cm-variable {color: black;}
71
+ .cm-s-default .cm-variable-2 {color: #05a;}
72
+ .cm-s-default .cm-variable-3 {color: #085;}
73
+ .cm-s-default .cm-property {color: black;}
74
+ .cm-s-default .cm-operator {color: black;}
75
+ .cm-s-default .cm-comment {color: #a50;}
76
+ .cm-s-default .cm-string {color: #a11;}
77
+ .cm-s-default .cm-string-2 {color: #f50;}
78
+ .cm-s-default .cm-meta {color: #555;}
79
+ .cm-s-default .cm-error {color: #f00;}
80
+ .cm-s-default .cm-qualifier {color: #555;}
81
+ .cm-s-default .cm-builtin {color: #30a;}
82
+ .cm-s-default .cm-bracket {color: #997;}
83
+ .cm-s-default .cm-tag {color: #170;}
84
+ .cm-s-default .cm-attribute {color: #00c;}
85
+ .cm-s-default .cm-header {color: blue;}
86
+ .cm-s-default .cm-quote {color: #090;}
87
+ .cm-s-default .cm-hr {color: #999;}
88
+ .cm-s-default .cm-link {color: #00c;}
89
+
90
+ .cm-negative {color: #d44;}
91
+ .cm-positive {color: #292;}
92
+ .cm-header, .cm-strong {font-weight: bold;}
93
+ .cm-em {font-style: italic;}
94
+ .cm-link {text-decoration: underline;}
95
+
96
+ .cm-invalidchar {color: #f00;}
97
+
98
+ div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
99
+ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
100
+
101
+ /* STOP */
102
+
103
+ /* The rest of this file contains styles related to the mechanics of
104
+ the editor. You probably shouldn't touch them. */
105
+
106
+ .CodeMirror {
107
+ line-height: 1;
108
+ position: relative;
109
+ overflow: hidden;
110
+ background: #fafafa;
111
+ color: black;
112
+ }
113
+
114
+ .CodeMirror-scroll {
115
+ /* 30px is the magic margin used to hide the element's real scrollbars */
116
+ /* See overflow: hidden in .CodeMirror */
117
+ margin-bottom: -30px; margin-right: -30px;
118
+ padding-bottom: 30px; padding-right: 30px;
119
+ height: 100%;
120
+ outline: none; /* Prevent dragging from highlighting the element */
121
+ position: relative;
122
+ }
123
+ .CodeMirror-sizer {
124
+ position: relative;
125
+ }
126
+
127
+ /* The fake, visible scrollbars. Used to force redraw during scrolling
128
+ before actuall scrolling happens, thus preventing shaking and
129
+ flickering artifacts. */
130
+ .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
131
+ position: absolute;
132
+ z-index: 6;
133
+ display: none;
134
+ }
135
+ .CodeMirror-vscrollbar {
136
+ right: 0; top: 0;
137
+ overflow-x: hidden;
138
+ overflow-y: scroll;
139
+ }
140
+ .CodeMirror-hscrollbar {
141
+ bottom: 0; left: 0;
142
+ overflow-y: hidden;
143
+ overflow-x: scroll;
144
+ }
145
+ .CodeMirror-scrollbar-filler {
146
+ right: 0; bottom: 0;
147
+ }
148
+ .CodeMirror-gutter-filler {
149
+ left: 0; bottom: 0;
150
+ }
151
+
152
+ .CodeMirror-gutters {
153
+ position: absolute; left: 0; top: 0;
154
+ padding-bottom: 30px;
155
+ z-index: 3;
156
+ }
157
+ .CodeMirror-gutter {
158
+ white-space: normal;
159
+ height: 100%;
160
+ padding-bottom: 30px;
161
+ margin-bottom: -32px;
162
+ display: inline-block;
163
+ /* Hack to make IE7 behave */
164
+ *zoom:1;
165
+ *display:inline;
166
+ }
167
+ .CodeMirror-gutter-elt {
168
+ position: absolute;
169
+ cursor: default;
170
+ z-index: 4;
171
+ }
172
+
173
+ .CodeMirror-lines {
174
+ cursor: text;
175
+ }
176
+ .CodeMirror pre {
177
+ /* Reset some styles that the rest of the page might have set */
178
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
179
+ border-width: 0;
180
+ background: transparent;
181
+ font-family: inherit;
182
+ font-size: inherit;
183
+ margin: 0;
184
+ white-space: pre;
185
+ word-wrap: normal;
186
+ line-height: inherit;
187
+ color: inherit;
188
+ z-index: 2;
189
+ position: relative;
190
+ overflow: visible;
191
+ }
192
+ .CodeMirror-wrap pre {
193
+ word-wrap: break-word;
194
+ white-space: pre-wrap;
195
+ word-break: normal;
196
+ }
197
+ .CodeMirror-code pre {
198
+ border-right: 30px solid transparent;
199
+ width: -webkit-fit-content;
200
+ width: -moz-fit-content;
201
+ width: fit-content;
202
+ }
203
+ .CodeMirror-wrap .CodeMirror-code pre {
204
+ border-right: none;
205
+ width: auto;
206
+ }
207
+ .CodeMirror-linebackground {
208
+ position: absolute;
209
+ left: 0; right: 0; top: 0; bottom: 0;
210
+ z-index: 0;
211
+ }
212
+
213
+ .CodeMirror-linewidget {
214
+ position: relative;
215
+ z-index: 2;
216
+ overflow: auto;
217
+ }
218
+
219
+ .CodeMirror-widget {
220
+ }
221
+
222
+ .CodeMirror-wrap .CodeMirror-scroll {
223
+ overflow-x: hidden;
224
+ }
225
+
226
+ .CodeMirror-measure {
227
+ position: absolute;
228
+ width: 100%; height: 0px;
229
+ overflow: hidden;
230
+ visibility: hidden;
231
+ }
232
+ .CodeMirror-measure pre { position: static; }
233
+
234
+ .CodeMirror div.CodeMirror-cursor {
235
+ position: absolute;
236
+ visibility: hidden;
237
+ border-right: none;
238
+ width: 0;
239
+ }
240
+ .CodeMirror-focused div.CodeMirror-cursor {
241
+ visibility: visible;
242
+ }
243
+
244
+ .CodeMirror-selected { background: #d9d9d9; }
245
+ .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
246
+
247
+ .cm-searching {
248
+ background: #ffa;
249
+ background: rgba(255, 255, 0, .4);
250
+ }
251
+
252
+ /* IE7 hack to prevent it from returning funny offsetTops on the spans */
253
+ .CodeMirror span { *vertical-align: text-bottom; }
254
+
255
+ @media print {
256
+ /* Hide the cursor when printing */
257
+ .CodeMirror div.CodeMirror-cursor {
258
+ visibility: hidden;
259
+ }
260
+ }
plugin-fw/assets/css/colorbox.css CHANGED
@@ -1,66 +1,66 @@
1
- /*
2
- Colorbox Core Style:
3
- The following CSS is consistent between example themes and should not be altered.
4
- */
5
- #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden; -webkit-transform: translate3d(0,0,0);}
6
- #cboxWrapper {max-width:none;}
7
- #cboxOverlay{position:fixed; width:100%; height:100%;}
8
- #cboxMiddleLeft, #cboxBottomLeft{clear:left;}
9
- #cboxContent{position:relative;}
10
- #cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
11
- #cboxTitle{margin:0;}
12
- #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
13
- #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
14
- .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
15
- .cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
16
- #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
17
-
18
- /*
19
- User Style:
20
- Change the following styles to modify the appearance of Colorbox. They are
21
- ordered & tabbed in a way that represents the nesting of the generated HTML.
22
- */
23
- #cboxOverlay{background:#fff; opacity: 0.9; filter: alpha(opacity = 90);}
24
- #colorbox{outline:0;}
25
- #cboxTopLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat 0 0;}
26
- #cboxTopCenter{height:25px; background:url(../images/colorbox/border1.png) repeat-x 0 -50px;}
27
- #cboxTopRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat -25px 0;}
28
- #cboxBottomLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat 0 -25px;}
29
- #cboxBottomCenter{height:25px; background:url(../images/colorbox/border1.png) repeat-x 0 -75px;}
30
- #cboxBottomRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat -25px -25px;}
31
- #cboxMiddleLeft{width:25px; background:url(../images/colorbox/border2.png) repeat-y 0 0;}
32
- #cboxMiddleRight{width:25px; background:url(../images/colorbox/border2.png) repeat-y -25px 0;}
33
- #cboxContent{background:#fff; overflow:hidden;}
34
- .cboxIframe{background:#fff;}
35
- #cboxError{padding:50px; border:1px solid #ccc;}
36
- #cboxLoadedContent{margin-bottom:20px;}
37
- #cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;}
38
- #cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;}
39
- #cboxLoadingOverlay{background:#fff url(../images/colorbox/loading.gif) no-repeat 5px 5px;}
40
-
41
- /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
42
- #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
43
-
44
- /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
45
- #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
46
-
47
- #cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;}
48
- #cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
49
- #cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
50
- #cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}
51
-
52
- /*
53
- The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
54
- when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
55
- See: http://jacklmoore.com/notes/ie-transparency-problems/
56
- */
57
- .cboxIE #cboxTopLeft,
58
- .cboxIE #cboxTopCenter,
59
- .cboxIE #cboxTopRight,
60
- .cboxIE #cboxBottomLeft,
61
- .cboxIE #cboxBottomCenter,
62
- .cboxIE #cboxBottomRight,
63
- .cboxIE #cboxMiddleLeft,
64
- .cboxIE #cboxMiddleRight {
65
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
66
  }
1
+ /*
2
+ Colorbox Core Style:
3
+ The following CSS is consistent between example themes and should not be altered.
4
+ */
5
+ #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden; -webkit-transform: translate3d(0,0,0);}
6
+ #cboxWrapper {max-width:none;}
7
+ #cboxOverlay{position:fixed; width:100%; height:100%;}
8
+ #cboxMiddleLeft, #cboxBottomLeft{clear:left;}
9
+ #cboxContent{position:relative;}
10
+ #cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
11
+ #cboxTitle{margin:0;}
12
+ #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
13
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
14
+ .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
15
+ .cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
16
+ #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
17
+
18
+ /*
19
+ User Style:
20
+ Change the following styles to modify the appearance of Colorbox. They are
21
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
22
+ */
23
+ #cboxOverlay{background:#fff; opacity: 0.9; filter: alpha(opacity = 90);}
24
+ #colorbox{outline:0;}
25
+ #cboxTopLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat 0 0;}
26
+ #cboxTopCenter{height:25px; background:url(../images/colorbox/border1.png) repeat-x 0 -50px;}
27
+ #cboxTopRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat -25px 0;}
28
+ #cboxBottomLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat 0 -25px;}
29
+ #cboxBottomCenter{height:25px; background:url(../images/colorbox/border1.png) repeat-x 0 -75px;}
30
+ #cboxBottomRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) no-repeat -25px -25px;}
31
+ #cboxMiddleLeft{width:25px; background:url(../images/colorbox/border2.png) repeat-y 0 0;}
32
+ #cboxMiddleRight{width:25px; background:url(../images/colorbox/border2.png) repeat-y -25px 0;}
33
+ #cboxContent{background:#fff; overflow:hidden;}
34
+ .cboxIframe{background:#fff;}
35
+ #cboxError{padding:50px; border:1px solid #ccc;}
36
+ #cboxLoadedContent{margin-bottom:20px;}
37
+ #cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;}
38
+ #cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;}
39
+ #cboxLoadingOverlay{background:#fff url(../images/colorbox/loading.gif) no-repeat 5px 5px;}
40
+
41
+ /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
42
+ #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
43
+
44
+ /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
45
+ #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
46
+
47
+ #cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;}
48
+ #cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
49
+ #cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
50
+ #cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}
51
+
52
+ /*
53
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
54
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
55
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
56
+ */
57
+ .cboxIE #cboxTopLeft,
58
+ .cboxIE #cboxTopCenter,
59
+ .cboxIE #cboxTopRight,
60
+ .cboxIE #cboxBottomLeft,
61
+ .cboxIE #cboxBottomCenter,
62
+ .cboxIE #cboxBottomRight,
63
+ .cboxIE #cboxMiddleLeft,
64
+ .cboxIE #cboxMiddleRight {
65
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
66
  }
plugin-fw/assets/css/elementor.css CHANGED
@@ -1,36 +1,36 @@
1
- /**
2
- * Style for Elementor Editor customization
3
- */
4
-
5
- .yith-plugin-fw-elementor-widget-description {
6
- margin-bottom : 10px;
7
- font-style : italic;
8
- }
9
-
10
- .yith-plugin-fw-elementor-shortcode-widget--shortcode,
11
- .yith-plugin-fw-elementor-shortcode-widget--empty-html {
12
- font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
13
- padding : 1em 1em 1.2em;
14
- border : 1px solid #1e1e1e;
15
- border-radius : 4px;
16
- }
17
-
18
- .yith-plugin-fw-elementor-shortcode-widget__title {
19
- font-size : 15px;
20
- font-weight : 700;
21
- margin-bottom : 10px;
22
- }
23
-
24
- .yith-plugin-fw-elementor-shortcode-widget__message {
25
- font-style : italic;
26
- font-size : 13px;
27
- }
28
-
29
- .yith-plugin-fw-elementor-shortcode-widget--shortcode .yith-plugin-fw-elementor-shortcode-widget__content {
30
- font-family : Menlo, Consolas, monaco, monospace;
31
- color : #1e1e1e;
32
- font-size : 13px;
33
- padding : 0.8em 1em;
34
- border : 1px solid #ddd;
35
- border-radius : 4px;
36
  }
1
+ /**
2
+ * Style for Elementor Editor customization
3
+ */
4
+
5
+ .yith-plugin-fw-elementor-widget-description {
6
+ margin-bottom : 10px;
7
+ font-style : italic;
8
+ }
9
+
10
+ .yith-plugin-fw-elementor-shortcode-widget--shortcode,
11
+ .yith-plugin-fw-elementor-shortcode-widget--empty-html {
12
+ font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
13
+ padding : 1em 1em 1.2em;
14
+ border : 1px solid #1e1e1e;
15
+ border-radius : 4px;
16
+ }
17
+
18
+ .yith-plugin-fw-elementor-shortcode-widget__title {
19
+ font-size : 15px;
20
+ font-weight : 700;
21
+ margin-bottom : 10px;
22
+ }
23
+
24
+ .yith-plugin-fw-elementor-shortcode-widget__message {
25
+ font-style : italic;
26
+ font-size : 13px;
27
+ }
28
+
29
+ .yith-plugin-fw-elementor-shortcode-widget--shortcode .yith-plugin-fw-elementor-shortcode-widget__content {
30
+ font-family : Menlo, Consolas, monaco, monospace;
31
+ color : #1e1e1e;
32
+ font-size : 13px;
33
+ padding : 0.8em 1em;
34
+ border : 1px solid #ddd;
35
+ border-radius : 4px;
36
  }
plugin-fw/assets/css/metaboxes.css CHANGED
@@ -1,752 +1,752 @@
1
- /* self-clear floats */
2
- .clearfix:after {
3
- content : ".";
4
- display : block;
5
- height : 0;
6
- clear : both;
7
- visibility : hidden;
8
- overflow : hidden;
9
- }
10
-
11
- /* ie.css */
12
- * html .clearfix { /* IE6 */
13
- height : 1%;
14
- }
15
-
16
- *:first-child + html .clearfix { /* IE7 */
17
- min-height : 1%;
18
- }
19
-
20
- .clearboth {
21
- clear : both
22
- }
23
-
24
- /* === TAB STYLE */
25
- .metaboxes-tab {
26
- margin : -6px -12px -8px;
27
- }
28
-
29
- .metaboxes-tab div.tabs-panel {
30
- height : auto;
31
- overflow : visible;
32
- margin-top : 0px;
33
- padding : 0 10px;
34
- background : none;
35
- border : 0;
36
- }
37
-
38
- .metaboxes-tab ul.metaboxes-tabs {
39
- background : #f1f1f1;
40
- margin : 0;
41
- padding : 10px 0 0 5px;
42
- }
43
-
44
- .metaboxes-tab ul.metaboxes-tabs li {
45
- float : left;
46
- background : #dedede;
47
- margin : 0 0 0 5px;
48
- }
49
-
50
- .metaboxes-tab ul.metaboxes-tabs li a {
51
- color : #555;
52
- text-decoration : none;
53
- padding : 8px 15px;
54
- display : block;
55
- box-shadow : none !important;
56
- }
57
-
58
- .metaboxes-tab ul.metaboxes-tabs li.tabs {
59
- background : #fff;
60
- }
61
-
62
- .metaboxes-tab p.field-row {
63
- margin : 20px 0;
64
- }
65
-
66
- .metaboxes-tab div.sep {
67
- height : 1px;
68
- background : #dfdfdf;
69
- clear : both;
70
- margin-left : -10px;
71
- margin-right : -10px;
72
- }
73
-
74
- .metaboxes-tab label {
75
- font-weight : bold;
76
- width : 160px;
77
- float : left;
78
- line-height : 23px;
79
- margin-left : -184px;
80
- }
81
-
82
- .metaboxes-tab label small {
83
- font-weight : normal;
84
- line-height : 15px;
85
- font-style : italic;
86
- color : #999;
87
- display : block;
88
- }
89
-
90
- .metaboxes-tab .yith-plugin-fw-radio__row {
91
- width : 100%;
92
- min-height : 20px;
93
- }
94
-
95
- .metaboxes-tab .yith-plugin-fw-radio__row label,
96
- .metaboxes-tab .yith-toggle-elements label,
97
- .metaboxes-tab .yith-add-box label {
98
- margin-left : 0;
99
- font-weight : normal;
100
- }
101
-
102
- .metaboxes-tab.yith-plugin-ui h3 {
103
- color : #2a8db0;
104
- font-size : 15px;
105
- text-transform : uppercase;
106
- padding : 5px 20px;
107
- margin : 0 0 0 -4px;
108
- width : auto;
109
- background : transparent;
110
- }
111
-
112
- .metaboxes-tab.yith-plugin-ui .yith-add-box,
113
- .metaboxes-tab.yith-plugin-ui .yith-toggle-row {
114
- width : auto;
115
- }
116
-
117
- .metaboxes-tab .wp-picker-container label {
118
- font-weight : inherit;
119
- width : auto;
120
- float : none;
121
- line-height : inherit;
122
- margin-left : 0;
123
- }
124
-
125
- .metaboxes-tab.yith-plugin-ui .yith-plugin-fw-radio__row label {
126
- width : auto !important;
127
- display : inline-block;
128
- font-weight : normal;
129
- float : none;
130
- }
131
-
132
- .metaboxes-tab input[type="checkbox"] {
133
- vertical-align : middle
134
- }
135
-
136
- .metaboxes-tab input.button-secondary, .metaboxes-tab input.checkbox {
137
- width : auto;
138
- }
139
-
140
- .metaboxes-tab p.field-row.textarea .description {
141
- vertical-align : top;
142
- }
143
-
144
- .metaboxes-tab p.field-row.checkbox {
145
- background : none;
146
- }
147
-
148
- .metaboxes-tab .the-metabox {
149
- margin : 20px 0;
150
- margin-left : 184px;
151
- }
152
-
153
- .metaboxes-tab .the-metabox.no-label {
154
- margin : 20px 0;
155
- margin-left : 0;
156
- }
157
-
158
- .metaboxes-tab hr {
159
- height : 0px;
160
- border-top : 1px solid #dadada;
161
- width : auto;
162
- margin-left : -10px;
163
- margin-right : -10px;
164
- }
165
-
166
- .metaboxes-tab .the-metabox p {
167
- margin : 0;
168
- }
169
-
170
- .metaboxes-tab .the-metabox:last-child {
171
- border-bottom : 0px;
172
- }
173
-
174
- .metaboxes-tab .the-metabox.checkbox {
175
- background : none;
176
- }
177
-
178
- .metaboxes-tab span.description.inline {
179
- display : inline-block;
180
- line-height : 23px;
181
- width : auto;
182
- margin : 0;
183
- }
184
-
185
- .metaboxes-tab .slider label {
186
- padding : 15px 0;
187
- }
188
-
189
- .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs {
190
- background : transparent;
191
- border-bottom : 1px solid #d8d8d8;
192
- padding : 10px 0 0 0;
193
- margin : 0 10px
194
- }
195
-
196
-
197
- .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li {
198
- background : #fff;
199
- border-top : 1px solid #d8d8d8;
200
- border-left : 1px solid #d8d8d8;
201
- border-right : 1px solid #d8d8d8;
202
- margin : 0 0 -1px -1px;
203
- }
204
-
205
- .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li.tabs {
206
- border-bottom : 1px solid #fff;
207
- }
208
-
209
- .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li a {
210
- color : #336374;
211
- padding : 10px 18px;
212
- text-transform : uppercase;
213
- font-weight : 600;
214
- display : inline-block;
215
- }
216
-
217
- .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li.tabs a {
218
- color : #2a8db0;
219
- }
220
-
221
- /* sortable table posts */
222
-
223
- #the-list.ui-sortable tr:hover {
224
- cursor : move;
225
- }
226
-
227
- .the-metabox.preview {
228
- float : none;
229
- }
230
-
231
- .metaboxes-tab .the-metabox.no-label.preview {
232
- margin-left : 184px;
233
- }
234
-
235
- .metaboxes-tab .the-metabox.no-label.preview img {
236
- box-shadow : 0 1px 8px rgba(0, 0, 0, 0.2);
237
- }
238
-
239
- /**************************************
240
- FIELDS
241
- ***************************************/
242
-
243
- .metaboxes-tab select,
244
- .metaboxes-tab input[type=text],
245
- .metaboxes-tab input[type=number],
246
- .metaboxes-tab textarea,
247
- .metaboxes-tab .yith-plugin-fw-select,
248
- .metaboxes-tab .yith-plugin-fw-slider-container,
249
- .metaboxes-tab .yith-plugin-fw-text-input,
250
- .metaboxes-tab .yith-plugin-fw-text-array-table,
251
- .metaboxes-tab .yith-plugin-fw-textarea {
252
- width : 400px;
253
- max-width : 100%;
254
- }
255
-
256
- .metaboxes-tab.yith-plugin-ui input[type=number] {
257
- width : 70px;
258
- min-width : 70px;
259
- }
260
-
261
- .metaboxes-tab.yith-plugin-ui p {
262
- font-size : 14px;
263
- }
264
-
265
- .metaboxes-tab.yith-plugin-ui p.section-description {
266
-
267
- margin : 0 20px 40px 18px;
268
- }
269
-
270
- .metaboxes-tab .yith-plugin-fw-text-array-table input[type=text] {
271
- width : 100%;
272
- }
273
-
274
- .metaboxes-tab.yith-plugin-ui .yith-add-box h3 {
275
- padding : 0 0 30px 0;
276
- font-weight : 600;
277
- margin : 0;
278
- }
279
-
280
- .metaboxes-tab.yith-plugin-ui .select2-container--default .select2-selection--single {
281
- border : 0;
282
- margin : 0;
283
- }
284
-
285
- /* wp editor */
286
- .the-metabox.textarea-editor .mceIframeContainer {
287
- background : #fff;
288
- }
289
-
290
-
291
- .the-metabox.textarea-editor label {
292
- margin-top : 24px;
293
- }
294
-
295
- /* categories */
296
- .categories-panel {
297
- width : 30%;
298
- float : left;
299
- margin-right : 4px;
300
- }
301
-
302
- .categories-panel .box {
303
- height : 200px;
304
- border : 1px solid #dfdfdf;
305
- background : #fff;
306
- padding : 6px 10px;
307
- overflow : auto;
308
- }
309
-
310
- .categories-panel ul {
311
- list-style : none;
312
- margin : 0;
313
- }
314
-
315
- .categories-panel ul li {
316
- line-height : 19px;
317
- margin : 0;
318
- padding : 0;
319
- word-wrap : break-word;
320
- }
321
-
322
- .categories-panel ul li label {
323
- font-weight : normal !important;
324
- margin-left : 0 !important;
325
- }
326
-
327
- .categories-panel input.newcategory {
328
- width : 100%;
329
- margin-bottom : 3px;
330
- }
331
-
332
- /* contact form */
333
- .contactform_item {
334
- border-style : solid;
335
- border-width : 1px;
336
- line-height : 1;
337
- margin-bottom : 20px;
338
- padding : 0;
339
- background-color : #f5f5f5;
340
- background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
341
- border-color : #dfdfdf;
342
- border-radius : 3px 3px 3px 3px;
343
- box-shadow : 0 1px 0 #fff inset;
344
- min-width : 255px;
345
- position : relative;
346
- }
347
-
348
- .contactform_item .handlediv {
349
- position : relative;
350
- top : -4px;
351
- }
352
-
353
- .contactform_item h3 {
354
- min-height : 21px;
355
- margin : 13px;
356
- }
357
-
358
- .contactform_item .inside {
359
- padding : 10px !important;
360
- }
361
-
362
- .contactform_item .deps {
363
- display : none;
364
- }
365
-
366
- .contactform_item .addoptions p.option {
367
- margin : 5px 0 5px 200px
368
- }
369
-
370
- .contactform_item .addoptions p label {
371
- width : 80px !important;
372
- }
373
-
374
- .contactform_item .add-field-option {
375
- margin-bottom : 10px !important;
376
- }
377
-
378
- .remove_item {
379
- float : right;
380
- }
381
-
382
- .metabox-sortable-placeholder {
383
- border : 1px dotted #dedede;
384
- margin : 10px 0
385
- }
386
-
387
- /* features tab */
388
- .featurestab_item {
389
- border-style : solid;
390
- border-width : 1px;
391
- line-height : 1;
392
- margin-bottom : 20px;
393
- padding : 0;
394
- background-color : #f5f5f5;
395
- background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
396
- border-color : #dfdfdf;
397
- border-radius : 3px 3px 3px 3px;
398
- box-shadow : 0 1px 0 #fff inset;
399
- min-width : 255px;
400
- position : relative;
401
- }
402
-
403
- .featurestab_item .handlediv {
404
- position : relative;
405
- top : -4px;
406
- }
407
-
408
- .featurestab_item h3 {
409
- min-height : 21px
410
- }
411
-
412
- .featurestab_item .inside {
413
- padding : 10px !important;
414
- }
415
-
416
- .featurestab_item .deps {
417
- display : none;
418
- }
419
-
420
- .featurestab_item .addoptions p.option {
421
- margin : 5px 0 5px 200px
422
- }
423
-
424
- .featurestab_item .addoptions p label {
425
- width : 80px !important;
426
- }
427
-
428
- .featurestab_item .add-field-option {
429
- margin-bottom : 10px !important;
430
- }
431
-
432
- .messages-panel.updated {
433
- margin : 10px 0px 10px !important;
434
- max-width : 1200px;
435
- border-radius : 5px;
436
- -webkit-box-sizing : border-box;
437
- box-sizing : border-box;
438
- }
439
-
440
- .ui-widget-overlay {
441
- background-image : none !important;
442
- }
443
-
444
- .the-metabox .icon_type {
445
- width : 30%;
446
- float : left;
447
- margin-right : 40px
448
- }
449
-
450
- #post-type-settings .category-list label {
451
- width : 187px;
452
- }
453
-
454
- .remove_cat {
455
- float : right;
456
- text-align : center;
457
- display : block;
458
- width : 20px;
459
- height : 20px;
460
- border-radius : 20px;
461
- font-weight : bold;
462
- font-size : 10px;
463
- background : #efefef;
464
- text-decoration : none;
465
- }
466
-
467
- /* typography */
468
- .the-metabox.typography .select_wrapper.font-family {
469
- width : 200px;
470
- }
471
-
472
- .the-metabox.typography .spinner_container {
473
- float : left;
474
- margin-right : 10px;
475
- }
476
-
477
- .the-metabox.typography .spinner_container input.number {
478
- width : 50px !important;
479
- -webkit-border-top-right-radius : 0px;
480
- -webkit-border-bottom-right-radius : 0px;
481
- -moz-border-radius-topright : 0px;
482
- -moz-border-radius-bottomright : 0px;
483
- border-top-right-radius : 0px;
484
- border-bottom-right-radius : 0px;
485
- }
486
-
487
- /* number */
488
- .the-metabox.number input.number {
489
- width : 50px !important;
490
- }
491
-
492
- /* number */
493
- .rm_number .number {
494
- width : 70px;
495
- text-align : right;
496
- -webkit-border-top-right-radius : 0px;
497
- -webkit-border-bottom-right-radius : 0px;
498
- -moz-border-radius-topright : 0px;
499
- -moz-border-radius-bottomright : 0px;
500
- border-top-right-radius : 0px;
501
- border-bottom-right-radius : 0px;
502
- }
503
-
504
- .spinner-wrapper {
505
- position : relative;
506
- height : 23px;
507
- overflow : hidden;
508
- }
509
-
510
- .spinner-wrapper input.number {
511
- float : left;
512
- }
513
-
514
- .spinner-wrapper .spinner-button {
515
- cursor : pointer;
516
- float : left;
517
- position : absolute;
518
- left : 69px;
519
- width : 15px;
520
- height : 12px;
521
- border : 1px solid #dfdfdf;
522
- background : #fff;
523
- margin : 0;
524
- padding : 0;
525
- line-height : 9999px;
526
- overflow : hidden;
527
- background : url('../images/spinner.png') no-repeat center -11px
528
- }
529
-
530
- .spinner-wrapper .spinner-button.button-plus {
531
- top : 0;
532
- -webkit-border-top-right-radius : 3px !important;
533
- -moz-border-radius-topright : 3px !important;
534
- border-top-right-radius : 3px !important;
535
- }
536
-
537
- .spinner-wrapper .spinner-button.button-minus {
538
- bottom : 0;
539
- background-position : center -30px;
540
- -webkit-border-bottom-right-radius : 3px !important;
541
- -moz-border-radius-bottomright : 3px !important;
542
- border-bottom-right-radius : 3px !important;
543
- }
544
-
545
- .spinner-wrapper .spinner-button.button-plus:active {
546
- background-position : center 0px;
547
- }
548
-
549
- .spinner-wrapper .spinner-button.button-minus:active {
550
- background-position : center -20px;
551
- }
552
-
553
- .rm_typography .spinner_container {
554
- float : left;
555
- margin-right : 10px;
556
- }
557
-
558
- .rm_typography .spinner-wrapper {
559
- height : 28px;
560
- }
561
-
562
- .rm_typography .spinner-wrapper input.number {
563
- height : 28px;
564
- }
565
-
566
- .rm_typography .spinner-wrapper .spinner-button.button-plus {
567
- height : 15px;
568
- background-position : center -10px;
569
- }
570
-
571
- .rm_typography .spinner-wrapper .spinner-button.button-minus {
572
- height : 14px;
573
- }
574
-
575
- .the-metabox .spinner-wrapper .spinner-button {
576
- left : 49px;
577
- }
578
-
579
- .the-metabox.typography .spinner-wrapper .spinner-button {
580
- left : 35px;
581
- }
582
-
583
- /* images */
584
- .the-metabox.images, .the-metabox.images label {
585
- margin-left : 0;
586
- display : block;
587
- }
588
-
589
- .the-metabox.images .slides-wrapper {
590
- clear : both;
591
- }
592
-
593
- .the-metabox.images .slides-wrapper li {
594
- position : relative;
595
- }
596
-
597
- .the-metabox.images a.delete {
598
- display : block;
599
- margin-left : 4px;
600
- text-decoration : none;
601
- font-weight : bold;
602
- color : red;
603
- position : absolute;
604
- top : 0;
605
- right : 0;
606
- width : 10px;
607
- height : 18px;
608
- z-index : 10;
609
- cursor : pointer !important;
610
- }
611
-
612
- /* wp editor */
613
- .wp_themeSkin iframe {
614
- background : #fff !important;
615
- }
616
-
617
- /* custom tabs */
618
- .customtab_item {
619
- border-style : solid;
620
- border-width : 1px;
621
- line-height : 1;
622
- margin-bottom : 20px;
623
- padding : 0;
624
- background-color : #f5f5f5;
625
- background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
626
- border-color : #dfdfdf;
627
- border-radius : 3px 3px 3px 3px;
628
- box-shadow : 0 1px 0 #fff inset;
629
- min-width : 255px;
630
- position : relative;
631
- }
632
-
633
- .customtab_item .handlediv {
634
- position : relative;
635
- top : -4px;
636
- }
637
-
638
- .customtab_item h3 {
639
- min-height : 21px
640
- }
641
-
642
- .customtab_item .inside {
643
- padding : 10px !important;
644
- }
645
-
646
- .customtab_item .deps {
647
- display : none;
648
- }
649
-
650
- .customtab_item .addoptions p.option {
651
- margin : 5px 0 5px 200px
652
- }
653
-
654
- .customtab_item .addoptions p label {
655
- width : 80px !important;
656
- }
657
-
658
- .customtab_item .add-field-option {
659
- margin-bottom : 10px !important;
660
- }
661
-
662
- .customtab_item .remove_item {
663
- float : right;
664
- }
665
-
666
- .metabox-sortable-placeholder {
667
- border : 1px dotted #dedede;
668
- margin : 10px 0
669
- }
670
-
671
- .the-metabox.customtabs {
672
- margin-left : 0;
673
- }
674
-
675
- #customtab_item_sample {
676
- display : none;
677
- }
678
-
679
- .the-metabox.customtabs .field-row {
680
- margin-bottom : 10px;
681
- }
682
-
683
- #yit_custom_tabs label {
684
- font-weight : normal;
685
- width : auto;
686
- float : none;
687
- line-height : auto;
688
- margin-left : 0;
689
- }
690
-
691
- .wp-admin p label input[type=radio] {
692
- width : 16px;
693
- margin-right : 10px;
694
- margin-top : 3px;
695
- }
696
-
697
- .wp-admin .form-field._preset_onsale_icon_field label input[type=radio] {
698
- margin-top : 0;
699
- }
700
-
701
- .the-metabox .spinner {
702
- margin-top : 5px;
703
- float : none;
704
- }
705
-
706
- /*sidebars*/
707
- #choose-sidebars.choose {
708
- margin-left : 0px;
709
- }
710
-
711
- #_active_page_options-container label, #_active_page_options-container p {
712
- display : inline-block;
713
- margin : 0px;
714
- }
715
-
716
- #_active_page_options-container label {
717
- margin-right : 10px;
718
- margin-top : 3px;
719
- }
720
-
721
- #_active_page_options-container {
722
- float : right;
723
- margin-right : 20px;
724
- margin-top : 5px;
725
- z-index : 9999 !important;
726
- position : absolute;
727
- right : 0;
728
- }
729
-
730
- /*-----------------------
731
- * Colorpicker - fix issues in combination with third-party themes or plugin (Basel, VC Addons, ...)
732
- */
733
- .metaboxes-tab .the-metabox.colorpicker {
734
- display : block;
735
- width : auto;
736
- height : auto;
737
- overflow : visible;
738
- top : auto;
739
- left : auto;
740
- background : transparent;
741
- position : static;
742
- z-index : 1;
743
- font-family : inherit;
744
- }
745
-
746
- .the-metabox.checkbox.checkboxgroup-start.clearfix {
747
- margin : 40px 0 0 264px;
748
- }
749
-
750
- .the-metabox.checkbox.checkboxgroup.clearfix {
751
- margin : 0 0 0 264px;
752
  }
1
+ /* self-clear floats */
2
+ .clearfix:after {
3
+ content : ".";
4
+ display : block;
5
+ height : 0;
6
+ clear : both;
7
+ visibility : hidden;
8
+ overflow : hidden;
9
+ }
10
+
11
+ /* ie.css */
12
+ * html .clearfix { /* IE6 */
13
+ height : 1%;
14
+ }
15
+
16
+ *:first-child + html .clearfix { /* IE7 */
17
+ min-height : 1%;
18
+ }
19
+
20
+ .clearboth {
21
+ clear : both
22
+ }
23
+
24
+ /* === TAB STYLE */
25
+ .metaboxes-tab {
26
+ margin : -6px -12px -8px;
27
+ }
28
+
29
+ .metaboxes-tab div.tabs-panel {
30
+ height : auto;
31
+ overflow : visible;
32
+ margin-top : 0px;
33
+ padding : 0 10px;
34
+ background : none;
35
+ border : 0;
36
+ }
37
+
38
+ .metaboxes-tab ul.metaboxes-tabs {
39
+ background : #f1f1f1;
40
+ margin : 0;
41
+ padding : 10px 0 0 5px;
42
+ }
43
+
44
+ .metaboxes-tab ul.metaboxes-tabs li {
45
+ float : left;
46
+ background : #dedede;
47
+ margin : 0 0 0 5px;
48
+ }
49
+
50
+ .metaboxes-tab ul.metaboxes-tabs li a {
51
+ color : #555;
52
+ text-decoration : none;
53
+ padding : 8px 15px;
54
+ display : block;
55
+ box-shadow : none !important;
56
+ }
57
+
58
+ .metaboxes-tab ul.metaboxes-tabs li.tabs {
59
+ background : #fff;
60
+ }
61
+
62
+ .metaboxes-tab p.field-row {
63
+ margin : 20px 0;
64
+ }
65
+
66
+ .metaboxes-tab div.sep {
67
+ height : 1px;
68
+ background : #dfdfdf;
69
+ clear : both;
70
+ margin-left : -10px;
71
+ margin-right : -10px;
72
+ }
73
+
74
+ .metaboxes-tab label {
75
+ font-weight : bold;
76
+ width : 160px;
77
+ float : left;
78
+ line-height : 23px;
79
+ margin-left : -184px;
80
+ }
81
+
82
+ .metaboxes-tab label small {
83
+ font-weight : normal;
84
+ line-height : 15px;
85
+ font-style : italic;
86
+ color : #999;
87
+ display : block;
88
+ }
89
+
90
+ .metaboxes-tab .yith-plugin-fw-radio__row {
91
+ width : 100%;
92
+ min-height : 20px;
93
+ }
94
+
95
+ .metaboxes-tab .yith-plugin-fw-radio__row label,
96
+ .metaboxes-tab .yith-toggle-elements label,
97
+ .metaboxes-tab .yith-add-box label {
98
+ margin-left : 0;
99
+ font-weight : normal;
100
+ }
101
+
102
+ .metaboxes-tab.yith-plugin-ui h3 {
103
+ color : #2a8db0;
104
+ font-size : 15px;
105
+ text-transform : uppercase;
106
+ padding : 5px 20px;
107
+ margin : 0 0 0 -4px;
108
+ width : auto;
109
+ background : transparent;
110
+ }
111
+
112
+ .metaboxes-tab.yith-plugin-ui .yith-add-box,
113
+ .metaboxes-tab.yith-plugin-ui .yith-toggle-row {
114
+ width : auto;
115
+ }
116
+
117
+ .metaboxes-tab .wp-picker-container label {
118
+ font-weight : inherit;
119
+ width : auto;
120
+ float : none;
121
+ line-height : inherit;
122
+ margin-left : 0;
123
+ }
124
+
125
+ .metaboxes-tab.yith-plugin-ui .yith-plugin-fw-radio__row label {
126
+ width : auto !important;
127
+ display : inline-block;
128
+ font-weight : normal;
129
+ float : none;
130
+ }
131
+
132
+ .metaboxes-tab input[type="checkbox"] {
133
+ vertical-align : middle
134
+ }
135
+
136
+ .metaboxes-tab input.button-secondary, .metaboxes-tab input.checkbox {
137
+ width : auto;
138
+ }
139
+
140
+ .metaboxes-tab p.field-row.textarea .description {
141
+ vertical-align : top;
142
+ }
143
+
144
+ .metaboxes-tab p.field-row.checkbox {
145
+ background : none;
146
+ }
147
+
148
+ .metaboxes-tab .the-metabox {
149
+ margin : 20px 0;
150
+ margin-left : 184px;
151
+ }
152
+
153
+ .metaboxes-tab .the-metabox.no-label {
154
+ margin : 20px 0;
155
+ margin-left : 0;
156
+ }
157
+
158
+ .metaboxes-tab hr {
159
+ height : 0px;
160
+ border-top : 1px solid #dadada;
161
+ width : auto;
162
+ margin-left : -10px;
163
+ margin-right : -10px;
164
+ }
165
+
166
+ .metaboxes-tab .the-metabox p {
167
+ margin : 0;
168
+ }
169
+
170
+ .metaboxes-tab .the-metabox:last-child {
171
+ border-bottom : 0px;
172
+ }
173
+
174
+ .metaboxes-tab .the-metabox.checkbox {
175
+ background : none;
176
+ }
177
+
178
+ .metaboxes-tab span.description.inline {
179
+ display : inline-block;
180
+ line-height : 23px;
181
+ width : auto;
182
+ margin : 0;
183
+ }
184
+
185
+ .metaboxes-tab .slider label {
186
+ padding : 15px 0;
187
+ }
188
+
189
+ .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs {
190
+ background : transparent;
191
+ border-bottom : 1px solid #d8d8d8;
192
+ padding : 10px 0 0 0;
193
+ margin : 0 10px
194
+ }
195
+
196
+
197
+ .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li {
198
+ background : #fff;
199
+ border-top : 1px solid #d8d8d8;
200
+ border-left : 1px solid #d8d8d8;
201
+ border-right : 1px solid #d8d8d8;
202
+ margin : 0 0 -1px -1px;
203
+ }
204
+
205
+ .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li.tabs {
206
+ border-bottom : 1px solid #fff;
207
+ }
208
+
209
+ .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li a {
210
+ color : #336374;
211
+ padding : 10px 18px;
212
+ text-transform : uppercase;
213
+ font-weight : 600;
214
+ display : inline-block;
215
+ }
216
+
217
+ .metaboxes-tab.yith-plugin-ui ul.metaboxes-tabs li.tabs a {
218
+ color : #2a8db0;
219
+ }
220
+
221
+ /* sortable table posts */
222
+
223
+ #the-list.ui-sortable tr:hover {
224
+ cursor : move;
225
+ }
226
+
227
+ .the-metabox.preview {
228
+ float : none;
229
+ }
230
+
231
+ .metaboxes-tab .the-metabox.no-label.preview {
232
+ margin-left : 184px;
233
+ }
234
+
235
+ .metaboxes-tab .the-metabox.no-label.preview img {
236
+ box-shadow : 0 1px 8px rgba(0, 0, 0, 0.2);
237
+ }
238
+
239
+ /**************************************
240
+ FIELDS
241
+ ***************************************/
242
+
243
+ .metaboxes-tab select,
244
+ .metaboxes-tab input[type=text],
245
+ .metaboxes-tab input[type=number],
246
+ .metaboxes-tab textarea,
247
+ .metaboxes-tab .yith-plugin-fw-select,
248
+ .metaboxes-tab .yith-plugin-fw-slider-container,
249
+ .metaboxes-tab .yith-plugin-fw-text-input,
250
+ .metaboxes-tab .yith-plugin-fw-text-array-table,
251
+ .metaboxes-tab .yith-plugin-fw-textarea {
252
+ width : 400px;
253
+ max-width : 100%;
254
+ }
255
+
256
+ .metaboxes-tab.yith-plugin-ui input[type=number] {
257
+ width : 70px;
258
+ min-width : 70px;
259
+ }
260
+
261
+ .metaboxes-tab.yith-plugin-ui p {
262
+ font-size : 14px;
263
+ }
264
+
265
+ .metaboxes-tab.yith-plugin-ui p.section-description {
266
+
267
+ margin : 0 20px 40px 18px;
268
+ }
269
+
270
+ .metaboxes-tab .yith-plugin-fw-text-array-table input[type=text] {
271
+ width : 100%;
272
+ }
273
+
274
+ .metaboxes-tab.yith-plugin-ui .yith-add-box h3 {
275
+ padding : 0 0 30px 0;
276
+ font-weight : 600;
277
+ margin : 0;
278
+ }
279
+
280
+ .metaboxes-tab.yith-plugin-ui .select2-container--default .select2-selection--single {
281
+ border : 0;
282
+ margin : 0;
283
+ }
284
+
285
+ /* wp editor */
286
+ .the-metabox.textarea-editor .mceIframeContainer {
287
+ background : #fff;
288
+ }
289
+
290
+
291
+ .the-metabox.textarea-editor label {
292
+ margin-top : 24px;
293
+ }
294
+
295
+ /* categories */
296
+ .categories-panel {
297
+ width : 30%;
298
+ float : left;
299
+ margin-right : 4px;
300
+ }
301
+
302
+ .categories-panel .box {
303
+ height : 200px;
304
+ border : 1px solid #dfdfdf;
305
+ background : #fff;
306
+ padding : 6px 10px;
307
+ overflow : auto;
308
+ }
309
+
310
+ .categories-panel ul {
311
+ list-style : none;
312
+ margin : 0;
313
+ }
314
+
315
+ .categories-panel ul li {
316
+ line-height : 19px;
317
+ margin : 0;
318
+ padding : 0;
319
+ word-wrap : break-word;
320
+ }
321
+
322
+ .categories-panel ul li label {
323
+ font-weight : normal !important;
324
+ margin-left : 0 !important;
325
+ }
326
+
327
+ .categories-panel input.newcategory {
328
+ width : 100%;
329
+ margin-bottom : 3px;
330
+ }
331
+
332
+ /* contact form */
333
+ .contactform_item {
334
+ border-style : solid;
335
+ border-width : 1px;
336
+ line-height : 1;
337
+ margin-bottom : 20px;
338
+ padding : 0;
339
+ background-color : #f5f5f5;
340
+ background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
341
+ border-color : #dfdfdf;
342
+ border-radius : 3px 3px 3px 3px;
343
+ box-shadow : 0 1px 0 #fff inset;
344
+ min-width : 255px;
345
+ position : relative;
346
+ }
347
+
348
+ .contactform_item .handlediv {
349
+ position : relative;
350
+ top : -4px;
351
+ }
352
+
353
+ .contactform_item h3 {
354
+ min-height : 21px;
355
+ margin : 13px;
356
+ }
357
+
358
+ .contactform_item .inside {
359
+ padding : 10px !important;
360
+ }
361
+
362
+ .contactform_item .deps {
363
+ display : none;
364
+ }
365
+
366
+ .contactform_item .addoptions p.option {
367
+ margin : 5px 0 5px 200px
368
+ }
369
+
370
+ .contactform_item .addoptions p label {
371
+ width : 80px !important;
372
+ }
373
+
374
+ .contactform_item .add-field-option {
375
+ margin-bottom : 10px !important;
376
+ }
377
+
378
+ .remove_item {
379
+ float : right;
380
+ }
381
+
382
+ .metabox-sortable-placeholder {
383
+ border : 1px dotted #dedede;
384
+ margin : 10px 0
385
+ }
386
+
387
+ /* features tab */
388
+ .featurestab_item {
389
+ border-style : solid;
390
+ border-width : 1px;
391
+ line-height : 1;
392
+ margin-bottom : 20px;
393
+ padding : 0;
394
+ background-color : #f5f5f5;
395
+ background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
396
+ border-color : #dfdfdf;
397
+ border-radius : 3px 3px 3px 3px;
398
+ box-shadow : 0 1px 0 #fff inset;
399
+ min-width : 255px;
400
+ position : relative;
401
+ }
402
+
403
+ .featurestab_item .handlediv {
404
+ position : relative;
405
+ top : -4px;
406
+ }
407
+
408
+ .featurestab_item h3 {
409
+ min-height : 21px
410
+ }
411
+
412
+ .featurestab_item .inside {
413
+ padding : 10px !important;
414
+ }
415
+
416
+ .featurestab_item .deps {
417
+ display : none;
418
+ }
419
+
420
+ .featurestab_item .addoptions p.option {
421
+ margin : 5px 0 5px 200px
422
+ }
423
+
424
+ .featurestab_item .addoptions p label {
425
+ width : 80px !important;
426
+ }
427
+
428
+ .featurestab_item .add-field-option {
429
+ margin-bottom : 10px !important;
430
+ }
431
+
432
+ .messages-panel.updated {
433
+ margin : 10px 0px 10px !important;
434
+ max-width : 1200px;
435
+ border-radius : 5px;
436
+ -webkit-box-sizing : border-box;
437
+ box-sizing : border-box;
438
+ }
439
+
440
+ .ui-widget-overlay {
441
+ background-image : none !important;
442
+ }
443
+
444
+ .the-metabox .icon_type {
445
+ width : 30%;
446
+ float : left;
447
+ margin-right : 40px
448
+ }
449
+
450
+ #post-type-settings .category-list label {
451
+ width : 187px;
452
+ }
453
+
454
+ .remove_cat {
455
+ float : right;
456
+ text-align : center;
457
+ display : block;
458
+ width : 20px;
459
+ height : 20px;
460
+ border-radius : 20px;
461
+ font-weight : bold;
462
+ font-size : 10px;
463
+ background : #efefef;
464
+ text-decoration : none;
465
+ }
466
+
467
+ /* typography */
468
+ .the-metabox.typography .select_wrapper.font-family {
469
+ width : 200px;
470
+ }
471
+
472
+ .the-metabox.typography .spinner_container {
473
+ float : left;
474
+ margin-right : 10px;
475
+ }
476
+
477
+ .the-metabox.typography .spinner_container input.number {
478
+ width : 50px !important;
479
+ -webkit-border-top-right-radius : 0px;
480
+ -webkit-border-bottom-right-radius : 0px;
481
+ -moz-border-radius-topright : 0px;
482
+ -moz-border-radius-bottomright : 0px;
483
+ border-top-right-radius : 0px;
484
+ border-bottom-right-radius : 0px;
485
+ }
486
+
487
+ /* number */
488
+ .the-metabox.number input.number {
489
+ width : 50px !important;
490
+ }
491
+
492
+ /* number */
493
+ .rm_number .number {
494
+ width : 70px;
495
+ text-align : right;
496
+ -webkit-border-top-right-radius : 0px;
497
+ -webkit-border-bottom-right-radius : 0px;
498
+ -moz-border-radius-topright : 0px;
499
+ -moz-border-radius-bottomright : 0px;
500
+ border-top-right-radius : 0px;
501
+ border-bottom-right-radius : 0px;
502
+ }
503
+
504
+ .spinner-wrapper {
505
+ position : relative;
506
+ height : 23px;
507
+ overflow : hidden;
508
+ }
509
+
510
+ .spinner-wrapper input.number {
511
+ float : left;
512
+ }
513
+
514
+ .spinner-wrapper .spinner-button {
515
+ cursor : pointer;
516
+ float : left;
517
+ position : absolute;
518
+ left : 69px;
519
+ width : 15px;
520
+ height : 12px;
521
+ border : 1px solid #dfdfdf;
522
+ background : #fff;
523
+ margin : 0;
524
+ padding : 0;
525
+ line-height : 9999px;
526
+ overflow : hidden;
527
+ background : url('../images/spinner.png') no-repeat center -11px
528
+ }
529
+
530
+ .spinner-wrapper .spinner-button.button-plus {
531
+ top : 0;
532
+ -webkit-border-top-right-radius : 3px !important;
533
+ -moz-border-radius-topright : 3px !important;
534
+ border-top-right-radius : 3px !important;
535
+ }
536
+
537
+ .spinner-wrapper .spinner-button.button-minus {
538
+ bottom : 0;
539
+ background-position : center -30px;
540
+ -webkit-border-bottom-right-radius : 3px !important;
541
+ -moz-border-radius-bottomright : 3px !important;
542
+ border-bottom-right-radius : 3px !important;
543
+ }
544
+
545
+ .spinner-wrapper .spinner-button.button-plus:active {
546
+ background-position : center 0px;
547
+ }
548
+
549
+ .spinner-wrapper .spinner-button.button-minus:active {
550
+ background-position : center -20px;
551
+ }
552
+
553
+ .rm_typography .spinner_container {
554
+ float : left;
555
+ margin-right : 10px;
556
+ }
557
+
558
+ .rm_typography .spinner-wrapper {
559
+ height : 28px;
560
+ }
561
+
562
+ .rm_typography .spinner-wrapper input.number {
563
+ height : 28px;
564
+ }
565
+
566
+ .rm_typography .spinner-wrapper .spinner-button.button-plus {
567
+ height : 15px;
568
+ background-position : center -10px;
569
+ }
570
+
571
+ .rm_typography .spinner-wrapper .spinner-button.button-minus {
572
+ height : 14px;
573
+ }
574
+
575
+ .the-metabox .spinner-wrapper .spinner-button {
576
+ left : 49px;
577
+ }
578
+
579
+ .the-metabox.typography .spinner-wrapper .spinner-button {
580
+ left : 35px;
581
+ }
582
+
583
+ /* images */
584
+ .the-metabox.images, .the-metabox.images label {
585
+ margin-left : 0;
586
+ display : block;
587
+ }
588
+
589
+ .the-metabox.images .slides-wrapper {
590
+ clear : both;
591
+ }
592
+
593
+ .the-metabox.images .slides-wrapper li {
594
+ position : relative;
595
+ }
596
+
597
+ .the-metabox.images a.delete {
598
+ display : block;
599
+ margin-left : 4px;
600
+ text-decoration : none;
601
+ font-weight : bold;
602
+ color : red;
603
+ position : absolute;
604
+ top : 0;
605
+ right : 0;
606
+ width : 10px;
607
+ height : 18px;
608
+ z-index : 10;
609
+ cursor : pointer !important;
610
+ }
611
+
612
+ /* wp editor */
613
+ .wp_themeSkin iframe {
614
+ background : #fff !important;
615
+ }
616
+
617
+ /* custom tabs */
618
+ .customtab_item {
619
+ border-style : solid;
620
+ border-width : 1px;
621
+ line-height : 1;
622
+ margin-bottom : 20px;
623
+ padding : 0;
624
+ background-color : #f5f5f5;
625
+ background-image : -moz-linear-gradient(center top, #f9f9f9, #f5f5f5);
626
+ border-color : #dfdfdf;
627
+ border-radius : 3px 3px 3px 3px;
628
+ box-shadow : 0 1px 0 #fff inset;
629
+ min-width : 255px;
630
+ position : relative;
631
+ }
632
+
633
+ .customtab_item .handlediv {
634
+ position : relative;
635
+ top : -4px;
636
+ }
637
+
638
+ .customtab_item h3 {
639
+ min-height : 21px
640
+ }
641
+
642
+ .customtab_item .inside {
643
+ padding : 10px !important;
644
+ }
645
+
646
+ .customtab_item .deps {
647
+ display : none;
648
+ }
649
+
650
+ .customtab_item .addoptions p.option {
651
+ margin : 5px 0 5px 200px
652
+ }
653
+
654
+ .customtab_item .addoptions p label {
655
+ width : 80px !important;
656
+ }
657
+
658
+ .customtab_item .add-field-option {
659
+ margin-bottom : 10px !important;
660
+ }
661
+
662
+ .customtab_item .remove_item {
663
+ float : right;
664
+ }
665
+
666
+ .metabox-sortable-placeholder {
667
+ border : 1px dotted #dedede;
668
+ margin : 10px 0
669
+ }
670
+
671
+ .the-metabox.customtabs {
672
+ margin-left : 0;
673
+ }
674
+
675
+ #customtab_item_sample {
676
+ display : none;
677
+ }
678
+
679
+ .the-metabox.customtabs .field-row {
680
+ margin-bottom : 10px;
681
+ }
682
+
683
+ #yit_custom_tabs label {
684
+ font-weight : normal;
685
+ width : auto;
686
+ float : none;
687
+ line-height : auto;
688
+ margin-left : 0;
689
+ }
690
+
691
+ .wp-admin p label input[type=radio] {
692
+ width : 16px;
693
+ margin-right : 10px;
694
+ margin-top : 3px;
695
+ }
696
+
697
+ .wp-admin .form-field._preset_onsale_icon_field label input[type=radio] {
698
+ margin-top : 0;
699
+ }
700
+
701
+ .the-metabox .spinner {
702
+ margin-top : 5px;
703
+ float : none;
704
+ }
705
+
706
+ /*sidebars*/
707
+ #choose-sidebars.choose {
708
+ margin-left : 0px;
709
+ }
710
+
711
+ #_active_page_options-container label, #_active_page_options-container p {
712
+ display : inline-block;
713
+ margin : 0px;
714
+ }
715
+
716
+ #_active_page_options-container label {
717
+ margin-right : 10px;
718
+ margin-top : 3px;
719
+ }
720
+
721
+ #_active_page_options-container {
722
+ float : right;
723
+ margin-right : 20px;
724
+ margin-top : 5px;
725
+ z-index : 9999 !important;
726
+ position : absolute;
727
+ right : 0;
728
+ }
729
+
730
+ /*-----------------------
731
+ * Colorpicker - fix issues in combination with third-party themes or plugin (Basel, VC Addons, ...)
732
+ */
733
+ .metaboxes-tab .the-metabox.colorpicker {
734
+ display : block;
735
+ width : auto;
736
+ height : auto;
737
+ overflow : visible;
738
+ top : auto;
739
+ left : auto;
740
+ background : transparent;
741
+ position : static;
742
+ z-index : 1;
743
+ font-family : inherit;
744
+ }
745
+
746
+ .the-metabox.checkbox.checkboxgroup-start.clearfix {
747
+ margin : 40px 0 0 264px;
748
+ }
749
+
750
+ .the-metabox.checkbox.checkboxgroup.clearfix {
751
+ margin : 0 0 0 264px;
752
  }
plugin-fw/assets/css/yit-plugin-panel.css CHANGED
@@ -1,1087 +1,1087 @@
1
- /*
2
- * This file belongs to the YIT Plugin Framework.
3
- *
4
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
5
- * that is bundled with this package in the file LICENSE.txt.
6
- * It is also available through the world-wide-web at this URL:
7
- * http://www.gnu.org/licenses/gpl-3.0.txt
8
- */
9
- .plugin-option tr {
10
- border-bottom : 1px solid #ebebeb;
11
- }
12
-
13
- .plugin-option .yit_options,
14
- .plugin-option .yit-options {
15
- border-bottom : 0px;
16
- }
17
-
18
- .plugin-option .yit-options .option,
19
- .plugin-option .yit_options .option {
20
- width : 600px;
21
- }
22
-
23
- .plugin-option .form-table > tbody > tr > td {
24
- padding : 25px 15px;
25
- }
26
-
27
- .ie8 .yit_options select,
28
- .ie8 .yit-options select {
29
- height : 26px;
30
- }
31
-
32
- /* Style to woocommerce panel*/
33
-
34
- #plugin-fw-wc, #yith-plugin-fw-panel {
35
- padding-top : 20px;
36
- }
37
-
38
- #plugin-fw-wc table.form-table, #yith-plugin-fw-panel table.form-table, .yith-plugin-fw-panel-custom-tab-container {
39
- background-color : #fff;
40
- margin-bottom : 20px;
41
- }
42
-
43
- .yith-plugin-fw-panel-custom-tab-container {
44
- padding : 20px;
45
- box-sizing : border-box;
46
- margin-right : 15px;
47
- }
48
-
49
- .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container {
50
- border : 1px solid #ddd;
51
- border-top : 0;
52
- }
53
-
54
- .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container {
55
- padding : 20px;
56
- box-sizing : border-box;
57
- border : 1px solid #ccc;
58
- border-top : 0;
59
- margin : -20px 0 0 0;
60
- }
61
-
62
- .yith-plugin-fw-panel-custom-tab-container > h2,
63
- .yith-plugin-fw-panel-custom-tab-container h2,
64
- .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container > h2,
65
- .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container h2,
66
- .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container > h2,
67
- .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container h2 {
68
- border : none;
69
- padding : 15px 0;
70
- }
71
-
72
- #plugin-fw-wc table.form-table th, #yith-plugin-fw-panel table.form-table th {
73
- padding : 20px;
74
- }
75
-
76
- #plugin-fw-wc h3, #yith-plugin-fw-panel h3 {
77
- padding : 0 0 0 10px;
78
- margin : 0;
79
- }
80
-
81
- /**
82
- Help tab
83
- */
84
-
85
- .yith-plugin-fw-panel-help-tab-container {
86
- background-color : #fff;
87
- padding : 60px 25px;
88
- }
89
-
90
- .yith-plugin-fw-panel-help-tab-content {
91
- background-color : #f4f4f4;
92
- border-radius : 15px;
93
- max-width : 1100px;
94
- margin : 0 auto;
95
- padding : 40px 40px 60px;
96
- }
97
-
98
- .yith-plugin-fw-panel-help-tab-content p,
99
- .yith-plugin-fw-panel-help-tab-content a {
100
- font-size : 16px;
101
- }
102
-
103
- .yith-plugin-fw-panel-help-tab-content .row {
104
- margin : 0 -15px 50px;
105
- white-space : nowrap;
106
- }
107
-
108
- .yith-plugin-fw-panel-help-tab-content .row:last-child {
109
- margin-bottom : 0;
110
- }
111
-
112
- .yith-plugin-fw-panel-help-tab-content .row .column-left,
113
- .yith-plugin-fw-panel-help-tab-content .row .column-right {
114
- display : inline-block;
115
- padding : 0 15px;
116
- vertical-align : top;
117
- width : 66%;
118
- }
119
-
120
- .yith-plugin-fw-panel-help-tab-content .row .column-right {
121
- width : 33%;
122
- }
123
-
124
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video,
125
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-actions,
126
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles,
127
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
128
- box-sizing : border-box;
129
- white-space : normal;
130
- }
131
-
132
- .yith-plugin-fw-panel-help-tab-content h2.yith-plugin-fw-panel-help-tab-title {
133
- background : none;
134
- border : none;
135
- font-size : 22px;
136
- line-height : 1.5em;
137
- padding : 0;
138
- text-align : center;
139
- }
140
-
141
- .yith-plugin-fw-panel-help-tab-content h3 {
142
- color : #03689f;
143
- font-size : 15px;
144
- }
145
-
146
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-panel-tab-description {
147
- font-size : 18px;
148
- text-align : center;
149
- margin-bottom : 40px;
150
- }
151
-
152
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video {
153
- text-align : center;
154
- }
155
-
156
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video p.video-description {
157
- margin-bottom : 25px;
158
- }
159
-
160
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-caption p {
161
- margin : 5px 0;
162
- }
163
-
164
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container {
165
- margin : 0 auto 50px;
166
- overflow : hidden;
167
- padding-top : 56.25%;
168
- position : relative;
169
- }
170
-
171
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container iframe {
172
- border : 0;
173
- height : 100%;
174
- left : 0;
175
- position : absolute;
176
- top : 0;
177
- width : 100%;
178
- }
179
-
180
- .yith-plugin-fw-panel-help-tab-content .box-with-shadow {
181
- display : block;
182
- background-color : #fff;
183
- border-radius : 5px;
184
- box-shadow : 0 0 15px 5px rgba(174, 201, 207, 0.3);
185
- transition : all .2s ease;
186
- }
187
-
188
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions,
189
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
190
- margin : 0 auto;
191
- max-width : 640px;
192
- }
193
-
194
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions:not( .full-width ) {
195
- padding-top : 65px !important;
196
- }
197
-
198
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li {
199
- margin-bottom : 20px;
200
- }
201
-
202
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li > a {
203
- display : block;
204
- padding : 15px 20px 15px 75px !important;
205
- text-decoration : none;
206
- }
207
-
208
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li:hover {
209
- box-shadow : 0 0 15px 5px rgba(177, 220, 228, 0.6);
210
- transform : scale(1.04);
211
- }
212
-
213
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li a:before {
214
- color : #03689f;
215
- float : left;
216
- font-family : 'yith-icon';
217
- font-size : 36px;
218
- line-height : 1;
219
- margin-left : -50px;
220
- -webkit-font-smoothing : antialiased;
221
- -moz-osx-font-smoothing : grayscale;
222
- }
223
-
224
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.read-documentation a:before {
225
- content : '\f10d';
226
- }
227
-
228
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.watch-videotutorials a:before {
229
- content : '\f10e';
230
- }
231
-
232
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.check-faqs a:before {
233
- content : '\f10c';
234
- }
235
-
236
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 {
237
- margin : 0 0 5px;
238
- }
239
-
240
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 a {
241
- color : #03689f;
242
- text-decoration : none;
243
- }
244
-
245
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .description {
246
- margin : 0;
247
- font-size : 14px;
248
- }
249
-
250
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .separator {
251
- display : inline-block;
252
- margin : 0 5px;
253
- }
254
-
255
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3 {
256
- font-size : 18px;
257
- margin : 0;
258
- padding : 10px 0;
259
- position : relative;
260
-
261
- }
262
-
263
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3:before {
264
- content : '';
265
- background : #03689f;
266
- display : block;
267
- height : 100%;
268
- left : -40px;
269
- position : absolute;
270
- top : 0;
271
- width : 15px;
272
-
273
- }
274
-
275
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles a.button {
276
- font-size : 16px;
277
- }
278
-
279
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list {
280
- margin : 15px 0 30px;
281
- }
282
-
283
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li {
284
- display : block;
285
- margin-bottom : 10px;
286
- }
287
-
288
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li:before {
289
- content : '-';
290
- }
291
-
292
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list a {
293
- text-decoration : none;
294
- }
295
-
296
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket > .box-with-shadow {
297
- padding : 30px !important;
298
- }
299
-
300
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket h3 {
301
- color : #b90a0a;
302
- font-size : 18px;
303
- margin : 0 0 15px;
304
- }
305
-
306
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket p {
307
- margin-bottom : 35px;
308
- }
309
-
310
- .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket .button {
311
- border-radius : 7px;
312
- display : block;
313
- font-size : 15px;
314
- padding : 7px 15px;
315
- text-align : center;
316
- }
317
-
318
- /**
319
- Post type Edit
320
- */
321
-
322
- .yith-plugin-fw-wp-page-wrapper {
323
- margin : 23px 20px 0 2px;
324
- }
325
-
326
- .yith-plugin-fw-wp-page-wrapper .notice,
327
- .yith-plugin-fw-wp-page-wrapper div.updated,
328
- .yith-plugin-fw-wp-page-wrapper div.error {
329
- margin : 5px 15px 15px 0;
330
- }
331
-
332
- .yith-plugin-fw-wp-page-wrapper .wrap, .yith-plugin-fw-wp-page__sub-tab-wrap {
333
- border : 1px solid #d8d8d8;
334
- border-top : 0;
335
- margin : 0 15px 0 0;
336
- background : #fff;
337
- padding : 20px;
338
- box-sizing : border-box;
339
- }
340
-
341
- .yith-plugin-fw-wp-page-wrapper .yith-plugin-fw-wp-page__sub-tab-wrap .wrap {
342
- margin : -20px 0 0 0;
343
- }
344
-
345
- #wpwrap .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper {
346
- padding-bottom : 0;
347
- }
348
-
349
- .yith-plugin-fw-wp-page-wrapper .postbox {
350
- box-shadow : none;
351
- }
352
-
353
- .yith-plugin-fw-wp-page-wrapper h1.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper h2.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
354
- padding-top : 9px;
355
- padding-bottom : 0;
356
- }
357
-
358
- .yith-plugin-fw-wp-page-wrapper .wrap h1.wp-heading-inline {
359
- color : #2a8db0;
360
- font-size : 16px;
361
- font-weight : 600;
362
- }
363
-
364
- .yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action,
365
- .yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action:active {
366
- border-radius : 3px;
367
- text-transform : uppercase;
368
- box-shadow : none;
369
- border : 0;
370
- font-weight : 700;
371
- font-size : 11px;
372
- padding : 0 14px;
373
- outline : none;
374
- height : auto;
375
- transition : all ease 0.3s;
376
- text-shadow : none;
377
- vertical-align : middle;
378
- line-height : 26px;
379
- display : inline-block;
380
- text-decoration : none;
381
- cursor : pointer;
382
- background-color : #375f6b;
383
- color : #fff;
384
- margin-left : 10px !important;
385
- }
386
-
387
- .yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action:hover {
388
- border-color : #007694;
389
- background : #007694;
390
- color : #fff;
391
- }
392
-
393
- .yith-plugin-fw-wp-page-wrapper #wp-content-editor-tools {
394
- background : transparent;
395
- }
396
-
397
- /* === Plugins Upgrader === */
398
-
399
- .yit-plugin-changelog-wrapper {
400
- display : none;
401
- }
402
-
403
- .yit-plugin-changelog-title {
404
- text-transform : uppercase;
405
- }
406
-
407
- .yit-plugin-changelog {
408
- height : calc(100% - 15px);
409
- width : calc(100% - 15px);
410
- overflow-x : hidden;
411
- overflow-y : auto;
412
- z-index : 999;
413
- background : #fcfcfc;
414
- }
415
-
416
- /* === Plugins Licence Activation === */
417
-
418
- .yit-container.plugin-licence-activation {
419
- font-family : 'Raleway', sans-serif;
420
- }
421
-
422
- .yit-container.plugin-licence-activation .to-active-wrapper {
423
- margin-bottom : 60px;
424
- }
425
-
426
- .yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form {
427
- position : relative;
428
- border-color : #e1e1e1;
429
- border-style : solid;
430
- border-width : 0;
431
- }
432
-
433
- .yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form:first-child {
434
- border-top-width : 1px;
435
- }
436
-
437
- .yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form:last-child {
438
- border-bottom-width : 1px;
439
- }
440
-
441
- .yit-container.plugin-licence-activation .to-active-wrapper table.to-active-table {
442
- border-width : 0;
443
- border-spacing : 0;
444
- width : 100%;
445
- }
446
-
447
- .yit-container.plugin-licence-activation .message {
448
- display : none;
449
- line-height : normal;
450
- background : #fff url(../images/licence-error.png) 15px center no-repeat;
451
- padding-left : 65px;
452
- padding-right : 15px;
453
- width : 150px;
454
- }
455
-
456
- .yit-container.plugin-licence-activation .message-wrapper {
457
- height : 75px;
458
- display : none;
459
- position : absolute;
460
- top : 0;
461
- right : -250px;
462
- border : 1px solid #ff3838;
463
- }
464
-
465
- .yit-container.plugin-licence-activation .message-wrapper.visible {
466
- display : table;
467
- }
468
-
469
- .yit-container.plugin-licence-activation .message {
470
- display : table-cell;
471
- vertical-align : middle;
472
- }
473
-
474
- .yit-container.plugin-licence-activation .arrow-left:after,
475
- .yit-container.plugin-licence-activation .arrow-left:before {
476
- content : "";
477
- display : block;
478
- width : 0;
479
- height : 0;
480
- position : absolute;
481
- }
482
-
483
- .yit-container.plugin-licence-activation .arrow-left:before {
484
- border-top : 9px solid transparent;
485
- border-bottom : 9px solid transparent;
486
- border-right : 9px solid #ff3838;
487
- top : 26px;
488
- left : -9px;
489
- }
490
-
491
- .yit-container.plugin-licence-activation .arrow-left:after {
492
- border-top : 8px solid transparent;
493
- border-bottom : 8px solid transparent;
494
- border-right : 8px solid #fff;
495
- left : -8px;
496
- top : 27px;
497
- }
498
-
499
- .yit-container.plugin-licence-activation h2,
500
- .yit-container.plugin-licence-activation h3 {
501
- text-transform : uppercase;
502
- font-weight : 800;
503
- margin-bottom : 30px;
504
- }
505
-
506
- .yit-container.plugin-licence-activation h2 {
507
- color : #808a97;
508
- font-size : 25px;
509
- }
510
-
511
- .yit-container.plugin-licence-activation h3 {
512
- color : #313131;
513
- font-size : 15px;
514
- height : 20px;
515
- }
516
-
517
- .yit-container.plugin-licence-activation h3.to-active {
518
- height : 20px;
519
- position : relative;
520
- vertical-align : top;
521
- }
522
-
523
- .yit-container.plugin-licence-activation .spinner.show {
524
- display : inline-block;
525
- vertical-align : middle;
526
- float : none;
527
- }
528
-
529
- .yit-container.plugin-licence-activation h3.to-active > .spinner.show {
530
- display : inline-block;
531
- float : none;
532
- top : -3px;
533
- position : relative;
534
- }
535
-
536
- .yit-container.plugin-licence-activation .licence-check-section {
537
- margin-bottom : 60px;
538
- }
539
-
540
- .yit-container.plugin-licence-activation span.licence-label {
541
- font-weight : 500;
542
- color : #606060;
543
- margin-bottom : 30px;
544
- }
545
-
546
- .yit-container.plugin-licence-activation .button-licence {
547
- border : 0;
548
- font-size : 13px;
549
- text-transform : uppercase;
550
- background-color : #808a97;
551
- color : #fff;
552
- font-weight : 700;
553
- border-radius : 3px;
554
- cursor : pointer;
555
- text-decoration : none;
556
- padding : 5px 7px;
557
- -webkit-transition : background-color 0.3s ease;
558
- -moz-transition : background-color 0.3s ease;
559
- -ms-transition : background-color 0.3s ease;
560
- -o-transition : background-color 0.3s ease;
561
- transition : background-color 0.3s ease;
562
- }
563
-
564
- .yit-container.plugin-licence-activation .button-licence:hover {
565
- background-color : #4d5c6f;
566
- }
567
-
568
- .yit-container.plugin-licence-activation .button-licence.clicked {
569
- cursor : not-allowed;
570
- background-color : #e2e2e2 !important;
571
- }
572
-
573
- .yit-container.plugin-licence-activation .button-licence.licence-check {
574
- font-weight : 400;
575
- padding : 12px 19px;
576
- }
577
-
578
- .yit-container.plugin-licence-activation .button-licence.licence-renew {
579
- text-decoration : none;
580
- padding : 7px 12px;
581
- font-size : 9px;
582
- }
583
-
584
- .yit-container.plugin-licence-activation .button-licence.licence-renew:focus {
585
- box-shadow : none;
586
- }
587
-
588
- .yit-container.plugin-licence-activation table:not(.to-active-table) {
589
- width : 100%;
590
- border : 1px solid #dcdcdc;
591
- border-spacing : 0;
592
- border-radius : 5px;
593
- border-collapse : separate;
594
- overflow : hidden;
595
- }
596
-
597
- .yit-container.plugin-licence-activation table:not(.to-active-table) th {
598
- border-bottom : 1px solid #dcdcdc;
599
- }
600
-
601
- .yit-container.plugin-licence-activation table:not(.to-active-table) td,
602
- .yit-container.plugin-licence-activation table:not(.to-active-table) th {
603
- border-right : 1px solid #dcdcdc;
604
- }
605
-
606
- .yit-container.plugin-licence-activation table td:last-child,
607
- .yit-container.plugin-licence-activation table th:last-child {
608
- border-right : 0;
609
- }
610
-
611
- .yit-container.plugin-licence-activation table thead tr {
612
- background-color : #f6f4f4;
613
- }
614
-
615
- .yit-container.plugin-licence-activation table tbody tr {
616
- background-color : #fff;
617
- }
618
-
619
- .yit-container.plugin-licence-activation table thead tr th {
620
- font-size : 13px;
621
- color : #313131;
622
- text-transform : uppercase;
623
- font-weight : bold;
624
- }
625
-
626
- .yit-container.plugin-licence-activation table thead tr,
627
- .yit-container.plugin-licence-activation table tbody tr {
628
- line-height : 60px;
629
- }
630
-
631
- .yit-container.plugin-licence-activation table tbody tr td {
632
- text-align : center;
633
- line-height : 20px;
634
- padding : 10px 5px;
635
- }
636
-
637
- .yit-container.plugin-licence-activation .button-licence.licence-activation {
638
- padding : 12px 18px;
639
- }
640
-
641
- .yit-container.plugin-licence-activation .to-active-table tr {
642
- line-height : 75px;
643
- }
644
-
645
- .yit-container.plugin-licence-activation .to-active-table tr.plugin-row {
646
- background-color : transparent;
647
- -webkit-transition : all 0.3s ease;
648
- -moz-transition : all 0.3s ease;
649
- -ms-transition : all 0.3s ease;
650
- -o-transition : all 0.3s ease;
651
- transition : all 0.3s ease;
652
- }
653
-
654
- .yit-container.plugin-licence-activation .to-active-table tr.plugin-row.error {
655
- background-color : #ffdcdc;
656
- }
657
-
658
- .yit-container.plugin-licence-activation .to-active-table td {
659
- padding-right : 12px;
660
- width : 33%;
661
- }
662
-
663
- .yit-container.plugin-licence-activation .to-active-table td.plugin-name {
664
- color : #808a97;
665
- font-size : 12px;
666
- text-transform : uppercase;
667
- font-weight : bold;
668
- line-height : 20px;
669
- width : 20%;
670
- padding-left : 20px;
671
- }
672
-
673
- .yit-container.plugin-licence-activation .to-active-table td.activate-button {
674
- width : 15%;
675
- position : relative;
676
- }
677
-
678
- .yit-container.plugin-licence-activation input[type=text],
679
- .yit-container.plugin-licence-activation input[type=email] {
680
- -webkit-transition : all 0.3s ease;
681
- -moz-transition : all 0.3s ease;
682
- -ms-transition : all 0.3s ease;
683
- -o-transition : all 0.3s ease;
684
- transition : all 0.3s ease;
685
-
686
- border : 1px solid #dcdcdc;
687
- padding : 0 15px;
688
- border-radius : 3px;
689
- height : 41px;
690
- width : 100%;
691
- }
692
-
693
- .yit-container.plugin-licence-activation input[type=text].require,
694
- .yit-container.plugin-licence-activation input[type=email].require {
695
- border : 1px solid #ff3838;
696
- }
697
-
698
- .yit-container.plugin-licence-activation input[type=text]:focus,
699
- .yit-container.plugin-licence-activation input[type=email]:focus {
700
- webkit-box-shadow : 0 0 1px rgba(30, 140, 190, .8);
701
- box-shadow : 0 0 1px rgba(30, 140, 190, .8);
702
- }
703
-
704
- .yit-container.plugin-licence-activation input[type=text] {
705
- text-transform : uppercase;
706
- text-align : center;
707
- }
708
-
709
- .yit-container.plugin-licence-activation input[type=email] {
710
- text-align : left;
711
- }
712
-
713
- .yit-container.plugin-licence-activation input[type=submit]:focus {
714
- outline : 0;
715
- }
716
-
717
- /* === Woocommerce panel === */
718
- #plugin-fw-wc .yit_options {
719
- padding : 0;
720
- border : 0;
721
- }
722
-
723
- #plugin-fw-wc .yit_options input.upload_button, .yit_options input.button {
724
- background : none;
725
- border : 1px solid #ccc;
726
- }
727
-
728
- /* === WP Pointers === */
729
-
730
- #adminmenu li.menu-top.yit-pointer-selected-row,
731
- #adminmenu li.menu-top.yit-pointer-selected-row:hover,
732
- #adminmenu li.yit-pointer-selected-row a.menu-top {
733
- background-color : #acc327;
734
- color : #000;
735
- }
736
-
737
- #adminmenu a.menu-top.toplevel_page_yit_plugin_panel.yit-pointer {
738
- color : #000;
739
- }
740
-
741
- #adminmenu a.menu-top.toplevel_page_yit_plugin_panel.yit-pointer:hover,
742
- #adminmenu .wp-submenu a.yit-pointer-selected-row {
743
- color : #fff;
744
- }
745
-
746
- #adminmenu .wp-submenu a.yit-pointer-selected-row:hover {
747
- color : #45bbe6;
748
- }
749
-
750
- /* WooCommerce 2.4 Support */
751
- .woocommerce table.form-table .colorpick {
752
- width : 6em;
753
- }
754
-
755
- #wpwrap h2.nav-tab-wrapper, #wpbody-content h2.nav-tab-wrapper {
756
- border-bottom : 1px solid #ccc;
757
- margin-right : 15px;
758
- text-transform : uppercase;
759
- }
760
-
761
- /* === YIT FRAMEWORK === */
762
- .plugin-card .plugin-icon img {
763
- max-width : 100%;
764
- width : auto;
765
- height : auto;
766
- }
767
-
768
- /* === Panel Content and Container === */
769
- .yit-admin-panel-container {
770
- position : relative;
771
- margin-right : 15px;
772
- }
773
-
774
- .yith-plugin-ui .yit-admin-panel-container {
775
- position : relative;
776
- margin-right : 15px;
777
- z-index : 0;
778
- }
779
-
780
- .yit-admin-panel-content-wrap {
781
- width : auto;
782
- display : block;
783
- }
784
-
785
- .yith-disabled {
786
- opacity : 0.3;
787
- pointer-events : none;
788
- }
789
-
790
- .yith-plugin-fw-select,
791
- .yith-plugin-fw-slider-container,
792
- .yith-plugin-fw-text-input,
793
- .yith-plugin-fw-text-array-table,
794
- .yith-plugin-fw-textarea {
795
- width : 400px;
796
- max-width : 100%;
797
- }
798
-
799
- .yith-plugin-fw-text-array-table input {
800
- width : 100%;
801
- }
802
-
803
- .yith-plugin-fw-panel-wc-row.preview {
804
- float : none;
805
- }
806
-
807
- .yith-plugin-fw-panel .subsubsub {
808
- margin : 0;
809
- }
810
-
811
- /**
812
- * Sub Tabs
813
- */
814
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav {
815
- background : #fff;
816
- padding : 10px 20px 0;
817
- box-sizing : border-box;
818
- margin-right : 15px;
819
- border-left : 1px solid #d8d8d8;
820
- border-right : 1px solid #d8d8d8;
821
- }
822
-
823
- .yith-plugin-ui .yith-plugin-fw-wp-page-wrapper .wrap {
824
- margin-top : -29px;
825
- }
826
-
827
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav h3.nav-tab-wrapper {
828
- text-transform : uppercase;
829
- line-height : inherit;
830
- font-weight : 600;
831
- margin : 20px 0 0 0;
832
- box-sizing : border-box;
833
- background-color : #f1f1f1;
834
- padding-top : 0;
835
- border : 1px solid #ccc;
836
- border-bottom : 0;
837
- }
838
-
839
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab {
840
- line-height : 1.71428571;
841
- margin-left : 0;
842
- margin-right : 0;
843
- background-color : #f1f1f1;
844
- color : #336374;
845
- font-size : 12px;
846
- padding : 8px 20px 9px;
847
- border : 0;
848
- }
849
-
850
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__title,
851
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon {
852
- vertical-align : middle;
853
- }
854
-
855
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon {
856
- margin-left : 8px;
857
- font-size : 22px;
858
- margin-right : -3px;
859
- }
860
-
861
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon:before {
862
- color : inherit;
863
- }
864
-
865
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .yith-nav-sub-tab--highlight {
866
- color : #fff;
867
- background : #2a8db0;
868
- }
869
-
870
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab-active {
871
- color : #2a8db0;
872
- background : #fff;
873
- border-bottom : 0;
874
- }
875
-
876
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab:first-child {
877
- border : 0;
878
- }
879
-
880
- .yith-plugin-fw-wp-page-wrapper.yith-current-subtab-opened > .wrap {
881
- /* padding-top: 0; */
882
- }
883
-
884
- .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
885
- border-bottom : 2px solid #e9e9e9;
886
- margin : 0;
887
- padding-top : 9px;
888
- padding-bottom : 0;
889
- line-height : inherit;
890
- }
891
-
892
- div.nav-subtab-wrap {
893
- position : absolute;
894
- top : 100%;
895
- left : 1px;
896
- padding-top : 10px;
897
- visibility : hidden; /* hides sub-menu */
898
- }
899
-
900
- ul.nav-subtab {
901
- opacity : 0;
902
- background-color : #fff;
903
- transition : max-height 0.5s ease-in;
904
- max-height : 0;
905
- z-index : 100;
906
- overflow : hidden;
907
- border : 1px solid #f2f2f2;
908
- padding : 14px 15px;
909
- }
910
-
911
- ul.yith-plugin-fw-tabs {
912
- display : block;
913
- margin : 0;
914
- }
915
-
916
- li.yith-plugin-fw-tab-element {
917
- position : relative;
918
- margin : 0;
919
- padding : 0;
920
- display : inline-block;
921
- overflow : visible;
922
- z-index : 10;
923
- }
924
-
925
- .yith-plugin-ui li.yith-plugin-fw-tab-element {
926
- margin-bottom : -1px;
927
- }
928
-
929
- li.yith-plugin-fw-tab-element:hover {
930
- cursor : pointer;
931
- }
932
-
933
- li.nav-subtab-item {
934
- padding : 3px 0 0;
935
- }
936
-
937
- li.nav-subtab-item a {
938
- font-size : 12px;
939
- text-decoration : none;
940
- letter-spacing : 0.05em;
941
- color : #336374;
942
- }
943
-
944
- li.nav-subtab-item a:hover {
945
- color : #228fb6;
946
- }
947
-
948
- li.yith-plugin-fw-tab-element a:hover .nav-subtab-wrap,
949
- li.yith-plugin-fw-tab-element:hover .nav-subtab-wrap {
950
- visibility : visible; /* shows sub-menu */
951
- }
952
-
953
- li.yith-plugin-fw-tab-element a:hover ul.nav-subtab,
954
- li.yith-plugin-fw-tab-element:hover ul.nav-subtab {
955
- max-height : 200px;
956
- -webkit-box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
957
- -moz-box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
958
- box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
959
- opacity : 1;
960
- transition-delay : 0s, 0s, 0.3s;
961
- min-width : 180px;
962
- }
963
-
964
- li.yith-plugin-fw-tab-element a.nav-tab i {
965
- margin-left : 10px;
966
- font-size : 12px;
967
- font-weight : 600;
968
- }
969
-
970
- li.yith-plugin-fw-tab-element a.nav-tab i:before {
971
- color : #fff;
972
- }
973
-
974
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container {
975
- margin-top : 0;
976
- padding-top : 0;
977
- }
978
-
979
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container,
980
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yith-plugin-fw-wp-page__sub-tab-wrap {
981
- border : 1px solid #d8d8d8;
982
- border-top : 0;
983
- margin : 0 15px 0 0;
984
- background : #fff;
985
- padding : 0 20px 20px 20px;
986
- box-sizing : border-box;
987
- }
988
-
989
-
990
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yith-plugin-fw-wp-page__sub-tab-wrap .wrap {
991
- margin : 0;
992
- }
993
-
994
- /**
995
- * Float Save Button
996
- */
997
-
998
- button#yith-plugin-fw-float-save-button {
999
- display : none;
1000
- align-items : center;
1001
- border-radius : 60px;
1002
- bottom : 50px;
1003
- box-shadow : 0 0 6px 3px rgba(0, 121, 159, .2);
1004
- padding : 6px 20px;
1005
- position : fixed;
1006
- right : 70px;
1007
- text-transform : uppercase;
1008
- z-index : 2;
1009
- transition : 0.3s ease-in-out;
1010
- }
1011
-
1012
- .ywtenv-is-sandbox button#yith-plugin-fw-float-save-button {
1013
- bottom : 100px;
1014
- }
1015
-
1016
- button#yith-plugin-fw-float-save-button.visible {
1017
- display : flex;
1018
- }
1019
-
1020
- button#yith-plugin-fw-float-save-button i {
1021
- font-size : 15px;
1022
- margin-right : 8px;
1023
- }
1024
-
1025
- button#yith-plugin-fw-float-save-button:hover {
1026
- box-shadow : 0px 1px 6px 3px rgba(0, 121, 159, .3);
1027
- }
1028
-
1029
- button#yith-plugin-fw-float-save-button.green {
1030
- background-color : #98aa36;
1031
- border-color : #98aa36;
1032
- box-shadow : 0 0 6px 3px rgba(152, 170, 54, .2);
1033
- transition : all 0.8s linear;
1034
- }
1035
-
1036
- .rtl button#yith-plugin-fw-float-save-button {
1037
- right : auto;
1038
- left : 70px;
1039
- }
1040
-
1041
- .rtl button#yith-plugin-fw-float-save-button i {
1042
- margin-left : 8px;
1043
- margin-right : 0;
1044
- }
1045
-
1046
-
1047
- /* === Responsive === */
1048
-
1049
- @media (max-width : 767px) {
1050
-
1051
- }
1052
-
1053
- @media (max-width : 480px) {
1054
-
1055
- }
1056
-
1057
- @media (max-width : 992px) {
1058
- .yith-plugin-fw-panel-help-tab-content .row {
1059
- white-space : normal;
1060
- margin-bottom : 0;
1061
- }
1062
-
1063
- .yith-plugin-fw-panel-help-tab-content .row .column-left,
1064
- .yith-plugin-fw-panel-help-tab-content .row .column-right {
1065
- width : 100%;
1066
- margin-bottom : 50px;
1067
- }
1068
-
1069
- .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions {
1070
- padding-top : 0 !important;
1071
- }
1072
- }
1073
-
1074
- @media (min-width : 768px) and (max-width : 992px) {
1075
- }
1076
-
1077
- @media (min-width : 980px) and (max-width : 1199px) {
1078
- }
1079
-
1080
- @media (min-width : 1200px) {
1081
- .yit-container.plugin-licence-activation {
1082
- width : 900px;
1083
- }
1084
- }
1085
-
1086
- @media only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (-o-min-device-pixel-ratio : 3/2), only screen and (min--moz-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5) {
1087
- }
1
+ /*
2
+ * This file belongs to the YIT Plugin Framework.
3
+ *
4
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
5
+ * that is bundled with this package in the file LICENSE.txt.
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.gnu.org/licenses/gpl-3.0.txt
8
+ */
9
+ .plugin-option tr {
10
+ border-bottom : 1px solid #ebebeb;
11
+ }
12
+
13
+ .plugin-option .yit_options,
14
+ .plugin-option .yit-options {
15
+ border-bottom : 0px;
16
+ }
17
+
18
+ .plugin-option .yit-options .option,
19
+ .plugin-option .yit_options .option {
20
+ width : 600px;
21
+ }
22
+
23
+ .plugin-option .form-table > tbody > tr > td {
24
+ padding : 25px 15px;
25
+ }
26
+
27
+ .ie8 .yit_options select,
28
+ .ie8 .yit-options select {
29
+ height : 26px;
30
+ }
31
+
32
+ /* Style to woocommerce panel*/
33
+
34
+ #plugin-fw-wc, #yith-plugin-fw-panel {
35
+ padding-top : 20px;
36
+ }
37
+
38
+ #plugin-fw-wc table.form-table, #yith-plugin-fw-panel table.form-table, .yith-plugin-fw-panel-custom-tab-container {
39
+ background-color : #fff;
40
+ margin-bottom : 20px;
41
+ }
42
+
43
+ .yith-plugin-fw-panel-custom-tab-container {
44
+ padding : 20px;
45
+ box-sizing : border-box;
46
+ margin-right : 15px;
47
+ }
48
+
49
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container {
50
+ border : 1px solid #ddd;
51
+ border-top : 0;
52
+ }
53
+
54
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container {
55
+ padding : 20px;
56
+ box-sizing : border-box;
57
+ border : 1px solid #ccc;
58
+ border-top : 0;
59
+ margin : -20px 0 0 0;
60
+ }
61
+
62
+ .yith-plugin-fw-panel-custom-tab-container > h2,
63
+ .yith-plugin-fw-panel-custom-tab-container h2,
64
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container > h2,
65
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container h2,
66
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container > h2,
67
+ .yith-plugin-ui .yith-plugin-fw-panel-custom-sub-tab-container h2 {
68
+ border : none;
69
+ padding : 15px 0;
70
+ }
71
+
72
+ #plugin-fw-wc table.form-table th, #yith-plugin-fw-panel table.form-table th {
73
+ padding : 20px;
74
+ }
75
+
76
+ #plugin-fw-wc h3, #yith-plugin-fw-panel h3 {
77
+ padding : 0 0 0 10px;
78
+ margin : 0;
79
+ }
80
+
81
+ /**
82
+ Help tab
83
+ */
84
+
85
+ .yith-plugin-fw-panel-help-tab-container {
86
+ background-color : #fff;
87
+ padding : 60px 25px;
88
+ }
89
+
90
+ .yith-plugin-fw-panel-help-tab-content {
91
+ background-color : #f4f4f4;
92
+ border-radius : 15px;
93
+ max-width : 1100px;
94
+ margin : 0 auto;
95
+ padding : 40px 40px 60px;
96
+ }
97
+
98
+ .yith-plugin-fw-panel-help-tab-content p,
99
+ .yith-plugin-fw-panel-help-tab-content a {
100
+ font-size : 16px;
101
+ }
102
+
103
+ .yith-plugin-fw-panel-help-tab-content .row {
104
+ margin : 0 -15px 50px;
105
+ white-space : nowrap;
106
+ }
107
+
108
+ .yith-plugin-fw-panel-help-tab-content .row:last-child {
109
+ margin-bottom : 0;
110
+ }
111
+
112
+ .yith-plugin-fw-panel-help-tab-content .row .column-left,
113
+ .yith-plugin-fw-panel-help-tab-content .row .column-right {
114
+ display : inline-block;
115
+ padding : 0 15px;
116
+ vertical-align : top;
117
+ width : 66%;
118
+ }
119
+
120
+ .yith-plugin-fw-panel-help-tab-content .row .column-right {
121
+ width : 33%;
122
+ }
123
+
124
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video,
125
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-actions,
126
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles,
127
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
128
+ box-sizing : border-box;
129
+ white-space : normal;
130
+ }
131
+
132
+ .yith-plugin-fw-panel-help-tab-content h2.yith-plugin-fw-panel-help-tab-title {
133
+ background : none;
134
+ border : none;
135
+ font-size : 22px;
136
+ line-height : 1.5em;
137
+ padding : 0;
138
+ text-align : center;
139
+ }
140
+
141
+ .yith-plugin-fw-panel-help-tab-content h3 {
142
+ color : #03689f;
143
+ font-size : 15px;
144
+ }
145
+
146
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-panel-tab-description {
147
+ font-size : 18px;
148
+ text-align : center;
149
+ margin-bottom : 40px;
150
+ }
151
+
152
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video {
153
+ text-align : center;
154
+ }
155
+
156
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video p.video-description {
157
+ margin-bottom : 25px;
158
+ }
159
+
160
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-caption p {
161
+ margin : 5px 0;
162
+ }
163
+
164
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container {
165
+ margin : 0 auto 50px;
166
+ overflow : hidden;
167
+ padding-top : 56.25%;
168
+ position : relative;
169
+ }
170
+
171
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container iframe {
172
+ border : 0;
173
+ height : 100%;
174
+ left : 0;
175
+ position : absolute;
176
+ top : 0;
177
+ width : 100%;
178
+ }
179
+
180
+ .yith-plugin-fw-panel-help-tab-content .box-with-shadow {
181
+ display : block;
182
+ background-color : #fff;
183
+ border-radius : 5px;
184
+ box-shadow : 0 0 15px 5px rgba(174, 201, 207, 0.3);
185
+ transition : all .2s ease;
186
+ }
187
+
188
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions,
189
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
190
+ margin : 0 auto;
191
+ max-width : 640px;
192
+ }
193
+
194
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions:not( .full-width ) {
195
+ padding-top : 65px !important;
196
+ }
197
+
198
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li {
199
+ margin-bottom : 20px;
200
+ }
201
+
202
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li > a {
203
+ display : block;
204
+ padding : 15px 20px 15px 75px !important;
205
+ text-decoration : none;
206
+ }
207
+
208
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li:hover {
209
+ box-shadow : 0 0 15px 5px rgba(177, 220, 228, 0.6);
210
+ transform : scale(1.04);
211
+ }
212
+
213
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li a:before {
214
+ color : #03689f;
215
+ float : left;
216
+ font-family : 'yith-icon';
217
+ font-size : 36px;
218
+ line-height : 1;
219
+ margin-left : -50px;
220
+ -webkit-font-smoothing : antialiased;
221
+ -moz-osx-font-smoothing : grayscale;
222
+ }
223
+
224
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.read-documentation a:before {
225
+ content : '\f10d';
226
+ }
227
+
228
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.watch-videotutorials a:before {
229
+ content : '\f10e';
230
+ }
231
+
232
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.check-faqs a:before {
233
+ content : '\f10c';
234
+ }
235
+
236
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 {
237
+ margin : 0 0 5px;
238
+ }
239
+
240
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 a {
241
+ color : #03689f;
242
+ text-decoration : none;
243
+ }
244
+
245
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .description {
246
+ margin : 0;
247
+ font-size : 14px;
248
+ }
249
+
250
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .separator {
251
+ display : inline-block;
252
+ margin : 0 5px;
253
+ }
254
+
255
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3 {
256
+ font-size : 18px;
257
+ margin : 0;
258
+ padding : 10px 0;
259
+ position : relative;
260
+
261
+ }
262
+
263
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3:before {
264
+ content : '';
265
+ background : #03689f;
266
+ display : block;
267
+ height : 100%;
268
+ left : -40px;
269
+ position : absolute;
270
+ top : 0;
271
+ width : 15px;
272
+
273
+ }
274
+
275
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles a.button {
276
+ font-size : 16px;
277
+ }
278
+
279
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list {
280
+ margin : 15px 0 30px;
281
+ }
282
+
283
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li {
284
+ display : block;
285
+ margin-bottom : 10px;
286
+ }
287
+
288
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li:before {
289
+ content : '-';
290
+ }
291
+
292
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list a {
293
+ text-decoration : none;
294
+ }
295
+
296
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket > .box-with-shadow {
297
+ padding : 30px !important;
298
+ }
299
+
300
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket h3 {
301
+ color : #b90a0a;
302
+ font-size : 18px;
303
+ margin : 0 0 15px;
304
+ }
305
+
306
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket p {
307
+ margin-bottom : 35px;
308
+ }
309
+
310
+ .yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket .button {
311
+ border-radius : 7px;
312
+ display : block;
313
+ font-size : 15px;
314
+ padding : 7px 15px;
315
+ text-align : center;
316
+ }
317
+
318
+ /**
319
+ Post type Edit
320
+ */
321
+
322
+ .yith-plugin-fw-wp-page-wrapper {
323
+ margin : 23px 20px 0 2px;
324
+ }
325
+
326
+ .yith-plugin-fw-wp-page-wrapper .notice,
327
+ .yith-plugin-fw-wp-page-wrapper div.updated,
328
+ .yith-plugin-fw-wp-page-wrapper div.error {
329
+ margin : 5px 15px 15px 0;
330
+ }
331
+
332
+ .yith-plugin-fw-wp-page-wrapper .wrap, .yith-plugin-fw-wp-page__sub-tab-wrap {
333
+ border : 1px solid #d8d8d8;
334
+ border-top : 0;
335
+ margin : 0 15px 0 0;
336
+ background : #fff;
337
+ padding : 20px;
338
+ box-sizing : border-box;
339
+ }
340
+
341
+ .yith-plugin-fw-wp-page-wrapper .yith-plugin-fw-wp-page__sub-tab-wrap .wrap {
342
+ margin : -20px 0 0 0;
343
+ }
344
+
345
+ #wpwrap .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper {
346
+ padding-bottom : 0;
347
+ }
348
+
349
+ .yith-plugin-fw-wp-page-wrapper .postbox {
350
+ box-shadow : none;
351
+ }
352
+
353
+ .yith-plugin-fw-wp-page-wrapper h1.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper h2.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
354
+ padding-top : 9px;
355
+ padding-bottom : 0;
356
+ }
357
+
358
+ .yith-plugin-fw-wp-page-wrapper .wrap h1.wp-heading-inline {
359
+ color : #2a8db0;
360
+ font-size : 16px;
361
+ font-weight : 600;
362
+ }
363
+
364
+ .yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action,
365
+ .yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action:active {
366
+ border-radius : 3px;
367
+ text-transform : uppercase;
368
+ box-shadow : none;
369
+ border : 0;
370
+ font-weight : 700;
371
+ font-size : 11px;
372
+ padding : 0 14px;
373
+ outline : none;
374
+ height : auto;
375
+ transition : all ease 0.3s;
376
+ text-shadow : none;
377
+ vertical-align : middle;
378
+ line-height : 26px;
379
+ display : inline-block;
380
+ text-decoration : none;
381
+ cursor : pointer;
382
+ background-color : #375f6b;
383
+ color : #fff;
384
+ margin-left : 10px !important;
385
+ }
386
+
387
+ .yith-plugin-fw-wp-page-wrapper .wrap a.page-title-action:hover {
388
+ border-color : #007694;
389
+ background : #007694;
390
+ color : #fff;
391
+ }
392
+
393
+ .yith-plugin-fw-wp-page-wrapper #wp-content-editor-tools {
394
+ background : transparent;
395
+ }
396
+
397
+ /* === Plugins Upgrader === */
398
+
399
+ .yit-plugin-changelog-wrapper {
400
+ display : none;
401
+ }
402
+
403
+ .yit-plugin-changelog-title {
404
+ text-transform : uppercase;
405
+ }
406
+
407
+ .yit-plugin-changelog {
408
+ height : calc(100% - 15px);
409
+ width : calc(100% - 15px);
410
+ overflow-x : hidden;
411
+ overflow-y : auto;
412
+ z-index : 999;
413
+ background : #fcfcfc;
414
+ }
415
+
416
+ /* === Plugins Licence Activation === */
417
+
418
+ .yit-container.plugin-licence-activation {
419
+ font-family : 'Raleway', sans-serif;
420
+ }
421
+
422
+ .yit-container.plugin-licence-activation .to-active-wrapper {
423
+ margin-bottom : 60px;
424
+ }
425
+
426
+ .yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form {
427
+ position : relative;
428
+ border-color : #e1e1e1;
429
+ border-style : solid;
430
+ border-width : 0;
431
+ }
432
+
433
+ .yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form:first-child {
434
+ border-top-width : 1px;
435
+ }
436
+
437
+ .yit-container.plugin-licence-activation .to-active-wrapper form.to-active-form:last-child {
438
+ border-bottom-width : 1px;
439
+ }
440
+
441
+ .yit-container.plugin-licence-activation .to-active-wrapper table.to-active-table {
442
+ border-width : 0;
443
+ border-spacing : 0;
444
+ width : 100%;
445
+ }
446
+
447
+ .yit-container.plugin-licence-activation .message {
448
+ display : none;
449
+ line-height : normal;
450
+ background : #fff url(../images/licence-error.png) 15px center no-repeat;
451
+ padding-left : 65px;
452
+ padding-right : 15px;
453
+ width : 150px;
454
+ }
455
+
456
+ .yit-container.plugin-licence-activation .message-wrapper {
457
+ height : 75px;
458
+ display : none;
459
+ position : absolute;
460
+ top : 0;
461
+ right : -250px;
462
+ border : 1px solid #ff3838;
463
+ }
464
+
465
+ .yit-container.plugin-licence-activation .message-wrapper.visible {
466
+ display : table;
467
+ }
468
+
469
+ .yit-container.plugin-licence-activation .message {
470
+ display : table-cell;
471
+ vertical-align : middle;
472
+ }
473
+
474
+ .yit-container.plugin-licence-activation .arrow-left:after,
475
+ .yit-container.plugin-licence-activation .arrow-left:before {
476
+ content : "";
477
+ display : block;
478
+ width : 0;
479
+ height : 0;
480
+ position : absolute;
481
+ }
482
+
483
+ .yit-container.plugin-licence-activation .arrow-left:before {
484
+ border-top : 9px solid transparent;
485
+ border-bottom : 9px solid transparent;
486
+ border-right : 9px solid #ff3838;
487
+ top : 26px;
488
+ left : -9px;
489
+ }
490
+
491
+ .yit-container.plugin-licence-activation .arrow-left:after {
492
+ border-top : 8px solid transparent;
493
+ border-bottom : 8px solid transparent;
494
+ border-right : 8px solid #fff;
495
+ left : -8px;
496
+ top : 27px;
497
+ }
498
+
499
+ .yit-container.plugin-licence-activation h2,
500
+ .yit-container.plugin-licence-activation h3 {
501
+ text-transform : uppercase;
502
+ font-weight : 800;
503
+ margin-bottom : 30px;
504
+ }
505
+
506
+ .yit-container.plugin-licence-activation h2 {
507
+ color : #808a97;
508
+ font-size : 25px;
509
+ }
510
+
511
+ .yit-container.plugin-licence-activation h3 {
512
+ color : #313131;
513
+ font-size : 15px;
514
+ height : 20px;
515
+ }
516
+
517
+ .yit-container.plugin-licence-activation h3.to-active {
518
+ height : 20px;
519
+ position : relative;
520
+ vertical-align : top;
521
+ }
522
+
523
+ .yit-container.plugin-licence-activation .spinner.show {
524
+ display : inline-block;
525
+ vertical-align : middle;
526
+ float : none;
527
+ }
528
+
529
+ .yit-container.plugin-licence-activation h3.to-active > .spinner.show {
530
+ display : inline-block;
531
+ float : none;
532
+ top : -3px;
533
+ position : relative;
534
+ }
535
+
536
+ .yit-container.plugin-licence-activation .licence-check-section {
537
+ margin-bottom : 60px;
538
+ }
539
+
540
+ .yit-container.plugin-licence-activation span.licence-label {
541
+ font-weight : 500;
542
+ color : #606060;
543
+ margin-bottom : 30px;
544
+ }
545
+
546
+ .yit-container.plugin-licence-activation .button-licence {
547
+ border : 0;
548
+ font-size : 13px;
549
+ text-transform : uppercase;
550
+ background-color : #808a97;
551
+ color : #fff;
552
+ font-weight : 700;
553
+ border-radius : 3px;
554
+ cursor : pointer;
555
+ text-decoration : none;
556
+ padding : 5px 7px;
557
+ -webkit-transition : background-color 0.3s ease;
558
+ -moz-transition : background-color 0.3s ease;
559
+ -ms-transition : background-color 0.3s ease;
560
+ -o-transition : background-color 0.3s ease;
561
+ transition : background-color 0.3s ease;
562
+ }
563
+
564
+ .yit-container.plugin-licence-activation .button-licence:hover {
565
+ background-color : #4d5c6f;
566
+ }
567
+
568
+ .yit-container.plugin-licence-activation .button-licence.clicked {
569
+ cursor : not-allowed;
570
+ background-color : #e2e2e2 !important;
571
+ }
572
+
573
+ .yit-container.plugin-licence-activation .button-licence.licence-check {
574
+ font-weight : 400;
575
+ padding : 12px 19px;
576
+ }
577
+
578
+ .yit-container.plugin-licence-activation .button-licence.licence-renew {
579
+ text-decoration : none;
580
+ padding : 7px 12px;
581
+ font-size : 9px;
582
+ }
583
+
584
+ .yit-container.plugin-licence-activation .button-licence.licence-renew:focus {
585
+ box-shadow : none;
586
+ }
587
+
588
+ .yit-container.plugin-licence-activation table:not(.to-active-table) {
589
+ width : 100%;
590
+ border : 1px solid #dcdcdc;
591
+ border-spacing : 0;
592
+ border-radius : 5px;
593
+ border-collapse : separate;
594
+ overflow : hidden;
595
+ }
596
+
597
+ .yit-container.plugin-licence-activation table:not(.to-active-table) th {
598
+ border-bottom : 1px solid #dcdcdc;
599
+ }
600
+
601
+ .yit-container.plugin-licence-activation table:not(.to-active-table) td,
602
+ .yit-container.plugin-licence-activation table:not(.to-active-table) th {
603
+ border-right : 1px solid #dcdcdc;
604
+ }
605
+
606
+ .yit-container.plugin-licence-activation table td:last-child,
607
+ .yit-container.plugin-licence-activation table th:last-child {
608
+ border-right : 0;
609
+ }
610
+
611
+ .yit-container.plugin-licence-activation table thead tr {
612
+ background-color : #f6f4f4;
613
+ }
614
+
615
+ .yit-container.plugin-licence-activation table tbody tr {
616
+ background-color : #fff;
617
+ }
618
+
619
+ .yit-container.plugin-licence-activation table thead tr th {
620
+ font-size : 13px;
621
+ color : #313131;
622
+ text-transform : uppercase;
623
+ font-weight : bold;
624
+ }
625
+
626
+ .yit-container.plugin-licence-activation table thead tr,
627
+ .yit-container.plugin-licence-activation table tbody tr {
628
+ line-height : 60px;
629
+ }
630
+
631
+ .yit-container.plugin-licence-activation table tbody tr td {
632
+ text-align : center;
633
+ line-height : 20px;
634
+ padding : 10px 5px;
635
+ }
636
+
637
+ .yit-container.plugin-licence-activation .button-licence.licence-activation {
638
+ padding : 12px 18px;
639
+ }
640
+
641
+ .yit-container.plugin-licence-activation .to-active-table tr {
642
+ line-height : 75px;
643
+ }
644
+
645
+ .yit-container.plugin-licence-activation .to-active-table tr.plugin-row {
646
+ background-color : transparent;
647
+ -webkit-transition : all 0.3s ease;
648
+ -moz-transition : all 0.3s ease;
649
+ -ms-transition : all 0.3s ease;
650
+ -o-transition : all 0.3s ease;
651
+ transition : all 0.3s ease;
652
+ }
653
+
654
+ .yit-container.plugin-licence-activation .to-active-table tr.plugin-row.error {
655
+ background-color : #ffdcdc;
656
+ }
657
+
658
+ .yit-container.plugin-licence-activation .to-active-table td {
659
+ padding-right : 12px;
660
+ width : 33%;
661
+ }
662
+
663
+ .yit-container.plugin-licence-activation .to-active-table td.plugin-name {
664
+ color : #808a97;
665
+ font-size : 12px;
666
+ text-transform : uppercase;
667
+ font-weight : bold;
668
+ line-height : 20px;
669
+ width : 20%;
670
+ padding-left : 20px;
671
+ }
672
+
673
+ .yit-container.plugin-licence-activation .to-active-table td.activate-button {
674
+ width : 15%;
675
+ position : relative;
676
+ }
677
+
678
+ .yit-container.plugin-licence-activation input[type=text],
679
+ .yit-container.plugin-licence-activation input[type=email] {
680
+ -webkit-transition : all 0.3s ease;
681
+ -moz-transition : all 0.3s ease;
682
+ -ms-transition : all 0.3s ease;
683
+ -o-transition : all 0.3s ease;
684
+ transition : all 0.3s ease;
685
+
686
+ border : 1px solid #dcdcdc;
687
+ padding : 0 15px;
688
+ border-radius : 3px;
689
+ height : 41px;
690
+ width : 100%;
691
+ }
692
+
693
+ .yit-container.plugin-licence-activation input[type=text].require,
694
+ .yit-container.plugin-licence-activation input[type=email].require {
695
+ border : 1px solid #ff3838;
696
+ }
697
+
698
+ .yit-container.plugin-licence-activation input[type=text]:focus,
699
+ .yit-container.plugin-licence-activation input[type=email]:focus {
700
+ webkit-box-shadow : 0 0 1px rgba(30, 140, 190, .8);
701
+ box-shadow : 0 0 1px rgba(30, 140, 190, .8);
702
+ }
703
+
704
+ .yit-container.plugin-licence-activation input[type=text] {
705
+ text-transform : uppercase;
706
+ text-align : center;
707
+ }
708
+
709
+ .yit-container.plugin-licence-activation input[type=email] {
710
+ text-align : left;
711
+ }
712
+
713
+ .yit-container.plugin-licence-activation input[type=submit]:focus {
714
+ outline : 0;
715
+ }
716
+
717
+ /* === Woocommerce panel === */
718
+ #plugin-fw-wc .yit_options {
719
+ padding : 0;
720
+ border : 0;
721
+ }
722
+
723
+ #plugin-fw-wc .yit_options input.upload_button, .yit_options input.button {
724
+ background : none;
725
+ border : 1px solid #ccc;
726
+ }
727
+
728
+ /* === WP Pointers === */
729
+
730
+ #adminmenu li.menu-top.yit-pointer-selected-row,
731
+ #adminmenu li.menu-top.yit-pointer-selected-row:hover,
732
+ #adminmenu li.yit-pointer-selected-row a.menu-top {
733
+ background-color : #acc327;
734
+ color : #000;
735
+ }
736
+
737
+ #adminmenu a.menu-top.toplevel_page_yit_plugin_panel.yit-pointer {
738
+ color : #000;
739
+ }
740
+
741
+ #adminmenu a.menu-top.toplevel_page_yit_plugin_panel.yit-pointer:hover,
742
+ #adminmenu .wp-submenu a.yit-pointer-selected-row {
743
+ color : #fff;
744
+ }
745
+
746
+ #adminmenu .wp-submenu a.yit-pointer-selected-row:hover {
747
+ color : #45bbe6;
748
+ }
749
+
750
+ /* WooCommerce 2.4 Support */
751
+ .woocommerce table.form-table .colorpick {
752
+ width : 6em;
753
+ }
754
+
755
+ #wpwrap h2.nav-tab-wrapper, #wpbody-content h2.nav-tab-wrapper {
756
+ border-bottom : 1px solid #ccc;
757
+ margin-right : 15px;
758
+ text-transform : uppercase;
759
+ }
760
+
761
+ /* === YIT FRAMEWORK === */
762
+ .plugin-card .plugin-icon img {
763
+ max-width : 100%;
764
+ width : auto;
765
+ height : auto;
766
+ }
767
+
768
+ /* === Panel Content and Container === */
769
+ .yit-admin-panel-container {
770
+ position : relative;
771
+ margin-right : 15px;
772
+ }
773
+
774
+ .yith-plugin-ui .yit-admin-panel-container {
775
+ position : relative;
776
+ margin-right : 15px;
777
+ z-index : 0;
778
+ }
779
+
780
+ .yit-admin-panel-content-wrap {
781
+ width : auto;
782
+ display : block;
783
+ }
784
+
785
+ .yith-disabled {
786
+ opacity : 0.3;
787
+ pointer-events : none;
788
+ }
789
+
790
+ .yith-plugin-fw-select,
791
+ .yith-plugin-fw-slider-container,
792
+ .yith-plugin-fw-text-input,
793
+ .yith-plugin-fw-text-array-table,
794
+ .yith-plugin-fw-textarea {
795
+ width : 400px;
796
+ max-width : 100%;
797
+ }
798
+
799
+ .yith-plugin-fw-text-array-table input {
800
+ width : 100%;
801
+ }
802
+
803
+ .yith-plugin-fw-panel-wc-row.preview {
804
+ float : none;
805
+ }
806
+
807
+ .yith-plugin-fw-panel .subsubsub {
808
+ margin : 0;
809
+ }
810
+
811
+ /**
812
+ * Sub Tabs
813
+ */
814
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav {
815
+ background : #fff;
816
+ padding : 10px 20px 0;
817
+ box-sizing : border-box;
818
+ margin-right : 15px;
819
+ border-left : 1px solid #d8d8d8;
820
+ border-right : 1px solid #d8d8d8;
821
+ }
822
+
823
+ .yith-plugin-ui .yith-plugin-fw-wp-page-wrapper .wrap {
824
+ margin-top : -29px;
825
+ }
826
+
827
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav h3.nav-tab-wrapper {
828
+ text-transform : uppercase;
829
+ line-height : inherit;
830
+ font-weight : 600;
831
+ margin : 20px 0 0 0;
832
+ box-sizing : border-box;
833
+ background-color : #f1f1f1;
834
+ padding-top : 0;
835
+ border : 1px solid #ccc;
836
+ border-bottom : 0;
837
+ }
838
+
839
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab {
840
+ line-height : 1.71428571;
841
+ margin-left : 0;
842
+ margin-right : 0;
843
+ background-color : #f1f1f1;
844
+ color : #336374;
845
+ font-size : 12px;
846
+ padding : 8px 20px 9px;
847
+ border : 0;
848
+ }
849
+
850
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__title,
851
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon {
852
+ vertical-align : middle;
853
+ }
854
+
855
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon {
856
+ margin-left : 8px;
857
+ font-size : 22px;
858
+ margin-right : -3px;
859
+ }
860
+
861
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__icon:before {
862
+ color : inherit;
863
+ }
864
+
865
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .yith-nav-sub-tab--highlight {
866
+ color : #fff;
867
+ background : #2a8db0;
868
+ }
869
+
870
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab-active {
871
+ color : #2a8db0;
872
+ background : #fff;
873
+ border-bottom : 0;
874
+ }
875
+
876
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab:first-child {
877
+ border : 0;
878
+ }
879
+
880
+ .yith-plugin-fw-wp-page-wrapper.yith-current-subtab-opened > .wrap {
881
+ /* padding-top: 0; */
882
+ }
883
+
884
+ .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
885
+ border-bottom : 2px solid #e9e9e9;
886
+ margin : 0;
887
+ padding-top : 9px;
888
+ padding-bottom : 0;
889
+ line-height : inherit;
890
+ }
891
+
892
+ div.nav-subtab-wrap {
893
+ position : absolute;
894
+ top : 100%;
895
+ left : 1px;
896
+ padding-top : 10px;
897
+ visibility : hidden; /* hides sub-menu */
898
+ }
899
+
900
+ ul.nav-subtab {
901
+ opacity : 0;
902
+ background-color : #fff;
903
+ transition : max-height 0.5s ease-in;
904
+ max-height : 0;
905
+ z-index : 100;
906
+ overflow : hidden;
907
+ border : 1px solid #f2f2f2;
908
+ padding : 14px 15px;
909
+ }
910
+
911
+ ul.yith-plugin-fw-tabs {
912
+ display : block;
913
+ margin : 0;
914
+ }
915
+
916
+ li.yith-plugin-fw-tab-element {
917
+ position : relative;
918
+ margin : 0;
919
+ padding : 0;
920
+ display : inline-block;
921
+ overflow : visible;
922
+ z-index : 10;
923
+ }
924
+
925
+ .yith-plugin-ui li.yith-plugin-fw-tab-element {
926
+ margin-bottom : -1px;
927
+ }
928
+
929
+ li.yith-plugin-fw-tab-element:hover {
930
+ cursor : pointer;
931
+ }
932
+
933
+ li.nav-subtab-item {
934
+ padding : 3px 0 0;
935
+ }
936
+
937
+ li.nav-subtab-item a {
938
+ font-size : 12px;
939
+ text-decoration : none;
940
+ letter-spacing : 0.05em;
941
+ color : #336374;
942
+ }
943
+
944
+ li.nav-subtab-item a:hover {
945
+ color : #228fb6;
946
+ }
947
+
948
+ li.yith-plugin-fw-tab-element a:hover .nav-subtab-wrap,
949
+ li.yith-plugin-fw-tab-element:hover .nav-subtab-wrap {
950
+ visibility : visible; /* shows sub-menu */
951
+ }
952
+
953
+ li.yith-plugin-fw-tab-element a:hover ul.nav-subtab,
954
+ li.yith-plugin-fw-tab-element:hover ul.nav-subtab {
955
+ max-height : 200px;
956
+ -webkit-box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
957
+ -moz-box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
958
+ box-shadow : -2px 2px 10px rgba(0, 111, 101, 0.27);
959
+ opacity : 1;
960
+ transition-delay : 0s, 0s, 0.3s;
961
+ min-width : 180px;
962
+ }
963
+
964
+ li.yith-plugin-fw-tab-element a.nav-tab i {
965
+ margin-left : 10px;
966
+ font-size : 12px;
967
+ font-weight : 600;
968
+ }
969
+
970
+ li.yith-plugin-fw-tab-element a.nav-tab i:before {
971
+ color : #fff;
972
+ }
973
+
974
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container {
975
+ margin-top : 0;
976
+ padding-top : 0;
977
+ }
978
+
979
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container,
980
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yith-plugin-fw-wp-page__sub-tab-wrap {
981
+ border : 1px solid #d8d8d8;
982
+ border-top : 0;
983
+ margin : 0 15px 0 0;
984
+ background : #fff;
985
+ padding : 0 20px 20px 20px;
986
+ box-sizing : border-box;
987
+ }
988
+
989
+
990
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yith-plugin-fw-wp-page__sub-tab-wrap .wrap {
991
+ margin : 0;
992
+ }
993
+
994
+ /**
995
+ * Float Save Button
996
+ */
997
+
998
+ button#yith-plugin-fw-float-save-button {
999
+ display : none;
1000
+ align-items : center;
1001
+ border-radius : 60px;
1002
+ bottom : 50px;
1003
+ box-shadow : 0 0 6px 3px rgba(0, 121, 159, .2);
1004
+ padding : 6px 20px;
1005
+ position : fixed;
1006
+ right : 70px;
1007
+ text-transform : uppercase;
1008
+ z-index : 2;
1009
+ transition : 0.3s ease-in-out;
1010
+ }
1011
+
1012
+ .ywtenv-is-sandbox button#yith-plugin-fw-float-save-button {
1013
+ bottom : 100px;
1014
+ }
1015
+
1016
+ button#yith-plugin-fw-float-save-button.visible {
1017
+ display : flex;
1018
+ }
1019
+
1020
+ button#yith-plugin-fw-float-save-button i {
1021
+ font-size : 15px;
1022
+ margin-right : 8px;
1023
+ }
1024
+
1025
+ button#yith-plugin-fw-float-save-button:hover {
1026
+ box-shadow : 0px 1px 6px 3px rgba(0, 121, 159, .3);
1027
+ }
1028
+
1029
+ button#yith-plugin-fw-float-save-button.green {
1030
+ background-color : #98aa36;
1031
+ border-color : #98aa36;
1032
+ box-shadow : 0 0 6px 3px rgba(152, 170, 54, .2);
1033
+ transition : all 0.8s linear;
1034
+ }
1035
+
1036
+ .rtl button#yith-plugin-fw-float-save-button {
1037
+ right : auto;
1038
+ left : 70px;
1039
+ }
1040
+
1041
+ .rtl button#yith-plugin-fw-float-save-button i {
1042
+ margin-left : 8px;
1043
+ margin-right : 0;
1044
+ }
1045
+
1046
+
1047
+ /* === Responsive === */
1048
+
1049
+ @media (max-width : 767px) {
1050
+
1051
+ }
1052
+
1053
+ @media (max-width : 480px) {
1054
+
1055
+ }
1056
+
1057
+ @media (max-width : 992px) {
1058
+ .yith-plugin-fw-panel-help-tab-content .row {
1059
+ white-space : normal;
1060
+ margin-bottom : 0;
1061
+ }
1062
+
1063
+ .yith-plugin-fw-panel-help-tab-content .row .column-left,
1064
+ .yith-plugin-fw-panel-help-tab-content .row .column-right {
1065
+ width : 100%;
1066
+ margin-bottom : 50px;
1067
+ }
1068
+
1069
+ .yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions {
1070
+ padding-top : 0 !important;
1071
+ }
1072
+ }
1073
+
1074
+ @media (min-width : 768px) and (max-width : 992px) {
1075
+ }
1076
+
1077
+ @media (min-width : 980px) and (max-width : 1199px) {
1078
+ }
1079
+
1080
+ @media (min-width : 1200px) {
1081
+ .yit-container.plugin-licence-activation {
1082
+ width : 900px;
1083
+ }
1084
+ }
1085
+
1086
+ @media only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (-o-min-device-pixel-ratio : 3/2), only screen and (min--moz-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5) {
1087
+ }
plugin-fw/assets/css/yit-upgrade-to-pro.css CHANGED
@@ -1,83 +1,83 @@
1
- /* === Upgrade to Premium Landing page === */
2
-
3
- #upgrade-to-premium {
4
- width : 900px;
5
- }
6
-
7
- #upgrade-to-premium h1 {
8
- font-family : 'Raleway', sans-serif;
9
- text-transform : uppercase;
10
- font-size : 30px;
11
- font-weight : 700;
12
- color : #808a97;
13
- }
14
-
15
- #upgrade-to-premium h3 {
16
- font-family : 'Raleway', sans-serif;
17
- font-size : 20px;
18
- line-height : 29px;
19
- font-weight : 700;
20
- color : #808a97;
21
- }
22
-
23
- #upgrade-to-premium p {
24
- font-family : 'Open Sans', sans-serif;
25
- font-size : 15px;
26
- line-height : 29px;
27
- font-weight : 400;
28
- color : #6a6a6b;
29
- }
30
-
31
- #upgrade-to-premium p.highlighted {
32
- font-family : 'Raleway', sans-serif;
33
- font-size : 20px;
34
- line-height : 27px;
35
- color : #808a97;
36
- font-weight : 400;
37
- }
38
-
39
- #upgrade-to-premium ol {
40
- counter-reset : item;
41
- list-style-type : none;
42
- margin-left : 0;
43
- }
44
-
45
- #upgrade-to-premium li.step {
46
- font-family : 'open sans', sans-serif;
47
- font-size : 15px;
48
- color : #6a6a6b;
49
- font-weight : 400;
50
- position : relative;
51
- padding-left : 50px;
52
- line-height : 25px;
53
- margin-bottom : 25px;
54
- }
55
-
56
- #upgrade-to-premium li.step:before {
57
- content : counters(item, ".") " ";
58
- counter-increment : item;
59
- position : absolute;
60
- left : 0;
61
- top : 0;
62
- border : 1px solid #808a97;
63
- width : 30px;
64
- height : 30px;
65
- border-radius : 16px;
66
- background-color : #808a97;
67
- color : #ffffff;
68
- font-weight : 700;
69
- font-size : 18px;
70
- text-align : center;
71
- line-height : 27px;
72
- }
73
-
74
- #upgrade-to-premium li.step img {
75
- border : 1px solid #b8b8b8;
76
- width : 600px;
77
- display : block;
78
- margin : 15px 0 25px 0;
79
- }
80
-
81
- #cboxLoadedContent {
82
- margin-bottom : 60px !important;
83
  }
1
+ /* === Upgrade to Premium Landing page === */
2
+
3
+ #upgrade-to-premium {
4
+ width : 900px;
5
+ }
6
+
7
+ #upgrade-to-premium h1 {
8
+ font-family : 'Raleway', sans-serif;
9
+ text-transform : uppercase;
10
+ font-size : 30px;
11
+ font-weight : 700;
12
+ color : #808a97;
13
+ }
14
+
15
+ #upgrade-to-premium h3 {
16
+ font-family : 'Raleway', sans-serif;
17
+ font-size : 20px;
18
+ line-height : 29px;
19
+ font-weight : 700;
20
+ color : #808a97;
21
+ }
22
+
23
+ #upgrade-to-premium p {
24
+ font-family : 'Open Sans', sans-serif;
25
+ font-size : 15px;
26
+ line-height : 29px;
27
+ font-weight : 400;
28
+ color : #6a6a6b;
29
+ }
30
+
31
+ #upgrade-to-premium p.highlighted {
32
+ font-family : 'Raleway', sans-serif;
33
+ font-size : 20px;
34
+ line-height : 27px;
35
+ color : #808a97;
36
+ font-weight : 400;
37
+ }
38
+
39
+ #upgrade-to-premium ol {
40
+ counter-reset : item;
41
+ list-style-type : none;
42
+ margin-left : 0;
43
+ }
44
+
45
+ #upgrade-to-premium li.step {
46
+ font-family : 'open sans', sans-serif;
47
+ font-size : 15px;
48
+ color : #6a6a6b;
49
+ font-weight : 400;
50
+ position : relative;
51
+ padding-left : 50px;
52
+ line-height : 25px;
53
+ margin-bottom : 25px;
54
+ }
55
+
56
+ #upgrade-to-premium li.step:before {
57
+ content : counters(item, ".") " ";
58
+ counter-increment : item;
59
+ position : absolute;
60
+ left : 0;
61
+ top : 0;
62
+ border : 1px solid #808a97;
63
+ width : 30px;
64
+ height : 30px;
65
+ border-radius : 16px;
66
+ background-color : #808a97;
67
+ color : #ffffff;
68
+ font-weight : 700;
69
+ font-size : 18px;
70
+ text-align : center;
71
+ line-height : 27px;
72
+ }
73
+
74
+ #upgrade-to-premium li.step img {
75
+ border : 1px solid #b8b8b8;
76
+ width : 600px;
77
+ display : block;
78
+ margin : 15px 0 25px 0;
79
+ }
80
+
81
+ #cboxLoadedContent {
82
+ margin-bottom : 60px !important;
83
  }
plugin-fw/assets/css/yit-upgrader.css CHANGED
@@ -1,22 +1,22 @@
1
- /* === Plugins Upgrader === */
2
-
3
- .yit-plugin-changelog-wrapper {
4
- display: none;
5
- }
6
-
7
- .yit-plugin-changelog-title {
8
- text-transform: uppercase;
9
- }
10
-
11
- .yit-plugin-changelog {
12
- height : calc(100% - 15px);
13
- width : calc(100% - 15px);
14
- overflow-x : hidden;
15
- overflow-y : auto;
16
- z-index : 999;
17
- background: #fcfcfc;
18
- }
19
-
20
- .yith-updating:before{
21
- animation: rotation 2s infinite linear;
22
  }
1
+ /* === Plugins Upgrader === */
2
+
3
+ .yit-plugin-changelog-wrapper {
4
+ display: none;
5
+ }
6
+
7
+ .yit-plugin-changelog-title {
8
+ text-transform: uppercase;
9
+ }
10
+
11
+ .yit-plugin-changelog {
12
+ height : calc(100% - 15px);
13
+ width : calc(100% - 15px);
14
+ overflow-x : hidden;
15
+ overflow-y : auto;
16
+ z-index : 999;
17
+ background: #fcfcfc;
18
+ }
19
+
20
+ .yith-updating:before{
21
+ animation: rotation 2s infinite linear;
22
  }
plugin-fw/assets/css/yith-fields.css CHANGED
@@ -1,2275 +1,2275 @@
1
- .yith-plugin-fw span.description {
2
- display : block;
3
- margin-top : 5px;
4
- font-size : 12px;
5
- color : #777;
6
- font-style : italic;
7
- clear : both;
8
- }
9
-
10
- .yith-plugin-fw span.description.inline {
11
- display : inline-block;
12
- margin : 0 0 0 5px;
13
- min-width : 0;
14
- max-width : 100%;
15
- }
16
-
17
- .yith-disabled {
18
- opacity : 0.3;
19
- pointer-events : none;
20
- }
21
-
22
- .yith-plugin-fw-field-wrapper:not(.yith-plugin-fw-title-field-wrapper) {
23
- display : block;
24
- width : 100%;
25
- }
26
-
27
- .yith-plugin-fw-field-wrapper .yith-inline-fields > div {
28
- display : inline-block;
29
- vertical-align : middle;
30
- margin-right : 5px;
31
- }
32
-
33
- .yith-plugin-fw-field-wrapper span.desc {
34
- display : block;
35
- width : 100%;
36
- }
37
-
38
- .yith-plugin-fw-title-field-wrapper h3.title {
39
- width : 100%;
40
- padding : 0 !important;
41
- }
42
-
43
- .the-metabox .yith-plugin-fw-title-field-wrapper h3.title {
44
- float : left;
45
- }
46
-
47
- .yith-plugin-fw span.color-alpha {
48
- height : 100% !important;
49
- width : 100% !important;
50
- border : 1px solid #d9d9d9;
51
- margin : -1px;
52
- }
53
-
54
- .yith-plugin-fw .wp-color-result-text {
55
- height : 100%;
56
- }
57
-
58
- .yith-plugin-fw input[type=email],
59
- .yith-plugin-fw input[type=number],
60
- .yith-plugin-fw input[type=text]:not(.select2-search__field),
61
- .yith-plugin-fw select,
62
- .woocommerce .yith-plugin-fw table.form-table input[type=email],
63
- .woocommerce .yith-plugin-fw table.form-table input[type=number],
64
- .yith-plugin-ui input[type=password],
65
- .woocommerce .yith-plugin-fw table.form-table input[type=text]:not(.select2-search__field),
66
- .woocommerce .yith-plugin-fw table.form-table select {
67
- width : 400px;
68
- max-width : 100%;
69
- height : 30px;
70
- padding : 5px;
71
- line-height : 1;
72
- }
73
-
74
- .yith-plugin-fw input[type=number],
75
- .woocommerce .yith-plugin-fw table.form-table input[type=number] {
76
- width : 70px;
77
- min-width : 70px;
78
- }
79
-
80
- .woocommerce .yith-plugin-fw table.form-table input[type=text].wp-color-picker,
81
- .woocommerce .yith-plugin-fw table.form-table input[type=text].yith-plugin-fw-colorpicker,
82
- .yith-plugin-fw input[type=text].wp-color-picker,
83
- .yith-plugin-fw input[type=text].yith-plugin-fw-colorpicker {
84
- width : 6em;
85
- max-width : none;
86
- height : auto;
87
- padding : 3px 5px;
88
- }
89
-
90
- .wp-core-ui .yith-plugin-fw-colorpicker-field-wrapper button {
91
- border-color : #7e8993;
92
- }
93
-
94
- .woocommerce .yith-plugin-fw table.form-table input[type=text].colorpick,
95
- .yith-plugin-fw input[type=text].colorpick {
96
- width : 6em;
97
- max-width : none;
98
- height : auto;
99
- padding : 6px;
100
- }
101
-
102
- .yith-plugin-fw input.select2-search__field,
103
- .yith-plugin-fw .select2-container .select2-search--inline .select2-search__field,
104
- .woocommerce .yith-plugin-fw input.select2-search__field,
105
- .woocommerce .yith-plugin-fw table.form-table input.select2-search__field {
106
- padding : 3px;
107
- min-width : 380px;
108
- }
109
-
110
- .yith-plugin-fw .select2-container .select2-selection--single .select2-selection__rendered {
111
- line-height : 27px;
112
- }
113
-
114
- .yith-plugin-fw textarea:not(.wp-editor-area) {
115
- width : 400px;
116
- max-width : 100%;
117
- padding : 5px;
118
- }
119
-
120
- /* ------------- ICONS ------------- */
121
- .yit-icons-manager-wrapper {
122
- width : 100%;
123
- max-width : 400px;
124
- }
125
-
126
- .yit-icons-manager-text {
127
- width : 100%;
128
- }
129
-
130
- .yit-icons-manager-icon-text {
131
- width : calc(100% - 35px) !important;
132
- height : 30px;
133
- float : left;
134
- margin : 0;
135
- }
136
-
137
- .yit-icons-manager-icon-preview {
138
- width : 30px;
139
- height : 30px;
140
- margin-right : 5px;
141
- float : left;
142
- padding-top : 6px;
143
- box-sizing : border-box;
144
- text-align : center;
145
- background : #f1f1f1;
146
- }
147
-
148
- .yit-icons-manager-list-wrapper {
149
- margin : 10px 0;
150
- box-shadow : 0 0 0 1px #ddd;
151
- }
152
-
153
- ul.yit-icons-manager-list {
154
- width : 100%;
155
- height : 300px;
156
- overflow-y : scroll;
157
- margin : 0;
158
- }
159
-
160
- ul.yit-icons-manager-list li {
161
- float : left;
162
- width : 30px;
163
- height : 30px;
164
- padding-top : 6px;
165
- box-sizing : border-box;
166
- text-align : center;
167
- background : #f1f1f1;
168
- margin : 1px;
169
- cursor : pointer;
170
- }
171
-
172
- ul.yit-icons-manager-list li:hover {
173
- background : #c5dcf6;
174
- }
175
-
176
- ul.yit-icons-manager-list li.active {
177
- background : #d4f0ff;
178
- }
179
-
180
- .yit-icons-manager-action-set-default {
181
- margin-bottom : 0;
182
- }
183
-
184
- .yit-icons-manager-default-icon-preview {
185
- height : 100%;
186
- display : inline-block;
187
- padding-left : 10px;
188
- border-left : 1px solid #ccc;
189
- margin-left : 10px;
190
- }
191
-
192
- /* ------- Text Array ------- */
193
- .yith-plugin-fw-text-array-table td {
194
- padding : 1px;
195
- }
196
-
197
- .yith-plugin-fw-text-array-table input[type=text],
198
- .woocommerce table.form-table table.yith-plugin-fw-text-array-table input[type=text] {
199
- width : 100%;
200
- }
201
-
202
- /* ------- Image Gallery ------- */
203
- .yith-plugin-fw .yith-plugin-fw-image-gallery ul li {
204
- display : inline-block;
205
- width : 80px;
206
- margin-left : 10px;
207
- position : relative;
208
- }
209
-
210
- .yith-plugin-fw .yith-plugin-fw-image-gallery ul li img {
211
- width : 80px;
212
- border : 1px solid #ccc;
213
- }
214
-
215
- .yith-plugin-fw .yith-plugin-fw-image-gallery ul li ul {
216
- position : absolute;
217
- top : -6px;
218
- right : -1px;
219
- width : 20px;
220
- height : 20px;
221
- }
222
-
223
- .yith-plugin-fw .yith-plugin-fw-image-gallery ul a.delete {
224
- background : url(../images/x.png) no-repeat;
225
- width : 20px;
226
- height : 20px;
227
- display : block;
228
- text-indent : -99999px;
229
- }
230
-
231
- /* ------- OnOff ------- */
232
- .yith-plugin-fw-onoff-container {
233
- display : inline-block;
234
- text-align : left;
235
- }
236
-
237
- .yith-plugin-fw-onoff-container input {
238
- display : none;
239
- }
240
-
241
- .yith-plugin-fw-onoff-container input + span {
242
- cursor : pointer;
243
- text-indent : -9999px;
244
- display : block;
245
- width : 36px;
246
- line-height : 1;
247
- height : 20px;
248
- background : #a4a4a4;
249
- border-radius : 24px;
250
- position : relative;
251
- transition : all 0.3s;
252
- }
253
-
254
-
255
- .yith-plugin-fw-onoff-container input + span:before {
256
- content : '';
257
- background : #fff;
258
- width : 16px;
259
- height : 16px;
260
- border-radius : 50%;
261
- position : absolute;
262
- top : 2px;
263
- left : 2px;
264
- transition : all 0.3s;
265
- }
266
-
267
- .yith-plugin-fw-onoff-container input:checked + span,
268
- .yith-plugin-fw-onoff-container input.onoffchecked + span {
269
- background : #0073aa;
270
- }
271
-
272
- .yith-plugin-fw-onoff-container input:checked + span:before,
273
- .yith-plugin-fw-onoff-container input.onoffchecked + span:before {
274
- left : 18px;
275
- }
276
-
277
- /* ------- Preview ------- */
278
- .yith-plugin-fw-preview-field {
279
- max-height : 200px;
280
- }
281
-
282
- /* ------- Radio ------- */
283
- .yith-plugin-fw-radio input[type=radio] {
284
- margin : 0 3px 0 0;
285
- }
286
-
287
- .yith-plugin-fw-radio__row {
288
- margin-bottom : 8px;
289
- }
290
-
291
- /* ------- Checkbox Array ------- */
292
- .yith-plugin-fw-checkbox-array input[type=checkbox] {
293
- margin : 2px 3px 0 0;
294
- }
295
-
296
- .yith-plugin-fw-checkbox-array__row {
297
- margin-bottom : 10px;
298
- display : flex;
299
- }
300
-
301
- .yith-plugin-fw-checkbox-array__row label {
302
- display : inline-block !important;
303
- width : auto !important;
304
- float : none !important;
305
- margin : 0 0 0 10px !important;
306
- padding : 0 !important;
307
- font-weight : 400 !important;
308
- }
309
-
310
- .yith-plugin-fw-checkbox-array__row label small {
311
- display : block;
312
- line-height : 2em;
313
- }
314
-
315
- /* ------- Sidebar Layout ------- */
316
- .yith-plugin-fw-sidebar-layout input[type="radio"] {
317
- display : none;
318
- width : 0px;
319
- }
320
-
321
- .yith-plugin-fw-sidebar-layout input[type="radio"]:first-child {
322
- margin-right : -2px;
323
- }
324
-
325
- .yith-plugin-fw-sidebar-layout input[type="radio"] + img {
326
- border : 2px solid #fff;
327
- padding : 1px;
328
- }
329
-
330
- .yith-plugin-fw-sidebar-layout input[type="radio"] + img:hover {
331
- cursor : pointer;
332
- }
333
-
334
- .yith-plugin-fw-sidebar-layout input[checked] + img {
335
- border : 2px solid #f2ad35;
336
- padding : 1px;
337
- }
338
-
339
- .yith-plugin-fw-sidebar-layout select {
340
- vertical-align : 12px;
341
- }
342
-
343
- .yit-admin-panel-content-wrap .yith-plugin-fw-sidebar-layout label {
344
- font-weight : bold;
345
- width : 200px;
346
- float : left;
347
- line-height : 23px;
348
- margin-left : -230px;
349
- }
350
-
351
- /* ------- Slider ------- */
352
- .yith-plugin-fw .slider {
353
- padding-top : 20px;
354
- }
355
-
356
- .yith-plugin-fw-slider-container .ui-slider .minCaption {
357
- position : absolute;
358
- right : 95%;
359
- top : -6px;
360
- margin-right : 11px;
361
- }
362
-
363
- .yith-plugin-fw-slider-container .ui-slider .maxCaption {
364
- position : absolute;
365
- left : 95%;
366
- top : -6px;
367
- margin-left : 20px;
368
- }
369
-
370
- .yith-plugin-fw-slider-container .ui-slider-horizontal .ui-slider-handle {
371
- background : #fff;
372
- border : 0px !important;
373
- top : -12px !important;
374
- border-radius : 50%;
375
- width : 27px !important;
376
- height : 27px !important;
377
- box-sizing : border-box;
378
- box-shadow : 0 1px 7px -1px rgba(0, 0, 0, 0.5);
379
- font-size : 13px;
380
- padding : 6px 0;
381
- font-weight : 600;
382
- color : #555;
383
- text-align : center;
384
- }
385
-
386
- .yith-plugin-fw-slider-container .ui-slider.ui-widget-content {
387
- background : #ccc;
388
- border : none !important;
389
- height : 3px !important;
390
- border-radius : 3px !important;
391
- width : 90%;
392
- margin : 15px 5% 20px 5%;
393
- }
394
-
395
- .yith-plugin-fw-slider-container .ui-slider.ui-widget-content .ui-widget-header {
396
- background : #4b93ff;
397
- left : 0px !important;
398
- -webkit-border-radius : 3px;
399
- -moz-border-radius : 3px;
400
- -khtml-border-radius : 3px;
401
- border-radius : 3px;
402
- }
403
-
404
- /* ------- Select2 ------- */
405
- .yith-plugin-fw-select2-wrapper {
406
- width : 400px;
407
- }
408
-
409
- /* ------- Textarea ------- */
410
- .yith-plugin-fw-textarea-editor-field-wrapper {
411
- max-width : 1000px;
412
- clear : both;
413
- }
414
-
415
- .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area,
416
- .woocommerce table.form-table .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area {
417
- width : 100%;
418
- }
419
-
420
- /* ------- Buttons ------- */
421
- .yith-plugin-fw-buttons-field-wrapper {
422
- margin-top : 7px;
423
- }
424
-
425
- /* ------- Select Images ------- */
426
- .yith-plugin-fw-select-images__list {
427
- margin : 0;
428
- display : flex;
429
- flex-wrap : wrap;
430
- }
431
-
432
- .yith-plugin-fw-select-images__item {
433
- width : calc(20% - 10px);
434
- min-width : 150px;
435
- margin : 0 10px 10px 0;
436
- padding : 10px;
437
- box-sizing : border-box;
438
- cursor : pointer;
439
- transition : all .3s;
440
- border : 2px solid #eee;
441
- display : flex;
442
- flex-direction : column;
443
- justify-content : space-between;
444
- }
445
-
446
- .yith-plugin-fw-select-images__item:hover,
447
- .yith-plugin-fw-select-images__item.yith-plugin-fw-select-images__item--selected {
448
- border-color : #07bcce;
449
- }
450
-
451
- .yith-plugin-fw-select-images__item__label {
452
- text-align : center;
453
- font-weight : 600;
454
- margin-bottom : 10px;
455
- }
456
-
457
- .yith-plugin-fw-select-images__item img {
458
- display : block;
459
- max-width : 100%;
460
- margin : 0 auto;
461
- }
462
-
463
- /****************
464
- WordPress 5.3 with old panel fixes
465
- ****************/
466
- .yith-plugin-fw-field-wrapper .select2-container .select2-selection--single {
467
- height : auto;
468
- line-height : 1;
469
- }
470
-
471
- .yith-plugin-fw-field-wrapper .select2-container .select2-selection--single .select2-selection__arrow {
472
- height : 100%;
473
- }
474
-
475
- /****************
476
- YITH UI
477
- ****************/
478
- .yith-plugin-fw-banner {
479
- width : 100%;
480
- height : 45px;
481
- background : #cfd9dd url(../images/banner-premium.png) no-repeat;
482
- display : flex;
483
- align-items : center;
484
- padding-right : -23px;
485
- }
486
-
487
- .yith-plugin-fw-banner h1 {
488
- text-transform : uppercase;
489
- color : #0c5777;
490
- font-size : 15px;
491
- padding : 0 0 0 110px;
492
- font-weight : 700;
493
- text-align : left;
494
- display : inline-block;
495
- box-sizing : border-box;
496
- }
497
-
498
- .yith-plugin-fw-banner span {
499
- font-style : italic;
500
- display : block;
501
- font-size : 15px;
502
- color : #214249;
503
- text-transform : none;
504
- text-align : right;
505
- }
506
-
507
- .yith-plugin-fw-banner a,
508
- .yith-plugin-fw-banner a:focus {
509
- text-decoration : none;
510
- outline : none;
511
- box-shadow : none;
512
- }
513
-
514
- .yith-plugin-fw-rate {
515
- margin : 20px 0;
516
- }
517
-
518
- .yith-plugin-fw-rate .dashicons-star-filled {
519
- font-size : 12px;
520
- margin : 4px -4px;
521
- color : #0c5777;
522
- }
523
-
524
- .yith-plugin-fw-rate a {
525
- text-decoration : none;
526
- }
527
-
528
- .yith-plugin-ui a {
529
- outline : none;
530
- box-shadow : none;
531
- }
532
-
533
- .yith-plugin-ui {
534
- font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
535
- }
536
-
537
- .yith-plugin-ui #wpwrap h2.nav-tab-wrapper, .yith-plugin-ui #wpbody-content h2.nav-tab-wrapper {
538
- margin-top : 10px;
539
- }
540
-
541
- .yith-plugin-ui .nav-tab {
542
- background-color : #336374;
543
- color : #fff;
544
- font-size : 13px;
545
- padding : 7px 15px;
546
- border : 0;
547
- margin : 0 4px 0 0;
548
- transition : background-color 0.3s linear;
549
- float : none;
550
- display : inline-block;
551
- }
552
-
553
- .yith-plugin-ui .nav-tab.yith-premium {
554
- background-color : #be421c;
555
- }
556
-
557
- .yith-plugin-ui .yith-nav-tab-wrapper .yith-plugin-fw-tab-element:hover > a.nav-tab:not(.nav-tab-active),
558
- .yith-plugin-ui .yith-nav-tab-wrapper .nav-tab:not(.nav-tab-active):hover {
559
- background-color : #207a92;
560
- }
561
-
562
- .yith-plugin-ui .yith-nav-tab-wrapper .yith-plugin-fw-tab-element:hover > a.nav-tab.yith-premium:not(.nav-tab-active),
563
- .yith-plugin-ui .yith-nav-tab-wrapper .nav-tab.yith-premium:not(.nav-tab-active):hover {
564
- background-color : #d24318;
565
- }
566
-
567
- .yith-plugin-ui .nav-tab-active,
568
- .yith-plugin-ui .nav-tab-active:hover,
569
- .yith-plugin-ui .nav-tab-active:focus,
570
- .yith-plugin-ui .nav-tab-active:focus:active {
571
- background-color : #fff;
572
- color : #336374;
573
- box-shadow : 0 3px 0 -1px #fff;
574
- border-bottom : 0;
575
- }
576
-
577
- .yith-plugin-ui .nav-tab-active.yith-premium,
578
- .yith-plugin-ui .nav-tab-active.yith-premium:hover,
579
- .yith-plugin-ui .nav-tab-active.yith-premium:focus,
580
- .yith-plugin-ui .nav-tab-active.yith-premium:focus:active {
581
- background-color : #fff;
582
- color : #be421c;
583
- box-shadow : none;
584
- }
585
-
586
- .yith-plugin-ui .yith-plugin-fw-tab-element:first-child .nav-tab-active {
587
- border-left : 1px solid #ddd;
588
- }
589
-
590
- .yith-plugin-ui #plugin-fw-wc {
591
- padding-top : 0px;
592
- }
593
-
594
- .yith-plugin-ui .form-table td {
595
- padding : 15px 20px;
596
- }
597
-
598
- .yith-plugin-ui.metaboxes-tab label {
599
- color : #33373b;
600
- font-size : 14px;
601
- margin-left : -248px;
602
- }
603
-
604
- .yith-plugin-ui.metaboxes-tab .the-metabox {
605
- margin : 40px 0 40px 290px;
606
- margin-left : 264px;
607
- }
608
-
609
- .yith-plugin-ui.metaboxes-tab label {
610
- width : 200px;
611
- font-weight : 600;
612
- }
613
-
614
- .yith-plugin-ui span.description {
615
- color : #716269;
616
- font-size : 13px;
617
- font-style : normal;
618
- font-weight : 400;
619
- margin-top : 15px;
620
- margin-left : 0;
621
- }
622
-
623
- #wpwrap .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-ui h2.nav-tab-wrapper {
624
- border : 0;
625
- border-bottom : 1px solid #ddd;
626
- margin-right : 15px;
627
- margin-bottom : 0;
628
- background-color : transparent;
629
- padding-left : 0;
630
- }
631
-
632
- .yith-plugin-ui #plugin-fw-wc table.form-table,
633
- .yith-plugin-ui #yith-plugin-fw-panel table.form-table,
634
- .yith-plugin-ui table.form-table {
635
- border : 1px solid #d8d8d8;
636
- border-top : 0;
637
- margin-bottom : 40px;
638
- }
639
-
640
- .yith-plugin-ui #wpwrap h2.nav-tab-wrapper, .yith-plugin-ui #wpbody-content h2.nav-tab-wrapper {
641
- background-color : transparent;
642
- border : 0;
643
- text-transform : none;
644
- border-bottom : 1px solid #ddd;
645
- }
646
-
647
- .yith-plugin-ui h2 {
648
- color : #2a8db0;
649
- font-size : 16px;
650
- border : 1px solid #d8d8d8;
651
- border-bottom : 0;
652
- background-color : #fff;
653
- padding : 35px 20px;
654
- margin : 0px;
655
- }
656
-
657
- .yith-plugin-ui .yith-plugin-fw-custom-tab h2 {
658
- border : 0px solid #d8d8d8;
659
- padding-left : 0;
660
- }
661
-
662
- .yith-plugin-ui #plugin-fw-wc table.form-table th, #yith-plugin-fw-panel table.form-table th.titledesc, .yith-plugin-ui #plugin-fw-wc table.form-table td, #yith-plugin-fw-panel table.form-table td.forminp {
663
- padding : 30px 20px;
664
- }
665
-
666
- .yith-plugin-ui #plugin-fw-wc table.form-table tr.toggle-element-fixed td, #yith-plugin-fw-panel table.form-table tr.toggle-element-fixed td.forminp {
667
- padding : 0 20px 30px;
668
- }
669
-
670
- .yith-plugin-ui #plugin-fw-wc h2 + div {
671
- background : #fff;
672
- border-left : 1px solid #d9d9d9;
673
- border-right : 1px solid #d9d9d9;
674
- margin : -20px 0 0 0;
675
- padding-left : 20px;
676
- padding-bottom : 5px;
677
- }
678
-
679
- .yith-plugin-ui #plugin-fw-wc h2 + div p, .yith-plugin-ui p.info-box {
680
- background : #f1f1f1;
681
- font-size : 14px;
682
- font-weight : 700;
683
- width : 50%;
684
- display : block;
685
- padding : 15px;
686
- margin-bottom : 0;
687
- }
688
-
689
- .yith-plugin-ui #plugin-fw-wc h2 + div p:before, .yith-plugin-ui p.info-box:before {
690
- content : "\e90e";
691
- font-family : yith-icon;
692
- font-size : 30px;
693
- font-weight : normal;
694
- display : block;
695
- margin-top : -12px;
696
- float : left;
697
- margin-right : 15px;
698
- }
699
-
700
- .yith-plugin-ui h2:first-child {
701
- border-top : 0;
702
- }
703
-
704
- /*** Icon ***/
705
- .yith-plugin-ui .yith-icon--right-overlay {
706
- position : relative;
707
- left : -33px;
708
- line-height : 36px;
709
- width : 0;
710
- }
711
-
712
- /*** General Input Style ***/
713
-
714
- .yith-plugin-ui .yith-plugin-fw select,
715
- .yith-plugin-ui textarea:not(.wp-editor-area),
716
- .yith-plugin-ui input[type=number],
717
- .yith-plugin-ui.metaboxes-tab input[type=number],
718
- .yith-plugin-ui input[type=text],
719
- .yith-plugin-ui input[type=email],
720
- .yith-plugin-ui input[type=password],
721
- .yith-plugin-ui .search-box input[name="s"],
722
- .yith-plugin-fw.yith-plugin-ui input[type=text]:not(.select2-search__field),
723
- .yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text],
724
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field),
725
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
726
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area),
727
- .woocommerce .yith-plugin-fw table.form-table input[type=password],
728
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number],
729
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text] {
730
- border : 1px solid #d8d8d8;
731
- border-radius : 8px;
732
- padding : 8px 10px;
733
- height : 38px;
734
- min-width : 90px;
735
- box-shadow : none;
736
- color : #716269;
737
- }
738
-
739
-
740
- .yith-plugin-ui input::-webkit-input-placeholder {
741
- color : #999999;
742
- }
743
-
744
- .yith-plugin-ui input:-ms-input-placeholder {
745
- color : #999999;
746
- }
747
-
748
- .yith-plugin-ui input::-ms-input-placeholder {
749
- color : #999999;
750
- }
751
-
752
- .yith-plugin-ui input::placeholder {
753
- color : #999999;
754
- }
755
-
756
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number] {
757
- min-width : 70px;
758
- }
759
-
760
- .yith-plugin-ui textarea:not(.wp-editor-area),
761
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area) {
762
- height : auto;
763
- padding : 8px;
764
- }
765
-
766
- .yith-plugin-ui input[type=text]:not(.select2-search__field).wp-color-picker,
767
- .yith-plugin-ui table.form-table input[type=text].wp-color-picker,
768
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].wp-color-picker {
769
- border : 0;
770
- height : 30px;
771
- max-width : 121px;
772
- font-size : 11px;
773
- padding : 0;
774
- }
775
-
776
- .yith-plugin-ui .search-box input[name="s"] {
777
- height : 35px;
778
- }
779
-
780
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].small-text,
781
- .yith-plugin-ui input[type=text].small-text {
782
- width : 100px;
783
- height : 25px;
784
- border : 1px solid #d9d9d9;
785
- }
786
-
787
-
788
- .yith-plugin-ui select:focus,
789
- .yith-plugin-ui .yith-plugin-fw select:focus,
790
- .woocommerce .yith-plugin-ui table.form-table select:focus,
791
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select:focus,
792
- .yith-plugin-ui input[type=text]:not(.select2-search__field):focus,
793
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field):focus,
794
- .yith-plugin-ui input[type=number]:focus,
795
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=number]:focus,
796
- .yith-plugin-ui textarea:not(.wp-editor-area):focus,
797
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area):focus {
798
- border-color : #a7d9ec;
799
- }
800
-
801
- .woocommerce .yith-plugin-ui table.form-table select,
802
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
803
- .yith-plugin-ui select {
804
- -webkit-appearance : none;
805
- line-height : 1.2em;
806
- min-height : 35px;
807
- background : #fff url("../images/arrow_down.svg") no-repeat right center;
808
- background-size : 35px 13px;
809
- border-radius : 8px;
810
- padding-right : 30px;
811
- }
812
-
813
- .yith-plugin-ui .form-table th {
814
- width : 200px;
815
- padding-right : 50px;
816
- }
817
-
818
- /** SELECT 2 **/
819
- .yith-plugin-ui .select2-container,
820
- .yith-plugin-ui .select2-selection--single {
821
- height : auto;
822
- padding : 2px;
823
- outline : none;
824
- }
825
-
826
- .yith-plugin-ui .select2-container .select2-selection--single,
827
- .yith-plugin-ui .select2-container .select2-selection--multiple,
828
- .yith-plugin-ui .select2-container.select2-container--focus .select2-selection--single,
829
- .yith-plugin-ui .select2-container.select2-container--focus .select2-selection--multiple,
830
- .yith-plugin-ui .select2-container.select2-container--open .select2-selection--single,
831
- .yith-plugin-ui .select2-container.select2-container--open .select2-selection--multiple {
832
- margin : 0;
833
- border : 0;
834
- box-shadow : none;
835
- }
836
-
837
- .yith-plugin-ui .select2-container .select2-selection--single .select2-selection__arrow {
838
- background : none;
839
- }
840
-
841
- /* old panel*/
842
-
843
- .yith-plugin-ui span.select2.select2-container.select2-container--default,
844
- span.select2.select2-container.select2-container--default.yith-plugin-fw-select2-container {
845
- border : 1px solid #d8d8d8;
846
- border-radius : 8px;
847
- }
848
-
849
- .yith-plugin-ui span.select2.select2-container.select2-container--default:hover,
850
- .yith-plugin-ui span.select2.select2-container.select2-container--default:active,
851
- .yith-plugin-ui span.select2.select2-container.select2-container--default:focus {
852
- border-color : #a7d9ec;
853
- }
854
-
855
- .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
856
- color : #fff;
857
- }
858
-
859
- .woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].select2-search__field,
860
- .yith-plugin-ui .yith-plugin-fw table.form-table input.select2-search__field {
861
- border : 0;
862
- padding : 0;
863
- height : initial;
864
- min-width : 380px;
865
- }
866
-
867
- .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice,
868
- .yith-plugin-ui .select2-selection__choice {
869
- color : #fff;
870
- background-color : #4e8ba2;
871
- border-radius : 12px;
872
- padding : 3px 11px;
873
- border-color : #4e8ba2;
874
- font-size : 13px;
875
- }
876
-
877
- .wc-wp-version-gte-53 .yith-plugin-ui .select2-container .select2-selection--single .select2-selection__arrow {
878
- background-image : none;
879
- }
880
-
881
- .yith-plugin-ui .select2-container--default .select2-selection--single .select2-selection__arrow:before {
882
- content : "\e900";
883
- font-family : 'yith-icon' !important;
884
- line-height : 36px;
885
- color : #d9d9d9;
886
- }
887
-
888
- .yith-plugin-ui .select2-container--default .select2-selection--single .select2-selection__arrow b {
889
- display : none;
890
- }
891
-
892
- .yith-plugin-fw-select2-container.select2-container--open .select2-dropdown:after {
893
- display : none;
894
- }
895
-
896
- .yith-plugin-fw-select2-container.select2-container--open .select2-dropdown--below,
897
- .yith-plugin-fw-select2-container.select2-container--open .select2-dropdown--above {
898
- margin-top : 10px;
899
- border-radius : 8px;
900
- box-shadow : 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !important;
901
- }
902
-
903
- .yith-plugin-fw-select2-container.select2-container--open .select2-dropdown--above {
904
- margin-top : -10px;
905
- }
906
-
907
- .yith-plugin-fw-select2-container.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,
908
- .yith-plugin-fw-select2-container.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
909
- border-radius : 8px;
910
- }
911
-
912
- .yith-plugin-fw-select2-container .select2-results .select2-results__group, .select2-results .select2-results__option:first-child {
913
- border-top-left-radius : 8px;
914
- border-top-right-radius : 8px;
915
- }
916
-
917
- .yith-plugin-fw-select2-container .select2-results .select2-results__group,
918
- .yith-plugin-fw-select2-container .select2-results .select2-results__option:last-child {
919
- border-bottom-left-radius : 8px;
920
- border-bottom-right-radius : 8px;
921
- }
922
-
923
- .yith-plugin-fw-select2-container .select2-dropdown {
924
- border : 0;
925
- }
926
-
927
- .yith-plugin-fw-select2-container.select2-container--default .select2-results__option[data-selected=true] {
928
- background-color : #fff;
929
- outline : none;
930
- }
931
-
932
- .yith-plugin-fw-select2-container.select2-container--default .select2-results__option--highlighted[aria-selected] {
933
- background-color : #e8eff1;
934
- color : #4e8ba2;
935
- outline : none;
936
- }
937
-
938
- .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove,
939
- .yith-plugin-fw-panel .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
940
- float : right;
941
- padding-left : 15px;
942
- text-indent : -9999px;
943
- }
944
-
945
- .yith-plugin-fw-panel .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after,
946
- .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
947
- float : right;
948
- color : #fff;
949
- content : "\e906";
950
- font-family : 'yith-icon' !important;
951
- font-size : 9px;
952
- line-height : 21px;
953
- text-indent : 0;
954
- }
955
-
956
- .yith-plugin-ui .select2-container .select2-selection--multiple,
957
- .yith-plugin-ui .select2-container--default.select2-container--focus .select2-selection--multiple,
958
- .wc-wp-version-gte-53 .yith-plugin-ui .select2-container.select2-container--open .select2-selection--multiple {
959
- border : 0;
960
- box-shadow : none;
961
- }
962
-
963
- .yith-plugin-fw .select2-search input[type=text] {
964
- border : 0;
965
- padding : 0;
966
- height : auto;
967
- }
968
-
969
- .yith-plugin-ui .yith-plugin-fw-select-field-wrapper span.yith-icon.yith-icon-magnifier,
970
- .yith-plugin-fw-panel .yith-plugin-fw-select-field-wrapper span.yith-icon.yith-icon-magnifier {
971
- position : absolute;
972
- padding-top : 5px;
973
- }
974
-
975
- .yith-plugin-ui input[type=text].select2-search__field {
976
- border : 0;
977
- padding : 0;
978
- height : 30px;
979
- }
980
-
981
- .yith-plugin-ui .select2-container--default .select2-search--dropdown .select2-search__field,
982
- .yith-plugin-fw-panel .select2-container--default .select2-search--dropdown .select2-search__field {
983
- border : 1px solid #d9d9d9;
984
- border-radius : 8px;
985
- box-shadow : none;
986
- }
987
-
988
- .yith-plugin-ui .select2-dropdown,
989
- .yith-plugin-fw-panel .select2-dropdown {
990
- border : 1px solid #d9d9d9;
991
- }
992
-
993
- /** RADIO BUTTON **/
994
- .yith-plugin-ui [type="radio"]:checked,
995
- .yith-plugin-ui [type="radio"]:not(:checked) {
996
- position : absolute;
997
- left : -9999px;
998
- }
999
-
1000
- .yith-plugin-ui [type="radio"]:checked + label,
1001
- .yith-plugin-ui [type="radio"]:not(:checked) + label {
1002
- position : relative;
1003
- padding-left : 35px;
1004
- cursor : pointer;
1005
- line-height : 20px;
1006
- display : inline-block;
1007
- color : #716269;
1008
- font-size : 14px;
1009
- }
1010
-
1011
- .yith-plugin-ui [type="radio"]:checked + label:before,
1012
- .yith-plugin-ui [type="radio"]:not(:checked) + label:before {
1013
- content : '';
1014
- position : absolute;
1015
- left : 0;
1016
- top : 0;
1017
- width : 19px;
1018
- height : 19px;
1019
- border : 1px solid #d8d8d8;
1020
- border-radius : 100%;
1021
- background : #fff;
1022
- }
1023
-
1024
- .yith-plugin-ui [type="radio"]:checked + label:after,
1025
- .yith-plugin-ui [type="radio"]:not(:checked) + label:after {
1026
- content : '';
1027
- width : 13px;
1028
- height : 13px;
1029
- background : #4e8ba2;
1030
- position : absolute;
1031
- top : 4px;
1032
- left : 4px;
1033
- border-radius : 100%;
1034
- -webkit-transition : all 0.2s ease;
1035
- transition : all 0.2s ease;
1036
- }
1037
-
1038
- .yith-plugin-ui [type="radio"]:not(:checked) + label:after {
1039
- opacity : 0;
1040
- -webkit-transform : scale(0);
1041
- transform : scale(0);
1042
- }
1043
-
1044
- .yith-plugin-ui [type="radio"]:checked + label:after {
1045
- opacity : 1;
1046
- -webkit-transform : scale(1);
1047
- transform : scale(1);
1048
- }
1049
-
1050
- /** CHECKBOX **/
1051
- .yith-plugin-ui input[type="checkbox"] {
1052
- -webkit-appearance : none;
1053
- background-color : #fff;
1054
- border : 1px solid #d8d8d8;
1055
- box-shadow : none;
1056
- width : 18px;
1057
- height : 18px;
1058
- border-radius : 3px;
1059
- display : inline-block;
1060
- position : relative;
1061
- }
1062
-
1063
- .yith-plugin-ui input[type="checkbox"]:checked {
1064
- background-color : #4e8ba2;
1065
- border-color : #488197;
1066
- }
1067
-
1068
- .yith-plugin-ui .forminp-checkbox span.description.inline {
1069
- margin-left : 10px;
1070
- }
1071
-
1072
- .yith-plugin-ui input[type="checkbox"]:checked:before {
1073
- display : none;
1074
- }
1075
-
1076
- .yith-plugin-ui input[type="checkbox"]:checked:after {
1077
- content : "\e905";
1078
- font-family : 'yith-icon';
1079
- font-size : 10px;
1080
- position : absolute;
1081
- font-weight : 600;
1082
- top : 8px;
1083
- left : 3px;
1084
- color : #fff;
1085
- }
1086
-
1087
- /** ONOFF **/
1088
- .yith-plugin-ui .yith-plugin-fw-onoff-container input[type="checkbox"] {
1089
- display : none;
1090
- }
1091
-
1092
- .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
1093
- border : 1px solid #d8d8d8;
1094
- background-color : #fff;
1095
- width : 60px;
1096
- height : 24px;
1097
- line-height : 14px;
1098
- padding : 4px;
1099
- box-sizing : border-box;
1100
- }
1101
-
1102
- .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
1103
- background-color : #d8d8d8;
1104
- }
1105
-
1106
- .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
1107
- width : 13px;
1108
- height : 13px;
1109
- top : 5px;
1110
- left : 6px;
1111
- background-color : #d8d8d8;
1112
- }
1113
-
1114
- .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:after {
1115
- content : attr(data-text-off);
1116
- height : 14px;
1117
- font-size : 12px;
1118
- font-weight : 600;
1119
- padding-left : 18px;
1120
- color : #979797;
1121
- display : block;
1122
- white-space : nowrap;
1123
- text-align : center;
1124
- }
1125
-
1126
- .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span,
1127
- .yith-plugin-ui .yith-plugin-fw-onoff-container input.onoffchecked + span {
1128
- background-color : #fff;
1129
- border-color : #98aa36;
1130
- }
1131
-
1132
- .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:before,
1133
- .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:before {
1134
- background-color : #98aa36;
1135
- left : 38px;
1136
- }
1137
-
1138
- .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after,
1139
- .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:after {
1140
- content : attr(data-text-on);
1141
- color : #98aa36;
1142
- height : 14px;
1143
- font-size : 12px;
1144
- font-weight : 600;
1145
- padding-left : 0;
1146
- padding-right : 18px;
1147
- display : block;
1148
- white-space : nowrap;
1149
- text-align : center;
1150
- }
1151
-
1152
- .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
1153
- text-indent : 0;
1154
- }
1155
-
1156
-
1157
- /**
1158
- DATEPICKER
1159
- */
1160
- .yith-plugin-ui .yith-plugin-fw-datepicker + .yith-icon-calendar,
1161
- .yith-plugin-fw-datepicker + .yith-icon-calendar {
1162
- color : #ccc;
1163
- font-size : 18px;
1164
- }
1165
-
1166
- div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
1167
- border : 0;
1168
- box-shadow : 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !important;
1169
- }
1170
-
1171
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-header.ui-widget-header {
1172
- background : #4e8ba2;
1173
- color : #fff;
1174
- font-size : 11px;
1175
- line-height : 25px;
1176
- border : 0;
1177
- min-height : 25px;
1178
- }
1179
-
1180
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-title {
1181
- line-height : 25px;
1182
- }
1183
-
1184
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker th {
1185
- color : #716269;
1186
- }
1187
-
1188
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-icon,
1189
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-hover,
1190
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-prev,
1191
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-next,
1192
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-w,
1193
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-e {
1194
- background : none;
1195
- content : "";
1196
- border : 0;
1197
- text-indent : 0;
1198
- width : 15px;
1199
- height : 20px;
1200
- display : block;
1201
- overflow : hidden;
1202
- }
1203
-
1204
- .yith-plugin-ui .yith-password-wrapper {
1205
- display : inline-block;
1206
- width : auto;
1207
- position : relative;
1208
- }
1209
-
1210
- .yith-plugin-ui .yith-password-wrapper .yith-password-eye-closed:before,
1211
- .yith-plugin-ui .yith-password-wrapper .yith-password-eye:before {
1212
- content : '\e911';
1213
- color : #999;
1214
- font-family : 'yith-icon';
1215
- font-size : 20px;
1216
- font-weight : normal;
1217
- width : 15px;
1218
- display : block;
1219
- position : absolute;
1220
- right : 13px;
1221
- top : 0;
1222
- line-height : 38px;
1223
- bottom : 0;
1224
- cursor : pointer;
1225
- }
1226
-
1227
- .yith-plugin-ui .yith-password-wrapper .yith-password-eye-closed:before {
1228
- content : '\e912';
1229
- }
1230
-
1231
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-w:before {
1232
- content : "\e901";
1233
- color : #fff;
1234
- font-family : 'yith-icon';
1235
- font-size : 12px;
1236
- font-weight : normal;
1237
- width : 15px;
1238
- display : block;
1239
- }
1240
-
1241
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-icon.ui-icon-circle-triangle-e:before {
1242
- content : "\e902";
1243
- color : #fff;
1244
- text-indent : 0;
1245
- font-family : 'yith-icon';
1246
- font-size : 12px;
1247
- font-weight : normal;
1248
- width : 15px;
1249
- display : block;
1250
- }
1251
-
1252
- /* arrow */
1253
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-prev,
1254
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-next,
1255
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-prev-hover,
1256
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-next-hover {
1257
- top : 1px;
1258
- cursor : pointer;
1259
- }
1260
-
1261
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-prev,
1262
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-prev.ui-datepicker-prev-hover {
1263
- left : 5px;
1264
- }
1265
-
1266
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker .ui-datepicker-next,
1267
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-datepicker-next.ui-datepicker-next-hover {
1268
- right : 1px;
1269
- }
1270
-
1271
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-datepicker table {
1272
- font-size : 10px;
1273
- }
1274
-
1275
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-state-default,
1276
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-widget-content .ui-state-default,
1277
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-default {
1278
- background : #fff;
1279
- border : 1px solid #d9d9d9;
1280
-
1281
- }
1282
-
1283
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-state-hover,
1284
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-widget-content .ui-state-hover,
1285
- #ui-datepicker-div.yith-plugin-fw-datepicker-div a.ui-state-default:focus,
1286
- #ui-datepicker-div.yith-plugin-fw-datepicker-div.ui-widget-content .ui-state-focus,
1287
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-focus {
1288
- background : #ebf1f3;
1289
- border : 1px solid #bfd5dd;
1290
- outline : none;
1291
- box-shadow : none;
1292
- }
1293
-
1294
- #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-widget-header .ui-state-hover,
1295
- .woocommerce #ui-datepicker-div.yith-plugin-fw-datepicker-div .ui-state-focus {
1296
- background : none;
1297
- border : 0;
1298
- }
1299
-
1300
- /** colorpicker **/
1301
- .yith-plugin-ui .iris-slider-offset.ui-slider.ui-widget-content {
1302
- background : transparent !important;
1303
- height : auto !important;
1304
- }
1305
-
1306
- .yith-plugin-ui .yith-plugin-fw-field-wrapper .yith-colorpicker-group:not(:first-child) {
1307
- margin-top : 20px;
1308
- }
1309
-
1310
- .yith-plugin-ui .yith-plugin-fw-field-wrapper .iris-picker,
1311
- .yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-holder {
1312
- display : none !important;
1313
- }
1314
-
1315
- .yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-input-wrap,
1316
- .yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-input-wrap > * {
1317
- display : inline-block !important;
1318
- vertical-align : middle;
1319
- }
1320
-
1321
- .yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-active .iris-picker,
1322
- .yith-plugin-ui .yith-plugin-fw-field-wrapper .wp-picker-active .wp-picker-holder {
1323
- display : block !important;
1324
- }
1325
-
1326
- .woocommerce .yith-plugin-ui .wp-picker-container .iris-picker, .yith-plugin-ui .wp-picker-container .iris-picker {
1327
- z-index : 100;
1328
- position : absolute;
1329
- margin-top : 20px;
1330
- border : 1px solid #d8d8d8;
1331
- border-radius : 4px;
1332
- box-shadow : 0 1px 3px rgba(0, 0, 0, .2);
1333
- }
1334
-
1335
- .yith-plugin-ui .yith-plugin-fw input[type=text].wp-color-picker {
1336
- border : 0;
1337
- padding : 2px 5px;
1338
- height : 30px;
1339
- }
1340
-
1341
- .yith-plugin-ui .wp-color-result-text {
1342
- display : none;
1343
- }
1344
-
1345
- .yith-plugin-ui .wp-picker-container .wp-color-result.button {
1346
- width : 30px;
1347
- height : 30px;
1348
- box-shadow : none;
1349
- border : 1px solid #d9d9d9;
1350
- margin-bottom : 0;
1351
- padding : 0;
1352
- display : inline-block;
1353
- vertical-align : middle;
1354
- box-sizing : content-box;
1355
- }
1356
-
1357
- .yith-plugin-ui .wp-picker-default-custom {
1358
- cursor : pointer;
1359
- width : 25px;
1360
- padding : 0 5px;
1361
- display : inline-block;
1362
- vertical-align : middle;
1363
- position : relative;
1364
- }
1365
-
1366
- .yith-plugin-ui .wp-picker-default-custom input.button {
1367
- opacity : 0;
1368
- margin : 0;
1369
- padding : 0;
1370
- position : absolute;
1371
- top : 0;
1372
- right : 0;
1373
- left : 0;
1374
- bottom : 0;
1375
- z-index : 2;
1376
- }
1377
-
1378
- .yith-plugin-ui .wp-picker-default-custom:before {
1379
- content : "\e91a";
1380
- text-indent : 0;
1381
- font-family : 'yith-icon';
1382
- font-size : 16px;
1383
- color : #d8d8d8;
1384
- font-weight : normal;
1385
- width : 15px;
1386
- display : block;
1387
- background : none;
1388
- line-height : 20px;
1389
- margin-left : 8px;
1390
- }
1391
-
1392
- .yith-plugin-ui .wp-picker-container {
1393
- width : auto;
1394
- display : inline-block;
1395
- border : 1px solid #d9d9d9