Woocommerce Products Slider - Version 1.12.5

Version Description

  • 17/11/2016 update - update owl js & css files version 2.0.1 aseets.
Download this release

Release Info

Developer pickplugins
Plugin Icon 128x128 Woocommerce Products Slider
Version 1.12.5
Comparing to
See all releases

Code changes from version 1.12.4 to 1.12.5

assets/front/css/owl.carousel.css CHANGED
@@ -1,71 +1,173 @@
1
- /*
2
- * Core Owl Carousel CSS File
3
- * v1.3.3
 
4
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- /* clearfix */
7
- .owl-carousel .owl-wrapper:after {
8
- content: ".";
9
- display: block;
10
- clear: both;
11
- visibility: hidden;
12
- line-height: 0;
13
- height: 0;
14
- }
15
- /* display none until init */
16
- .owl-carousel{
17
- display: none;
18
- position: relative;
19
- width: 100%;
20
- -ms-touch-action: pan-y;
21
- }
22
- .owl-carousel .owl-wrapper{
23
- display: none;
24
- position: relative;
25
- -webkit-transform: translate3d(0px, 0px, 0px);
26
- }
27
- .owl-carousel .owl-wrapper-outer{
28
- overflow: hidden;
29
- position: relative;
30
- width: 100%;
31
- }
32
- .owl-carousel .owl-wrapper-outer.autoHeight{
33
- -webkit-transition: height 500ms ease-in-out;
34
- -moz-transition: height 500ms ease-in-out;
35
- -ms-transition: height 500ms ease-in-out;
36
- -o-transition: height 500ms ease-in-out;
37
- transition: height 500ms ease-in-out;
38
- }
39
-
40
- .owl-carousel .owl-item{
41
- float: left;
42
- }
43
- .owl-controls .owl-page,
44
- .owl-controls .owl-buttons div{
45
- cursor: pointer;
46
- }
47
- .owl-controls {
48
- -webkit-user-select: none;
49
- -khtml-user-select: none;
50
- -moz-user-select: none;
51
- -ms-user-select: none;
52
- user-select: none;
53
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
54
- }
55
-
56
- /* mouse grab icon */
57
- .grabbing {
58
- cursor:url(grabbing.png) 8 8, move;
59
- }
60
-
61
- /* fix */
62
- .owl-carousel .owl-wrapper,
63
- .owl-carousel .owl-item{
64
- -webkit-backface-visibility: hidden;
65
- -moz-backface-visibility: hidden;
66
- -ms-backface-visibility: hidden;
67
- -webkit-transform: translate3d(0,0,0);
68
- -moz-transform: translate3d(0,0,0);
69
- -ms-transform: translate3d(0,0,0);
70
- }
71
 
 
 
 
 
 
1
+ /**
2
+ * Owl Carousel v2.1.0
3
+ * Copyright 2013-2016 David Deutsch
4
+ * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE)
5
  */
6
+ /*
7
+ * Owl Carousel - Core
8
+ */
9
+ .owl-carousel {
10
+ display: none;
11
+ width: 100%;
12
+ -webkit-tap-highlight-color: transparent;
13
+ /* position relative and z-index fix webkit rendering fonts issue */
14
+ position: relative;
15
+ z-index: 1; }
16
+ .owl-carousel .owl-stage {
17
+ position: relative;
18
+ -ms-touch-action: pan-Y; }
19
+ .owl-carousel .owl-stage:after {
20
+ content: ".";
21
+ display: block;
22
+ clear: both;
23
+ visibility: hidden;
24
+ line-height: 0;
25
+ height: 0; }
26
+ .owl-carousel .owl-stage-outer {
27
+ position: relative;
28
+ overflow: hidden;
29
+ /* fix for flashing background */
30
+ -webkit-transform: translate3d(0px, 0px, 0px); }
31
+ .owl-carousel .owl-item {
32
+ position: relative;
33
+ min-height: 1px;
34
+ float: left;
35
+ -webkit-backface-visibility: hidden;
36
+ -webkit-tap-highlight-color: transparent;
37
+ -webkit-touch-callout: none; }
38
+ .owl-carousel .owl-item img {
39
+ display: block;
40
+ width: 100%;
41
+ -webkit-transform-style: preserve-3d; }
42
+ .owl-carousel .owl-nav.disabled,
43
+ .owl-carousel .owl-dots.disabled {
44
+ display: none; }
45
+ .owl-carousel .owl-nav .owl-prev,
46
+ .owl-carousel .owl-nav .owl-next,
47
+ .owl-carousel .owl-dot {
48
+ cursor: pointer;
49
+ cursor: hand;
50
+ -webkit-user-select: none;
51
+ -khtml-user-select: none;
52
+ -moz-user-select: none;
53
+ -ms-user-select: none;
54
+ user-select: none; }
55
+ .owl-carousel.owl-loaded {
56
+ display: block; }
57
+ .owl-carousel.owl-loading {
58
+ opacity: 0;
59
+ display: block; }
60
+ .owl-carousel.owl-hidden {
61
+ opacity: 0; }
62
+ .owl-carousel.owl-refresh .owl-item {
63
+ display: none; }
64
+ .owl-carousel.owl-drag .owl-item {
65
+ -webkit-user-select: none;
66
+ -moz-user-select: none;
67
+ -ms-user-select: none;
68
+ user-select: none; }
69
+ .owl-carousel.owl-grab {
70
+ cursor: move;
71
+ cursor: grab; }
72
+ .owl-carousel.owl-rtl {
73
+ direction: rtl; }
74
+ .owl-carousel.owl-rtl .owl-item {
75
+ float: right; }
76
+
77
+ /* No Js */
78
+ .no-js .owl-carousel {
79
+ display: block; }
80
+
81
+ /*
82
+ * Owl Carousel - Animate Plugin
83
+ */
84
+ .owl-carousel .animated {
85
+ -webkit-animation-duration: 1000ms;
86
+ animation-duration: 1000ms;
87
+ -webkit-animation-fill-mode: both;
88
+ animation-fill-mode: both; }
89
+
90
+ .owl-carousel .owl-animated-in {
91
+ z-index: 0; }
92
+
93
+ .owl-carousel .owl-animated-out {
94
+ z-index: 1; }
95
+
96
+ .owl-carousel .fadeOut {
97
+ -webkit-animation-name: fadeOut;
98
+ animation-name: fadeOut; }
99
+
100
+ @-webkit-keyframes fadeOut {
101
+ 0% {
102
+ opacity: 1; }
103
+ 100% {
104
+ opacity: 0; } }
105
+
106
+ @keyframes fadeOut {
107
+ 0% {
108
+ opacity: 1; }
109
+ 100% {
110
+ opacity: 0; } }
111
+
112
+ /*
113
+ * Owl Carousel - Auto Height Plugin
114
+ */
115
+ .owl-height {
116
+ transition: height 500ms ease-in-out; }
117
+
118
+ /*
119
+ * Owl Carousel - Lazy Load Plugin
120
+ */
121
+ .owl-carousel .owl-item .owl-lazy {
122
+ opacity: 0;
123
+ transition: opacity 400ms ease; }
124
+
125
+ .owl-carousel .owl-item img.owl-lazy {
126
+ -webkit-transform-style: preserve-3d;
127
+ transform-style: preserve-3d; }
128
+
129
+ /*
130
+ * Owl Carousel - Video Plugin
131
+ */
132
+ .owl-carousel .owl-video-wrapper {
133
+ position: relative;
134
+ height: 100%;
135
+ background: #000; }
136
+
137
+ .owl-carousel .owl-video-play-icon {
138
+ position: absolute;
139
+ height: 80px;
140
+ width: 80px;
141
+ left: 50%;
142
+ top: 50%;
143
+ margin-left: -40px;
144
+ margin-top: -40px;
145
+ background: url("owl.video.play.png") no-repeat;
146
+ cursor: pointer;
147
+ z-index: 1;
148
+ -webkit-backface-visibility: hidden;
149
+ transition: -webkit-transform 100ms ease;
150
+ transition: transform 100ms ease; }
151
+
152
+ .owl-carousel .owl-video-play-icon:hover {
153
+ -webkit-transform: scale(1.3, 1.3);
154
+ -ms-transform: scale(1.3, 1.3);
155
+ transform: scale(1.3, 1.3); }
156
+
157
+ .owl-carousel .owl-video-playing .owl-video-tn,
158
+ .owl-carousel .owl-video-playing .owl-video-play-icon {
159
+ display: none; }
160
 
161
+ .owl-carousel .owl-video-tn {
162
+ opacity: 0;
163
+ height: 100%;
164
+ background-position: center center;
165
+ background-repeat: no-repeat;
166
+ background-size: contain;
167
+ transition: opacity 400ms ease; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
 
169
+ .owl-carousel .owl-video-frame {
170
+ position: relative;
171
+ z-index: 1;
172
+ height: 100%;
173
+ width: 100%; }
assets/front/css/owl.theme.css DELETED
@@ -1,79 +0,0 @@
1
- /*
2
- * Owl Carousel Owl Demo Theme
3
- * v1.3.3
4
- */
5
-
6
- .owl-theme .owl-controls{
7
- margin-top: 10px;
8
- text-align: center;
9
- }
10
-
11
- /* Styling Next and Prev buttons */
12
-
13
- .owl-theme .owl-controls .owl-buttons div{
14
- color: #FFF;
15
- display: inline-block;
16
- zoom: 1;
17
- *display: inline;/*IE7 life-saver */
18
- margin: 5px;
19
- padding: 3px 10px;
20
- font-size: 12px;
21
- -webkit-border-radius: 30px;
22
- -moz-border-radius: 30px;
23
- border-radius: 30px;
24
- background: #869791;
25
- filter: Alpha(Opacity=50);/*IE7 fix*/
26
- opacity: 0.5;
27
- }
28
- /* Clickable class fix problem with hover on touch devices */
29
- /* Use it for non-touch hover action */
30
- .owl-theme .owl-controls.clickable .owl-buttons div:hover{
31
- filter: Alpha(Opacity=100);/*IE7 fix*/
32
- opacity: 1;
33
- text-decoration: none;
34
- }
35
-
36
- /* Styling Pagination*/
37
-
38
- .owl-theme .owl-controls .owl-page{
39
- display: inline-block;
40
- zoom: 1;
41
- *display: inline;/*IE7 life-saver */
42
- }
43
- .owl-theme .owl-controls .owl-page span{
44
- display: block;
45
- width: 12px;
46
- height: 12px;
47
- margin: 5px 7px;
48
- filter: Alpha(Opacity=50);/*IE7 fix*/
49
- opacity: 0.5;
50
- -webkit-border-radius: 20px;
51
- -moz-border-radius: 20px;
52
- border-radius: 20px;
53
- background: #869791;
54
- }
55
-
56
- .owl-theme .owl-controls .owl-page.active span,
57
- .owl-theme .owl-controls.clickable .owl-page:hover span{
58
- filter: Alpha(Opacity=100);/*IE7 fix*/
59
- opacity: 1;
60
- }
61
-
62
- /* If PaginationNumbers is true */
63
-
64
- .owl-theme .owl-controls .owl-page span.owl-numbers{
65
- height: auto;
66
- width: auto;
67
- color: #FFF;
68
- padding: 2px 10px;
69
- font-size: 12px;
70
- -webkit-border-radius: 30px;
71
- -moz-border-radius: 30px;
72
- border-radius: 30px;
73
- }
74
-
75
- /* preloading images */
76
- .owl-item.loading{
77
- min-height: 150px;
78
- background: url(AjaxLoader.gif) no-repeat center center
79
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/front/css/owl.theme.default.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /**
2
+ * Owl Carousel v2.1.0
3
+ * Copyright 2013-2016 David Deutsch
4
+ * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE)
5
+ */
assets/front/css/style.css CHANGED
@@ -93,9 +93,8 @@ background:url("ribbons/dis-100.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
93
 
94
 
95
 
96
- /* Navigation CSS middle */
97
 
98
- .wcps-container .owl-buttons.middle {
99
  left: 0;
100
  position: absolute;
101
  top: 40%;
@@ -103,7 +102,7 @@ background:url("ribbons/dis-100.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
103
  }
104
 
105
 
106
- .wcps-container .owl-controls .owl-buttons.middle .owl-prev {
107
  background: url("images/arrow-prev.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
108
  border: 1px solid rgb(221, 221, 221);
109
  border-radius: 50%;
@@ -118,7 +117,7 @@ background:url("ribbons/dis-100.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
118
  transition: all 0.6s ease 0s;
119
  }
120
 
121
- .wcps-container .owl-controls .owl-buttons.middle .owl-next {
122
  background: url("images/arrow-next.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
123
  border: 1px solid rgb(221, 221, 221);
124
  border-radius: 50%;
@@ -134,17 +133,17 @@ background:url("ribbons/dis-100.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
134
  }
135
 
136
 
137
- .wcps-container:hover .owl-controls .owl-buttons.middle .owl-prev,
138
- .wcps-container:hover .owl-controls .owl-buttons.middle .owl-next {
139
  box-shadow: 0 0 8px 0 rgb(102, 102, 102);
140
  }
141
 
142
 
143
- .wcps-container:hover .owl-controls .owl-buttons.middle .owl-prev {
144
  left: 30px;
145
  }
146
 
147
- .wcps-container:hover .owl-controls .owl-buttons.middle .owl-next {
148
  right: 30px;
149
  }
150
 
@@ -155,7 +154,7 @@ right: 30px;
155
 
156
 
157
 
158
- .wcps-container .owl-buttons.middle-fixed {
159
  left: 0;
160
  position: absolute;
161
  top: 40%;
@@ -163,13 +162,13 @@ right: 30px;
163
  }
164
 
165
 
166
- .wcps-container .owl-controls .owl-buttons.middle-fixed .owl-prev {
167
  background: url("images/arrow-prev.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
168
  border: 1px solid rgb(221, 221, 221);
169
  border-radius: 50%;
170
  color: rgb(0, 0, 0);
171
  height: 50px;
172
- left: -50px;
173
  padding: 0;
174
  position: absolute;
175
  top: 0;
@@ -178,7 +177,7 @@ right: 30px;
178
  transition: all 0.6s ease 0s;
179
  }
180
 
181
- .wcps-container .owl-controls .owl-buttons.middle-fixed .owl-next {
182
  background: url("images/arrow-next.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
183
  border: 1px solid rgb(221, 221, 221);
184
  border-radius: 50%;
@@ -186,7 +185,7 @@ right: 30px;
186
  height: 50px;
187
  padding: 0;
188
  position: absolute;
189
- right: -50px;
190
  top: 0;
191
 
192
  width: 50px;
@@ -194,18 +193,18 @@ right: 30px;
194
  }
195
 
196
 
197
- .wcps-container:hover .owl-controls .owl-buttons.middle-fixed .owl-prev,
198
- .wcps-container:hover .owl-controls .owl-buttons.middle-fixed .owl-next {
199
  box-shadow: 0 0 8px 0 rgb(102, 102, 102);
200
  }
201
 
202
 
203
- .wcps-container:hover .owl-controls .owl-buttons.middle-fixed .owl-prev {
204
- left: -50px;
205
  }
206
 
207
- .wcps-container:hover .owl-controls .owl-buttons.middle-fixed .owl-next {
208
- right: -50px;
209
  }
210
 
211
 
@@ -228,13 +227,13 @@ right: -50px;
228
 
229
 
230
  /* Navigation CSS topright*/
231
- .wcps-container .owl-buttons.topright {
232
  position: absolute;
233
  right: 15px;
234
  top: 15px;
235
  }
236
 
237
- .wcps-container .owl-controls .owl-buttons.topright .owl-prev {
238
  background: url("images/arrow-prev.png") repeat scroll 0 0 rgb(255, 255, 255);
239
  border: 1px solid rgb(221, 221, 221);
240
  border-radius: 0;
@@ -243,11 +242,12 @@ right: -50px;
243
  padding: 0;
244
  opacity: 1;
245
  width: 30px;
 
246
  }
247
 
248
 
249
 
250
- .wcps-container .owl-controls .owl-buttons.topright .owl-next {
251
  background: url("images/arrow-next.png") repeat scroll 0 0 rgb(255, 255, 255);
252
  border: 1px solid rgb(221, 221, 221);
253
  border-radius: 0;
@@ -256,21 +256,46 @@ right: -50px;
256
  width: 30px;
257
  opacity: 1;
258
  height: 20px;
 
259
  }
260
 
261
 
262
 
263
- .wcps-container .owl-controls .owl-buttons.topright div.owl-prev:hover{
264
  background-image: url("images/arrow-prev.png") ;
265
  background-color:#d5d5d5 !important; }
266
 
267
 
268
- .wcps-container .owl-controls .owl-buttons.topright div.owl-next:hover{
269
  background-image: url("images/arrow-next.png");
270
  background-color:#d5d5d5 !important; }
271
 
272
 
273
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
 
275
 
276
  .wcps-container div.wcps-items-sale {
93
 
94
 
95
 
 
96
 
97
+ .wcps-container .owl-nav.middle {
98
  left: 0;
99
  position: absolute;
100
  top: 40%;
102
  }
103
 
104
 
105
+ .wcps-container .owl-nav.middle .owl-prev {
106
  background: url("images/arrow-prev.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
107
  border: 1px solid rgb(221, 221, 221);
108
  border-radius: 50%;
117
  transition: all 0.6s ease 0s;
118
  }
119
 
120
+ .wcps-container .owl-nav.middle .owl-next {
121
  background: url("images/arrow-next.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
122
  border: 1px solid rgb(221, 221, 221);
123
  border-radius: 50%;
133
  }
134
 
135
 
136
+ .wcps-container:hover .owl-nav.middle .owl-prev,
137
+ .wcps-container:hover .owl-nav.middle .owl-next {
138
  box-shadow: 0 0 8px 0 rgb(102, 102, 102);
139
  }
140
 
141
 
142
+ .wcps-container:hover .owl-nav.middle .owl-prev {
143
  left: 30px;
144
  }
145
 
146
+ .wcps-container:hover .owl-nav.middle .owl-next {
147
  right: 30px;
148
  }
149
 
154
 
155
 
156
 
157
+ .wcps-container .owl-nav.middle-fixed {
158
  left: 0;
159
  position: absolute;
160
  top: 40%;
162
  }
163
 
164
 
165
+ .wcps-container .owl-nav.middle-fixed .owl-prev {
166
  background: url("images/arrow-prev.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
167
  border: 1px solid rgb(221, 221, 221);
168
  border-radius: 50%;
169
  color: rgb(0, 0, 0);
170
  height: 50px;
171
+ left: -30px;
172
  padding: 0;
173
  position: absolute;
174
  top: 0;
177
  transition: all 0.6s ease 0s;
178
  }
179
 
180
+ .wcps-container .owl-nav.middle-fixed .owl-next {
181
  background: url("images/arrow-next.png") no-repeat scroll 10px 14px rgba(0, 0, 0, 0);
182
  border: 1px solid rgb(221, 221, 221);
183
  border-radius: 50%;
185
  height: 50px;
186
  padding: 0;
187
  position: absolute;
188
+ right: -30px;
189
  top: 0;
190
 
191
  width: 50px;
193
  }
194
 
195
 
196
+ .wcps-container:hover .owl-nav.middle-fixed .owl-prev,
197
+ .wcps-container:hover .owl-nav.middle-fixed .owl-next {
198
  box-shadow: 0 0 8px 0 rgb(102, 102, 102);
199
  }
200
 
201
 
202
+ .wcps-container:hover .owl-nav.middle-fixed .owl-prev {
203
+ left: -30px;
204
  }
205
 
206
+ .wcps-container:hover .owl-nav.middle-fixed .owl-next {
207
+ right: -30px;
208
  }
209
 
210
 
227
 
228
 
229
  /* Navigation CSS topright*/
230
+ .wcps-container .owl-nav.topright {
231
  position: absolute;
232
  right: 15px;
233
  top: 15px;
234
  }
235
 
236
+ .wcps-container .owl-nav.topright .owl-prev {
237
  background: url("images/arrow-prev.png") repeat scroll 0 0 rgb(255, 255, 255);
238
  border: 1px solid rgb(221, 221, 221);
239
  border-radius: 0;
242
  padding: 0;
243
  opacity: 1;
244
  width: 30px;
245
+ display: inline-block;
246
  }
247
 
248
 
249
 
250
+ .wcps-container .owl-nav.topright .owl-next {
251
  background: url("images/arrow-next.png") repeat scroll 0 0 rgb(255, 255, 255);
252
  border: 1px solid rgb(221, 221, 221);
253
  border-radius: 0;
256
  width: 30px;
257
  opacity: 1;
258
  height: 20px;
259
+ display: inline-block;
260
  }
261
 
262
 
263
 
264
+ .wcps-container .owl-nav.topright div.owl-prev:hover{
265
  background-image: url("images/arrow-prev.png") ;
266
  background-color:#d5d5d5 !important; }
267
 
268
 
269
+ .wcps-container .owl-nav.topright div.owl-next:hover{
270
  background-image: url("images/arrow-next.png");
271
  background-color:#d5d5d5 !important; }
272
 
273
 
274
 
275
+ .wcps-container .owl-dots {
276
+ margin: 30px 0 0;
277
+ text-align: center;
278
+ }
279
+
280
+
281
+ .wcps-container .owl-dots .owl-dot {
282
+ background: #869791 none repeat scroll 0 0;
283
+ border-radius: 20px;
284
+ display: inline-block;
285
+ height: 12px;
286
+ margin: 5px 7px;
287
+ opacity: 0.5;
288
+ width: 12px;
289
+ }
290
+
291
+ .wcps-container .owl-dots .owl-dot:hover,
292
+ .wcps-container .owl-dots .owl-dot.active {
293
+ opacity: 1;
294
+
295
+ }
296
+
297
+
298
+
299
 
300
 
301
  .wcps-container div.wcps-items-sale {
assets/front/js/owl.carousel.js DELETED
@@ -1,1512 +0,0 @@
1
- /*
2
- * jQuery OwlCarousel v1.3.3
3
- *
4
- * Copyright (c) 2013 Bartosz Wojciechowski
5
- * http://www.owlgraphic.com/owlcarousel/
6
- *
7
- * Licensed under MIT
8
- *
9
- */
10
-
11
- /*JS Lint helpers: */
12
- /*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
13
- /*jslint nomen: true, continue:true */
14
-
15
- if (typeof Object.create !== "function") {
16
- Object.create = function (obj) {
17
- function F() {}
18
- F.prototype = obj;
19
- return new F();
20
- };
21
- }
22
- (function ($, window, document) {
23
-
24
- var Carousel = {
25
- init : function (options, el) {
26
- var base = this;
27
-
28
- base.$elem = $(el);
29
- base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
30
-
31
- base.userOptions = options;
32
- base.loadContent();
33
- },
34
-
35
- loadContent : function () {
36
- var base = this, url;
37
-
38
- function getData(data) {
39
- var i, content = "";
40
- if (typeof base.options.jsonSuccess === "function") {
41
- base.options.jsonSuccess.apply(this, [data]);
42
- } else {
43
- for (i in data.owl) {
44
- if (data.owl.hasOwnProperty(i)) {
45
- content += data.owl[i].item;
46
- }
47
- }
48
- base.$elem.html(content);
49
- }
50
- base.logIn();
51
- }
52
-
53
- if (typeof base.options.beforeInit === "function") {
54
- base.options.beforeInit.apply(this, [base.$elem]);
55
- }
56
-
57
- if (typeof base.options.jsonPath === "string") {
58
- url = base.options.jsonPath;
59
- $.getJSON(url, getData);
60
- } else {
61
- base.logIn();
62
- }
63
- },
64
-
65
- logIn : function () {
66
- var base = this;
67
-
68
- base.$elem.data("owl-originalStyles", base.$elem.attr("style"));
69
- base.$elem.data("owl-originalClasses", base.$elem.attr("class"));
70
-
71
- base.$elem.css({opacity: 0});
72
- base.orignalItems = base.options.items;
73
- base.checkBrowser();
74
- base.wrapperWidth = 0;
75
- base.checkVisible = null;
76
- base.setVars();
77
- },
78
-
79
- setVars : function () {
80
- var base = this;
81
- if (base.$elem.children().length === 0) {return false; }
82
- base.baseClass();
83
- base.eventTypes();
84
- base.$userItems = base.$elem.children();
85
- base.itemsAmount = base.$userItems.length;
86
- base.wrapItems();
87
- base.$owlItems = base.$elem.find(".owl-item");
88
- base.$owlWrapper = base.$elem.find(".owl-wrapper");
89
- base.playDirection = "next";
90
- base.prevItem = 0;
91
- base.prevArr = [0];
92
- base.currentItem = 0;
93
- base.customEvents();
94
- base.onStartup();
95
- },
96
-
97
- onStartup : function () {
98
- var base = this;
99
- base.updateItems();
100
- base.calculateAll();
101
- base.buildControls();
102
- base.updateControls();
103
- base.response();
104
- base.moveEvents();
105
- base.stopOnHover();
106
- base.owlStatus();
107
-
108
- if (base.options.transitionStyle !== false) {
109
- base.transitionTypes(base.options.transitionStyle);
110
- }
111
- if (base.options.autoPlay === true) {
112
- base.options.autoPlay = 5000;
113
- }
114
- base.play();
115
-
116
- base.$elem.find(".owl-wrapper").css("display", "block");
117
-
118
- if (!base.$elem.is(":visible")) {
119
- base.watchVisibility();
120
- } else {
121
- base.$elem.css("opacity", 1);
122
- }
123
- base.onstartup = false;
124
- base.eachMoveUpdate();
125
- if (typeof base.options.afterInit === "function") {
126
- base.options.afterInit.apply(this, [base.$elem]);
127
- }
128
- },
129
-
130
- eachMoveUpdate : function () {
131
- var base = this;
132
-
133
- if (base.options.lazyLoad === true) {
134
- base.lazyLoad();
135
- }
136
- if (base.options.autoHeight === true) {
137
- base.autoHeight();
138
- }
139
- base.onVisibleItems();
140
-
141
- if (typeof base.options.afterAction === "function") {
142
- base.options.afterAction.apply(this, [base.$elem]);
143
- }
144
- },
145
-
146
- updateVars : function () {
147
- var base = this;
148
- if (typeof base.options.beforeUpdate === "function") {
149
- base.options.beforeUpdate.apply(this, [base.$elem]);
150
- }
151
- base.watchVisibility();
152
- base.updateItems();
153
- base.calculateAll();
154
- base.updatePosition();
155
- base.updateControls();
156
- base.eachMoveUpdate();
157
- if (typeof base.options.afterUpdate === "function") {
158
- base.options.afterUpdate.apply(this, [base.$elem]);
159
- }
160
- },
161
-
162
- reload : function () {
163
- var base = this;
164
- window.setTimeout(function () {
165
- base.updateVars();
166
- }, 0);
167
- },
168
-
169
- watchVisibility : function () {
170
- var base = this;
171
-
172
- if (base.$elem.is(":visible") === false) {
173
- base.$elem.css({opacity: 0});
174
- window.clearInterval(base.autoPlayInterval);
175
- window.clearInterval(base.checkVisible);
176
- } else {
177
- return false;
178
- }
179
- base.checkVisible = window.setInterval(function () {
180
- if (base.$elem.is(":visible")) {
181
- base.reload();
182
- base.$elem.animate({opacity: 1}, 200);
183
- window.clearInterval(base.checkVisible);
184
- }
185
- }, 500);
186
- },
187
-
188
- wrapItems : function () {
189
- var base = this;
190
- base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
191
- base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
192
- base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
193
- base.$elem.css("display", "block");
194
- },
195
-
196
- baseClass : function () {
197
- var base = this,
198
- hasBaseClass = base.$elem.hasClass(base.options.baseClass),
199
- hasThemeClass = base.$elem.hasClass(base.options.theme);
200
-
201
- if (!hasBaseClass) {
202
- base.$elem.addClass(base.options.baseClass);
203
- }
204
-
205
- if (!hasThemeClass) {
206
- base.$elem.addClass(base.options.theme);
207
- }
208
- },
209
-
210
- updateItems : function () {
211
- var base = this, width, i;
212
-
213
- if (base.options.responsive === false) {
214
- return false;
215
- }
216
- if (base.options.singleItem === true) {
217
- base.options.items = base.orignalItems = 1;
218
- base.options.itemsCustom = false;
219
- base.options.itemsDesktop = false;
220
- base.options.itemsDesktopSmall = false;
221
- base.options.itemsTablet = false;
222
- base.options.itemsTabletSmall = false;
223
- base.options.itemsMobile = false;
224
- return false;
225
- }
226
-
227
- width = $(base.options.responsiveBaseWidth).width();
228
-
229
- if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
230
- base.options.items = base.orignalItems;
231
- }
232
- if (base.options.itemsCustom !== false) {
233
- //Reorder array by screen size
234
- base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
235
-
236
- for (i = 0; i < base.options.itemsCustom.length; i += 1) {
237
- if (base.options.itemsCustom[i][0] <= width) {
238
- base.options.items = base.options.itemsCustom[i][1];
239
- }
240
- }
241
-
242
- } else {
243
-
244
- if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
245
- base.options.items = base.options.itemsDesktop[1];
246
- }
247
-
248
- if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
249
- base.options.items = base.options.itemsDesktopSmall[1];
250
- }
251
-
252
- if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
253
- base.options.items = base.options.itemsTablet[1];
254
- }
255
-
256
- if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
257
- base.options.items = base.options.itemsTabletSmall[1];
258
- }
259
-
260
- if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
261
- base.options.items = base.options.itemsMobile[1];
262
- }
263
- }
264
-
265
- //if number of items is less than declared
266
- if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
267
- base.options.items = base.itemsAmount;
268
- }
269
- },
270
-
271
- response : function () {
272
- var base = this,
273
- smallDelay,
274
- lastWindowWidth;
275
-
276
- if (base.options.responsive !== true) {
277
- return false;
278
- }
279
- lastWindowWidth = $(window).width();
280
-
281
- base.resizer = function () {
282
- if ($(window).width() !== lastWindowWidth) {
283
- if (base.options.autoPlay !== false) {
284
- window.clearInterval(base.autoPlayInterval);
285
- }
286
- window.clearTimeout(smallDelay);
287
- smallDelay = window.setTimeout(function () {
288
- lastWindowWidth = $(window).width();
289
- base.updateVars();
290
- }, base.options.responsiveRefreshRate);
291
- }
292
- };
293
- $(window).resize(base.resizer);
294
- },
295
-
296
- updatePosition : function () {
297
- var base = this;
298
- base.jumpTo(base.currentItem);
299
- if (base.options.autoPlay !== false) {
300
- base.checkAp();
301
- }
302
- },
303
-
304
- appendItemsSizes : function () {
305
- var base = this,
306
- roundPages = 0,
307
- lastItem = base.itemsAmount - base.options.items;
308
-
309
- base.$owlItems.each(function (index) {
310
- var $this = $(this);
311
- $this
312
- .css({"width": base.itemWidth})
313
- .data("owl-item", Number(index));
314
-
315
- if (index % base.options.items === 0 || index === lastItem) {
316
- if (!(index > lastItem)) {
317
- roundPages += 1;
318
- }
319
- }
320
- $this.data("owl-roundPages", roundPages);
321
- });
322
- },
323
-
324
- appendWrapperSizes : function () {
325
- var base = this,
326
- width = base.$owlItems.length * base.itemWidth;
327
-
328
- base.$owlWrapper.css({
329
- "width": width * 2,
330
- "left": 0
331
- });
332
- base.appendItemsSizes();
333
- },
334
-
335
- calculateAll : function () {
336
- var base = this;
337
- base.calculateWidth();
338
- base.appendWrapperSizes();
339
- base.loops();
340
- base.max();
341
- },
342
-
343
- calculateWidth : function () {
344
- var base = this;
345
- base.itemWidth = Math.round(base.$elem.width() / base.options.items);
346
- },
347
-
348
- max : function () {
349
- var base = this,
350
- maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
351
- if (base.options.items > base.itemsAmount) {
352
- base.maximumItem = 0;
353
- maximum = 0;
354
- base.maximumPixels = 0;
355
- } else {
356
- base.maximumItem = base.itemsAmount - base.options.items;
357
- base.maximumPixels = maximum;
358
- }
359
- return maximum;
360
- },
361
-
362
- min : function () {
363
- return 0;
364
- },
365
-
366
- loops : function () {
367
- var base = this,
368
- prev = 0,
369
- elWidth = 0,
370
- i,
371
- item,
372
- roundPageNum;
373
-
374
- base.positionsInArray = [0];
375
- base.pagesInArray = [];
376
-
377
- for (i = 0; i < base.itemsAmount; i += 1) {
378
- elWidth += base.itemWidth;
379
- base.positionsInArray.push(-elWidth);
380
-
381
- if (base.options.scrollPerPage === true) {
382
- item = $(base.$owlItems[i]);
383
- roundPageNum = item.data("owl-roundPages");
384
- if (roundPageNum !== prev) {
385
- base.pagesInArray[prev] = base.positionsInArray[i];
386
- prev = roundPageNum;
387
- }
388
- }
389
- }
390
- },
391
-
392
- buildControls : function () {
393
- var base = this;
394
- if (base.options.navigation === true || base.options.pagination === true) {
395
- base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
396
- }
397
- if (base.options.pagination === true) {
398
- base.buildPagination();
399
- }
400
- if (base.options.navigation === true) {
401
- base.buildButtons();
402
- }
403
- },
404
-
405
- buildButtons : function () {
406
- var base = this,
407
- buttonsWrapper = $("<div class=\"owl-buttons\"/>");
408
- base.owlControls.append(buttonsWrapper);
409
-
410
- base.buttonPrev = $("<div/>", {
411
- "class" : "owl-prev",
412
- "html" : base.options.navigationText[0] || ""
413
- });
414
-
415
- base.buttonNext = $("<div/>", {
416
- "class" : "owl-next",
417
- "html" : base.options.navigationText[1] || ""
418
- });
419
-
420
- buttonsWrapper
421
- .append(base.buttonPrev)
422
- .append(base.buttonNext);
423
-
424
- buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
425
- event.preventDefault();
426
- });
427
-
428
- buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
429
- event.preventDefault();
430
- if ($(this).hasClass("owl-next")) {
431
- base.next();
432
- } else {
433
- base.prev();
434
- }
435
- });
436
- },
437
-
438
- buildPagination : function () {
439
- var base = this;
440
-
441
- base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
442
- base.owlControls.append(base.paginationWrapper);
443
-
444
- base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
445
- event.preventDefault();
446
- if (Number($(this).data("owl-page")) !== base.currentItem) {
447
- base.goTo(Number($(this).data("owl-page")), true);
448
- }
449
- });
450
- },
451
-
452
- updatePagination : function () {
453
- var base = this,
454
- counter,
455
- lastPage,
456
- lastItem,
457
- i,
458
- paginationButton,
459
- paginationButtonInner;
460
-
461
- if (base.options.pagination === false) {
462
- return false;
463
- }
464
-
465
- base.paginationWrapper.html("");
466
-
467
- counter = 0;
468
- lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
469
-
470
- for (i = 0; i < base.itemsAmount; i += 1) {
471
- if (i % base.options.items === 0) {
472
- counter += 1;
473
- if (lastPage === i) {
474
- lastItem = base.itemsAmount - base.options.items;
475
- }
476
- paginationButton = $("<div/>", {
477
- "class" : "owl-page"
478
- });
479
- paginationButtonInner = $("<span></span>", {
480
- "text": base.options.paginationNumbers === true ? counter : "",
481
- "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
482
- });
483
- paginationButton.append(paginationButtonInner);
484
-
485
- paginationButton.data("owl-page", lastPage === i ? lastItem : i);
486
- paginationButton.data("owl-roundPages", counter);
487
-
488
- base.paginationWrapper.append(paginationButton);
489
- }
490
- }
491
- base.checkPagination();
492
- },
493
- checkPagination : function () {
494
- var base = this;
495
- if (base.options.pagination === false) {
496
- return false;
497
- }
498
- base.paginationWrapper.find(".owl-page").each(function () {
499
- if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
500
- base.paginationWrapper
501
- .find(".owl-page")
502
- .removeClass("active");
503
- $(this).addClass("active");
504
- }
505
- });
506
- },
507
-
508
- checkNavigation : function () {
509
- var base = this;
510
-
511
- if (base.options.navigation === false) {
512
- return false;
513
- }
514
- if (base.options.rewindNav === false) {
515
- if (base.currentItem === 0 && base.maximumItem === 0) {
516
- base.buttonPrev.addClass("disabled");
517
- base.buttonNext.addClass("disabled");
518
- } else if (base.currentItem === 0 && base.maximumItem !== 0) {
519
- base.buttonPrev.addClass("disabled");
520
- base.buttonNext.removeClass("disabled");
521
- } else if (base.currentItem === base.maximumItem) {
522
- base.buttonPrev.removeClass("disabled");
523
- base.buttonNext.addClass("disabled");
524
- } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
525
- base.buttonPrev.removeClass("disabled");
526
- base.buttonNext.removeClass("disabled");
527
- }
528
- }
529
- },
530
-
531
- updateControls : function () {
532
- var base = this;
533
- base.updatePagination();
534
- base.checkNavigation();
535
- if (base.owlControls) {
536
- if (base.options.items >= base.itemsAmount) {
537
- base.owlControls.hide();
538
- } else {
539
- base.owlControls.show();
540
- }
541
- }
542
- },
543
-
544
- destroyControls : function () {
545
- var base = this;
546
- if (base.owlControls) {
547
- base.owlControls.remove();
548
- }
549
- },
550
-
551
- next : function (speed) {
552
- var base = this;
553
-
554
- if (base.isTransition) {
555
- return false;
556
- }
557
-
558
- base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
559
- if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
560
- if (base.options.rewindNav === true) {
561
- base.currentItem = 0;
562
- speed = "rewind";
563
- } else {
564
- base.currentItem = base.maximumItem;
565
- return false;
566
- }
567
- }
568
- base.goTo(base.currentItem, speed);
569
- },
570
-
571
- prev : function (speed) {
572
- var base = this;
573
-
574
- if (base.isTransition) {
575
- return false;
576
- }
577
-
578
- if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
579
- base.currentItem = 0;
580
- } else {
581
- base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
582
- }
583
- if (base.currentItem < 0) {
584
- if (base.options.rewindNav === true) {
585
- base.currentItem = base.maximumItem;
586
- speed = "rewind";
587
- } else {
588
- base.currentItem = 0;
589
- return false;
590
- }
591
- }
592
- base.goTo(base.currentItem, speed);
593
- },
594
-
595
- goTo : function (position, speed, drag) {
596
- var base = this,
597
- goToPixel;
598
-
599
- if (base.isTransition) {
600
- return false;
601
- }
602
- if (typeof base.options.beforeMove === "function") {
603
- base.options.beforeMove.apply(this, [base.$elem]);
604
- }
605
- if (position >= base.maximumItem) {
606
- position = base.maximumItem;
607
- } else if (position <= 0) {
608
- position = 0;
609
- }
610
-
611
- base.currentItem = base.owl.currentItem = position;
612
- if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
613
- base.swapSpeed(0);
614
- if (base.browser.support3d === true) {
615
- base.transition3d(base.positionsInArray[position]);
616
- } else {
617
- base.css2slide(base.positionsInArray[position], 1);
618
- }
619
- base.afterGo();
620
- base.singleItemTransition();
621
- return false;
622
- }
623
- goToPixel = base.positionsInArray[position];
624
-
625
- if (base.browser.support3d === true) {
626
- base.isCss3Finish = false;
627
-
628
- if (speed === true) {
629
- base.swapSpeed("paginationSpeed");
630
- window.setTimeout(function () {
631
- base.isCss3Finish = true;
632
- }, base.options.paginationSpeed);
633
-
634
- } else if (speed === "rewind") {
635
- base.swapSpeed(base.options.rewindSpeed);
636
- window.setTimeout(function () {
637
- base.isCss3Finish = true;
638
- }, base.options.rewindSpeed);
639
-
640
- } else {
641
- base.swapSpeed("slideSpeed");
642
- window.setTimeout(function () {
643
- base.isCss3Finish = true;
644
- }, base.options.slideSpeed);
645
- }
646
- base.transition3d(goToPixel);
647
- } else {
648
- if (speed === true) {
649
- base.css2slide(goToPixel, base.options.paginationSpeed);
650
- } else if (speed === "rewind") {
651
- base.css2slide(goToPixel, base.options.rewindSpeed);
652
- } else {
653
- base.css2slide(goToPixel, base.options.slideSpeed);
654
- }
655
- }
656
- base.afterGo();
657
- },
658
-
659
- jumpTo : function (position) {
660
- var base = this;
661
- if (typeof base.options.beforeMove === "function") {
662
- base.options.beforeMove.apply(this, [base.$elem]);
663
- }
664
- if (position >= base.maximumItem || position === -1) {
665
- position = base.maximumItem;
666
- } else if (position <= 0) {
667
- position = 0;
668
- }
669
- base.swapSpeed(0);
670
- if (base.browser.support3d === true) {
671
- base.transition3d(base.positionsInArray[position]);
672
- } else {
673
- base.css2slide(base.positionsInArray[position], 1);
674
- }
675
- base.currentItem = base.owl.currentItem = position;
676
- base.afterGo();
677
- },
678
-
679
- afterGo : function () {
680
- var base = this;
681
-
682
- base.prevArr.push(base.currentItem);
683
- base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
684
- base.prevArr.shift(0);
685
-
686
- if (base.prevItem !== base.currentItem) {
687
- base.checkPagination();
688
- base.checkNavigation();
689
- base.eachMoveUpdate();
690
-
691
- if (base.options.autoPlay !== false) {
692
- base.checkAp();
693
- }
694
- }
695
- if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
696
- base.options.afterMove.apply(this, [base.$elem]);
697
- }
698
- },
699
-
700
- stop : function () {
701
- var base = this;
702
- base.apStatus = "stop";
703
- window.clearInterval(base.autoPlayInterval);
704
- },
705
-
706
- checkAp : function () {
707
- var base = this;
708
- if (base.apStatus !== "stop") {
709
- base.play();
710
- }
711
- },
712
-
713
- play : function () {
714
- var base = this;
715
- base.apStatus = "play";
716
- if (base.options.autoPlay === false) {
717
- return false;
718
- }
719
- window.clearInterval(base.autoPlayInterval);
720
- base.autoPlayInterval = window.setInterval(function () {
721
- base.next(true);
722
- }, base.options.autoPlay);
723
- },
724
-
725
- swapSpeed : function (action) {
726
- var base = this;
727
- if (action === "slideSpeed") {
728
- base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
729
- } else if (action === "paginationSpeed") {
730
- base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
731
- } else if (typeof action !== "string") {
732
- base.$owlWrapper.css(base.addCssSpeed(action));
733
- }
734
- },
735
-
736
- addCssSpeed : function (speed) {
737
- return {
738
- "-webkit-transition": "all " + speed + "ms ease",
739
- "-moz-transition": "all " + speed + "ms ease",
740
- "-o-transition": "all " + speed + "ms ease",
741
- "transition": "all " + speed + "ms ease"
742
- };
743
- },
744
-
745
- removeTransition : function () {
746
- return {
747
- "-webkit-transition": "",
748
- "-moz-transition": "",
749
- "-o-transition": "",
750
- "transition": ""
751
- };
752
- },
753
-
754
- doTranslate : function (pixels) {
755
- return {
756
- "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
757
- "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
758
- "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
759
- "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
760
- "transform": "translate3d(" + pixels + "px, 0px,0px)"
761
- };
762
- },
763
-
764
- transition3d : function (value) {
765
- var base = this;
766
- base.$owlWrapper.css(base.doTranslate(value));
767
- },
768
-
769
- css2move : function (value) {
770
- var base = this;
771
- base.$owlWrapper.css({"left" : value});
772
- },
773
-
774
- css2slide : function (value, speed) {
775
- var base = this;
776
-
777
- base.isCssFinish = false;
778
- base.$owlWrapper.stop(true, true).animate({
779
- "left" : value
780
- }, {
781
- duration : speed || base.options.slideSpeed,
782
- complete : function () {
783
- base.isCssFinish = true;
784
- }
785
- });
786
- },
787
-
788
- checkBrowser : function () {
789
- var base = this,
790
- translate3D = "translate3d(0px, 0px, 0px)",
791
- tempElem = document.createElement("div"),
792
- regex,
793
- asSupport,
794
- support3d,
795
- isTouch;
796
-
797
- tempElem.style.cssText = " -moz-transform:" + translate3D +
798
- "; -ms-transform:" + translate3D +
799
- "; -o-transform:" + translate3D +
800
- "; -webkit-transform:" + translate3D +
801
- "; transform:" + translate3D;
802
- regex = /translate3d\(0px, 0px, 0px\)/g;
803
- asSupport = tempElem.style.cssText.match(regex);
804
- support3d = (asSupport !== null && asSupport.length === 1);
805
-
806
- isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
807
-
808
- base.browser = {
809
- "support3d" : support3d,
810
- "isTouch" : isTouch
811
- };
812
- },
813
-
814
- moveEvents : function () {
815
- var base = this;
816
- if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
817
- base.gestures();
818
- base.disabledEvents();
819
- }
820
- },
821
-
822
- eventTypes : function () {
823
- var base = this,
824
- types = ["s", "e", "x"];
825
-
826
- base.ev_types = {};
827
-
828
- if (base.options.mouseDrag === true && base.options.touchDrag === true) {
829
- types = [
830
- "touchstart.owl mousedown.owl",
831
- "touchmove.owl mousemove.owl",
832
- "touchend.owl touchcancel.owl mouseup.owl"
833
- ];
834
- } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
835
- types = [
836
- "touchstart.owl",
837
- "touchmove.owl",
838
- "touchend.owl touchcancel.owl"
839
- ];
840
- } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
841
- types = [
842
- "mousedown.owl",
843
- "mousemove.owl",
844
- "mouseup.owl"
845
- ];
846
- }
847
-
848
- base.ev_types.start = types[0];
849
- base.ev_types.move = types[1];
850
- base.ev_types.end = types[2];
851
- },
852
-
853
- disabledEvents : function () {
854
- var base = this;
855
- base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
856
- base.$elem.on("mousedown.disableTextSelect", function (e) {
857
- return $(e.target).is('input, textarea, select, option');
858
- });
859
- },
860
-
861
- gestures : function () {
862
- /*jslint unparam: true*/
863
- var base = this,
864
- locals = {
865
- offsetX : 0,
866
- offsetY : 0,
867
- baseElWidth : 0,
868
- relativePos : 0,
869
- position: null,
870
- minSwipe : null,
871
- maxSwipe: null,
872
- sliding : null,
873
- dargging: null,
874
- targetElement : null
875
- };
876
-
877
- base.isCssFinish = true;
878
-
879
- function getTouches(event) {
880
- if (event.touches !== undefined) {
881
- return {
882
- x : event.touches[0].pageX,
883
- y : event.touches[0].pageY
884
- };
885
- }
886
-
887
- if (event.touches === undefined) {
888
- if (event.pageX !== undefined) {
889
- return {
890
- x : event.pageX,
891
- y : event.pageY
892
- };
893
- }
894
- if (event.pageX === undefined) {
895
- return {
896
- x : event.clientX,
897
- y : event.clientY
898
- };
899
- }
900
- }
901
- }
902
-
903
- function swapEvents(type) {
904
- if (type === "on") {
905
- $(document).on(base.ev_types.move, dragMove);
906
- $(document).on(base.ev_types.end, dragEnd);
907
- } else if (type === "off") {
908
- $(document).off(base.ev_types.move);
909
- $(document).off(base.ev_types.end);
910
- }
911
- }
912
-
913
- function dragStart(event) {
914
- var ev = event.originalEvent || event || window.event,
915
- position;
916
-
917
- if (ev.which === 3) {
918
- return false;
919
- }
920
- if (base.itemsAmount <= base.options.items) {
921
- return;
922
- }
923
- if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
924
- return false;
925
- }
926
- if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
927
- return false;
928
- }
929
-
930
- if (base.options.autoPlay !== false) {
931
- window.clearInterval(base.autoPlayInterval);
932
- }
933
-
934
- if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
935
- base.$owlWrapper.addClass("grabbing");
936
- }
937
-
938
- base.newPosX = 0;
939
- base.newRelativeX = 0;
940
-
941
- $(this).css(base.removeTransition());
942
-
943
- position = $(this).position();
944
- locals.relativePos = position.left;
945
-
946
- locals.offsetX = getTouches(ev).x - position.left;
947
- locals.offsetY = getTouches(ev).y - position.top;
948
-
949
- swapEvents("on");
950
-
951
- locals.sliding = false;
952
- locals.targetElement = ev.target || ev.srcElement;
953
- }
954
-
955
- function dragMove(event) {
956
- var ev = event.originalEvent || event || window.event,
957
- minSwipe,
958
- maxSwipe;
959
-
960
- base.newPosX = getTouches(ev).x - locals.offsetX;
961
- base.newPosY = getTouches(ev).y - locals.offsetY;
962
- base.newRelativeX = base.newPosX - locals.relativePos;
963
-
964
- if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
965
- locals.dragging = true;
966
- base.options.startDragging.apply(base, [base.$elem]);
967
- }
968
-
969
- if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
970
- if (ev.preventDefault !== undefined) {
971
- ev.preventDefault();
972
- } else {
973
- ev.returnValue = false;
974
- }
975
- locals.sliding = true;
976
- }
977
-
978
- if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
979
- $(document).off("touchmove.owl");
980
- }
981
-
982
- minSwipe = function () {
983
- return base.newRelativeX / 5;
984
- };
985
-
986
- maxSwipe = function () {
987
- return base.maximumPixels + base.newRelativeX / 5;
988
- };
989
-
990
- base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
991
- if (base.browser.support3d === true) {
992
- base.transition3d(base.newPosX);
993
- } else {
994
- base.css2move(base.newPosX);
995
- }
996
- }
997
-
998
- function dragEnd(event) {
999
- var ev = event.originalEvent || event || window.event,
1000
- newPosition,
1001
- handlers,
1002
- owlStopEvent;
1003
-
1004
- ev.target = ev.target || ev.srcElement;
1005
-
1006
- locals.dragging = false;
1007
-
1008
- if (base.browser.isTouch !== true) {
1009
- base.$owlWrapper.removeClass("grabbing");
1010
- }
1011
-
1012
- if (base.newRelativeX < 0) {
1013
- base.dragDirection = base.owl.dragDirection = "left";
1014
- } else {
1015
- base.dragDirection = base.owl.dragDirection = "right";
1016
- }
1017
-
1018
- if (base.newRelativeX !== 0) {
1019
- newPosition = base.getNewPosition();
1020
- base.goTo(newPosition, false, "drag");
1021
- if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
1022
- $(ev.target).on("click.disable", function (ev) {
1023
- ev.stopImmediatePropagation();
1024
- ev.stopPropagation();
1025
- ev.preventDefault();
1026
- $(ev.target).off("click.disable");
1027
- });
1028
- handlers = $._data(ev.target, "events").click;
1029
- owlStopEvent = handlers.pop();
1030
- handlers.splice(0, 0, owlStopEvent);
1031
- }
1032
- }
1033
- swapEvents("off");
1034
- }
1035
- base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
1036
- },
1037
-
1038
- getNewPosition : function () {
1039
- var base = this,
1040
- newPosition = base.closestItem();
1041
-
1042
- if (newPosition > base.maximumItem) {
1043
- base.currentItem = base.maximumItem;
1044
- newPosition = base.maximumItem;
1045
- } else if (base.newPosX >= 0) {
1046
- newPosition = 0;
1047
- base.currentItem = 0;
1048
- }
1049
- return newPosition;
1050
- },
1051
- closestItem : function () {
1052
- var base = this,
1053
- array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
1054
- goal = base.newPosX,
1055
- closest = null;
1056
-
1057
- $.each(array, function (i, v) {
1058
- if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
1059
- closest = v;
1060
- if (base.options.scrollPerPage === true) {
1061
- base.currentItem = $.inArray(closest, base.positionsInArray);
1062
- } else {
1063
- base.currentItem = i;
1064
- }
1065
- } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
1066
- if (base.options.scrollPerPage === true) {
1067
- closest = array[i + 1] || array[array.length - 1];
1068
- base.currentItem = $.inArray(closest, base.positionsInArray);
1069
- } else {
1070
- closest = array[i + 1];
1071
- base.currentItem = i + 1;
1072
- }
1073
- }
1074
- });
1075
- return base.currentItem;
1076
- },
1077
-
1078
- moveDirection : function () {
1079
- var base = this,
1080
- direction;
1081
- if (base.newRelativeX < 0) {
1082
- direction = "right";
1083
- base.playDirection = "next";
1084
- } else {
1085
- direction = "left";
1086
- base.playDirection = "prev";
1087
- }
1088
- return direction;
1089
- },
1090
-
1091
- customEvents : function () {
1092
- /*jslint unparam: true*/
1093
- var base = this;
1094
- base.$elem.on("owl.next", function () {
1095
- base.next();
1096
- });
1097
- base.$elem.on("owl.prev", function () {
1098
- base.prev();
1099
- });
1100
- base.$elem.on("owl.play", function (event, speed) {
1101
- base.options.autoPlay = speed;
1102
- base.play();
1103
- base.hoverStatus = "play";
1104
- });
1105
- base.$elem.on("owl.stop", function () {
1106
- base.stop();
1107
- base.hoverStatus = "stop";
1108
- });
1109
- base.$elem.on("owl.goTo", function (event, item) {
1110
- base.goTo(item);
1111
- });
1112
- base.$elem.on("owl.jumpTo", function (event, item) {
1113
- base.jumpTo(item);
1114
- });
1115
- },
1116
-
1117
- stopOnHover : function () {
1118
- var base = this;
1119
- if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
1120
- base.$elem.on("mouseover", function () {
1121
- base.stop();
1122
- });
1123
- base.$elem.on("mouseout", function () {
1124
- if (base.hoverStatus !== "stop") {
1125
- base.play();
1126
- }
1127
- });
1128
- }
1129
- },
1130
-
1131
- lazyLoad : function () {
1132
- var base = this,
1133
- i,
1134
- $item,
1135
- itemNumber,
1136
- $lazyImg,
1137
- follow;
1138
-
1139
- if (base.options.lazyLoad === false) {
1140
- return false;
1141
- }
1142
- for (i = 0; i < base.itemsAmount; i += 1) {
1143
- $item = $(base.$owlItems[i]);
1144
-
1145
- if ($item.data("owl-loaded") === "loaded") {
1146
- continue;
1147
- }
1148
-
1149
- itemNumber = $item.data("owl-item");
1150
- $lazyImg = $item.find(".lazyOwl");
1151
-
1152
- if (typeof $lazyImg.data("src") !== "string") {
1153
- $item.data("owl-loaded", "loaded");
1154
- continue;
1155
- }
1156
- if ($item.data("owl-loaded") === undefined) {
1157
- $lazyImg.hide();
1158
- $item.addClass("loading").data("owl-loaded", "checked");
1159
- }
1160
- if (base.options.lazyFollow === true) {
1161
- follow = itemNumber >= base.currentItem;
1162
- } else {
1163
- follow = true;
1164
- }
1165
- if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
1166
- base.lazyPreload($item, $lazyImg);
1167
- }
1168
- }
1169
- },
1170
-
1171
- lazyPreload : function ($item, $lazyImg) {
1172
- var base = this,
1173
- iterations = 0,
1174
- isBackgroundImg;
1175
-
1176
- if ($lazyImg.prop("tagName") === "DIV") {
1177
- $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
1178
- isBackgroundImg = true;
1179
- } else {
1180
- $lazyImg[0].src = $lazyImg.data("src");
1181
- }
1182
-
1183
- function showImage() {
1184
- $item.data("owl-loaded", "loaded").removeClass("loading");
1185
- $lazyImg.removeAttr("data-src");
1186
- if (base.options.lazyEffect === "fade") {
1187
- $lazyImg.fadeIn(400);
1188
- } else {
1189
- $lazyImg.show();
1190
- }
1191
- if (typeof base.options.afterLazyLoad === "function") {
1192
- base.options.afterLazyLoad.apply(this, [base.$elem]);
1193
- }
1194
- }
1195
-
1196
- function checkLazyImage() {
1197
- iterations += 1;
1198
- if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
1199
- showImage();
1200
- } else if (iterations <= 100) {//if image loads in less than 10 seconds
1201
- window.setTimeout(checkLazyImage, 100);
1202
- } else {
1203
- showImage();
1204
- }
1205
- }
1206
-
1207
- checkLazyImage();
1208
- },
1209
-
1210
- autoHeight : function () {
1211
- var base = this,
1212
- $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
1213
- iterations;
1214
-
1215
- function addHeight() {
1216
- var $currentItem = $(base.$owlItems[base.currentItem]).height();
1217
- base.wrapperOuter.css("height", $currentItem + "px");
1218
- if (!base.wrapperOuter.hasClass("autoHeight")) {
1219
- window.setTimeout(function () {
1220
- base.wrapperOuter.addClass("autoHeight");
1221
- }, 0);
1222
- }
1223
- }
1224
-
1225
- function checkImage() {
1226
- iterations += 1;
1227
- if (base.completeImg($currentimg.get(0))) {
1228
- addHeight();
1229
- } else if (iterations <= 100) { //if image loads in less than 10 seconds
1230
- window.setTimeout(checkImage, 100);
1231
- } else {
1232
- base.wrapperOuter.css("height", ""); //Else remove height attribute
1233
- }
1234
- }
1235
-
1236
- if ($currentimg.get(0) !== undefined) {
1237
- iterations = 0;
1238
- checkImage();
1239
- } else {
1240
- addHeight();
1241
- }
1242
- },
1243
-
1244
- completeImg : function (img) {
1245
- var naturalWidthType;
1246
-
1247
- if (!img.complete) {
1248
- return false;
1249
- }
1250
- naturalWidthType = typeof img.naturalWidth;
1251
- if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
1252
- return false;
1253
- }
1254
- return true;
1255
- },
1256
-
1257
- onVisibleItems : function () {
1258
- var base = this,
1259
- i;
1260
-
1261
- if (base.options.addClassActive === true) {
1262
- base.$owlItems.removeClass("active");
1263
- }
1264
- base.visibleItems = [];
1265
- for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
1266
- base.visibleItems.push(i);
1267
-
1268
- if (base.options.addClassActive === true) {
1269
- $(base.$owlItems[i]).addClass("active");
1270
- }
1271
- }
1272
- base.owl.visibleItems = base.visibleItems;
1273
- },
1274
-
1275
- transitionTypes : function (className) {
1276
- var base = this;
1277
- //Currently available: "fade", "backSlide", "goDown", "fadeUp"
1278
- base.outClass = "owl-" + className + "-out";
1279
- base.inClass = "owl-" + className + "-in";
1280
- },
1281
-
1282
- singleItemTransition : function () {
1283
- var base = this,
1284
- outClass = base.outClass,
1285
- inClass = base.inClass,
1286
- $currentItem = base.$owlItems.eq(base.currentItem),
1287
- $prevItem = base.$owlItems.eq(base.prevItem),
1288
- prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
1289
- origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
1290
- animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
1291
-
1292
- base.isTransition = true;
1293
-
1294
- base.$owlWrapper
1295
- .addClass('owl-origin')
1296
- .css({
1297
- "-webkit-transform-origin" : origin + "px",
1298
- "-moz-perspective-origin" : origin + "px",
1299
- "perspective-origin" : origin + "px"
1300
- });
1301
- function transStyles(prevPos) {
1302
- return {
1303
- "position" : "relative",
1304
- "left" : prevPos + "px"
1305
- };
1306
- }
1307
-
1308
- $prevItem
1309
- .css(transStyles(prevPos, 10))
1310
- .addClass(outClass)
1311
- .on(animEnd, function () {
1312
- base.endPrev = true;
1313
- $prevItem.off(animEnd);
1314
- base.clearTransStyle($prevItem, outClass);
1315
- });
1316
-
1317
- $currentItem
1318
- .addClass(inClass)
1319
- .on(animEnd, function () {
1320
- base.endCurrent = true;
1321
- $currentItem.off(animEnd);
1322
- base.clearTransStyle($currentItem, inClass);
1323
- });
1324
- },
1325
-
1326
- clearTransStyle : function (item, classToRemove) {
1327
- var base = this;
1328
- item.css({
1329
- "position" : "",
1330
- "left" : ""
1331
- }).removeClass(classToRemove);
1332
-
1333
- if (base.endPrev && base.endCurrent) {
1334
- base.$owlWrapper.removeClass('owl-origin');
1335
- base.endPrev = false;
1336
- base.endCurrent = false;
1337
- base.isTransition = false;
1338
- }
1339
- },
1340
-
1341
- owlStatus : function () {
1342
- var base = this;
1343
- base.owl = {
1344
- "userOptions" : base.userOptions,
1345
- "baseElement" : base.$elem,
1346
- "userItems" : base.$userItems,
1347
- "owlItems" : base.$owlItems,
1348
- "currentItem" : base.currentItem,
1349
- "prevItem" : base.prevItem,
1350
- "visibleItems" : base.visibleItems,
1351
- "isTouch" : base.browser.isTouch,
1352
- "browser" : base.browser,
1353
- "dragDirection" : base.dragDirection
1354
- };
1355
- },
1356
-
1357
- clearEvents : function () {
1358
- var base = this;
1359
- base.$elem.off(".owl owl mousedown.disableTextSelect");
1360
- $(document).off(".owl owl");
1361
- $(window).off("resize", base.resizer);
1362
- },
1363
-
1364
- unWrap : function () {
1365
- var base = this;
1366
- if (base.$elem.children().length !== 0) {
1367
- base.$owlWrapper.unwrap();
1368
- base.$userItems.unwrap().unwrap();
1369
- if (base.owlControls) {
1370
- base.owlControls.remove();
1371
- }
1372
- }
1373
- base.clearEvents();
1374
- base.$elem
1375
- .attr("style", base.$elem.data("owl-originalStyles") || "")
1376
- .attr("class", base.$elem.data("owl-originalClasses"));
1377
- },
1378
-
1379
- destroy : function () {
1380
- var base = this;
1381
- base.stop();
1382
- window.clearInterval(base.checkVisible);
1383
- base.unWrap();
1384
- base.$elem.removeData();
1385
- },
1386
-
1387
- reinit : function (newOptions) {
1388
- var base = this,
1389
- options = $.extend({}, base.userOptions, newOptions);
1390
- base.unWrap();
1391
- base.init(options, base.$elem);
1392
- },
1393
-
1394
- addItem : function (htmlString, targetPosition) {
1395
- var base = this,
1396
- position;
1397
-
1398
- if (!htmlString) {return false; }
1399
-
1400
- if (base.$elem.children().length === 0) {
1401
- base.$elem.append(htmlString);
1402
- base.setVars();
1403
- return false;
1404
- }
1405
- base.unWrap();
1406
- if (targetPosition === undefined || targetPosition === -1) {
1407
- position = -1;
1408
- } else {
1409
- position = targetPosition;
1410
- }
1411
- if (position >= base.$userItems.length || position === -1) {
1412
- base.$userItems.eq(-1).after(htmlString);
1413
- } else {
1414
- base.$userItems.eq(position).before(htmlString);
1415
- }
1416
-
1417
- base.setVars();
1418
- },
1419
-
1420
- removeItem : function (targetPosition) {
1421
- var base = this,
1422
- position;
1423
-
1424
- if (base.$elem.children().length === 0) {
1425
- return false;
1426
- }
1427
- if (targetPosition === undefined || targetPosition === -1) {
1428
- position = -1;
1429
- } else {
1430
- position = targetPosition;
1431
- }
1432
-
1433
- base.unWrap();
1434
- base.$userItems.eq(position).remove();
1435
- base.setVars();
1436
- }
1437
-
1438
- };
1439
-
1440
- $.fn.owlCarousel = function (options) {
1441
- return this.each(function () {
1442
- if ($(this).data("owl-init") === true) {
1443
- return false;
1444
- }
1445
- $(this).data("owl-init", true);
1446
- var carousel = Object.create(Carousel);
1447
- carousel.init(options, this);
1448
- $.data(this, "owlCarousel", carousel);
1449
- });
1450
- };
1451
-
1452
- $.fn.owlCarousel.options = {
1453
-
1454
- items : 5,
1455
- itemsCustom : false,
1456
- itemsDesktop : [1199, 4],
1457
- itemsDesktopSmall : [979, 3],
1458
- itemsTablet : [768, 2],
1459
- itemsTabletSmall : false,
1460
- itemsMobile : [479, 1],
1461
- singleItem : false,
1462
- itemsScaleUp : false,
1463
-
1464
- slideSpeed : 200,
1465
- paginationSpeed : 800,
1466
- rewindSpeed : 1000,
1467
-
1468
- autoPlay : false,
1469
- stopOnHover : false,
1470
-
1471
- navigation : false,
1472
- navigationText : ["prev", "next"],
1473
- rewindNav : true,
1474
- scrollPerPage : false,
1475
-
1476
- pagination : true,
1477
- paginationNumbers : false,
1478
-
1479
- responsive : true,
1480
- responsiveRefreshRate : 200,
1481
- responsiveBaseWidth : window,
1482
-
1483
- baseClass : "owl-carousel",
1484
- theme : "owl-theme",
1485
-
1486
- lazyLoad : false,
1487
- lazyFollow : true,
1488
- lazyEffect : "fade",
1489
-
1490
- autoHeight : false,
1491
-
1492
- jsonPath : false,
1493
- jsonSuccess : false,
1494
-
1495
- dragBeforeAnimFinish : true,
1496
- mouseDrag : true,
1497
- touchDrag : true,
1498
-
1499
- addClassActive : false,
1500
- transitionStyle : false,
1501
-
1502
- beforeUpdate : false,
1503
- afterUpdate : false,
1504
- beforeInit : false,
1505
- afterInit : false,
1506
- beforeMove : false,
1507
- afterMove : false,
1508
- afterAction : false,
1509
- startDragging : false,
1510
- afterLazyLoad: false
1511
- };
1512
- }(jQuery, window, document));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/front/js/owl.carousel.min.js ADDED
@@ -0,0 +1,3266 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Owl Carousel v2.1.0
3
+ * Copyright 2013-2016 David Deutsch
4
+ * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE)
5
+ */
6
+ /**
7
+ * Owl carousel
8
+ * @version 2.1.0
9
+ * @author Bartosz Wojciechowski
10
+ * @author David Deutsch
11
+ * @license The MIT License (MIT)
12
+ * @todo Lazy Load Icon
13
+ * @todo prevent animationend bubling
14
+ * @todo itemsScaleUp
15
+ * @todo Test Zepto
16
+ * @todo stagePadding calculate wrong active classes
17
+ */
18
+ ;(function($, window, document, undefined) {
19
+
20
+ /**
21
+ * Creates a carousel.
22
+ * @class The Owl Carousel.
23
+ * @public
24
+ * @param {HTMLElement|jQuery} element - The element to create the carousel for.
25
+ * @param {Object} [options] - The options
26
+ */
27
+ function Owl(element, options) {
28
+
29
+ /**
30
+ * Current settings for the carousel.
31
+ * @public
32
+ */
33
+ this.settings = null;
34
+
35
+ /**
36
+ * Current options set by the caller including defaults.
37
+ * @public
38
+ */
39
+ this.options = $.extend({}, Owl.Defaults, options);
40
+
41
+ /**
42
+ * Plugin element.
43
+ * @public
44
+ */
45
+ this.$element = $(element);
46
+
47
+ /**
48
+ * Proxied event handlers.
49
+ * @protected
50
+ */
51
+ this._handlers = {};
52
+
53
+ /**
54
+ * References to the running plugins of this carousel.
55
+ * @protected
56
+ */
57
+ this._plugins = {};
58
+
59
+ /**
60
+ * Currently suppressed events to prevent them from beeing retriggered.
61
+ * @protected
62
+ */
63
+ this._supress = {};
64
+
65
+ /**
66
+ * Absolute current position.
67
+ * @protected
68
+ */
69
+ this._current = null;
70
+
71
+ /**
72
+ * Animation speed in milliseconds.
73
+ * @protected
74
+ */
75
+ this._speed = null;
76
+
77
+ /**
78
+ * Coordinates of all items in pixel.
79
+ * @todo The name of this member is missleading.
80
+ * @protected
81
+ */
82
+ this._coordinates = [];
83
+
84
+ /**
85
+ * Current breakpoint.
86
+ * @todo Real media queries would be nice.
87
+ * @protected
88
+ */
89
+ this._breakpoint = null;
90
+
91
+ /**
92
+ * Current width of the plugin element.
93
+ */
94
+ this._width = null;
95
+
96
+ /**
97
+ * All real items.
98
+ * @protected
99
+ */
100
+ this._items = [];
101
+
102
+ /**
103
+ * All cloned items.
104
+ * @protected
105
+ */
106
+ this._clones = [];
107
+
108
+ /**
109
+ * Merge values of all items.
110
+ * @todo Maybe this could be part of a plugin.
111
+ * @protected
112
+ */
113
+ this._mergers = [];
114
+
115
+ /**
116
+ * Widths of all items.
117
+ */
118
+ this._widths = [];
119
+
120
+ /**
121
+ * Invalidated parts within the update process.
122
+ * @protected
123
+ */
124
+ this._invalidated = {};
125
+
126
+ /**
127
+ * Ordered list of workers for the update process.
128
+ * @protected
129
+ */
130
+ this._pipe = [];
131
+
132
+ /**
133
+ * Current state information for the drag operation.
134
+ * @todo #261
135
+ * @protected
136
+ */
137
+ this._drag = {
138
+ time: null,
139
+ target: null,
140
+ pointer: null,
141
+ stage: {
142
+ start: null,
143
+ current: null
144
+ },
145
+ direction: null
146
+ };
147
+
148
+ /**
149
+ * Current state information and their tags.
150
+ * @type {Object}
151
+ * @protected
152
+ */
153
+ this._states = {
154
+ current: {},
155
+ tags: {
156
+ 'initializing': [ 'busy' ],
157
+ 'animating': [ 'busy' ],
158
+ 'dragging': [ 'interacting' ]
159
+ }
160
+ };
161
+
162
+ $.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) {
163
+ this._handlers[handler] = $.proxy(this[handler], this);
164
+ }, this));
165
+
166
+ $.each(Owl.Plugins, $.proxy(function(key, plugin) {
167
+ this._plugins[key.charAt(0).toLowerCase() + key.slice(1)]
168
+ = new plugin(this);
169
+ }, this));
170
+
171
+ $.each(Owl.Workers, $.proxy(function(priority, worker) {
172
+ this._pipe.push({
173
+ 'filter': worker.filter,
174
+ 'run': $.proxy(worker.run, this)
175
+ });
176
+ }, this));
177
+
178
+ this.setup();
179
+ this.initialize();
180
+ }
181
+
182
+ /**
183
+ * Default options for the carousel.
184
+ * @public
185
+ */
186
+ Owl.Defaults = {
187
+ items: 3,
188
+ loop: false,
189
+ center: false,
190
+ rewind: false,
191
+
192
+ mouseDrag: true,
193
+ touchDrag: true,
194
+ pullDrag: true,
195
+ freeDrag: false,
196
+
197
+ margin: 0,
198
+ stagePadding: 0,
199
+
200
+ merge: false,
201
+ mergeFit: true,
202
+ autoWidth: false,
203
+
204
+ startPosition: 0,
205
+ rtl: false,
206
+
207
+ smartSpeed: 250,
208
+ fluidSpeed: false,
209
+ dragEndSpeed: false,
210
+
211
+ responsive: {},
212
+ responsiveRefreshRate: 200,
213
+ responsiveBaseElement: window,
214
+
215
+ fallbackEasing: 'swing',
216
+
217
+ info: false,
218
+
219
+ nestedItemSelector: false,
220
+ itemElement: 'div',
221
+ stageElement: 'div',
222
+
223
+ refreshClass: 'owl-refresh',
224
+ loadedClass: 'owl-loaded',
225
+ loadingClass: 'owl-loading',
226
+ rtlClass: 'owl-rtl',
227
+ responsiveClass: 'owl-responsive',
228
+ dragClass: 'owl-drag',
229
+ itemClass: 'owl-item',
230
+ stageClass: 'owl-stage',
231
+ stageOuterClass: 'owl-stage-outer',
232
+ grabClass: 'owl-grab'
233
+ };
234
+
235
+ /**
236
+ * Enumeration for width.
237
+ * @public
238
+ * @readonly
239
+ * @enum {String}
240
+ */
241
+ Owl.Width = {
242
+ Default: 'default',
243
+ Inner: 'inner',
244
+ Outer: 'outer'
245
+ };
246
+
247
+ /**
248
+ * Enumeration for types.
249
+ * @public
250
+ * @readonly
251
+ * @enum {String}
252
+ */
253
+ Owl.Type = {
254
+ Event: 'event',
255
+ State: 'state'
256
+ };
257
+
258
+ /**
259
+ * Contains all registered plugins.
260
+ * @public
261
+ */
262
+ Owl.Plugins = {};
263
+
264
+ /**
265
+ * List of workers involved in the update process.
266
+ */
267
+ Owl.Workers = [ {
268
+ filter: [ 'width', 'settings' ],
269
+ run: function() {
270
+ this._width = this.$element.width();
271
+ }
272
+ }, {
273
+ filter: [ 'width', 'items', 'settings' ],
274
+ run: function(cache) {
275
+ cache.current = this._items && this._items[this.relative(this._current)];
276
+ }
277
+ }, {
278
+ filter: [ 'items', 'settings' ],
279
+ run: function() {
280
+ this.$stage.children('.cloned').remove();
281
+ }
282
+ }, {
283
+ filter: [ 'width', 'items', 'settings' ],
284
+ run: function(cache) {
285
+ var margin = this.settings.margin || '',
286
+ grid = !this.settings.autoWidth,
287
+ rtl = this.settings.rtl,
288
+ css = {
289
+ 'width': 'auto',
290
+ 'margin-left': rtl ? margin : '',
291
+ 'margin-right': rtl ? '' : margin
292
+ };
293
+
294
+ !grid && this.$stage.children().css(css);
295
+
296
+ cache.css = css;
297
+ }
298
+ }, {
299
+ filter: [ 'width', 'items', 'settings' ],
300
+ run: function(cache) {
301
+ var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
302
+ merge = null,
303
+ iterator = this._items.length,
304
+ grid = !this.settings.autoWidth,
305
+ widths = [];
306
+
307
+ cache.items = {
308
+ merge: false,
309
+ width: width
310
+ };
311
+
312
+ while (iterator--) {
313
+ merge = this._mergers[iterator];
314
+ merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;
315
+
316
+ cache.items.merge = merge > 1 || cache.items.merge;
317
+
318
+ widths[iterator] = !grid ? this._items[iterator].width() : width * merge;
319
+ }
320
+
321
+ this._widths = widths;
322
+ }
323
+ }, {
324
+ filter: [ 'items', 'settings' ],
325
+ run: function() {
326
+ var clones = [],
327
+ items = this._items,
328
+ settings = this.settings,
329
+ view = Math.max(settings.items * 2, 4),
330
+ size = Math.ceil(items.length / 2) * 2,
331
+ repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,
332
+ append = '',
333
+ prepend = '';
334
+
335
+ repeat /= 2;
336
+
337
+ while (repeat--) {
338
+ clones.push(this.normalize(clones.length / 2, true));
339
+ append = append + items[clones[clones.length - 1]][0].outerHTML;
340
+ clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));
341
+ prepend = items[clones[clones.length - 1]][0].outerHTML + prepend;
342
+ }
343
+
344
+ this._clones = clones;
345
+
346
+ $(append).addClass('cloned').appendTo(this.$stage);
347
+ $(prepend).addClass('cloned').prependTo(this.$stage);
348
+ }
349
+ }, {
350
+ filter: [ 'width', 'items', 'settings' ],
351
+ run: function() {
352
+ var rtl = this.settings.rtl ? 1 : -1,
353
+ size = this._clones.length + this._items.length,
354
+ iterator = -1,
355
+ previous = 0,
356
+ current = 0,
357
+ coordinates = [];
358
+
359
+ while (++iterator < size) {
360
+ previous = coordinates[iterator - 1] || 0;
361
+ current = this._widths[this.relative(iterator)] + this.settings.margin;
362
+ coordinates.push(previous + current * rtl);
363
+ }
364
+
365
+ this._coordinates = coordinates;
366
+ }
367
+ }, {
368
+ filter: [ 'width', 'items', 'settings' ],
369
+ run: function() {
370
+ var padding = this.settings.stagePadding,
371
+ coordinates = this._coordinates,
372
+ css = {
373
+ 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,
374
+ 'padding-left': padding || '',
375
+ 'padding-right': padding || ''
376
+ };
377
+
378
+ this.$stage.css(css);
379
+ }
380
+ }, {
381
+ filter: [ 'width', 'items', 'settings' ],
382
+ run: function(cache) {
383
+ var iterator = this._coordinates.length,
384
+ grid = !this.settings.autoWidth,
385
+ items = this.$stage.children();
386
+
387
+ if (grid && cache.items.merge) {
388
+ while (iterator--) {
389
+ cache.css.width = this._widths[this.relative(iterator)];
390
+ items.eq(iterator).css(cache.css);
391
+ }
392
+ } else if (grid) {
393
+ cache.css.width = cache.items.width;
394
+ items.css(cache.css);
395
+ }
396
+ }
397
+ }, {
398
+ filter: [ 'items' ],
399
+ run: function() {
400
+ this._coordinates.length < 1 && this.$stage.removeAttr('style');
401
+ }
402
+ }, {
403
+ filter: [ 'width', 'items', 'settings' ],
404
+ run: function(cache) {
405
+ cache.current = cache.current ? this.$stage.children().index(cache.current) : 0;
406
+ cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));
407
+ this.reset(cache.current);
408
+ }
409
+ }, {
410
+ filter: [ 'position' ],
411
+ run: function() {
412
+ this.animate(this.coordinates(this._current));
413
+ }
414
+ }, {
415
+ filter: [ 'width', 'position', 'items', 'settings' ],
416
+ run: function() {
417
+ var rtl = this.settings.rtl ? 1 : -1,
418
+ padding = this.settings.stagePadding * 2,
419
+ begin = this.coordinates(this.current()) + padding,
420
+ end = begin + this.width() * rtl,
421
+ inner, outer, matches = [], i, n;
422
+
423
+ for (i = 0, n = this._coordinates.length; i < n; i++) {
424
+ inner = this._coordinates[i - 1] || 0;
425
+ outer = Math.abs(this._coordinates[i]) + padding * rtl;
426
+
427
+ if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))
428
+ || (this.op(outer, '<', begin) && this.op(outer, '>', end))) {
429
+ matches.push(i);
430
+ }
431
+ }
432
+
433
+ this.$stage.children('.active').removeClass('active');
434
+ this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');
435
+
436
+ if (this.settings.center) {
437
+ this.$stage.children('.center').removeClass('center');
438
+ this.$stage.children().eq(this.current()).addClass('center');
439
+ }
440
+ }
441
+ } ];
442
+
443
+ /**
444
+ * Initializes the carousel.
445
+ * @protected
446
+ */
447
+ Owl.prototype.initialize = function() {
448
+ this.enter('initializing');
449
+ this.trigger('initialize');
450
+
451
+ this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);
452
+
453
+ if (this.settings.autoWidth && !this.is('pre-loading')) {
454
+ var imgs, nestedSelector, width;
455
+ imgs = this.$element.find('img');
456
+ nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;
457
+ width = this.$element.children(nestedSelector).width();
458
+
459
+ if (imgs.length && width <= 0) {
460
+ this.preloadAutoWidthImages(imgs);
461
+ }
462
+ }
463
+
464
+ this.$element.addClass(this.options.loadingClass);
465
+
466
+ // create stage
467
+ this.$stage = $('<' + this.settings.stageElement + ' class="' + this.settings.stageClass + '"/>')
468
+ .wrap('<div class="' + this.settings.stageOuterClass + '"/>');
469
+
470
+ // append stage
471
+ this.$element.append(this.$stage.parent());
472
+
473
+ // append content
474
+ this.replace(this.$element.children().not(this.$stage.parent()));
475
+
476
+ // check visibility
477
+ if (this.$element.is(':visible')) {
478
+ // update view
479
+ this.refresh();
480
+ } else {
481
+ // invalidate width
482
+ this.invalidate('width');
483
+ }
484
+
485
+ this.$element
486
+ .removeClass(this.options.loadingClass)
487
+ .addClass(this.options.loadedClass);
488
+
489
+ // register event handlers
490
+ this.registerEventHandlers();
491
+
492
+ this.leave('initializing');
493
+ this.trigger('initialized');
494
+ };
495
+
496
+ /**
497
+ * Setups the current settings.
498
+ * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?
499
+ * @todo Support for media queries by using `matchMedia` would be nice.
500
+ * @public
501
+ */
502
+ Owl.prototype.setup = function() {
503
+ var viewport = this.viewport(),
504
+ overwrites = this.options.responsive,
505
+ match = -1,
506
+ settings = null;
507
+
508
+ if (!overwrites) {
509
+ settings = $.extend({}, this.options);
510
+ } else {
511
+ $.each(overwrites, function(breakpoint) {
512
+ if (breakpoint <= viewport && breakpoint > match) {
513
+ match = Number(breakpoint);
514
+ }
515
+ });
516
+
517
+ settings = $.extend({}, this.options, overwrites[match]);
518
+ delete settings.responsive;
519
+
520
+ // responsive class
521
+ if (settings.responsiveClass) {
522
+ this.$element.attr('class',
523
+ this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match)
524
+ );
525
+ }
526
+ }
527
+
528
+ if (this.settings === null || this._breakpoint !== match) {
529
+ this.trigger('change', { property: { name: 'settings', value: settings } });
530
+ this._breakpoint = match;
531
+ this.settings = settings;
532
+ this.invalidate('settings');
533
+ this.trigger('changed', { property: { name: 'settings', value: this.settings } });
534
+ }
535
+ };
536
+
537
+ /**
538
+ * Updates option logic if necessery.
539
+ * @protected
540
+ */
541
+ Owl.prototype.optionsLogic = function() {
542
+ if (this.settings.autoWidth) {
543
+ this.settings.stagePadding = false;
544
+ this.settings.merge = false;
545
+ }
546
+ };
547
+
548
+ /**
549
+ * Prepares an item before add.
550
+ * @todo Rename event parameter `content` to `item`.
551
+ * @protected
552
+ * @returns {jQuery|HTMLElement} - The item container.
553
+ */
554
+ Owl.prototype.prepare = function(item) {
555
+ var event = this.trigger('prepare', { content: item });
556
+
557
+ if (!event.data) {
558
+ event.data = $('<' + this.settings.itemElement + '/>')
559
+ .addClass(this.options.itemClass).append(item)
560
+ }
561
+
562
+ this.trigger('prepared', { content: event.data });
563
+
564
+ return event.data;
565
+ };
566
+
567
+ /**
568
+ * Updates the view.
569
+ * @public
570
+ */
571
+ Owl.prototype.update = function() {
572
+ var i = 0,
573
+ n = this._pipe.length,
574
+ filter = $.proxy(function(p) { return this[p] }, this._invalidated),
575
+ cache = {};
576
+
577
+ while (i < n) {
578
+ if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {
579
+ this._pipe[i].run(cache);
580
+ }
581
+ i++;
582
+ }
583
+
584
+ this._invalidated = {};
585
+
586
+ !this.is('valid') && this.enter('valid');
587
+ };
588
+
589
+ /**
590
+ * Gets the width of the view.
591
+ * @public
592
+ * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.
593
+ * @returns {Number} - The width of the view in pixel.
594
+ */
595
+ Owl.prototype.width = function(dimension) {
596
+ dimension = dimension || Owl.Width.Default;
597
+ switch (dimension) {
598
+ case Owl.Width.Inner:
599
+ case Owl.Width.Outer:
600
+ return this._width;
601
+ default:
602
+ return this._width - this.settings.stagePadding * 2 + this.settings.margin;
603
+ }
604
+ };
605
+
606
+ /**
607
+ * Refreshes the carousel primarily for adaptive purposes.
608
+ * @public
609
+ */
610
+ Owl.prototype.refresh = function() {
611
+ this.enter('refreshing');
612
+ this.trigger('refresh');
613
+
614
+ this.setup();
615
+
616
+ this.optionsLogic();
617
+
618
+ this.$element.addClass(this.options.refreshClass);
619
+
620
+ this.update();
621
+
622
+ this.$element.removeClass(this.options.refreshClass);
623
+
624
+ this.leave('refreshing');
625
+ this.trigger('refreshed');
626
+ };
627
+
628
+ /**
629
+ * Checks window `resize` event.
630
+ * @protected
631
+ */
632
+ Owl.prototype.onThrottledResize = function() {
633
+ window.clearTimeout(this.resizeTimer);
634
+ this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);
635
+ };
636
+
637
+ /**
638
+ * Checks window `resize` event.
639
+ * @protected
640
+ */
641
+ Owl.prototype.onResize = function() {
642
+ if (!this._items.length) {
643
+ return false;
644
+ }
645
+
646
+ if (this._width === this.$element.width()) {
647
+ return false;
648
+ }
649
+
650
+ if (!this.$element.is(':visible')) {
651
+ return false;
652
+ }
653
+
654
+ this.enter('resizing');
655
+
656
+ if (this.trigger('resize').isDefaultPrevented()) {
657
+ this.leave('resizing');
658
+ return false;
659
+ }
660
+
661
+ this.invalidate('width');
662
+
663
+ this.refresh();
664
+
665
+ this.leave('resizing');
666
+ this.trigger('resized');
667
+ };
668
+
669
+ /**
670
+ * Registers event handlers.
671
+ * @todo Check `msPointerEnabled`
672
+ * @todo #261
673
+ * @protected
674
+ */
675
+ Owl.prototype.registerEventHandlers = function() {
676
+ if ($.support.transition) {
677
+ this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));
678
+ }
679
+
680
+ if (this.settings.responsive !== false) {
681
+ this.on(window, 'resize', this._handlers.onThrottledResize);
682
+ }
683
+
684
+ if (this.settings.mouseDrag) {
685
+ this.$element.addClass(this.options.dragClass);
686
+ this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));
687
+ this.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false });
688
+ }
689
+
690
+ if (this.settings.touchDrag){
691
+ this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));
692
+ this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));
693
+ }
694
+ };
695
+
696
+ /**
697
+ * Handles `touchstart` and `mousedown` events.
698
+ * @todo Horizontal swipe threshold as option
699
+ * @todo #261
700
+ * @protected
701
+ * @param {Event} event - The event arguments.
702
+ */
703
+ Owl.prototype.onDragStart = function(event) {
704
+ var stage = null;
705
+
706
+ if (event.which === 3) {
707
+ return;
708
+ }
709
+
710
+ if ($.support.transform) {
711
+ stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(',');
712
+ stage = {
713
+ x: stage[stage.length === 16 ? 12 : 4],
714
+ y: stage[stage.length === 16 ? 13 : 5]
715
+ };
716
+ } else {
717
+ stage = this.$stage.position();
718
+ stage = {
719
+ x: this.settings.rtl ?
720
+ stage.left + this.$stage.width() - this.width() + this.settings.margin :
721
+ stage.left,
722
+ y: stage.top
723
+ };
724
+ }
725
+
726
+ if (this.is('animating')) {
727
+ $.support.transform ? this.animate(stage.x) : this.$stage.stop()
728
+ this.invalidate('position');
729
+ }
730
+
731
+ this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');
732
+
733
+ this.speed(0);
734
+
735
+ this._drag.time = new Date().getTime();
736
+ this._drag.target = $(event.target);
737
+ this._drag.stage.start = stage;
738
+ this._drag.stage.current = stage;
739
+ this._drag.pointer = this.pointer(event);
740
+
741
+ $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));
742
+
743
+ $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) {
744
+ var delta = this.difference(this._drag.pointer, this.pointer(event));
745
+
746
+ $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));
747
+
748
+ if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {
749
+ return;
750
+ }
751
+
752
+ event.preventDefault();
753
+
754
+ this.enter('dragging');
755
+ this.trigger('drag');
756
+ }, this));
757
+ };
758
+
759
+ /**
760
+ * Handles the `touchmove` and `mousemove` events.
761
+ * @todo #261
762
+ * @protected
763
+ * @param {Event} event - The event arguments.
764
+ */
765
+ Owl.prototype.onDragMove = function(event) {
766
+ var minimum = null,
767
+ maximum = null,
768
+ pull = null,
769
+ delta = this.difference(this._drag.pointer, this.pointer(event)),
770
+ stage = this.difference(this._drag.stage.start, delta);
771
+
772
+ if (!this.is('dragging')) {
773
+ return;
774
+ }
775
+
776
+ event.preventDefault();
777
+
778
+ if (this.settings.loop) {
779
+ minimum = this.coordinates(this.minimum());
780
+ maximum = this.coordinates(this.maximum() + 1) - minimum;
781
+ stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum;
782
+ } else {
783
+ minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());
784
+ maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());
785
+ pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;
786
+ stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);
787
+ }
788
+
789
+ this._drag.stage.current = stage;
790
+
791
+ this.animate(stage.x);
792
+ };
793
+
794
+ /**
795
+ * Handles the `touchend` and `mouseup` events.
796
+ * @todo #261
797
+ * @todo Threshold for click event
798
+ * @protected
799
+ * @param {Event} event - The event arguments.
800
+ */
801
+ Owl.prototype.onDragEnd = function(event) {
802
+ var delta = this.difference(this._drag.pointer, this.pointer(event)),
803
+ stage = this._drag.stage.current,
804
+ direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';
805
+
806
+ $(document).off('.owl.core');
807
+
808
+ this.$element.removeClass(this.options.grabClass);
809
+
810
+ if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {
811
+ this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);
812
+ this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));
813
+ this.invalidate('position');
814
+ this.update();
815
+
816
+ this._drag.direction = direction;
817
+
818
+ if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {
819
+ this._drag.target.one('click.owl.core', function() { return false; });
820
+ }
821
+ }
822
+
823
+ if (!this.is('dragging')) {
824
+ return;
825
+ }
826
+
827
+ this.leave('dragging');
828
+ this.trigger('dragged');
829
+ };
830
+
831
+ /**
832
+ * Gets absolute position of the closest item for a coordinate.
833
+ * @todo Setting `freeDrag` makes `closest` not reusable. See #165.
834
+ * @protected
835
+ * @param {Number} coordinate - The coordinate in pixel.
836
+ * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.
837
+ * @return {Number} - The absolute position of the closest item.
838
+ */
839
+ Owl.prototype.closest = function(coordinate, direction) {
840
+ var position = -1,
841
+ pull = 30,
842
+ width = this.width(),
843
+ coordinates = this.coordinates();
844
+
845
+ if (!this.settings.freeDrag) {
846
+ // check closest item
847
+ $.each(coordinates, $.proxy(function(index, value) {
848
+ // on a left pull, check on current index
849
+ if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {
850
+ position = index;
851
+ // on a right pull, check on previous index
852
+ // to do so, subtract width from value and set position = index + 1
853
+ } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {
854
+ position = index + 1;
855
+ } else if (this.op(coordinate, '<', value)
856
+ && this.op(coordinate, '>', coordinates[index + 1] || value - width)) {
857
+ position = direction === 'left' ? index + 1 : index;
858
+ }
859
+ return position === -1;
860
+ }, this));
861
+ }
862
+
863
+ if (!this.settings.loop) {
864
+ // non loop boundries
865
+ if (this.op(coordinate, '>', coordinates[this.minimum()])) {
866
+ position = coordinate = this.minimum();
867
+ } else if (this.op(coordinate, '<', coordinates[this.maximum()])) {
868
+ position = coordinate = this.maximum();
869
+ }
870
+ }
871
+
872
+ return position;
873
+ };
874
+
875
+ /**
876
+ * Animates the stage.
877
+ * @todo #270
878
+ * @public
879
+ * @param {Number} coordinate - The coordinate in pixels.
880
+ */
881
+ Owl.prototype.animate = function(coordinate) {
882
+ var animate = this.speed() > 0;
883
+
884
+ this.is('animating') && this.onTransitionEnd();
885
+
886
+ if (animate) {
887
+ this.enter('animating');
888
+ this.trigger('translate');
889
+ }
890
+
891
+ if ($.support.transform3d && $.support.transition) {
892
+ this.$stage.css({
893
+ transform: 'translate3d(' + coordinate + 'px,0px,0px)',
894
+ transition: (this.speed() / 1000) + 's'
895
+ });
896
+ } else if (animate) {
897
+ this.$stage.animate({
898
+ left: coordinate + 'px'
899
+ }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));
900
+ } else {
901
+ this.$stage.css({
902
+ left: coordinate + 'px'
903
+ });
904
+ }
905
+ };
906
+
907
+ /**
908
+ * Checks whether the carousel is in a specific state or not.
909
+ * @param {String} state - The state to check.
910
+ * @returns {Boolean} - The flag which indicates if the carousel is busy.
911
+ */
912
+ Owl.prototype.is = function(state) {
913
+ return this._states.current[state] && this._states.current[state] > 0;
914
+ };
915
+
916
+ /**
917
+ * Sets the absolute position of the current item.
918
+ * @public
919
+ * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.
920
+ * @returns {Number} - The absolute position of the current item.
921
+ */
922
+ Owl.prototype.current = function(position) {
923
+ if (position === undefined) {
924
+ return this._current;
925
+ }
926
+
927
+ if (this._items.length === 0) {
928
+ return undefined;
929
+ }
930
+
931
+ position = this.normalize(position);
932
+
933
+ if (this._current !== position) {
934
+ var event = this.trigger('change', { property: { name: 'position', value: position } });
935
+
936
+ if (event.data !== undefined) {
937
+ position = this.normalize(event.data);
938
+ }
939
+
940
+ this._current = position;
941
+
942
+ this.invalidate('position');
943
+
944
+ this.trigger('changed', { property: { name: 'position', value: this._current } });
945
+ }
946
+
947
+ return this._current;
948
+ };
949
+
950
+ /**
951
+ * Invalidates the given part of the update routine.
952
+ * @param {String} [part] - The part to invalidate.
953
+ * @returns {Array.<String>} - The invalidated parts.
954
+ */
955
+ Owl.prototype.invalidate = function(part) {
956
+ if ($.type(part) === 'string') {
957
+ this._invalidated[part] = true;
958
+ this.is('valid') && this.leave('valid');
959
+ }
960
+ return $.map(this._invalidated, function(v, i) { return i });
961
+ };
962
+
963
+ /**
964
+ * Resets the absolute position of the current item.
965
+ * @public
966
+ * @param {Number} position - The absolute position of the new item.
967
+ */
968
+ Owl.prototype.reset = function(position) {
969
+ position = this.normalize(position);
970
+
971
+ if (position === undefined) {
972
+ return;
973
+ }
974
+
975
+ this._speed = 0;
976
+ this._current = position;
977
+
978
+ this.suppress([ 'translate', 'translated' ]);
979
+
980
+ this.animate(this.coordinates(position));
981
+
982
+ this.release([ 'translate', 'translated' ]);
983
+ };
984
+
985
+ /**
986
+ * Normalizes an absolute or a relative position of an item.
987
+ * @public
988
+ * @param {Number} position - The absolute or relative position to normalize.
989
+ * @param {Boolean} [relative=false] - Whether the given position is relative or not.
990
+ * @returns {Number} - The normalized position.
991
+ */
992
+ Owl.prototype.normalize = function(position, relative) {
993
+ var n = this._items.length,
994
+ m = relative ? 0 : this._clones.length;
995
+
996
+ if (!this.isNumeric(position) || n < 1) {
997
+ position = undefined;
998
+ } else if (position < 0 || position >= n + m) {
999
+ position = ((position - m / 2) % n + n) % n + m / 2;
1000
+ }
1001
+
1002
+ return position;
1003
+ };
1004
+
1005
+ /**
1006
+ * Converts an absolute position of an item into a relative one.
1007
+ * @public
1008
+ * @param {Number} position - The absolute position to convert.
1009
+ * @returns {Number} - The converted position.
1010
+ */
1011
+ Owl.prototype.relative = function(position) {
1012
+ position -= this._clones.length / 2;
1013
+ return this.normalize(position, true);
1014
+ };
1015
+
1016
+ /**
1017
+ * Gets the maximum position for the current item.
1018
+ * @public
1019
+ * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
1020
+ * @returns {Number}
1021
+ */
1022
+ Owl.prototype.maximum = function(relative) {
1023
+ var settings = this.settings,
1024
+ maximum = this._coordinates.length,
1025
+ boundary = Math.abs(this._coordinates[maximum - 1]) - this._width,
1026
+ i = -1, j;
1027
+
1028
+ if (settings.loop) {
1029
+ maximum = this._clones.length / 2 + this._items.length - 1;
1030
+ } else if (settings.autoWidth || settings.merge) {
1031
+ // binary search
1032
+ while (maximum - i > 1) {
1033
+ Math.abs(this._coordinates[j = maximum + i >> 1]) < boundary
1034
+ ? i = j : maximum = j;
1035
+ }
1036
+ } else if (settings.center) {
1037
+ maximum = this._items.length - 1;
1038
+ } else {
1039
+ maximum = this._items.length - settings.items;
1040
+ }
1041
+
1042
+ if (relative) {
1043
+ maximum -= this._clones.length / 2;
1044
+ }
1045
+
1046
+ return Math.max(maximum, 0);
1047
+ };
1048
+
1049
+ /**
1050
+ * Gets the minimum position for the current item.
1051
+ * @public
1052
+ * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
1053
+ * @returns {Number}
1054
+ */
1055
+ Owl.prototype.minimum = function(relative) {
1056
+ return relative ? 0 : this._clones.length / 2;
1057
+ };
1058
+
1059
+ /**
1060
+ * Gets an item at the specified relative position.
1061
+ * @public
1062
+ * @param {Number} [position] - The relative position of the item.
1063
+ * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.
1064
+ */
1065
+ Owl.prototype.items = function(position) {
1066
+ if (position === undefined) {
1067
+ return this._items.slice();
1068
+ }
1069
+
1070
+ position = this.normalize(position, true);
1071
+ return this._items[position];
1072
+ };
1073
+
1074
+ /**
1075
+ * Gets an item at the specified relative position.
1076
+ * @public
1077
+ * @param {Number} [position] - The relative position of the item.
1078
+ * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.
1079
+ */
1080
+ Owl.prototype.mergers = function(position) {
1081
+ if (position === undefined) {
1082
+ return this._mergers.slice();
1083
+ }
1084
+
1085
+ position = this.normalize(position, true);
1086
+ return this._mergers[position];
1087
+ };
1088
+
1089
+ /**
1090
+ * Gets the absolute positions of clones for an item.
1091
+ * @public
1092
+ * @param {Number} [position] - The relative position of the item.
1093
+ * @returns {Array.<Number>} - The absolute positions of clones for the item or all if no position was given.
1094
+ */
1095
+ Owl.prototype.clones = function(position) {
1096
+ var odd = this._clones.length / 2,
1097
+ even = odd + this._items.length,
1098
+ map = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 };
1099
+
1100
+ if (position === undefined) {
1101
+ return $.map(this._clones, function(v, i) { return map(i) });
1102
+ }
1103
+
1104
+ return $.map(this._clones, function(v, i) { return v === position ? map(i) : null });
1105
+ };
1106
+
1107
+ /**
1108
+ * Sets the current animation speed.
1109
+ * @public
1110
+ * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.
1111
+ * @returns {Number} - The current animation speed in milliseconds.
1112
+ */
1113
+ Owl.prototype.speed = function(speed) {
1114
+ if (speed !== undefined) {
1115
+ this._speed = speed;
1116
+ }
1117
+
1118
+ return this._speed;
1119
+ };
1120
+
1121
+ /**
1122
+ * Gets the coordinate of an item.
1123
+ * @todo The name of this method is missleanding.
1124
+ * @public
1125
+ * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.
1126
+ * @returns {Number|Array.<Number>} - The coordinate of the item in pixel or all coordinates.
1127
+ */
1128
+ Owl.prototype.coordinates = function(position) {
1129
+ var multiplier = 1,
1130
+ newPosition = position - 1,
1131
+ coordinate;
1132
+
1133
+ if (position === undefined) {
1134
+ return $.map(this._coordinates, $.proxy(function(coordinate, index) {
1135
+ return this.coordinates(index);
1136
+ }, this));
1137
+ }
1138
+
1139
+ if (this.settings.center) {
1140
+ if (this.settings.rtl) {
1141
+ multiplier = -1;
1142
+ newPosition = position + 1;
1143
+ }
1144
+
1145
+ coordinate = this._coordinates[position];
1146
+ coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;
1147
+ } else {
1148
+ coordinate = this._coordinates[newPosition] || 0;
1149
+ }
1150
+
1151
+ coordinate = Math.ceil(coordinate);
1152
+
1153
+ return coordinate;
1154
+ };
1155
+
1156
+ /**
1157
+ * Calculates the speed for a translation.
1158
+ * @protected
1159
+ * @param {Number} from - The absolute position of the start item.
1160
+ * @param {Number} to - The absolute position of the target item.
1161
+ * @param {Number} [factor=undefined] - The time factor in milliseconds.
1162
+ * @returns {Number} - The time in milliseconds for the translation.
1163
+ */
1164
+ Owl.prototype.duration = function(from, to, factor) {
1165
+ if (factor === 0) {
1166
+ return 0;
1167
+ }
1168
+
1169
+ return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed));
1170
+ };
1171
+
1172
+ /**
1173
+ * Slides to the specified item.
1174
+ * @public
1175
+ * @param {Number} position - The position of the item.
1176
+ * @param {Number} [speed] - The time in milliseconds for the transition.
1177
+ */
1178
+ Owl.prototype.to = function(position, speed) {
1179
+ var current = this.current(),
1180
+ revert = null,
1181
+ distance = position - this.relative(current),
1182
+ direction = (distance > 0) - (distance < 0),
1183
+ items = this._items.length,
1184
+ minimum = this.minimum(),
1185
+ maximum = this.maximum();
1186
+
1187
+ if (this.settings.loop) {
1188
+ if (!this.settings.rewind && Math.abs(distance) > items / 2) {
1189
+ distance += direction * -1 * items;
1190
+ }
1191
+
1192
+ position = current + distance;
1193
+ revert = ((position - minimum) % items + items) % items + minimum;
1194
+
1195
+ if (revert !== position && revert - distance <= maximum && revert - distance > 0) {
1196
+ current = revert - distance;
1197
+ position = revert;
1198
+ this.reset(current);
1199
+ }
1200
+ } else if (this.settings.rewind) {
1201
+ maximum += 1;
1202
+ position = (position % maximum + maximum) % maximum;
1203
+ } else {
1204
+ position = Math.max(minimum, Math.min(maximum, position));
1205
+ }
1206
+
1207
+ this.speed(this.duration(current, position, speed));
1208
+ this.current(position);
1209
+
1210
+ if (this.$element.is(':visible')) {
1211
+ this.update();
1212
+ }
1213
+ };
1214
+
1215
+ /**
1216
+ * Slides to the next item.
1217
+ * @public
1218
+ * @param {Number} [speed] - The time in milliseconds for the transition.
1219
+ */
1220
+ Owl.prototype.next = function(speed) {
1221
+ speed = speed || false;
1222
+ this.to(this.relative(this.current()) + 1, speed);
1223
+ };
1224
+
1225
+ /**
1226
+ * Slides to the previous item.
1227
+ * @public
1228
+ * @param {Number} [speed] - The time in milliseconds for the transition.
1229
+ */
1230
+ Owl.prototype.prev = function(speed) {
1231
+ speed = speed || false;
1232
+ this.to(this.relative(this.current()) - 1, speed);
1233
+ };
1234
+
1235
+ /**
1236
+ * Handles the end of an animation.
1237
+ * @protected
1238
+ * @param {Event} event - The event arguments.
1239
+ */
1240
+ Owl.prototype.onTransitionEnd = function(event) {
1241
+
1242
+ // if css2 animation then event object is undefined
1243
+ if (event !== undefined) {
1244
+ event.stopPropagation();
1245
+
1246
+ // Catch only owl-stage transitionEnd event
1247
+ if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {
1248
+ return false;
1249
+ }
1250
+ }
1251
+
1252
+ this.leave('animating');
1253
+ this.trigger('translated');
1254
+ };
1255
+
1256
+ /**
1257
+ * Gets viewport width.
1258
+ * @protected
1259
+ * @return {Number} - The width in pixel.
1260
+ */
1261
+ Owl.prototype.viewport = function() {
1262
+ var width;
1263
+ if (this.options.responsiveBaseElement !== window) {
1264
+ width = $(this.options.responsiveBaseElement).width();
1265
+ } else if (window.innerWidth) {
1266
+ width = window.innerWidth;
1267
+ } else if (document.documentElement && document.documentElement.clientWidth) {
1268
+ width = document.documentElement.clientWidth;
1269
+ } else {
1270
+ throw 'Can not detect viewport width.';
1271
+ }
1272
+ return width;
1273
+ };
1274
+
1275
+ /**
1276
+ * Replaces the current content.
1277
+ * @public
1278
+ * @param {HTMLElement|jQuery|String} content - The new content.
1279
+ */
1280
+ Owl.prototype.replace = function(content) {
1281
+ this.$stage.empty();
1282
+ this._items = [];
1283
+
1284
+ if (content) {
1285
+ content = (content instanceof jQuery) ? content : $(content);
1286
+ }
1287
+
1288
+ if (this.settings.nestedItemSelector) {
1289
+ content = content.find('.' + this.settings.nestedItemSelector);
1290
+ }
1291
+
1292
+ content.filter(function() {
1293
+ return this.nodeType === 1;
1294
+ }).each($.proxy(function(index, item) {
1295
+ item = this.prepare(item);
1296
+ this.$stage.append(item);
1297
+ this._items.push(item);
1298
+ this._mergers.push(item.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);
1299
+ }, this));
1300
+
1301
+ this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);
1302
+
1303
+ this.invalidate('items');
1304
+ };
1305
+
1306
+ /**
1307
+ * Adds an item.
1308
+ * @todo Use `item` instead of `content` for the event arguments.
1309
+ * @public
1310
+ * @param {HTMLElement|jQuery|String} content - The item content to add.
1311
+ * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.
1312
+ */
1313
+ Owl.prototype.add = function(content, position) {
1314
+ var current = this.relative(this._current);
1315
+
1316
+ position = position === undefined ? this._items.length : this.normalize(position, true);
1317
+ content = content instanceof jQuery ? content : $(content);
1318
+
1319
+ this.trigger('add', { content: content, position: position });
1320
+
1321
+ content = this.prepare(content);
1322
+
1323
+ if (this._items.length === 0 || position === this._items.length) {
1324
+ this._items.length === 0 && this.$stage.append(content);
1325
+ this._items.length !== 0 && this._items[position - 1].after(content);
1326
+ this._items.push(content);
1327
+ this._mergers.push(content.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);
1328
+ } else {
1329
+ this._items[position].before(content);
1330
+ this._items.splice(position, 0, content);
1331
+ this._mergers.splice(position, 0, content.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);
1332
+ }
1333
+
1334
+ this._items[current] && this.reset(this._items[current].index());
1335
+
1336
+ this.invalidate('items');
1337
+
1338
+ this.trigger('added', { content: content, position: position });
1339
+ };
1340
+
1341
+ /**
1342
+ * Removes an item by its position.
1343
+ * @todo Use `item` instead of `content` for the event arguments.
1344
+ * @public
1345
+ * @param {Number} position - The relative position of the item to remove.
1346
+ */
1347
+ Owl.prototype.remove = function(position) {
1348
+ position = this.normalize(position, true);
1349
+
1350
+ if (position === undefined) {
1351
+ return;
1352
+ }
1353
+
1354
+ this.trigger('remove', { content: this._items[position], position: position });
1355
+
1356
+ this._items[position].remove();
1357
+ this._items.splice(position, 1);
1358
+ this._mergers.splice(position, 1);
1359
+
1360
+ this.invalidate('items');
1361
+
1362
+ this.trigger('removed', { content: null, position: position });
1363
+ };
1364
+
1365
+ /**
1366
+ * Preloads images with auto width.
1367
+ * @todo Replace by a more generic approach
1368
+ * @protected
1369
+ */
1370
+ Owl.prototype.preloadAutoWidthImages = function(images) {
1371
+ images.each($.proxy(function(i, element) {
1372
+ this.enter('pre-loading');
1373
+ element = $(element);
1374
+ $(new Image()).one('load', $.proxy(function(e) {
1375
+ element.attr('src', e.target.src);
1376
+ element.css('opacity', 1);
1377
+ this.leave('pre-loading');
1378
+ !this.is('pre-loading') && !this.is('initializing') && this.refresh();
1379
+ }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));
1380
+ }, this));
1381
+ };
1382
+
1383
+ /**
1384
+ * Destroys the carousel.
1385
+ * @public
1386
+ */
1387
+ Owl.prototype.destroy = function() {
1388
+
1389
+ this.$element.off('.owl.core');
1390
+ this.$stage.off('.owl.core');
1391
+ $(document).off('.owl.core');
1392
+
1393
+ if (this.settings.responsive !== false) {
1394
+ window.clearTimeout(this.resizeTimer);
1395
+ this.off(window, 'resize', this._handlers.onThrottledResize);
1396
+ }
1397
+
1398
+ for (var i in this._plugins) {
1399
+ this._plugins[i].destroy();
1400
+ }
1401
+
1402
+ this.$stage.children('.cloned').remove();
1403
+
1404
+ this.$stage.unwrap();
1405
+ this.$stage.children().contents().unwrap();
1406
+ this.$stage.children().unwrap();
1407
+
1408
+ this.$element
1409
+ .removeClass(this.options.refreshClass)
1410
+ .removeClass(this.options.loadingClass)
1411
+ .removeClass(this.options.loadedClass)
1412
+ .removeClass(this.options.rtlClass)
1413
+ .removeClass(this.options.dragClass)
1414
+ .removeClass(this.options.grabClass)
1415
+ .attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), ''))
1416
+ .removeData('owl.carousel');
1417
+ };
1418
+
1419
+ /**
1420
+ * Operators to calculate right-to-left and left-to-right.
1421
+ * @protected
1422
+ * @param {Number} [a] - The left side operand.
1423
+ * @param {String} [o] - The operator.
1424
+ * @param {Number} [b] - The right side operand.
1425
+ */
1426
+ Owl.prototype.op = function(a, o, b) {
1427
+ var rtl = this.settings.rtl;
1428
+ switch (o) {
1429
+ case '<':
1430
+ return rtl ? a > b : a < b;
1431
+ case '>':
1432
+ return rtl ? a < b : a > b;
1433
+ case '>=':
1434
+ return rtl ? a <= b : a >= b;
1435
+ case '<=':
1436
+ return rtl ? a >= b : a <= b;
1437
+ default:
1438
+ break;
1439
+ }
1440
+ };
1441
+
1442
+ /**
1443
+ * Attaches to an internal event.
1444
+ * @protected
1445
+ * @param {HTMLElement} element - The event source.
1446
+ * @param {String} event - The event name.
1447
+ * @param {Function} listener - The event handler to attach.
1448
+ * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.
1449
+ */
1450
+ Owl.prototype.on = function(element, event, listener, capture) {
1451
+ if (element.addEventListener) {
1452
+ element.addEventListener(event, listener, capture);
1453
+ } else if (element.attachEvent) {
1454
+ element.attachEvent('on' + event, listener);
1455
+ }
1456
+ };
1457
+
1458
+ /**
1459
+ * Detaches from an internal event.
1460
+ * @protected
1461
+ * @param {HTMLElement} element - The event source.
1462
+ * @param {String} event - The event name.
1463
+ * @param {Function} listener - The attached event handler to detach.
1464
+ * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.
1465
+ */
1466
+ Owl.prototype.off = function(element, event, listener, capture) {
1467
+ if (element.removeEventListener) {
1468
+ element.removeEventListener(event, listener, capture);
1469
+ } else if (element.detachEvent) {
1470
+ element.detachEvent('on' + event, listener);
1471
+ }
1472
+ };
1473
+
1474
+ /**
1475
+ * Triggers a public event.
1476
+ * @todo Remove `status`, `relatedTarget` should be used instead.
1477
+ * @protected
1478
+ * @param {String} name - The event name.
1479
+ * @param {*} [data=null] - The event data.
1480
+ * @param {String} [namespace=carousel] - The event namespace.
1481
+ * @param {String} [state] - The state which is associated with the event.
1482
+ * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.
1483
+ * @returns {Event} - The event arguments.
1484
+ */
1485
+ Owl.prototype.trigger = function(name, data, namespace, state, enter) {
1486
+ var status = {
1487
+ item: { count: this._items.length, index: this.current() }
1488
+ }, handler = $.camelCase(
1489
+ $.grep([ 'on', name, namespace ], function(v) { return v })
1490
+ .join('-').toLowerCase()
1491
+ ), event = $.Event(
1492
+ [ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(),
1493
+ $.extend({ relatedTarget: this }, status, data)
1494
+ );
1495
+
1496
+ if (!this._supress[name]) {
1497
+ $.each(this._plugins, function(name, plugin) {
1498
+ if (plugin.onTrigger) {
1499
+ plugin.onTrigger(event);
1500
+ }
1501
+ });
1502
+
1503
+ this.register({ type: Owl.Type.Event, name: name });
1504
+ this.$element.trigger(event);
1505
+
1506
+ if (this.settings && typeof this.settings[handler] === 'function') {
1507
+ this.settings[handler].call(this, event);
1508
+ }
1509
+ }
1510
+
1511
+ return event;
1512
+ };
1513
+
1514
+ /**
1515
+ * Enters a state.
1516
+ * @param name - The state name.
1517
+ */
1518
+ Owl.prototype.enter = function(name) {
1519
+ $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {
1520
+ if (this._states.current[name] === undefined) {
1521
+ this._states.current[name] = 0;
1522
+ }
1523
+
1524
+ this._states.current[name]++;
1525
+ }, this));
1526
+ };
1527
+
1528
+ /**
1529
+ * Leaves a state.
1530
+ * @param name - The state name.
1531
+ */
1532
+ Owl.prototype.leave = function(name) {
1533
+ $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {
1534
+ this._states.current[name]--;
1535
+ }, this));
1536
+ };
1537
+
1538
+ /**
1539
+ * Registers an event or state.
1540
+ * @public
1541
+ * @param {Object} object - The event or state to register.
1542
+ */
1543
+ Owl.prototype.register = function(object) {
1544
+ if (object.type === Owl.Type.Event) {
1545
+ if (!$.event.special[object.name]) {
1546
+ $.event.special[object.name] = {};
1547
+ }
1548
+
1549
+ if (!$.event.special[object.name].owl) {
1550
+ var _default = $.event.special[object.name]._default;
1551
+ $.event.special[object.name]._default = function(e) {
1552
+ if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {
1553
+ return _default.apply(this, arguments);
1554
+ }
1555
+ return e.namespace && e.namespace.indexOf('owl') > -1;
1556
+ };
1557
+ $.event.special[object.name].owl = true;
1558
+ }
1559
+ } else if (object.type === Owl.Type.State) {
1560
+ if (!this._states.tags[object.name]) {
1561
+ this._states.tags[object.name] = object.tags;
1562
+ } else {
1563
+ this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);
1564
+ }
1565
+
1566
+ this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) {
1567
+ return $.inArray(tag, this._states.tags[object.name]) === i;
1568
+ }, this));
1569
+ }
1570
+ };
1571
+
1572
+ /**
1573
+ * Suppresses events.
1574
+ * @protected
1575
+ * @param {Array.<String>} events - The events to suppress.
1576
+ */
1577
+ Owl.prototype.suppress = function(events) {
1578
+ $.each(events, $.proxy(function(index, event) {
1579
+ this._supress[event] = true;
1580
+ }, this));
1581
+ };
1582
+
1583
+ /**
1584
+ * Releases suppressed events.
1585
+ * @protected
1586
+ * @param {Array.<String>} events - The events to release.
1587
+ */
1588
+ Owl.prototype.release = function(events) {
1589
+ $.each(events, $.proxy(function(index, event) {
1590
+ delete this._supress[event];
1591
+ }, this));
1592
+ };
1593
+
1594
+ /**
1595
+ * Gets unified pointer coordinates from event.
1596
+ * @todo #261
1597
+ * @protected
1598
+ * @param {Event} - The `mousedown` or `touchstart` event.
1599
+ * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.
1600
+ */
1601
+ Owl.prototype.pointer = function(event) {
1602
+ var result = { x: null, y: null };
1603
+
1604
+ event = event.originalEvent || event || window.event;
1605
+
1606
+ event = event.touches && event.touches.length ?
1607
+ event.touches[0] : event.changedTouches && event.changedTouches.length ?
1608
+ event.changedTouches[0] : event;
1609
+
1610
+ if (event.pageX) {
1611
+ result.x = event.pageX;
1612
+ result.y = event.pageY;
1613
+ } else {
1614
+ result.x = event.clientX;
1615
+ result.y = event.clientY;
1616
+ }
1617
+
1618
+ return result;
1619
+ };
1620
+
1621
+ /**
1622
+ * Determines if the input is a Number or something that can be coerced to a Number
1623
+ * @protected
1624
+ * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested
1625
+ * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number
1626
+ */
1627
+ Owl.prototype.isNumeric = function(number) {
1628
+ return !isNaN(parseFloat(number));
1629
+ };
1630
+
1631
+ /**
1632
+ * Gets the difference of two vectors.
1633
+ * @todo #261
1634
+ * @protected
1635
+ * @param {Object} - The first vector.
1636
+ * @param {Object} - The second vector.
1637
+ * @returns {Object} - The difference.
1638
+ */
1639
+ Owl.prototype.difference = function(first, second) {
1640
+ return {
1641
+ x: first.x - second.x,
1642
+ y: first.y - second.y
1643
+ };
1644
+ };
1645
+
1646
+ /**
1647
+ * The jQuery Plugin for the Owl Carousel
1648
+ * @todo Navigation plugin `next` and `prev`
1649
+ * @public
1650
+ */
1651
+ $.fn.owlCarousel = function(option) {
1652
+ var args = Array.prototype.slice.call(arguments, 1);
1653
+
1654
+ return this.each(function() {
1655
+ var $this = $(this),
1656
+ data = $this.data('owl.carousel');
1657
+
1658
+ if (!data) {
1659
+ data = new Owl(this, typeof option == 'object' && option);
1660
+ $this.data('owl.carousel', data);
1661
+
1662
+ $.each([
1663
+ 'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'
1664
+ ], function(i, event) {
1665
+ data.register({ type: Owl.Type.Event, name: event });
1666
+ data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {
1667
+ if (e.namespace && e.relatedTarget !== this) {
1668
+ this.suppress([ event ]);
1669
+ data[event].apply(this, [].slice.call(arguments, 1));
1670
+ this.release([ event ]);
1671
+ }
1672
+ }, data));
1673
+ });
1674
+ }
1675
+
1676
+ if (typeof option == 'string' && option.charAt(0) !== '_') {
1677
+ data[option].apply(data, args);
1678
+ }
1679
+ });
1680
+ };
1681
+
1682
+ /**
1683
+ * The constructor for the jQuery Plugin
1684
+ * @public
1685
+ */
1686
+ $.fn.owlCarousel.Constructor = Owl;
1687
+
1688
+ })(window.Zepto || window.jQuery, window, document);
1689
+
1690
+ /**
1691
+ * AutoRefresh Plugin
1692
+ * @version 2.1.0
1693
+ * @author Artus Kolanowski
1694
+ * @author David Deutsch
1695
+ * @license The MIT License (MIT)
1696
+ */
1697
+ ;(function($, window, document, undefined) {
1698
+
1699
+ /**
1700
+ * Creates the auto refresh plugin.
1701
+ * @class The Auto Refresh Plugin
1702
+ * @param {Owl} carousel - The Owl Carousel
1703
+ */
1704
+ var AutoRefresh = function(carousel) {
1705
+ /**
1706
+ * Reference to the core.
1707
+ * @protected
1708
+ * @type {Owl}
1709
+ */
1710
+ this._core = carousel;
1711
+
1712
+ /**
1713
+ * Refresh interval.
1714
+ * @protected
1715
+ * @type {number}
1716
+ */
1717
+ this._interval = null;
1718
+
1719
+ /**
1720
+ * Whether the element is currently visible or not.
1721
+ * @protected
1722
+ * @type {Boolean}
1723
+ */
1724
+ this._visible = null;
1725
+
1726
+ /**
1727
+ * All event handlers.
1728
+ * @protected
1729
+ * @type {Object}
1730
+ */
1731
+ this._handlers = {
1732
+ 'initialized.owl.carousel': $.proxy(function(e) {
1733
+ if (e.namespace && this._core.settings.autoRefresh) {
1734
+ this.watch();
1735
+ }
1736
+ }, this)
1737
+ };
1738
+
1739
+ // set default options
1740
+ this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options);
1741
+
1742
+ // register event handlers
1743
+ this._core.$element.on(this._handlers);
1744
+ };
1745
+
1746
+ /**
1747
+ * Default options.
1748
+ * @public
1749
+ */
1750
+ AutoRefresh.Defaults = {
1751
+ autoRefresh: true,
1752
+ autoRefreshInterval: 500
1753
+ };
1754
+
1755
+ /**
1756
+ * Watches the element.
1757
+ */
1758
+ AutoRefresh.prototype.watch = function() {
1759
+ if (this._interval) {
1760
+ return;
1761
+ }
1762
+
1763
+ this._visible = this._core.$element.is(':visible');
1764
+ this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);
1765
+ };
1766
+
1767
+ /**
1768
+ * Refreshes the element.
1769
+ */
1770
+ AutoRefresh.prototype.refresh = function() {
1771
+ if (this._core.$element.is(':visible') === this._visible) {
1772
+ return;
1773
+ }
1774
+
1775
+ this._visible = !this._visible;
1776
+
1777
+ this._core.$element.toggleClass('owl-hidden', !this._visible);
1778
+
1779
+ this._visible && (this._core.invalidate('width') && this._core.refresh());
1780
+ };
1781
+
1782
+ /**
1783
+ * Destroys the plugin.
1784
+ */
1785
+ AutoRefresh.prototype.destroy = function() {
1786
+ var handler, property;
1787
+
1788
+ window.clearInterval(this._interval);
1789
+
1790
+ for (handler in this._handlers) {
1791
+ this._core.$element.off(handler, this._handlers[handler]);
1792
+ }
1793
+ for (property in Object.getOwnPropertyNames(this)) {
1794
+ typeof this[property] != 'function' && (this[property] = null);
1795
+ }
1796
+ };
1797
+
1798
+ $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;
1799
+
1800
+ })(window.Zepto || window.jQuery, window, document);
1801
+
1802
+ /**
1803
+ * Lazy Plugin
1804
+ * @version 2.1.0
1805
+ * @author Bartosz Wojciechowski
1806
+ * @author David Deutsch
1807
+ * @license The MIT License (MIT)
1808
+ */
1809
+ ;(function($, window, document, undefined) {
1810
+
1811
+ /**
1812
+ * Creates the lazy plugin.
1813
+ * @class The Lazy Plugin
1814
+ * @param {Owl} carousel - The Owl Carousel
1815
+ */
1816
+ var Lazy = function(carousel) {
1817
+
1818
+ /**
1819
+ * Reference to the core.
1820
+ * @protected
1821
+ * @type {Owl}
1822
+ */
1823
+ this._core = carousel;
1824
+
1825
+ /**
1826
+ * Already loaded items.
1827
+ * @protected
1828
+ * @type {Array.<jQuery>}
1829
+ */
1830
+ this._loaded = [];
1831
+
1832
+ /**
1833
+ * Event handlers.
1834
+ * @protected
1835
+ * @type {Object}
1836
+ */
1837
+ this._handlers = {
1838
+ 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) {
1839
+ if (!e.namespace) {
1840
+ return;
1841
+ }
1842
+
1843
+ if (!this._core.settings || !this._core.settings.lazyLoad) {
1844
+ return;
1845
+ }
1846
+
1847
+ if ((e.property && e.property.name == 'position') || e.type == 'initialized') {
1848
+ var settings = this._core.settings,
1849
+ n = (settings.center && Math.ceil(settings.items / 2) || settings.items),
1850
+ i = ((settings.center && n * -1) || 0),
1851
+ position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i,
1852
+ clones = this._core.clones().length,
1853
+ load = $.proxy(function(i, v) { this.load(v) }, this);
1854
+
1855
+ while (i++ < n) {
1856
+ this.load(clones / 2 + this._core.relative(position));
1857
+ clones && $.each(this._core.clones(this._core.relative(position)), load);
1858
+ position++;
1859
+ }
1860
+ }
1861
+ }, this)
1862
+ };
1863
+
1864
+ // set the default options
1865
+ this._core.options = $.extend({}, Lazy.Defaults, this._core.options);
1866
+
1867
+ // register event handler
1868
+ this._core.$element.on(this._handlers);
1869
+ };
1870
+
1871
+ /**
1872
+ * Default options.
1873
+ * @public
1874
+ */
1875
+ Lazy.Defaults = {
1876
+ lazyLoad: false
1877
+ };
1878
+
1879
+ /**
1880
+ * Loads all resources of an item at the specified position.
1881
+ * @param {Number} position - The absolute position of the item.
1882
+ * @protected
1883
+ */
1884
+ Lazy.prototype.load = function(position) {
1885
+ var $item = this._core.$stage.children().eq(position),
1886
+ $elements = $item && $item.find('.owl-lazy');
1887
+
1888
+ if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {
1889
+ return;
1890
+ }
1891
+
1892
+ $elements.each($.proxy(function(index, element) {
1893
+ var $element = $(element), image,
1894
+ url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src');
1895
+
1896
+ this._core.trigger('load', { element: $element, url: url }, 'lazy');
1897
+
1898
+ if ($element.is('img')) {
1899
+ $element.one('load.owl.lazy', $.proxy(function() {
1900
+ $element.css('opacity', 1);
1901
+ this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
1902
+ }, this)).attr('src', url);
1903
+ } else {
1904
+ image = new Image();
1905
+ image.onload = $.proxy(function() {
1906
+ $element.css({
1907
+ 'background-image': 'url(' + url + ')',
1908
+ 'opacity': '1'
1909
+ });
1910
+ this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
1911
+ }, this);
1912
+ image.src = url;
1913
+ }
1914
+ }, this));
1915
+
1916
+ this._loaded.push($item.get(0));
1917
+ };
1918
+
1919
+ /**
1920
+ * Destroys the plugin.
1921
+ * @public
1922
+ */
1923
+ Lazy.prototype.destroy = function() {
1924
+ var handler, property;
1925
+
1926
+ for (handler in this.handlers) {
1927
+ this._core.$element.off(handler, this.handlers[handler]);
1928
+ }
1929
+ for (property in Object.getOwnPropertyNames(this)) {
1930
+ typeof this[property] != 'function' && (this[property] = null);
1931
+ }
1932
+ };
1933
+
1934
+ $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;
1935
+
1936
+ })(window.Zepto || window.jQuery, window, document);
1937
+
1938
+ /**
1939
+ * AutoHeight Plugin
1940
+ * @version 2.1.0
1941
+ * @author Bartosz Wojciechowski
1942
+ * @author David Deutsch
1943
+ * @license The MIT License (MIT)
1944
+ */
1945
+ ;(function($, window, document, undefined) {
1946
+
1947
+ /**
1948
+ * Creates the auto height plugin.
1949
+ * @class The Auto Height Plugin
1950
+ * @param {Owl} carousel - The Owl Carousel
1951
+ */
1952
+ var AutoHeight = function(carousel) {
1953
+ /**
1954
+ * Reference to the core.
1955
+ * @protected
1956
+ * @type {Owl}
1957
+ */
1958
+ this._core = carousel;
1959
+
1960
+ /**
1961
+ * All event handlers.
1962
+ * @protected
1963
+ * @type {Object}
1964
+ */
1965
+ this._handlers = {
1966
+ 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) {
1967
+ if (e.namespace && this._core.settings.autoHeight) {
1968
+ this.update();
1969
+ }
1970
+ }, this),
1971
+ 'changed.owl.carousel': $.proxy(function(e) {
1972
+ if (e.namespace && this._core.settings.autoHeight && e.property.name == 'position'){
1973
+ this.update();
1974
+ }
1975
+ }, this),
1976
+ 'loaded.owl.lazy': $.proxy(function(e) {
1977
+ if (e.namespace && this._core.settings.autoHeight
1978
+ && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {
1979
+ this.update();
1980
+ }
1981
+ }, this)
1982
+ };
1983
+
1984
+ // set default options
1985
+ this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);
1986
+
1987
+ // register event handlers
1988
+ this._core.$element.on(this._handlers);
1989
+ };
1990
+
1991
+ /**
1992
+ * Default options.
1993
+ * @public
1994
+ */
1995
+ AutoHeight.Defaults = {
1996
+ autoHeight: false,
1997
+ autoHeightClass: 'owl-height'
1998
+ };
1999
+
2000
+ /**
2001
+ * Updates the view.
2002
+ */
2003
+ AutoHeight.prototype.update = function() {
2004
+ var start = this._core._current,
2005
+ end = start + this._core.settings.items,
2006
+ visible = this._core.$stage.children().toArray().slice(start, end),
2007
+ heights = [],
2008
+ maxheight = 0;
2009
+
2010
+ $.each(visible, function(index, item) {
2011
+ heights.push($(item).height());
2012
+ });
2013
+
2014
+ maxheight = Math.max.apply(null, heights);
2015
+
2016
+ this._core.$stage.parent()
2017
+ .height(maxheight)
2018
+ .addClass(this._core.settings.autoHeightClass);
2019
+ };
2020
+
2021
+ AutoHeight.prototype.destroy = function() {
2022
+ var handler, property;
2023
+
2024
+ for (handler in this._handlers) {
2025
+ this._core.$element.off(handler, this._handlers[handler]);
2026
+ }
2027
+ for (property in Object.getOwnPropertyNames(this)) {
2028
+ typeof this[property] != 'function' && (this[property] = null);
2029
+ }
2030
+ };
2031
+
2032
+ $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;
2033
+
2034
+ })(window.Zepto || window.jQuery, window, document);
2035
+
2036
+ /**
2037
+ * Video Plugin
2038
+ * @version 2.1.0
2039
+ * @author Bartosz Wojciechowski
2040
+ * @author David Deutsch
2041
+ * @license The MIT License (MIT)
2042
+ */
2043
+ ;(function($, window, document, undefined) {
2044
+
2045
+ /**
2046
+ * Creates the video plugin.
2047
+ * @class The Video Plugin
2048
+ * @param {Owl} carousel - The Owl Carousel
2049
+ */
2050
+ var Video = function(carousel) {
2051
+ /**
2052
+ * Reference to the core.
2053
+ * @protected
2054
+ * @type {Owl}
2055
+ */
2056
+ this._core = carousel;
2057
+
2058
+ /**
2059
+ * Cache all video URLs.
2060
+ * @protected
2061
+ * @type {Object}
2062
+ */
2063
+ this._videos = {};
2064
+
2065
+ /**
2066
+ * Current playing item.
2067
+ * @protected
2068
+ * @type {jQuery}
2069
+ */
2070
+ this._playing = null;
2071
+
2072
+ /**
2073
+ * All event handlers.
2074
+ * @todo The cloned content removale is too late
2075
+ * @protected
2076
+ * @type {Object}
2077
+ */
2078
+ this._handlers = {
2079
+ 'initialized.owl.carousel': $.proxy(function(e) {
2080
+ if (e.namespace) {
2081
+ this._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] });
2082
+ }
2083
+ }, this),
2084
+ 'resize.owl.carousel': $.proxy(function(e) {
2085
+ if (e.namespace && this._core.settings.video && this.isInFullScreen()) {
2086
+ e.preventDefault();
2087
+ }
2088
+ }, this),
2089
+ 'refreshed.owl.carousel': $.proxy(function(e) {
2090
+ if (e.namespace && this._core.is('resizing')) {
2091
+ this._core.$stage.find('.cloned .owl-video-frame').remove();
2092
+ }
2093
+ }, this),
2094
+ 'changed.owl.carousel': $.proxy(function(e) {
2095
+ if (e.namespace && e.property.name === 'position' && this._playing) {
2096
+ this.stop();
2097
+ }
2098
+ }, this),
2099
+ 'prepared.owl.carousel': $.proxy(function(e) {
2100
+ if (!e.namespace) {
2101
+ return;
2102
+ }
2103
+
2104
+ var $element = $(e.content).find('.owl-video');
2105
+
2106
+ if ($element.length) {
2107
+ $element.css('display', 'none');
2108
+ this.fetch($element, $(e.content));
2109
+ }
2110
+ }, this)
2111
+ };
2112
+
2113
+ // set default options
2114
+ this._core.options = $.extend({}, Video.Defaults, this._core.options);
2115
+
2116
+ // register event handlers
2117
+ this._core.$element.on(this._handlers);
2118
+
2119
+ this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) {
2120
+ this.play(e);
2121
+ }, this));
2122
+ };
2123
+
2124
+ /**
2125
+ * Default options.
2126
+ * @public
2127
+ */
2128
+ Video.Defaults = {
2129
+ video: false,
2130
+ videoHeight: false,
2131
+ videoWidth: false
2132
+ };
2133
+
2134
+ /**
2135
+ * Gets the video ID and the type (YouTube/Vimeo/vzaar only).
2136
+ * @protected
2137
+ * @param {jQuery} target - The target containing the video data.
2138
+ * @param {jQuery} item - The item containing the video.
2139
+ */
2140
+ Video.prototype.fetch = function(target, item) {
2141
+ var type = (function() {
2142
+ if (target.attr('data-vimeo-id')) {
2143
+ return 'vimeo';
2144
+ } else if (target.attr('data-vzaar-id')) {
2145
+ return 'vzaar'
2146
+ } else {
2147
+ return 'youtube';
2148
+ }
2149
+ })(),
2150
+ id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'),
2151
+ width = target.attr('data-width') || this._core.settings.videoWidth,
2152
+ height = target.attr('data-height') || this._core.settings.videoHeight,
2153
+ url = target.attr('href');
2154
+
2155
+ if (url) {
2156
+
2157
+ /*
2158
+ Parses the id's out of the following urls (and probably more):
2159
+ https://www.youtube.com/watch?v=:id
2160
+ https://youtu.be/:id
2161
+ https://vimeo.com/:id
2162
+ https://vimeo.com/channels/:channel/:id
2163
+ https://vimeo.com/groups/:group/videos/:id
2164
+ https://app.vzaar.com/videos/:id
2165
+
2166
+ Visual example: http://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F
2167
+ */
2168
+
2169
+ id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
2170
+
2171
+ if (id[3].indexOf('youtu') > -1) {
2172
+ type = 'youtube';
2173
+ } else if (id[3].indexOf('vimeo') > -1) {
2174
+ type = 'vimeo';
2175
+ } else if (id[3].indexOf('vzaar') > -1) {
2176
+ type = 'vzaar';
2177
+ } else {
2178
+ throw new Error('Video URL not supported.');
2179
+ }
2180
+ id = id[6];
2181
+ } else {
2182
+ throw new Error('Missing video URL.');
2183
+ }
2184
+
2185
+ this._videos[url] = {
2186
+ type: type,
2187
+ id: id,
2188
+ width: width,
2189
+ height: height
2190
+ };
2191
+
2192
+ item.attr('data-video', url);
2193
+
2194
+ this.thumbnail(target, this._videos[url]);
2195
+ };
2196
+
2197
+ /**
2198
+ * Creates video thumbnail.
2199
+ * @protected
2200
+ * @param {jQuery} target - The target containing the video data.
2201
+ * @param {Object} info - The video info object.
2202
+ * @see `fetch`
2203
+ */
2204
+ Video.prototype.thumbnail = function(target, video) {
2205
+ var tnLink,
2206
+ icon,
2207
+ path,
2208
+ dimensions = video.width && video.height ? 'style="width:' + video.width + 'px;height:' + video.height + 'px;"' : '',
2209
+ customTn = target.find('img'),
2210
+ srcType = 'src',
2211
+ lazyClass = '',
2212
+ settings = this._core.settings,
2213
+ create = function(path) {
2214
+ icon = '<div class="owl-video-play-icon"></div>';
2215
+
2216
+ if (settings.lazyLoad) {
2217
+ tnLink = '<div class="owl-video-tn ' + lazyClass + '" ' + srcType + '="' + path + '"></div>';
2218
+ } else {
2219
+ tnLink = '<div class="owl-video-tn" style="opacity:1;background-image:url(' + path + ')"></div>';
2220
+ }
2221
+ target.after(tnLink);
2222
+ target.after(icon);
2223
+ };
2224
+
2225
+ // wrap video content into owl-video-wrapper div
2226
+ target.wrap('<div class="owl-video-wrapper"' + dimensions + '></div>');
2227
+
2228
+ if (this._core.settings.lazyLoad) {
2229
+ srcType = 'data-src';
2230
+ lazyClass = 'owl-lazy';
2231
+ }
2232
+
2233
+ // custom thumbnail
2234
+ if (customTn.length) {
2235
+ create(customTn.attr(srcType));
2236
+ customTn.remove();
2237
+ return false;
2238
+ }
2239
+
2240
+ if (video.type === 'youtube') {
2241
+ path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg";
2242
+ create(path);
2243
+ } else if (video.type === 'vimeo') {
2244
+ $.ajax({
2245
+ type: 'GET',
2246
+ url: '//vimeo.com/api/v2/video/' + video.id + '.json',
2247
+ jsonp: 'callback',
2248
+ dataType: 'jsonp',
2249
+ success: function(data) {
2250
+ path = data[0].thumbnail_large;
2251
+ create(path);
2252
+ }
2253
+ });
2254
+ } else if (video.type === 'vzaar') {
2255
+ $.ajax({
2256
+ type: 'GET',
2257
+ url: '//vzaar.com/api/videos/' + video.id + '.json',
2258
+ jsonp: 'callback',
2259
+ dataType: 'jsonp',
2260
+ success: function(data) {
2261
+ path = data.framegrab_url;
2262
+ create(path);
2263
+ }
2264
+ });
2265
+ }
2266
+ };
2267
+
2268
+ /**
2269
+ * Stops the current video.
2270
+ * @public
2271
+ */
2272
+ Video.prototype.stop = function() {
2273
+ this._core.trigger('stop', null, 'video');
2274
+ this._playing.find('.owl-video-frame').remove();
2275
+ this._playing.removeClass('owl-video-playing');
2276
+ this._playing = null;
2277
+ this._core.leave('playing');
2278
+ this._core.trigger('stopped', null, 'video');
2279
+ };
2280
+
2281
+ /**
2282
+ * Starts the current video.
2283
+ * @public
2284
+ * @param {Event} event - The event arguments.
2285
+ */
2286
+ Video.prototype.play = function(event) {
2287
+ var target = $(event.target),
2288
+ item = target.closest('.' + this._core.settings.itemClass),
2289
+ video = this._videos[item.attr('data-video')],
2290
+ width = video.width || '100%',
2291
+ height = video.height || this._core.$stage.height(),
2292
+ html;
2293
+
2294
+ if (this._playing) {
2295
+ return;
2296
+ }
2297
+
2298
+ this._core.enter('playing');
2299
+ this._core.trigger('play', null, 'video');
2300
+
2301
+ item = this._core.items(this._core.relative(item.index()));
2302
+
2303
+ this._core.reset(item.index());
2304
+
2305
+ if (video.type === 'youtube') {
2306
+ html = '<iframe width="' + width + '" height="' + height + '" src="//www.youtube.com/embed/' +
2307
+ video.id + '?autoplay=1&v=' + video.id + '" frameborder="0" allowfullscreen></iframe>';
2308
+ } else if (video.type === 'vimeo') {
2309
+ html = '<iframe src="//player.vimeo.com/video/' + video.id +
2310
+ '?autoplay=1" width="' + width + '" height="' + height +
2311
+ '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
2312
+ } else if (video.type === 'vzaar') {
2313
+ html = '<iframe frameborder="0"' + 'height="' + height + '"' + 'width="' + width +
2314
+ '" allowfullscreen mozallowfullscreen webkitAllowFullScreen ' +
2315
+ 'src="//view.vzaar.com/' + video.id + '/player?autoplay=true"></iframe>';
2316
+ }
2317
+
2318
+ $('<div class="owl-video-frame">' + html + '</div>').insertAfter(item.find('.owl-video'));
2319
+
2320
+ this._playing = item.addClass('owl-video-playing');
2321
+ };
2322
+
2323
+ /**
2324
+ * Checks whether an video is currently in full screen mode or not.
2325
+ * @todo Bad style because looks like a readonly method but changes members.
2326
+ * @protected
2327
+ * @returns {Boolean}
2328
+ */
2329
+ Video.prototype.isInFullScreen = function() {
2330
+ var element = document.fullscreenElement || document.mozFullScreenElement ||
2331
+ document.webkitFullscreenElement;
2332
+
2333
+ return element && $(element).parent().hasClass('owl-video-frame');
2334
+ };
2335
+
2336
+ /**
2337
+ * Destroys the plugin.
2338
+ */
2339
+ Video.prototype.destroy = function() {
2340
+ var handler, property;
2341
+
2342
+ this._core.$element.off('click.owl.video');
2343
+
2344
+ for (handler in this._handlers) {
2345
+ this._core.$element.off(handler, this._handlers[handler]);
2346
+ }
2347
+ for (property in Object.getOwnPropertyNames(this)) {
2348
+ typeof this[property] != 'function' && (this[property] = null);
2349
+ }
2350
+ };
2351
+
2352
+ $.fn.owlCarousel.Constructor.Plugins.Video = Video;
2353
+
2354
+ })(window.Zepto || window.jQuery, window, document);
2355
+
2356
+ /**
2357
+ * Animate Plugin
2358
+ * @version 2.1.0
2359
+ * @author Bartosz Wojciechowski
2360
+ * @author David Deutsch
2361
+ * @license The MIT License (MIT)
2362
+ */
2363
+ ;(function($, window, document, undefined) {
2364
+
2365
+ /**
2366
+ * Creates the animate plugin.
2367
+ * @class The Navigation Plugin
2368
+ * @param {Owl} scope - The Owl Carousel
2369
+ */
2370
+ var Animate = function(scope) {
2371
+ this.core = scope;
2372
+ this.core.options = $.extend({}, Animate.Defaults, this.core.options);
2373
+ this.swapping = true;
2374
+ this.previous = undefined;
2375
+ this.next = undefined;
2376
+
2377
+ this.handlers = {
2378
+ 'change.owl.carousel': $.proxy(function(e) {
2379
+ if (e.namespace && e.property.name == 'position') {
2380
+ this.previous = this.core.current();
2381
+ this.next = e.property.value;
2382
+ }
2383
+ }, this),
2384
+ 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) {
2385
+ if (e.namespace) {
2386
+ this.swapping = e.type == 'translated';
2387
+ }
2388
+ }, this),
2389
+ 'translate.owl.carousel': $.proxy(function(e) {
2390
+ if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {
2391
+ this.swap();
2392
+ }
2393
+ }, this)
2394
+ };
2395
+
2396
+ this.core.$element.on(this.handlers);
2397
+ };
2398
+
2399
+ /**
2400
+ * Default options.
2401
+ * @public
2402
+ */
2403
+ Animate.Defaults = {
2404
+ animateOut: false,
2405
+ animateIn: false
2406
+ };
2407
+
2408
+ /**
2409
+ * Toggles the animation classes whenever an translations starts.
2410
+ * @protected
2411
+ * @returns {Boolean|undefined}
2412
+ */
2413
+ Animate.prototype.swap = function() {
2414
+
2415
+ if (this.core.settings.items !== 1) {
2416
+ return;
2417
+ }
2418
+
2419
+ if (!$.support.animation || !$.support.transition) {
2420
+ return;
2421
+ }
2422
+
2423
+ this.core.speed(0);
2424
+
2425
+ var left,
2426
+ clear = $.proxy(this.clear, this),
2427
+ previous = this.core.$stage.children().eq(this.previous),
2428
+ next = this.core.$stage.children().eq(this.next),
2429
+ incoming = this.core.settings.animateIn,
2430
+ outgoing = this.core.settings.animateOut;
2431
+
2432
+ if (this.core.current() === this.previous) {
2433
+ return;
2434
+ }
2435
+
2436
+ if (outgoing) {
2437
+ left = this.core.coordinates(this.previous) - this.core.coordinates(this.next);
2438
+ previous.one($.support.animation.end, clear)
2439
+ .css( { 'left': left + 'px' } )
2440
+ .addClass('animated owl-animated-out')
2441
+ .addClass(outgoing);
2442
+ }
2443
+
2444
+ if (incoming) {
2445
+ next.one($.support.animation.end, clear)
2446
+ .addClass('animated owl-animated-in')
2447
+ .addClass(incoming);
2448
+ }
2449
+ };
2450
+
2451
+ Animate.prototype.clear = function(e) {
2452
+ $(e.target).css( { 'left': '' } )
2453
+ .removeClass('animated owl-animated-out owl-animated-in')
2454
+ .removeClass(this.core.settings.animateIn)
2455
+ .removeClass(this.core.settings.animateOut);
2456
+ this.core.onTransitionEnd();
2457
+ };
2458
+
2459
+ /**
2460
+ * Destroys the plugin.
2461
+ * @public
2462
+ */
2463
+ Animate.prototype.destroy = function() {
2464
+ var handler, property;
2465
+
2466
+ for (handler in this.handlers) {
2467
+ this.core.$element.off(handler, this.handlers[handler]);
2468
+ }
2469
+ for (property in Object.getOwnPropertyNames(this)) {
2470
+ typeof this[property] != 'function' && (this[property] = null);
2471
+ }
2472
+ };
2473
+
2474
+ $.fn.owlCarousel.Constructor.Plugins.Animate = Animate;
2475
+
2476
+ })(window.Zepto || window.jQuery, window, document);
2477
+
2478
+ /**
2479
+ * Autoplay Plugin
2480
+ * @version 2.1.0
2481
+ * @author Bartosz Wojciechowski
2482
+ * @author Artus Kolanowski
2483
+ * @author David Deutsch
2484
+ * @license The MIT License (MIT)
2485
+ */
2486
+ ;(function($, window, document, undefined) {
2487
+
2488
+ /**
2489
+ * Creates the autoplay plugin.
2490
+ * @class The Autoplay Plugin
2491
+ * @param {Owl} scope - The Owl Carousel
2492
+ */
2493
+ var Autoplay = function(carousel) {
2494
+ /**
2495
+ * Reference to the core.
2496
+ * @protected
2497
+ * @type {Owl}
2498
+ */
2499
+ this._core = carousel;
2500
+
2501
+ /**
2502
+ * The autoplay timeout.
2503
+ * @type {Timeout}
2504
+ */
2505
+ this._timeout = null;
2506
+
2507
+ /**
2508
+ * Indicates whenever the autoplay is paused.
2509
+ * @type {Boolean}
2510
+ */
2511
+ this._paused = false;
2512
+
2513
+ /**
2514
+ * All event handlers.
2515
+ * @protected
2516
+ * @type {Object}
2517
+ */
2518
+ this._handlers = {
2519
+ 'changed.owl.carousel': $.proxy(function(e) {
2520
+ if (e.namespace && e.property.name === 'settings') {
2521
+ if (this._core.settings.autoplay) {
2522
+ this.play();
2523
+ } else {
2524
+ this.stop();
2525
+ }
2526
+ } else if (e.namespace && e.property.name === 'position') {
2527
+ //console.log('play?', e);
2528
+ if (this._core.settings.autoplay) {
2529
+ this._setAutoPlayInterval();
2530
+ }
2531
+ }
2532
+ }, this),
2533
+ 'initialized.owl.carousel': $.proxy(function(e) {
2534
+ if (e.namespace && this._core.settings.autoplay) {
2535
+ this.play();
2536
+ }
2537
+ }, this),
2538
+ 'play.owl.autoplay': $.proxy(function(e, t, s) {
2539
+ if (e.namespace) {
2540
+ this.play(t, s);
2541
+ }
2542
+ }, this),
2543
+ 'stop.owl.autoplay': $.proxy(function(e) {
2544
+ if (e.namespace) {
2545
+ this.stop();
2546
+ }
2547
+ }, this),
2548
+ 'mouseover.owl.autoplay': $.proxy(function() {
2549
+ if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
2550
+ this.pause();
2551
+ }
2552
+ }, this),
2553
+ 'mouseleave.owl.autoplay': $.proxy(function() {
2554
+ if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
2555
+ this.play();
2556
+ }
2557
+ }, this),
2558
+ 'touchstart.owl.core': $.proxy(function() {
2559
+ if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
2560
+ this.pause();
2561
+ }
2562
+ }, this),
2563
+ 'touchend.owl.core': $.proxy(function() {
2564
+ if (this._core.settings.autoplayHoverPause) {
2565
+ this.play();
2566
+ }
2567
+ }, this)
2568
+ };
2569
+
2570
+ // register event handlers
2571
+ this._core.$element.on(this._handlers);
2572
+
2573
+ // set default options
2574
+ this._core.options = $.extend({}, Autoplay.Defaults, this._core.options);
2575
+ };
2576
+
2577
+ /**
2578
+ * Default options.
2579
+ * @public
2580
+ */
2581
+ Autoplay.Defaults = {
2582
+ autoplay: false,
2583
+ autoplayTimeout: 5000,
2584
+ autoplayHoverPause: false,
2585
+ autoplaySpeed: false
2586
+ };
2587
+
2588
+ /**
2589
+ * Starts the autoplay.
2590
+ * @public
2591
+ * @param {Number} [timeout] - The interval before the next animation starts.
2592
+ * @param {Number} [speed] - The animation speed for the animations.
2593
+ */
2594
+ Autoplay.prototype.play = function(timeout, speed) {
2595
+ this._paused = false;
2596
+
2597
+ if (this._core.is('rotating')) {
2598
+ return;
2599
+ }
2600
+
2601
+ this._core.enter('rotating');
2602
+
2603
+ this._setAutoPlayInterval();
2604
+ };
2605
+
2606
+ /**
2607
+ * Gets a new timeout
2608
+ * @private
2609
+ * @param {Number} [timeout] - The interval before the next animation starts.
2610
+ * @param {Number} [speed] - The animation speed for the animations.
2611
+ * @return {Timeout}
2612
+ */
2613
+ Autoplay.prototype._getNextTimeout = function(timeout, speed) {
2614
+ if ( this._timeout ) {
2615
+ window.clearTimeout(this._timeout);
2616
+ }
2617
+ return window.setTimeout($.proxy(function() {
2618
+ if (this._paused || this._core.is('busy') || this._core.is('interacting') || document.hidden) {
2619
+ return;
2620
+ }
2621
+ this._core.next(speed || this._core.settings.autoplaySpeed);
2622
+ }, this), timeout || this._core.settings.autoplayTimeout);
2623
+ };
2624
+
2625
+ /**
2626
+ * Sets autoplay in motion.
2627
+ * @private
2628
+ */
2629
+ Autoplay.prototype._setAutoPlayInterval = function() {
2630
+ this._timeout = this._getNextTimeout();
2631
+ };
2632
+
2633
+ /**
2634
+ * Stops the autoplay.
2635
+ * @public
2636
+ */
2637
+ Autoplay.prototype.stop = function() {
2638
+ if (!this._core.is('rotating')) {
2639
+ return;
2640
+ }
2641
+
2642
+ window.clearTimeout(this._timeout);
2643
+ this._core.leave('rotating');
2644
+ };
2645
+
2646
+ /**
2647
+ * Stops the autoplay.
2648
+ * @public
2649
+ */
2650
+ Autoplay.prototype.pause = function() {
2651
+ if (!this._core.is('rotating')) {
2652
+ return;
2653
+ }
2654
+
2655
+ this._paused = true;
2656
+ };
2657
+
2658
+ /**
2659
+ * Destroys the plugin.
2660
+ */
2661
+ Autoplay.prototype.destroy = function() {
2662
+ var handler, property;
2663
+
2664
+ this.stop();
2665
+
2666
+ for (handler in this._handlers) {
2667
+ this._core.$element.off(handler, this._handlers[handler]);
2668
+ }
2669
+ for (property in Object.getOwnPropertyNames(this)) {
2670
+ typeof this[property] != 'function' && (this[property] = null);
2671
+ }
2672
+ };
2673
+
2674
+ $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;
2675
+
2676
+ })(window.Zepto || window.jQuery, window, document);
2677
+
2678
+ /**
2679
+ * Navigation Plugin
2680
+ * @version 2.1.0
2681
+ * @author Artus Kolanowski
2682
+ * @author David Deutsch
2683
+ * @license The MIT License (MIT)
2684
+ */
2685
+ ;(function($, window, document, undefined) {
2686
+ 'use strict';
2687
+
2688
+ /**
2689
+ * Creates the navigation plugin.
2690
+ * @class The Navigation Plugin
2691
+ * @param {Owl} carousel - The Owl Carousel.
2692
+ */
2693
+ var Navigation = function(carousel) {
2694
+ /**
2695
+ * Reference to the core.
2696
+ * @protected
2697
+ * @type {Owl}
2698
+ */
2699
+ this._core = carousel;
2700
+
2701
+ /**
2702
+ * Indicates whether the plugin is initialized or not.
2703
+ * @protected
2704
+ * @type {Boolean}
2705
+ */
2706
+ this._initialized = false;
2707
+
2708
+ /**
2709
+ * The current paging indexes.
2710
+ * @protected
2711
+ * @type {Array}
2712
+ */
2713
+ this._pages = [];
2714
+
2715
+ /**
2716
+ * All DOM elements of the user interface.
2717
+ * @protected
2718
+ * @type {Object}
2719
+ */
2720
+ this._controls = {};
2721
+
2722
+ /**
2723
+ * Markup for an indicator.
2724
+ * @protected
2725
+ * @type {Array.<String>}
2726
+ */
2727
+ this._templates = [];
2728
+
2729
+ /**
2730
+ * The carousel element.
2731
+ * @type {jQuery}
2732
+ */
2733
+ this.$element = this._core.$element;
2734
+
2735
+ /**
2736
+ * Overridden methods of the carousel.
2737
+ * @protected
2738
+ * @type {Object}
2739
+ */
2740
+ this._overrides = {
2741
+ next: this._core.next,
2742
+ prev: this._core.prev,
2743
+ to: this._core.to
2744
+ };
2745
+
2746
+ /**
2747
+ * All event handlers.
2748
+ * @protected
2749
+ * @type {Object}
2750
+ */
2751
+ this._handlers = {
2752
+ 'prepared.owl.carousel': $.proxy(function(e) {
2753
+ if (e.namespace && this._core.settings.dotsData) {
2754
+ this._templates.push('<div class="' + this._core.settings.dotClass + '">' +
2755
+ $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '</div>');
2756
+ }
2757
+ }, this),
2758
+ 'added.owl.carousel': $.proxy(function(e) {
2759
+ if (e.namespace && this._core.settings.dotsData) {
2760
+ this._templates.splice(e.position, 0, this._templates.pop());
2761
+ }
2762
+ }, this),
2763
+ 'remove.owl.carousel': $.proxy(function(e) {
2764
+ if (e.namespace && this._core.settings.dotsData) {
2765
+ this._templates.splice(e.position, 1);
2766
+ }
2767
+ }, this),
2768
+ 'changed.owl.carousel': $.proxy(function(e) {
2769
+ if (e.namespace && e.property.name == 'position') {
2770
+ this.draw();
2771
+ }
2772
+ }, this),
2773
+ 'initialized.owl.carousel': $.proxy(function(e) {
2774
+ if (e.namespace && !this._initialized) {
2775
+ this._core.trigger('initialize', null, 'navigation');
2776
+ this.initialize();
2777
+ this.update();
2778
+ this.draw();
2779
+ this._initialized = true;
2780
+ this._core.trigger('initialized', null, 'navigation');
2781
+ }
2782
+ }, this),
2783
+ 'refreshed.owl.carousel': $.proxy(function(e) {
2784
+ if (e.namespace && this._initialized) {
2785
+ this._core.trigger('refresh', null, 'navigation');
2786
+ this.update();
2787
+ this.draw();
2788
+ this._core.trigger('refreshed', null, 'navigation');
2789
+ }
2790
+ }, this)
2791
+ };
2792
+
2793
+ // set default options
2794
+ this._core.options = $.extend({}, Navigation.Defaults, this._core.options);
2795
+
2796
+ // register event handlers
2797
+ this.$element.on(this._handlers);
2798
+ };
2799
+
2800
+ /**
2801
+ * Default options.
2802
+ * @public
2803
+ * @todo Rename `slideBy` to `navBy`
2804
+ */
2805
+ Navigation.Defaults = {
2806
+ nav: false,
2807
+ navText: [ 'prev', 'next' ],
2808
+ navSpeed: false,
2809
+ navElement: 'div',
2810
+ navContainer: false,
2811
+ navContainerClass: 'owl-nav',
2812
+ navClass: [ 'owl-prev', 'owl-next' ],
2813
+ slideBy: 1,
2814
+ dotClass: 'owl-dot',
2815
+ dotsClass: 'owl-dots',
2816
+ dots: true,
2817
+ dotsEach: false,
2818
+ dotsData: false,
2819
+ dotsSpeed: false,
2820
+ dotsContainer: false
2821
+ };
2822
+
2823
+ /**
2824
+ * Initializes the layout of the plugin and extends the carousel.
2825
+ * @protected
2826
+ */
2827
+ Navigation.prototype.initialize = function() {
2828
+ var override,
2829
+ settings = this._core.settings;
2830
+
2831
+ // create DOM structure for relative navigation
2832
+ this._controls.$relative = (settings.navContainer ? $(settings.navContainer)
2833
+ : $('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');
2834
+
2835
+ this._controls.$previous = $('<' + settings.navElement + '>')
2836
+ .addClass(settings.navClass[0])
2837
+ .html(settings.navText[0])
2838
+ .prependTo(this._controls.$relative)
2839
+ .on('click', $.proxy(function(e) {
2840
+ this.prev(settings.navSpeed);
2841
+ }, this));
2842
+ this._controls.$next = $('<' + settings.navElement + '>')
2843
+ .addClass(settings.navClass[1])
2844
+ .html(settings.navText[1])
2845
+ .appendTo(this._controls.$relative)
2846
+ .on('click', $.proxy(function(e) {
2847
+ this.next(settings.navSpeed);
2848
+ }, this));
2849
+
2850
+ // create DOM structure for absolute navigation
2851
+ if (!settings.dotsData) {
2852
+ this._templates = [ $('<div>')
2853
+ .addClass(settings.dotClass)
2854
+ .append($('<span>'))
2855
+ .prop('outerHTML') ];
2856
+ }
2857
+
2858
+ this._controls.$absolute = (settings.dotsContainer ? $(settings.dotsContainer)
2859
+ : $('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');
2860
+
2861
+ this._controls.$absolute.on('click', 'div', $.proxy(function(e) {
2862
+ var index = $(e.target).parent().is(this._controls.$absolute)
2863
+ ? $(e.target).index() : $(e.target).parent().index();
2864
+
2865
+ e.preventDefault();
2866
+
2867
+ this.to(index, settings.dotsSpeed);
2868
+ }, this));
2869
+
2870
+ // override public methods of the carousel
2871
+ for (override in this._overrides) {
2872
+ this._core[override] = $.proxy(this[override], this);
2873
+ }
2874
+ };
2875
+
2876
+ /**
2877
+ * Destroys the plugin.
2878
+ * @protected
2879
+ */
2880
+ Navigation.prototype.destroy = function() {
2881
+ var handler, control, property, override;
2882
+
2883
+ for (handler in this._handlers) {
2884
+ this.$element.off(handler, this._handlers[handler]);
2885
+ }
2886
+ for (control in this._controls) {
2887
+ this._controls[control].remove();
2888
+ }
2889
+ for (override in this.overides) {
2890
+ this._core[override] = this._overrides[override];
2891
+ }
2892
+ for (property in Object.getOwnPropertyNames(this)) {
2893
+ typeof this[property] != 'function' && (this[property] = null);
2894
+ }
2895
+ };
2896
+
2897
+ /**
2898
+ * Updates the internal state.
2899
+ * @protected
2900
+ */
2901
+ Navigation.prototype.update = function() {
2902
+ var i, j, k,
2903
+ lower = this._core.clones().length / 2,
2904
+ upper = lower + this._core.items().length,
2905
+ maximum = this._core.maximum(true),
2906
+ settings = this._core.settings,
2907
+ size = settings.center || settings.autoWidth || settings.dotsData
2908
+ ? 1 : settings.dotsEach || settings.items;
2909
+
2910
+ if (settings.slideBy !== 'page') {
2911
+ settings.slideBy = Math.min(settings.slideBy, settings.items);
2912
+ }
2913
+
2914
+ if (settings.dots || settings.slideBy == 'page') {
2915
+ this._pages = [];
2916
+
2917
+ for (i = lower, j = 0, k = 0; i < upper; i++) {
2918
+ if (j >= size || j === 0) {
2919
+ this._pages.push({
2920
+ start: Math.min(maximum, i - lower),
2921
+ end: i - lower + size - 1
2922
+ });
2923
+ if (Math.min(maximum, i - lower) === maximum) {
2924
+ break;
2925
+ }
2926
+ j = 0, ++k;
2927
+ }
2928
+ j += this._core.mergers(this._core.relative(i));
2929
+ }
2930
+ }
2931
+ };
2932
+
2933
+ /**
2934
+ * Draws the user interface.
2935
+ * @todo The option `dotsData` wont work.
2936
+ * @protected
2937
+ */
2938
+ Navigation.prototype.draw = function() {
2939
+ var difference,
2940
+ settings = this._core.settings,
2941
+ disabled = this._core.items().length <= settings.items,
2942
+ index = this._core.relative(this._core.current()),
2943
+ loop = settings.loop || settings.rewind;
2944
+
2945
+ this._controls.$relative.toggleClass('disabled', !settings.nav || disabled);
2946
+
2947
+ if (settings.nav) {
2948
+ this._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(true));
2949
+ this._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(true));
2950
+ }
2951
+
2952
+ this._controls.$absolute.toggleClass('disabled', !settings.dots || disabled);
2953
+
2954
+ if (settings.dots) {
2955
+ difference = this._pages.length - this._controls.$absolute.children().length;
2956
+
2957
+ if (settings.dotsData && difference !== 0) {
2958
+ this._controls.$absolute.html(this._templates.join(''));
2959
+ } else if (difference > 0) {
2960
+ this._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));
2961
+ } else if (difference < 0) {
2962
+ this._controls.$absolute.children().slice(difference).remove();
2963
+ }
2964
+
2965
+ this._controls.$absolute.find('.active').removeClass('active');
2966
+ this._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');
2967
+ }
2968
+ };
2969
+
2970
+ /**
2971
+ * Extends event data.
2972
+ * @protected
2973
+ * @param {Event} event - The event object which gets thrown.
2974
+ */
2975
+ Navigation.prototype.onTrigger = function(event) {
2976
+ var settings = this._core.settings;
2977
+
2978
+ event.page = {
2979
+ index: $.inArray(this.current(), this._pages),
2980
+ count: this._pages.length,
2981
+ size: settings && (settings.center || settings.autoWidth || settings.dotsData
2982
+ ? 1 : settings.dotsEach || settings.items)
2983
+ };
2984
+ };
2985
+
2986
+ /**
2987
+ * Gets the current page position of the carousel.
2988
+ * @protected
2989
+ * @returns {Number}
2990
+ */
2991
+ Navigation.prototype.current = function() {
2992
+ var current = this._core.relative(this._core.current());
2993
+ return $.grep(this._pages, $.proxy(function(page, index) {
2994
+ return page.start <= current && page.end >= current;
2995
+ }, this)).pop();
2996
+ };
2997
+
2998
+ /**
2999
+ * Gets the current succesor/predecessor position.
3000
+ * @protected
3001
+ * @returns {Number}
3002
+ */
3003
+ Navigation.prototype.getPosition = function(successor) {
3004
+ var position, length,
3005
+ settings = this._core.settings;
3006
+
3007
+ if (settings.slideBy == 'page') {
3008
+ position = $.inArray(this.current(), this._pages);
3009
+ length = this._pages.length;
3010
+ successor ? ++position : --position;
3011
+ position = this._pages[((position % length) + length) % length].start;
3012
+ } else {
3013
+ position = this._core.relative(this._core.current());
3014
+ length = this._core.items().length;
3015
+ successor ? position += settings.slideBy : position -= settings.slideBy;
3016
+ }
3017
+
3018
+ return position;
3019
+ };
3020
+
3021
+ /**
3022
+ * Slides to the next item or page.
3023
+ * @public
3024
+ * @param {Number} [speed=false] - The time in milliseconds for the transition.
3025
+ */
3026
+ Navigation.prototype.next = function(speed) {
3027
+ $.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);
3028
+ };
3029
+
3030
+ /**
3031
+ * Slides to the previous item or page.
3032
+ * @public
3033
+ * @param {Number} [speed=false] - The time in milliseconds for the transition.
3034
+ */
3035
+ Navigation.prototype.prev = function(speed) {
3036
+ $.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);
3037
+ };
3038
+
3039
+ /**
3040
+ * Slides to the specified item or page.
3041
+ * @public
3042
+ * @param {Number} position - The position of the item or page.
3043
+ * @param {Number} [speed] - The time in milliseconds for the transition.
3044
+ * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.
3045
+ */
3046
+ Navigation.prototype.to = function(position, speed, standard) {
3047
+ var length;
3048
+
3049
+ if (!standard && this._pages.length) {
3050
+ length = this._pages.length;
3051
+ $.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);
3052
+ } else {
3053
+ $.proxy(this._overrides.to, this._core)(position, speed);
3054
+ }
3055
+ };
3056
+
3057
+ $.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;
3058
+
3059
+ })(window.Zepto || window.jQuery, window, document);
3060
+
3061
+ /**
3062
+ * Hash Plugin
3063
+ * @version 2.1.0
3064
+ * @author Artus Kolanowski
3065
+ * @author David Deutsch
3066
+ * @license The MIT License (MIT)
3067
+ */
3068
+ ;(function($, window, document, undefined) {
3069
+ 'use strict';
3070
+
3071
+ /**
3072
+ * Creates the hash plugin.
3073
+ * @class The Hash Plugin
3074
+ * @param {Owl} carousel - The Owl Carousel
3075
+ */
3076
+ var Hash = function(carousel) {
3077
+ /**
3078
+ * Reference to the core.
3079
+ * @protected
3080
+ * @type {Owl}
3081
+ */
3082
+ this._core = carousel;
3083
+
3084
+ /**
3085
+ * Hash index for the items.
3086
+ * @protected
3087
+ * @type {Object}
3088
+ */
3089
+ this._hashes = {};
3090
+
3091
+ /**
3092
+ * The carousel element.
3093
+ * @type {jQuery}
3094
+ */
3095
+ this.$element = this._core.$element;
3096
+
3097
+ /**
3098
+ * All event handlers.
3099
+ * @protected
3100
+ * @type {Object}
3101
+ */
3102
+ this._handlers = {
3103
+ 'initialized.owl.carousel': $.proxy(function(e) {
3104
+ if (e.namespace && this._core.settings.startPosition === 'URLHash') {
3105
+ $(window).trigger('hashchange.owl.navigation');
3106
+ }
3107
+ }, this),
3108
+ 'prepared.owl.carousel': $.proxy(function(e) {
3109
+ if (e.namespace) {
3110
+ var hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');
3111
+
3112
+ if (!hash) {
3113
+ return;
3114
+ }
3115
+
3116
+ this._hashes[hash] = e.content;
3117
+ }
3118
+ }, this),
3119
+ 'changed.owl.carousel': $.proxy(function(e) {
3120
+ if (e.namespace && e.property.name === 'position') {
3121
+ var current = this._core.items(this._core.relative(this._core.current())),
3122
+ hash = $.map(this._hashes, function(item, hash) {
3123
+ return item === current ? hash : null;
3124
+ }).join();
3125
+
3126
+ if (!hash || window.location.hash.slice(1) === hash) {
3127
+ return;
3128
+ }
3129
+
3130
+ window.location.hash = hash;
3131
+ }
3132
+ }, this)
3133
+ };
3134
+
3135
+ // set default options
3136
+ this._core.options = $.extend({}, Hash.Defaults, this._core.options);
3137
+
3138
+ // register the event handlers
3139
+ this.$element.on(this._handlers);
3140
+
3141
+ // register event listener for hash navigation
3142
+ $(window).on('hashchange.owl.navigation', $.proxy(function(e) {
3143
+ var hash = window.location.hash.substring(1),
3144
+ items = this._core.$stage.children(),
3145
+ position = this._hashes[hash] && items.index(this._hashes[hash]);
3146
+
3147
+ if (position === undefined || position === this._core.current()) {
3148
+ return;
3149
+ }
3150
+
3151
+ this._core.to(this._core.relative(position), false, true);
3152
+ }, this));
3153
+ };
3154
+
3155
+ /**
3156
+ * Default options.
3157
+ * @public
3158
+ */
3159
+ Hash.Defaults = {
3160
+ URLhashListener: false
3161
+ };
3162
+
3163
+ /**
3164
+ * Destroys the plugin.
3165
+ * @public
3166
+ */
3167
+ Hash.prototype.destroy = function() {
3168
+ var handler, property;
3169
+
3170
+ $(window).off('hashchange.owl.navigation');
3171
+
3172
+ for (handler in this._handlers) {
3173
+ this._core.$element.off(handler, this._handlers[handler]);
3174
+ }
3175
+ for (property in Object.getOwnPropertyNames(this)) {
3176
+ typeof this[property] != 'function' && (this[property] = null);
3177
+ }
3178
+ };
3179
+
3180
+ $.fn.owlCarousel.Constructor.Plugins.Hash = Hash;
3181
+
3182
+ })(window.Zepto || window.jQuery, window, document);
3183
+
3184
+ /**
3185
+ * Support Plugin
3186
+ *
3187
+ * @version 2.1.0
3188
+ * @author Vivid Planet Software GmbH
3189
+ * @author Artus Kolanowski
3190
+ * @author David Deutsch
3191
+ * @license The MIT License (MIT)
3192
+ */
3193
+ ;(function($, window, document, undefined) {
3194
+
3195
+ var style = $('<support>').get(0).style,
3196
+ prefixes = 'Webkit Moz O ms'.split(' '),
3197
+ events = {
3198
+ transition: {
3199
+ end: {
3200
+ WebkitTransition: 'webkitTransitionEnd',
3201
+ MozTransition: 'transitionend',
3202
+ OTransition: 'oTransitionEnd',
3203
+ transition: 'transitionend'
3204
+ }
3205
+ },
3206
+ animation: {
3207
+ end: {
3208
+ WebkitAnimation: 'webkitAnimationEnd',
3209
+ MozAnimation: 'animationend',
3210
+ OAnimation: 'oAnimationEnd',
3211
+ animation: 'animationend'
3212
+ }
3213
+ }
3214
+ },
3215
+ tests = {
3216
+ csstransforms: function() {
3217
+ return !!test('transform');
3218
+ },
3219
+ csstransforms3d: function() {
3220
+ return !!test('perspective');
3221
+ },
3222
+ csstransitions: function() {
3223
+ return !!test('transition');
3224
+ },
3225
+ cssanimations: function() {
3226
+ return !!test('animation');
3227
+ }
3228
+ };
3229
+
3230
+ function test(property, prefixed) {
3231
+ var result = false,
3232
+ upper = property.charAt(0).toUpperCase() + property.slice(1);
3233
+
3234
+ $.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) {
3235
+ if (style[property] !== undefined) {
3236
+ result = prefixed ? property : true;
3237
+ return false;
3238
+ }
3239
+ });
3240
+
3241
+ return result;
3242
+ }
3243
+
3244
+ function prefixed(property) {
3245
+ return test(property, true);
3246
+ }
3247
+
3248
+ if (tests.csstransitions()) {
3249
+ /* jshint -W053 */
3250
+ $.support.transition = new String(prefixed('transition'))
3251
+ $.support.transition.end = events.transition.end[ $.support.transition ];
3252
+ }
3253
+
3254
+ if (tests.cssanimations()) {
3255
+ /* jshint -W053 */
3256
+ $.support.animation = new String(prefixed('animation'))
3257
+ $.support.animation.end = events.animation.end[ $.support.animation ];
3258
+ }
3259
+
3260
+ if (tests.csstransforms()) {
3261
+ /* jshint -W053 */
3262
+ $.support.transform = new String(prefixed('transform'));
3263
+ $.support.transform3d = tests.csstransforms3d();
3264
+ }
3265
+
3266
+ })(window.Zepto || window.jQuery, window, document);
includes/meta.php CHANGED
@@ -124,6 +124,25 @@ function meta_boxes_wcps_input( $post ) {
124
  $wcps_auto_play = 'true';
125
  }
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  $wcps_stop_on_hover = get_post_meta( $post->ID, 'wcps_stop_on_hover', true );
128
  if(empty($wcps_stop_on_hover)){
129
  $wcps_stop_on_hover = 'true';
@@ -336,6 +355,91 @@ function meta_boxes_wcps_input( $post ) {
336
  <option value="false" <?php if(($wcps_auto_play=="false")) echo "selected"; ?> ><?php _e('False','wcps');?></option>
337
  </select>
338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  </div>
340
  <div class="option-box">
341
  <p class="option-title"><?php _e('Slider Stop on Hover','wcps');?></p>
@@ -1262,6 +1366,58 @@ function meta_boxes_wcps_save( $post_id ) {
1262
  }
1263
 
1264
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1265
  if(empty($_POST['wcps_stop_on_hover']))
1266
  {
1267
  $wcps_stop_on_hover = '';
@@ -1457,6 +1613,10 @@ function meta_boxes_wcps_save( $post_id ) {
1457
  update_post_meta( $post_id, 'wcps_column_number_tablet', $wcps_column_number_tablet );
1458
 
1459
  update_post_meta( $post_id, 'wcps_auto_play', $wcps_auto_play );
 
 
 
 
1460
  update_post_meta( $post_id, 'wcps_stop_on_hover', $wcps_stop_on_hover );
1461
  update_post_meta( $post_id, 'wcps_slider_navigation', $wcps_slider_navigation );
1462
  update_post_meta( $post_id, 'wcps_slider_navigation_position', $wcps_slider_navigation_position );
@@ -1471,6 +1631,10 @@ function meta_boxes_wcps_save( $post_id ) {
1471
 
1472
  update_post_meta( $post_id, 'wcps_slider_touch_drag', $wcps_slider_touch_drag );
1473
  update_post_meta( $post_id, 'wcps_slider_mouse_drag', $wcps_slider_mouse_drag );
 
 
 
 
1474
 
1475
  update_post_meta( $post_id, 'wcps_content_source', $wcps_content_source );
1476
  update_post_meta( $post_id, 'wcps_content_year', $wcps_content_year );
124
  $wcps_auto_play = 'true';
125
  }
126
 
127
+
128
+ $wcps_rewind = get_post_meta( $post->ID, 'wcps_rewind', true );
129
+ if(empty($wcps_rewind)){$wcps_rewind = 'true';}
130
+
131
+ $wcps_loop = get_post_meta( $post->ID, 'wcps_loop', true );
132
+ if(empty($wcps_loop)){$wcps_loop = 'true';}
133
+
134
+ $wcps_center = get_post_meta( $post->ID, 'wcps_center', true );
135
+ if(empty($wcps_center)){$wcps_center = 'false';}
136
+
137
+ $wcps_slider_rtl = get_post_meta( $post->ID, 'wcps_slider_rtl', true );
138
+ if(empty($wcps_slider_rtl)){$wcps_slider_rtl = 'false'; }
139
+
140
+ $wcps_slider_animateout = get_post_meta( $post->ID, 'wcps_slider_animateout', true );
141
+ if(empty($wcps_slider_animateout)){$wcps_slider_animateout = 'fadeOut'; }
142
+
143
+ $wcps_slider_animatein = get_post_meta( $post->ID, 'wcps_slider_animatein', true );
144
+ if(empty($wcps_slider_animatein)){$wcps_slider_animatein = 'flipInX'; }
145
+
146
  $wcps_stop_on_hover = get_post_meta( $post->ID, 'wcps_stop_on_hover', true );
147
  if(empty($wcps_stop_on_hover)){
148
  $wcps_stop_on_hover = 'true';
355
  <option value="false" <?php if(($wcps_auto_play=="false")) echo "selected"; ?> ><?php _e('False','wcps');?></option>
356
  </select>
357
 
358
+ <p class="option-info"><?php _e('Slider rewind', wcps_textdomain);?></p>
359
+ <select name="wcps_rewind">
360
+ <option value="true" <?php if(($wcps_rewind=="true")) echo "selected"; ?> ><?php _e('True', wcps_textdomain);?></option>
361
+ <option value="false" <?php if(($wcps_rewind=="false")) echo "selected"; ?> ><?php _e('False', wcps_textdomain);?></option>
362
+ </select>
363
+
364
+ <p class="option-info"><?php _e('Slider loop', wcps_textdomain);?></p>
365
+ <select name="wcps_loop">
366
+ <option value="true" <?php if(($wcps_loop=="true")) echo "selected"; ?> ><?php _e('True', wcps_textdomain);?></option>
367
+ <option value="false" <?php if(($wcps_loop=="false")) echo "selected"; ?> ><?php _e('False', wcps_textdomain);?></option>
368
+ </select>
369
+
370
+ <p class="option-info"><?php _e('Slider center', wcps_textdomain);?></p>
371
+ <select name="wcps_center">
372
+ <option value="true" <?php if(($wcps_center=="true")) echo "selected"; ?> ><?php _e('True', wcps_textdomain);?></option>
373
+ <option value="false" <?php if(($wcps_center=="false")) echo "selected"; ?> ><?php _e('False', wcps_textdomain);?></option>
374
+ </select>
375
+
376
+ <p class="option-info"><?php _e('RTL Enabled', wcps_textdomain);?></p>
377
+
378
+ <select name="wcps_slider_rtl">
379
+ <option value="false" <?php if(($wcps_slider_rtl=="false")) echo "selected"; ?> ><?php _e('False', wcps_textdomain);?></option>
380
+ <option value="true" <?php if(($wcps_slider_rtl=="true")) echo "selected"; ?> ><?php _e('True', wcps_textdomain);?></option>
381
+
382
+ </select>
383
+
384
+
385
+
386
+ <p class="option-info"><?php _e('Animate Out', wcps_textdomain);?></p>
387
+
388
+ <select name="wcps_slider_animateout">
389
+ <option value="fadeOut" <?php if(($wcps_slider_animateout=="fadeOut")) echo "selected"; ?> ><?php _e('fadeOut', wcps_textdomain);?></option>
390
+ <option value="bounce" <?php if(($wcps_slider_animateout=="bounce")) echo "selected"; ?> ><?php _e('bounce', wcps_textdomain);?></option>
391
+ <option value="flash" <?php if(($wcps_slider_animateout=="flash")) echo "selected"; ?> ><?php _e('flash', wcps_textdomain);?></option>
392
+ <option value="pulse" <?php if(($wcps_slider_animateout=="pulse")) echo "selected"; ?> ><?php _e('pulse', wcps_textdomain);?></option>
393
+
394
+
395
+ <option value="shake" <?php if($wcps_slider_animateout=="shake")echo "selected"; ?>><?php _e('Shake', wcps_textdomain);?></option>
396
+ <option value="swing" <?php if($wcps_slider_animateout=="swing")echo "selected"; ?>><?php _e('Swing', wcps_textdomain);?></option>
397
+ <option value="tada" <?php if($wcps_slider_animateout=="tada")echo "selected"; ?>><?php _e('Tada', wcps_textdomain);?></option>
398
+ <option value="wobble" <?php if($wcps_slider_animateout=="wobble")echo "selected"; ?>><?php _e('Wobble', wcps_textdomain);?></option>
399
+ <option value="flip" <?php if($wcps_slider_animateout=="flip")echo "selected"; ?>><?php _e('flip', wcps_textdomain);?></option>
400
+ <option value="flipInX" <?php if($wcps_slider_animateout=="flipInX")echo "selected"; ?>><?php _e('flipInX', wcps_textdomain);?></option>
401
+ <option value="flipInY" <?php if($wcps_slider_animateout=="flipInY")echo "selected"; ?>><?php _e('flipInY', wcps_textdomain);?></option>
402
+ <option value="fadeIn" <?php if($wcps_slider_animateout=="fadeIn")echo "selected"; ?>><?php _e('fadeIn', wcps_textdomain);?></option>
403
+ <option value="fadeInDown" <?php if($wcps_slider_animateout=="fadeInDown")echo "selected"; ?>><?php _e('fadeInDown', wcps_textdomain);?></option>
404
+ <option value="fadeInUp" <?php if($wcps_slider_animateout=="fadeInUp")echo "selected"; ?>><?php _e('fadeInUp', wcps_textdomain);?></option>
405
+ <option value="bounceIn" <?php if($wcps_slider_animateout=="bounceIn")echo "selected"; ?>><?php _e('bounceIn', wcps_textdomain);?></option>
406
+ <option value="bounceInDown" <?php if($wcps_slider_animateout=="bounceInDown")echo "selected"; ?>><?php _e('bounceInDown', wcps_textdomain);?></option>
407
+ <option value="bounceInUp" <?php if($wcps_slider_animateout=="bounceInUp")echo "selected"; ?>><?php _e('bounceInUp', wcps_textdomain);?></option>
408
+
409
+
410
+
411
+
412
+
413
+ </select>
414
+
415
+
416
+
417
+ <p class="option-info"><?php _e('Animate In', wcps_textdomain);?></p>
418
+
419
+ <select name="wcps_slider_animatein">
420
+ <option value="fadeOut" <?php if(($wcps_slider_animatein=="fadeOut")) echo "selected"; ?> ><?php _e('fadeOut', wcps_textdomain);?></option>
421
+ <option value="bounce" <?php if(($wcps_slider_animatein=="bounce")) echo "selected"; ?> ><?php _e('bounce', wcps_textdomain);?></option>
422
+ <option value="flash" <?php if(($wcps_slider_animatein=="flash")) echo "selected"; ?> ><?php _e('flash', wcps_textdomain);?></option>
423
+ <option value="pulse" <?php if(($wcps_slider_animatein=="pulse")) echo "selected"; ?> ><?php _e('pulse', wcps_textdomain);?></option>
424
+
425
+ <option value="shake" <?php if($wcps_slider_animatein=="shake")echo "selected"; ?>><?php _e('Shake', wcps_textdomain);?></option>
426
+ <option value="swing" <?php if($wcps_slider_animatein=="swing")echo "selected"; ?>><?php _e('Swing', wcps_textdomain);?></option>
427
+ <option value="tada" <?php if($wcps_slider_animatein=="tada")echo "selected"; ?>><?php _e('Tada', wcps_textdomain);?></option>
428
+ <option value="wobble" <?php if($wcps_slider_animatein=="wobble")echo "selected"; ?>><?php _e('Wobble', wcps_textdomain);?></option>
429
+ <option value="flip" <?php if($wcps_slider_animatein=="flip")echo "selected"; ?>><?php _e('flip', wcps_textdomain);?></option>
430
+ <option value="flipInX" <?php if($wcps_slider_animatein=="flipInX")echo "selected"; ?>><?php _e('flipInX', wcps_textdomain);?></option>
431
+ <option value="flipInY" <?php if($wcps_slider_animatein=="flipInY")echo "selected"; ?>><?php _e('flipInY', wcps_textdomain);?></option>
432
+ <option value="fadeIn" <?php if($wcps_slider_animatein=="fadeIn")echo "selected"; ?>><?php _e('fadeIn', wcps_textdomain);?></option>
433
+ <option value="fadeInDown" <?php if($wcps_slider_animatein=="fadeInDown")echo "selected"; ?>><?php _e('fadeInDown', wcps_textdomain);?></option>
434
+ <option value="fadeInUp" <?php if($wcps_slider_animatein=="fadeInUp")echo "selected"; ?>><?php _e('fadeInUp', wcps_textdomain);?></option>
435
+ <option value="bounceIn" <?php if($wcps_slider_animatein=="bounceIn")echo "selected"; ?>><?php _e('bounceIn', wcps_textdomain);?></option>
436
+ <option value="bounceInDown" <?php if($wcps_slider_animatein=="bounceInDown")echo "selected"; ?>><?php _e('bounceInDown', wcps_textdomain);?></option>
437
+ <option value="bounceInUp" <?php if($wcps_slider_animatein=="bounceInUp")echo "selected"; ?>><?php _e('bounceInUp', wcps_textdomain);?></option>
438
+
439
+ </select>
440
+
441
+
442
+
443
  </div>
444
  <div class="option-box">
445
  <p class="option-title"><?php _e('Slider Stop on Hover','wcps');?></p>
1366
  }
1367
 
1368
 
1369
+ if(empty($_POST['wcps_rewind'])){
1370
+ $wcps_rewind = '';
1371
+ }
1372
+ else{
1373
+ $wcps_rewind = sanitize_text_field( $_POST['wcps_rewind'] );
1374
+ }
1375
+
1376
+ if(empty($_POST['wcps_loop'])){
1377
+ $wcps_loop = '';
1378
+ }
1379
+ else{
1380
+ $wcps_loop = sanitize_text_field( $_POST['wcps_loop'] );
1381
+ }
1382
+
1383
+ if(empty($_POST['wcps_center'])){
1384
+ $wcps_center = '';
1385
+ }
1386
+ else{
1387
+ $wcps_center = sanitize_text_field( $_POST['wcps_center'] );
1388
+ }
1389
+
1390
+
1391
+ if(empty($_POST['wcps_slider_rtl']))
1392
+ {
1393
+ $wcps_slider_rtl = 'false';
1394
+ }
1395
+ else
1396
+ {
1397
+ $wcps_slider_rtl = sanitize_text_field( $_POST['wcps_slider_rtl'] );
1398
+ }
1399
+
1400
+
1401
+ if(empty($_POST['wcps_slider_animateout']))
1402
+ {
1403
+ $wcps_slider_animateout = 'fadeOut';
1404
+ }
1405
+ else
1406
+ {
1407
+ $wcps_slider_animateout = sanitize_text_field( $_POST['wcps_slider_animateout'] );
1408
+ }
1409
+
1410
+ if(empty($_POST['wcps_slider_animatein']))
1411
+ {
1412
+ $wcps_slider_animatein = 'flipInX';
1413
+ }
1414
+ else
1415
+ {
1416
+ $wcps_slider_animatein = sanitize_text_field( $_POST['wcps_slider_animatein'] );
1417
+ }
1418
+
1419
+
1420
+
1421
  if(empty($_POST['wcps_stop_on_hover']))
1422
  {
1423
  $wcps_stop_on_hover = '';
1613
  update_post_meta( $post_id, 'wcps_column_number_tablet', $wcps_column_number_tablet );
1614
 
1615
  update_post_meta( $post_id, 'wcps_auto_play', $wcps_auto_play );
1616
+ update_post_meta( $post_id, 'wcps_rewind', $wcps_rewind );
1617
+ update_post_meta( $post_id, 'wcps_loop', $wcps_loop );
1618
+ update_post_meta( $post_id, 'wcps_center', $wcps_center );
1619
+
1620
  update_post_meta( $post_id, 'wcps_stop_on_hover', $wcps_stop_on_hover );
1621
  update_post_meta( $post_id, 'wcps_slider_navigation', $wcps_slider_navigation );
1622
  update_post_meta( $post_id, 'wcps_slider_navigation_position', $wcps_slider_navigation_position );
1631
 
1632
  update_post_meta( $post_id, 'wcps_slider_touch_drag', $wcps_slider_touch_drag );
1633
  update_post_meta( $post_id, 'wcps_slider_mouse_drag', $wcps_slider_mouse_drag );
1634
+ update_post_meta( $post_id, 'wcps_slider_rtl', $wcps_slider_rtl );
1635
+ update_post_meta( $post_id, 'wcps_slider_animateout', $wcps_slider_animateout );
1636
+ update_post_meta( $post_id, 'wcps_slider_animatein', $wcps_slider_animatein );
1637
+
1638
 
1639
  update_post_meta( $post_id, 'wcps_content_source', $wcps_content_source );
1640
  update_post_meta( $post_id, 'wcps_content_year', $wcps_content_year );
languages/wcps-bn_BD.mo DELETED
Binary file
languages/wcps-fi.mo DELETED
Binary file
languages/woocommerce-products-slider-bn_BD.mo ADDED
Binary file
languages/{wcps-fi.po → woocommerce-products-slider-bn_BD.po} RENAMED
@@ -1,28 +1,27 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Woocommerce Products Slider\n"
4
- "POT-Creation-Date: 2016-03-15 19:25+0600\n"
5
- "PO-Revision-Date: 2016-03-15 19:25+0600\n"
6
  "Last-Translator: Nur Hasan <public.nurhasan@gmail.com>\n"
7
- "Language-Team: ParaTheme <support@paratheme.com>\n"
8
- "Language: fi\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.7\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
- "X-Poedit-KeywordsList: _e;__\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
  "X-Poedit-SearchPath-1: includes\n"
18
  "X-Poedit-SearchPath-2: templates\n"
19
- "X-Poedit-SearchPath-3: includes/menu\n"
20
 
21
- #: includes/class-functions.php:62 includes/meta.php:812
22
  msgid "Thumbnail"
23
  msgstr ""
24
 
25
- #: includes/class-functions.php:63 includes/meta.php:699
26
  msgid "Title"
27
  msgstr ""
28
 
@@ -30,7 +29,7 @@ msgstr ""
30
  msgid "Excerpt"
31
  msgstr ""
32
 
33
- #: includes/class-functions.php:65 includes/meta.php:823
34
  msgid "Category"
35
  msgstr ""
36
 
@@ -52,15 +51,15 @@ msgstr ""
52
 
53
  #: includes/class-settings.php:21
54
  msgid "Settings"
55
- msgstr "Asetukset"
56
 
57
  #: includes/class-shortcodes.php:143
58
  msgid "No Product to Slide"
59
- msgstr "Ei tuotteita"
60
 
61
- #: includes/functions.php:84 includes/meta.php:293 includes/meta.php:304
62
  msgid "Shortcode"
63
- msgstr "Shortcode"
64
 
65
  #: includes/functions.php:176
66
  msgid "No categories found!"
@@ -68,35 +67,35 @@ msgstr ""
68
 
69
  #: includes/menu/settings.php:36
70
  msgid "Changes Saved."
71
- msgstr "Muutokset tallennettu."
72
 
73
  #: includes/menu/settings.php:56
74
  msgid " Settings"
75
- msgstr "Asetukset"
76
 
77
- #: includes/menu/settings.php:67 includes/meta.php:294
78
  msgid "Options"
79
- msgstr "Vaihtoehdot"
80
 
81
  #: includes/menu/settings.php:68
82
  msgid "Help"
83
- msgstr "Apua"
84
 
85
  #: includes/menu/settings.php:77
86
  msgid "Track product View"
87
  msgstr ""
88
 
89
- #: includes/menu/settings.php:81 includes/meta.php:711 includes/meta.php:840
90
  msgid "No"
91
  msgstr ""
92
 
93
- #: includes/menu/settings.php:82 includes/meta.php:841
94
  msgid "Yes"
95
  msgstr ""
96
 
97
  #: includes/menu/settings.php:95
98
  msgid "Need Help ?"
99
- msgstr "Tarvitsetko apua?"
100
 
101
  #: includes/menu/settings.php:97
102
  msgid ""
@@ -110,7 +109,7 @@ msgstr ""
110
 
111
  #: includes/menu/settings.php:126
112
  msgid "Submit Reviews."
113
- msgstr "Jätä kommentti"
114
 
115
  #: includes/menu/settings.php:128
116
  msgid ""
@@ -121,511 +120,600 @@ msgstr ""
121
 
122
  #: includes/menu/settings.php:139
123
  msgid "Please Share"
124
- msgstr "Jaa tarina"
125
 
126
  #: includes/menu/settings.php:140
127
  msgid "If you like this plugin please share with your social share network."
128
  msgstr ""
129
- "Jos pidät tästä liitännäisestä ja haluat tukea työtäni, ole hyvä ja tee "
130
- "rahalahjoitus. Voit lisäksi lähettää kehitysidean tehdäksesi liitännäisestä "
131
- "vielä paremman."
132
 
133
  #: includes/menu/settings.php:147
134
  msgid "Video Tutorial"
135
- msgstr "Videoesittely"
136
 
137
  #: includes/menu/settings.php:148
138
  msgid "Please watch this video tutorial."
139
- msgstr "Katso video"
140
 
141
  #: includes/menu/settings.php:165
142
  msgid "Save Changes"
143
- msgstr "Tallenna muutokset"
144
 
145
  #: includes/meta.php:13 includes/meta.php:14
146
  msgid "WCPS"
147
- msgstr "WCPS"
148
 
149
  #: includes/meta.php:15 includes/meta.php:16 includes/meta.php:18
150
  msgid "New WCPS"
151
- msgstr "Uusi WCPS"
152
 
153
  #: includes/meta.php:17
154
  msgid "Edit WCPS"
155
- msgstr "Muokkaa WCPS"
156
 
157
  #: includes/meta.php:19
158
  msgid "View WCPS"
159
- msgstr "Katso WCPS"
160
 
161
  #: includes/meta.php:20
162
  msgid "Search WCPS"
163
- msgstr "Etsi WCPS"
164
 
165
  #: includes/meta.php:21
166
  msgid "Nothing found"
167
- msgstr "Ei löydy"
168
 
169
  #: includes/meta.php:22
170
  msgid "Nothing found in Trash"
171
- msgstr "Ei löydy"
172
 
173
  #: includes/meta.php:60
174
  msgid "Woocommerce Products Slider Options"
175
- msgstr "Woocommerce Products Slider Vaihtoehdot"
176
 
177
- #: includes/meta.php:295
178
  msgid "Style"
179
- msgstr "Tyyli"
180
 
181
- #: includes/meta.php:296
182
  msgid "Content"
183
- msgstr "Sisältö"
184
 
185
- #: includes/meta.php:297
186
  msgid "Custom CSS"
187
- msgstr "Oma CSS"
188
 
189
- #: includes/meta.php:306
190
  msgid ""
191
  "Copy this shortcode and paste on page or post where you want to display "
192
  "slider."
193
  msgstr ""
194
- "Kopio lyhytkoodi ja maalaa se sivulle tai artikkeliin jossa haluat näyttää "
195
- "kuvagallerian."
196
 
197
- #: includes/meta.php:308
198
  msgid "Use PHP code to your themes file to display slider."
199
- msgstr "Käytä PHP koodia teemasi tiedostossa näyttääksesi kuvagalleria."
200
 
201
- #: includes/meta.php:321
202
  msgid "Slider Total Items"
203
  msgstr ""
204
 
205
- #: includes/meta.php:322
206
  msgid "ex: 10"
207
  msgstr ""
208
 
209
- #: includes/meta.php:327
210
  msgid "Slider Column Number"
211
  msgstr ""
212
 
213
- #: includes/meta.php:329
214
  msgid "In Destop: (min:1000px and max)"
215
  msgstr ""
216
 
217
- #: includes/meta.php:332
218
  msgid "In Tablet & Small Desktop: (900px max width)"
219
  msgstr ""
220
 
221
- #: includes/meta.php:335
222
  msgid "In Mobile: (479px max width)"
223
  msgstr ""
224
 
225
- #: includes/meta.php:343
226
  msgid "Slider Auto Play"
227
  msgstr ""
228
 
229
- #: includes/meta.php:348 includes/meta.php:358 includes/meta.php:369
230
- #: includes/meta.php:392 includes/meta.php:407 includes/meta.php:436
231
- #: includes/meta.php:447
 
232
  msgid "True"
233
  msgstr ""
234
 
235
- #: includes/meta.php:349 includes/meta.php:359 includes/meta.php:370
236
- #: includes/meta.php:393 includes/meta.php:406 includes/meta.php:437
237
- #: includes/meta.php:448
 
238
  msgid "False"
239
  msgstr ""
240
 
241
- #: includes/meta.php:354
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
242
  msgid "Slider Stop on Hover"
243
  msgstr ""
244
 
245
- #: includes/meta.php:365
246
  msgid "Slider Navigation"
247
  msgstr ""
248
 
249
- #: includes/meta.php:366
250
  msgid "Slider Navigation at Top"
251
- msgstr "Takaisin kotiin"
252
 
253
- #: includes/meta.php:374
254
  msgid "Slider Navigation Position"
255
  msgstr ""
256
 
257
- #: includes/meta.php:376
258
  msgid "Top Right"
259
  msgstr ""
260
 
261
- #: includes/meta.php:377
262
  msgid "Middle"
263
  msgstr ""
264
 
265
- #: includes/meta.php:378
266
  msgid "Middle fixed"
267
  msgstr ""
268
 
269
- #: includes/meta.php:388
270
  msgid "Slider Pagination"
271
  msgstr ""
272
 
273
- #: includes/meta.php:389
274
  msgid "Slider Pagination at Bottom"
275
  msgstr ""
276
 
277
- #: includes/meta.php:398
278
  msgid "Pagination Background Color"
279
- msgstr "Sivunumeroinnin taustaväri"
280
 
281
- #: includes/meta.php:401
282
  msgid "Pagination Text Color"
283
- msgstr "Sivunumerointi tekstin väri"
284
 
285
- #: includes/meta.php:404
286
  msgid "Pagination Number Counting"
287
  msgstr ""
288
 
289
- #: includes/meta.php:420
290
  msgid "Slide Speed"
291
  msgstr ""
292
 
293
- #: includes/meta.php:425
294
  msgid "Pagination Slide Speed"
295
  msgstr ""
296
 
297
- #: includes/meta.php:431
298
  msgid "Slider Touch Drag Enabled"
299
  msgstr ""
300
 
301
- #: includes/meta.php:443
302
  msgid "Slider Mouse Drag Enabled"
303
  msgstr ""
304
 
305
- #: includes/meta.php:457
306
  msgid "Themes for slider"
307
- msgstr "Teemat"
308
 
309
- #: includes/meta.php:480
310
  msgid "Slider Ribbon"
311
- msgstr "Karusellin nauha"
312
 
313
- #: includes/meta.php:551
314
  msgid "Container options"
315
  msgstr ""
316
 
317
- #: includes/meta.php:552
318
  msgid "Padding: (ex: 10px)"
319
  msgstr ""
320
 
321
- #: includes/meta.php:555
322
  msgid "Background color:"
323
  msgstr ""
324
 
325
- #: includes/meta.php:558
326
  msgid "Background image:"
327
  msgstr ""
328
 
329
- #: includes/meta.php:563
330
  msgid "Clear"
331
  msgstr ""
332
 
333
- #: includes/meta.php:588
334
  msgid "Items Options"
335
  msgstr ""
336
 
337
- #: includes/meta.php:589
338
  msgid "Items Background color"
339
  msgstr ""
340
 
341
- #: includes/meta.php:592
342
  msgid "Items Padding"
343
  msgstr ""
344
 
345
- #: includes/meta.php:604
346
  msgid "Empty Thumbnail"
347
- msgstr "Tyhjä pikkukuva"
348
 
349
- #: includes/meta.php:605
350
  msgid "Custom thumbnail image url"
351
  msgstr ""
352
 
353
- #: includes/meta.php:674
354
  msgid "Query order"
355
- msgstr "Järjestys"
356
 
357
- #: includes/meta.php:677
358
  msgid "Descending"
359
  msgstr ""
360
 
361
- #: includes/meta.php:678
362
  msgid "Ascending "
363
  msgstr ""
364
 
365
- #: includes/meta.php:690
366
  msgid "Query orderBy"
367
  msgstr ""
368
 
369
- #: includes/meta.php:693
370
  msgid "None"
371
  msgstr ""
372
 
373
- #: includes/meta.php:694
374
  msgid "ID"
375
  msgstr ""
376
 
377
- #: includes/meta.php:695
378
  msgid "Date"
379
  msgstr ""
380
 
381
- #: includes/meta.php:696
382
  msgid "Rand"
383
  msgstr ""
384
 
385
- #: includes/meta.php:697
386
  msgid "Comment Count"
387
  msgstr ""
388
 
389
- #: includes/meta.php:698
390
  msgid "Author"
391
  msgstr ""
392
 
393
- #: includes/meta.php:700
394
  msgid "Name"
395
  msgstr ""
396
 
397
- #: includes/meta.php:701
398
  msgid "Type"
399
  msgstr ""
400
 
401
- #: includes/meta.php:708
402
  msgid "Hide out of stock items"
403
  msgstr ""
404
 
405
- #: includes/meta.php:712
406
  msgid "Yes "
407
  msgstr ""
408
 
409
- #: includes/meta.php:721
410
  msgid "Filter Slider Content."
411
  msgstr ""
412
 
413
- #: includes/meta.php:724
414
  msgid "Display from <b>Recent</b> Published"
415
  msgstr ""
416
 
417
- #: includes/meta.php:725
418
  msgid "Slider items will query from recent published product."
419
  msgstr ""
420
 
421
- #: includes/meta.php:728
422
  msgid "Display from <b>Featured</b> Product"
423
  msgstr ""
424
 
425
- #: includes/meta.php:729
426
  msgid "Slider items will query from featured marked product."
427
  msgstr ""
428
 
429
- #: includes/meta.php:732
430
  msgid "Display from Only <b>Year</b>"
431
  msgstr ""
432
 
433
- #: includes/meta.php:734
434
  msgid "Slider items will query from a year."
435
  msgstr ""
436
 
437
- #: includes/meta.php:739
438
  msgid "Display from <b>Month</b>"
439
  msgstr ""
440
 
441
- #: includes/meta.php:740
442
  msgid "Slider items will query from Month of a year."
443
  msgstr ""
444
 
445
- #: includes/meta.php:752
446
  msgid "Items sort."
447
  msgstr ""
448
 
449
- #: includes/meta.php:753
450
  msgid "Click each items to expand."
451
  msgstr ""
452
 
453
- #: includes/meta.php:754
454
  msgid "Reset"
455
  msgstr ""
456
 
457
- #: includes/meta.php:806
458
  msgid "Slider Thumbnail Size"
459
  msgstr ""
460
 
461
- #: includes/meta.php:809
462
  msgid "Full"
463
  msgstr ""
464
 
465
- #: includes/meta.php:810
466
  msgid "Large"
467
  msgstr ""
468
 
469
- #: includes/meta.php:811
470
  msgid "Medium"
471
  msgstr ""
472
 
473
- #: includes/meta.php:819
474
  msgid "Items thumbnail link's to"
475
  msgstr ""
476
 
477
- #: includes/meta.php:822
478
  msgid "Product"
479
  msgstr ""
480
 
481
- #: includes/meta.php:831
482
  msgid "Slider thumb max hieght(px)"
483
  msgstr ""
484
 
485
- #: includes/meta.php:837
486
  msgid "Display Thumbnail Zoom button"
487
  msgstr ""
488
 
489
- #: includes/meta.php:854
490
  msgid "Items Add to cart button Style"
491
  msgstr ""
492
 
493
- #: includes/meta.php:855
494
  msgid "You can hide items Add to cart button on slider."
495
  msgstr ""
496
 
497
- #: includes/meta.php:857
498
  msgid "Default"
499
  msgstr ""
500
 
501
- #: includes/meta.php:858
502
  msgid "Custom"
503
  msgstr ""
504
 
505
- #: includes/meta.php:863
506
  msgid "Add to cart Background Color"
507
  msgstr ""
508
 
509
- #: includes/meta.php:869
510
  msgid "Add to cart Text Color"
511
  msgstr ""
512
 
513
- #: includes/meta.php:875
514
  msgid "Items Cart Text Align"
515
  msgstr ""
516
 
517
- #: includes/meta.php:879 includes/meta.php:932 includes/meta.php:991
518
- #: includes/meta.php:1016 includes/meta.php:1072 includes/meta.php:1114
519
  msgid "Left"
520
  msgstr ""
521
 
522
- #: includes/meta.php:880 includes/meta.php:933 includes/meta.php:992
523
- #: includes/meta.php:1017 includes/meta.php:1073 includes/meta.php:1115
524
  msgid "Right"
525
  msgstr ""
526
 
527
- #: includes/meta.php:881 includes/meta.php:934 includes/meta.php:993
528
- #: includes/meta.php:1018 includes/meta.php:1075 includes/meta.php:1116
529
  msgid "Center"
530
  msgstr ""
531
 
532
- #: includes/meta.php:897
533
  msgid "Sale marker icon url"
534
  msgstr ""
535
 
536
- #: includes/meta.php:916
537
  msgid "Items Title Color"
538
  msgstr ""
539
 
540
- #: includes/meta.php:921
541
  msgid "Items Title Font Size"
542
  msgstr ""
543
 
544
- #: includes/meta.php:928
545
  msgid "Items Title Text Align"
546
  msgstr ""
547
 
548
- #: includes/meta.php:947
549
  msgid "Featured marker icon url"
550
  msgstr ""
551
 
552
- #: includes/meta.php:959
553
  msgid "Price format on slider"
554
  msgstr ""
555
 
556
- #: includes/meta.php:962
557
  msgid "Full Format"
558
  msgstr ""
559
 
560
- #: includes/meta.php:963
561
  msgid "Sale price"
562
  msgstr ""
563
 
564
- #: includes/meta.php:964
565
  msgid "Regular price"
566
  msgstr ""
567
 
568
- #: includes/meta.php:973
569
  msgid "Items Price Color"
570
  msgstr ""
571
 
572
- #: includes/meta.php:979
573
  msgid "Items price Font Size"
574
  msgstr ""
575
 
576
- #: includes/meta.php:987
577
  msgid "Price Text Align"
578
  msgstr ""
579
 
580
- #: includes/meta.php:1012
581
  msgid "Items Rating Text Align"
582
  msgstr ""
583
 
584
- #: includes/meta.php:1025
585
  msgid "Items ratings Font Size"
586
  msgstr ""
587
 
588
- #: includes/meta.php:1032
589
  msgid "Items Ratings Color"
590
  msgstr ""
591
 
592
- #: includes/meta.php:1049
593
  msgid "Excerpt word count"
594
  msgstr ""
595
 
596
- #: includes/meta.php:1055
597
  msgid "Excerpt read more text"
598
- msgstr "Lue lisää "
599
 
600
- #: includes/meta.php:1061
601
  msgid "Items Excerpt Font Size"
602
  msgstr ""
603
 
604
- #: includes/meta.php:1068
605
  msgid "Excerpt Text Align"
606
  msgstr ""
607
 
608
- #: includes/meta.php:1081
609
  msgid "Items Excerpt Font color"
610
  msgstr ""
611
 
612
- #: includes/meta.php:1103
613
  msgid "Items Category Font Size"
614
  msgstr ""
615
 
616
- #: includes/meta.php:1110
617
  msgid "Category Text Align"
618
  msgstr ""
619
 
620
- #: includes/meta.php:1125
621
  msgid "Items Category Font color"
622
  msgstr ""
623
 
624
- #: includes/meta.php:1180
625
  msgid "Custom CSS for this slider."
626
  msgstr ""
627
 
628
- #: includes/meta.php:1181
629
  msgid ""
630
  "Do not use &lt;style>&lt;/style> tag, you can use bellow prefix to your css, "
631
  "sometime you need use \"!important\" to overrid."
@@ -633,56 +721,12 @@ msgstr ""
633
 
634
  #: templates/wcps-featured.php:22
635
  msgid "Featured Product"
636
- msgstr "Erikoistuotteet"
637
 
638
  #: templates/wcps-rating.php:41
639
  msgid "Rated"
640
- msgstr "Arvostelu"
641
 
642
  #: templates/wcps-sale.php:19
643
  msgid "Sale Product"
644
- msgstr "Alennustuote"
645
-
646
- #~ msgid "Active"
647
- #~ msgstr "Aktiivi"
648
-
649
- #~ msgid "Inactive"
650
- #~ msgstr "Ei aktiivi"
651
-
652
- #~ msgid "Items category display"
653
- #~ msgstr "Kategoria arkisto"
654
-
655
- #~ msgid "Background Image"
656
- #~ msgstr "Taustakuva"
657
-
658
- #~ msgid "Category:"
659
- #~ msgstr "Kategoria:"
660
-
661
- #~ msgid "Price: "
662
- #~ msgstr "Hinta: "
663
-
664
- #~ msgid "Submit Reviews"
665
- #~ msgstr "Jätä kommentti"
666
-
667
- #~ msgid ""
668
- #~ "We are working hard to build some awesome plugins for you and spend "
669
- #~ "thousand hour for plugins. we wish your three(3) minute by submitting "
670
- #~ "five star reviews at wordpress.org. if you have any issue please submit "
671
- #~ "at forum."
672
- #~ msgstr ""
673
- #~ "Pyrimme rakentamaan joitakin mahtavia plugins sinulle ja viettää tuhat "
674
- #~ "tunnissa lisäosia. haluamme teidän kolmen (3) minuutin esittämällä viiden "
675
- #~ "tähden tarkasteluihin wordpress.org. jos sinulla on kysymys lähetä Forum."
676
-
677
- #~ msgid ""
678
- #~ "Copy this shortcode and paste on page or post where you want to display "
679
- #~ "slider. "
680
- #~ msgstr ""
681
- #~ "Kopio lyhytkoodi ja maalaa se sivulle tai artikkeliin jossa haluat "
682
- #~ "näyttää kuvagallerian."
683
-
684
- #~ msgid "Themes"
685
- #~ msgstr "Teemat"
686
-
687
- #~ msgid "Price:"
688
- #~ msgstr "Hinta:"
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Woocommerce Products Slider\n"
4
+ "POT-Creation-Date: 2016-11-17 09:54+0600\n"
5
+ "PO-Revision-Date: 2016-11-17 09:54+0600\n"
6
  "Last-Translator: Nur Hasan <public.nurhasan@gmail.com>\n"
7
+ "Language-Team: PickPlugins <support@pickplugins.com>\n"
8
+ "Language: bn_BD\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.9\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
+ "X-Poedit-KeywordsList: __;_e\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
  "X-Poedit-SearchPath-1: includes\n"
18
  "X-Poedit-SearchPath-2: templates\n"
 
19
 
20
+ #: includes/class-functions.php:62 includes/meta.php:903
21
  msgid "Thumbnail"
22
  msgstr ""
23
 
24
+ #: includes/class-functions.php:63 includes/meta.php:790
25
  msgid "Title"
26
  msgstr ""
27
 
29
  msgid "Excerpt"
30
  msgstr ""
31
 
32
+ #: includes/class-functions.php:65 includes/meta.php:914
33
  msgid "Category"
34
  msgstr ""
35
 
51
 
52
  #: includes/class-settings.php:21
53
  msgid "Settings"
54
+ msgstr ""
55
 
56
  #: includes/class-shortcodes.php:143
57
  msgid "No Product to Slide"
58
+ msgstr ""
59
 
60
+ #: includes/functions.php:84 includes/meta.php:299 includes/meta.php:310
61
  msgid "Shortcode"
62
+ msgstr ""
63
 
64
  #: includes/functions.php:176
65
  msgid "No categories found!"
67
 
68
  #: includes/menu/settings.php:36
69
  msgid "Changes Saved."
70
+ msgstr ""
71
 
72
  #: includes/menu/settings.php:56
73
  msgid " Settings"
74
+ msgstr ""
75
 
76
+ #: includes/menu/settings.php:67 includes/meta.php:300
77
  msgid "Options"
78
+ msgstr ""
79
 
80
  #: includes/menu/settings.php:68
81
  msgid "Help"
82
+ msgstr ""
83
 
84
  #: includes/menu/settings.php:77
85
  msgid "Track product View"
86
  msgstr ""
87
 
88
+ #: includes/menu/settings.php:81 includes/meta.php:802 includes/meta.php:931
89
  msgid "No"
90
  msgstr ""
91
 
92
+ #: includes/menu/settings.php:82 includes/meta.php:932
93
  msgid "Yes"
94
  msgstr ""
95
 
96
  #: includes/menu/settings.php:95
97
  msgid "Need Help ?"
98
+ msgstr ""
99
 
100
  #: includes/menu/settings.php:97
101
  msgid ""
109
 
110
  #: includes/menu/settings.php:126
111
  msgid "Submit Reviews."
112
+ msgstr ""
113
 
114
  #: includes/menu/settings.php:128
115
  msgid ""
120
 
121
  #: includes/menu/settings.php:139
122
  msgid "Please Share"
123
+ msgstr ""
124
 
125
  #: includes/menu/settings.php:140
126
  msgid "If you like this plugin please share with your social share network."
127
  msgstr ""
 
 
 
128
 
129
  #: includes/menu/settings.php:147
130
  msgid "Video Tutorial"
131
+ msgstr ""
132
 
133
  #: includes/menu/settings.php:148
134
  msgid "Please watch this video tutorial."
135
+ msgstr ""
136
 
137
  #: includes/menu/settings.php:165
138
  msgid "Save Changes"
139
+ msgstr ""
140
 
141
  #: includes/meta.php:13 includes/meta.php:14
142
  msgid "WCPS"
143
+ msgstr ""
144
 
145
  #: includes/meta.php:15 includes/meta.php:16 includes/meta.php:18
146
  msgid "New WCPS"
147
+ msgstr ""
148
 
149
  #: includes/meta.php:17
150
  msgid "Edit WCPS"
151
+ msgstr ""
152
 
153
  #: includes/meta.php:19
154
  msgid "View WCPS"
155
+ msgstr ""
156
 
157
  #: includes/meta.php:20
158
  msgid "Search WCPS"
159
+ msgstr ""
160
 
161
  #: includes/meta.php:21
162
  msgid "Nothing found"
163
+ msgstr ""
164
 
165
  #: includes/meta.php:22
166
  msgid "Nothing found in Trash"
167
+ msgstr ""
168
 
169
  #: includes/meta.php:60
170
  msgid "Woocommerce Products Slider Options"
171
+ msgstr ""
172
 
173
+ #: includes/meta.php:301
174
  msgid "Style"
175
+ msgstr ""
176
 
177
+ #: includes/meta.php:302
178
  msgid "Content"
179
+ msgstr ""
180
 
181
+ #: includes/meta.php:303
182
  msgid "Custom CSS"
183
+ msgstr ""
184
 
185
+ #: includes/meta.php:312
186
  msgid ""
187
  "Copy this shortcode and paste on page or post where you want to display "
188
  "slider."
189
  msgstr ""
 
 
190
 
191
+ #: includes/meta.php:314
192
  msgid "Use PHP code to your themes file to display slider."
193
+ msgstr ""
194
 
195
+ #: includes/meta.php:327
196
  msgid "Slider Total Items"
197
  msgstr ""
198
 
199
+ #: includes/meta.php:328
200
  msgid "ex: 10"
201
  msgstr ""
202
 
203
+ #: includes/meta.php:333
204
  msgid "Slider Column Number"
205
  msgstr ""
206
 
207
+ #: includes/meta.php:335
208
  msgid "In Destop: (min:1000px and max)"
209
  msgstr ""
210
 
211
+ #: includes/meta.php:338
212
  msgid "In Tablet & Small Desktop: (900px max width)"
213
  msgstr ""
214
 
215
+ #: includes/meta.php:341
216
  msgid "In Mobile: (479px max width)"
217
  msgstr ""
218
 
219
+ #: includes/meta.php:349
220
  msgid "Slider Auto Play"
221
  msgstr ""
222
 
223
+ #: includes/meta.php:354 includes/meta.php:360 includes/meta.php:366
224
+ #: includes/meta.php:372 includes/meta.php:380 includes/meta.php:449
225
+ #: includes/meta.php:460 includes/meta.php:483 includes/meta.php:498
226
+ #: includes/meta.php:527 includes/meta.php:538
227
  msgid "True"
228
  msgstr ""
229
 
230
+ #: includes/meta.php:355 includes/meta.php:361 includes/meta.php:367
231
+ #: includes/meta.php:373 includes/meta.php:379 includes/meta.php:450
232
+ #: includes/meta.php:461 includes/meta.php:484 includes/meta.php:497
233
+ #: includes/meta.php:528 includes/meta.php:539
234
  msgid "False"
235
  msgstr ""
236
 
237
+ #: includes/meta.php:358
238
+ msgid "Slider rewind"
239
+ msgstr ""
240
+
241
+ #: includes/meta.php:364
242
+ msgid "Slider loop"
243
+ msgstr ""
244
+
245
+ #: includes/meta.php:370
246
+ msgid "Slider center"
247
+ msgstr ""
248
+
249
+ #: includes/meta.php:376
250
+ msgid "RTL Enabled"
251
+ msgstr ""
252
+
253
+ #: includes/meta.php:386
254
+ msgid "Animate Out"
255
+ msgstr ""
256
+
257
+ #: includes/meta.php:389 includes/meta.php:420
258
+ msgid "fadeOut"
259
+ msgstr ""
260
+
261
+ #: includes/meta.php:390 includes/meta.php:421
262
+ msgid "bounce"
263
+ msgstr ""
264
+
265
+ #: includes/meta.php:391 includes/meta.php:422
266
+ msgid "flash"
267
+ msgstr ""
268
+
269
+ #: includes/meta.php:392 includes/meta.php:423
270
+ msgid "pulse"
271
+ msgstr ""
272
+
273
+ #: includes/meta.php:395 includes/meta.php:425
274
+ msgid "Shake"
275
+ msgstr ""
276
+
277
+ #: includes/meta.php:396 includes/meta.php:426
278
+ msgid "Swing"
279
+ msgstr ""
280
+
281
+ #: includes/meta.php:397 includes/meta.php:427
282
+ msgid "Tada"
283
+ msgstr ""
284
+
285
+ #: includes/meta.php:398 includes/meta.php:428
286
+ msgid "Wobble"
287
+ msgstr ""
288
+
289
+ #: includes/meta.php:399 includes/meta.php:429
290
+ msgid "flip"
291
+ msgstr ""
292
+
293
+ #: includes/meta.php:400 includes/meta.php:430
294
+ msgid "flipInX"
295
+ msgstr ""
296
+
297
+ #: includes/meta.php:401 includes/meta.php:431
298
+ msgid "flipInY"
299
+ msgstr ""
300
+
301
+ #: includes/meta.php:402 includes/meta.php:432
302
+ msgid "fadeIn"
303
+ msgstr ""
304
+
305
+ #: includes/meta.php:403 includes/meta.php:433
306
+ msgid "fadeInDown"
307
+ msgstr ""
308
+
309
+ #: includes/meta.php:404 includes/meta.php:434
310
+ msgid "fadeInUp"
311
+ msgstr ""
312
+
313
+ #: includes/meta.php:405 includes/meta.php:435
314
+ msgid "bounceIn"
315
+ msgstr ""
316
+
317
+ #: includes/meta.php:406 includes/meta.php:436
318
+ msgid "bounceInDown"
319
+ msgstr ""
320
+
321
+ #: includes/meta.php:407 includes/meta.php:437
322
+ msgid "bounceInUp"
323
+ msgstr ""
324
+
325
+ #: includes/meta.php:417
326
+ msgid "Animate In"
327
+ msgstr ""
328
+
329
+ #: includes/meta.php:445
330
  msgid "Slider Stop on Hover"
331
  msgstr ""
332
 
333
+ #: includes/meta.php:456
334
  msgid "Slider Navigation"
335
  msgstr ""
336
 
337
+ #: includes/meta.php:457
338
  msgid "Slider Navigation at Top"
339
+ msgstr ""
340
 
341
+ #: includes/meta.php:465
342
  msgid "Slider Navigation Position"
343
  msgstr ""
344
 
345
+ #: includes/meta.php:467
346
  msgid "Top Right"
347
  msgstr ""
348
 
349
+ #: includes/meta.php:468
350
  msgid "Middle"
351
  msgstr ""
352
 
353
+ #: includes/meta.php:469
354
  msgid "Middle fixed"
355
  msgstr ""
356
 
357
+ #: includes/meta.php:479
358
  msgid "Slider Pagination"
359
  msgstr ""
360
 
361
+ #: includes/meta.php:480
362
  msgid "Slider Pagination at Bottom"
363
  msgstr ""
364
 
365
+ #: includes/meta.php:489
366
  msgid "Pagination Background Color"
367
+ msgstr ""
368
 
369
+ #: includes/meta.php:492
370
  msgid "Pagination Text Color"
371
+ msgstr ""
372
 
373
+ #: includes/meta.php:495
374
  msgid "Pagination Number Counting"
375
  msgstr ""
376
 
377
+ #: includes/meta.php:511
378
  msgid "Slide Speed"
379
  msgstr ""
380
 
381
+ #: includes/meta.php:516
382
  msgid "Pagination Slide Speed"
383
  msgstr ""
384
 
385
+ #: includes/meta.php:522
386
  msgid "Slider Touch Drag Enabled"
387
  msgstr ""
388
 
389
+ #: includes/meta.php:534
390
  msgid "Slider Mouse Drag Enabled"
391
  msgstr ""
392
 
393
+ #: includes/meta.php:548
394
  msgid "Themes for slider"
395
+ msgstr ""
396
 
397
+ #: includes/meta.php:571
398
  msgid "Slider Ribbon"
399
+ msgstr ""
400
 
401
+ #: includes/meta.php:642
402
  msgid "Container options"
403
  msgstr ""
404
 
405
+ #: includes/meta.php:643
406
  msgid "Padding: (ex: 10px)"
407
  msgstr ""
408
 
409
+ #: includes/meta.php:646
410
  msgid "Background color:"
411
  msgstr ""
412
 
413
+ #: includes/meta.php:649
414
  msgid "Background image:"
415
  msgstr ""
416
 
417
+ #: includes/meta.php:654
418
  msgid "Clear"
419
  msgstr ""
420
 
421
+ #: includes/meta.php:679
422
  msgid "Items Options"
423
  msgstr ""
424
 
425
+ #: includes/meta.php:680
426
  msgid "Items Background color"
427
  msgstr ""
428
 
429
+ #: includes/meta.php:683
430
  msgid "Items Padding"
431
  msgstr ""
432
 
433
+ #: includes/meta.php:695
434
  msgid "Empty Thumbnail"
435
+ msgstr ""
436
 
437
+ #: includes/meta.php:696
438
  msgid "Custom thumbnail image url"
439
  msgstr ""
440
 
441
+ #: includes/meta.php:765
442
  msgid "Query order"
443
+ msgstr ""
444
 
445
+ #: includes/meta.php:768
446
  msgid "Descending"
447
  msgstr ""
448
 
449
+ #: includes/meta.php:769
450
  msgid "Ascending "
451
  msgstr ""
452
 
453
+ #: includes/meta.php:781
454
  msgid "Query orderBy"
455
  msgstr ""
456
 
457
+ #: includes/meta.php:784
458
  msgid "None"
459
  msgstr ""
460
 
461
+ #: includes/meta.php:785
462
  msgid "ID"
463
  msgstr ""
464
 
465
+ #: includes/meta.php:786
466
  msgid "Date"
467
  msgstr ""
468
 
469
+ #: includes/meta.php:787
470
  msgid "Rand"
471
  msgstr ""
472
 
473
+ #: includes/meta.php:788
474
  msgid "Comment Count"
475
  msgstr ""
476
 
477
+ #: includes/meta.php:789
478
  msgid "Author"
479
  msgstr ""
480
 
481
+ #: includes/meta.php:791
482
  msgid "Name"
483
  msgstr ""
484
 
485
+ #: includes/meta.php:792
486
  msgid "Type"
487
  msgstr ""
488
 
489
+ #: includes/meta.php:799
490
  msgid "Hide out of stock items"
491
  msgstr ""
492
 
493
+ #: includes/meta.php:803
494
  msgid "Yes "
495
  msgstr ""
496
 
497
+ #: includes/meta.php:812
498
  msgid "Filter Slider Content."
499
  msgstr ""
500
 
501
+ #: includes/meta.php:815
502
  msgid "Display from <b>Recent</b> Published"
503
  msgstr ""
504
 
505
+ #: includes/meta.php:816
506
  msgid "Slider items will query from recent published product."
507
  msgstr ""
508
 
509
+ #: includes/meta.php:819
510
  msgid "Display from <b>Featured</b> Product"
511
  msgstr ""
512
 
513
+ #: includes/meta.php:820
514
  msgid "Slider items will query from featured marked product."
515
  msgstr ""
516
 
517
+ #: includes/meta.php:823
518
  msgid "Display from Only <b>Year</b>"
519
  msgstr ""
520
 
521
+ #: includes/meta.php:825
522
  msgid "Slider items will query from a year."
523
  msgstr ""
524
 
525
+ #: includes/meta.php:830
526
  msgid "Display from <b>Month</b>"
527
  msgstr ""
528
 
529
+ #: includes/meta.php:831
530
  msgid "Slider items will query from Month of a year."
531
  msgstr ""
532
 
533
+ #: includes/meta.php:843
534
  msgid "Items sort."
535
  msgstr ""
536
 
537
+ #: includes/meta.php:844
538
  msgid "Click each items to expand."
539
  msgstr ""
540
 
541
+ #: includes/meta.php:845
542
  msgid "Reset"
543
  msgstr ""
544
 
545
+ #: includes/meta.php:897
546
  msgid "Slider Thumbnail Size"
547
  msgstr ""
548
 
549
+ #: includes/meta.php:900
550
  msgid "Full"
551
  msgstr ""
552
 
553
+ #: includes/meta.php:901
554
  msgid "Large"
555
  msgstr ""
556
 
557
+ #: includes/meta.php:902
558
  msgid "Medium"
559
  msgstr ""
560
 
561
+ #: includes/meta.php:910
562
  msgid "Items thumbnail link's to"
563
  msgstr ""
564
 
565
+ #: includes/meta.php:913
566
  msgid "Product"
567
  msgstr ""
568
 
569
+ #: includes/meta.php:922
570
  msgid "Slider thumb max hieght(px)"
571
  msgstr ""
572
 
573
+ #: includes/meta.php:928
574
  msgid "Display Thumbnail Zoom button"
575
  msgstr ""
576
 
577
+ #: includes/meta.php:945
578
  msgid "Items Add to cart button Style"
579
  msgstr ""
580
 
581
+ #: includes/meta.php:946
582
  msgid "You can hide items Add to cart button on slider."
583
  msgstr ""
584
 
585
+ #: includes/meta.php:948
586
  msgid "Default"
587
  msgstr ""
588
 
589
+ #: includes/meta.php:949
590
  msgid "Custom"
591
  msgstr ""
592
 
593
+ #: includes/meta.php:954
594
  msgid "Add to cart Background Color"
595
  msgstr ""
596
 
597
+ #: includes/meta.php:960
598
  msgid "Add to cart Text Color"
599
  msgstr ""
600
 
601
+ #: includes/meta.php:966
602
  msgid "Items Cart Text Align"
603
  msgstr ""
604
 
605
+ #: includes/meta.php:970 includes/meta.php:1023 includes/meta.php:1082
606
+ #: includes/meta.php:1107 includes/meta.php:1163 includes/meta.php:1205
607
  msgid "Left"
608
  msgstr ""
609
 
610
+ #: includes/meta.php:971 includes/meta.php:1024 includes/meta.php:1083
611
+ #: includes/meta.php:1108 includes/meta.php:1164 includes/meta.php:1206
612
  msgid "Right"
613
  msgstr ""
614
 
615
+ #: includes/meta.php:972 includes/meta.php:1025 includes/meta.php:1084
616
+ #: includes/meta.php:1109 includes/meta.php:1166 includes/meta.php:1207
617
  msgid "Center"
618
  msgstr ""
619
 
620
+ #: includes/meta.php:988
621
  msgid "Sale marker icon url"
622
  msgstr ""
623
 
624
+ #: includes/meta.php:1007
625
  msgid "Items Title Color"
626
  msgstr ""
627
 
628
+ #: includes/meta.php:1012
629
  msgid "Items Title Font Size"
630
  msgstr ""
631
 
632
+ #: includes/meta.php:1019
633
  msgid "Items Title Text Align"
634
  msgstr ""
635
 
636
+ #: includes/meta.php:1038
637
  msgid "Featured marker icon url"
638
  msgstr ""
639
 
640
+ #: includes/meta.php:1050
641
  msgid "Price format on slider"
642
  msgstr ""
643
 
644
+ #: includes/meta.php:1053
645
  msgid "Full Format"
646
  msgstr ""
647
 
648
+ #: includes/meta.php:1054
649
  msgid "Sale price"
650
  msgstr ""
651
 
652
+ #: includes/meta.php:1055
653
  msgid "Regular price"
654
  msgstr ""
655
 
656
+ #: includes/meta.php:1064
657
  msgid "Items Price Color"
658
  msgstr ""
659
 
660
+ #: includes/meta.php:1070
661
  msgid "Items price Font Size"
662
  msgstr ""
663
 
664
+ #: includes/meta.php:1078
665
  msgid "Price Text Align"
666
  msgstr ""
667
 
668
+ #: includes/meta.php:1103
669
  msgid "Items Rating Text Align"
670
  msgstr ""
671
 
672
+ #: includes/meta.php:1116
673
  msgid "Items ratings Font Size"
674
  msgstr ""
675
 
676
+ #: includes/meta.php:1123
677
  msgid "Items Ratings Color"
678
  msgstr ""
679
 
680
+ #: includes/meta.php:1140
681
  msgid "Excerpt word count"
682
  msgstr ""
683
 
684
+ #: includes/meta.php:1146
685
  msgid "Excerpt read more text"
686
+ msgstr ""
687
 
688
+ #: includes/meta.php:1152
689
  msgid "Items Excerpt Font Size"
690
  msgstr ""
691
 
692
+ #: includes/meta.php:1159
693
  msgid "Excerpt Text Align"
694
  msgstr ""
695
 
696
+ #: includes/meta.php:1172
697
  msgid "Items Excerpt Font color"
698
  msgstr ""
699
 
700
+ #: includes/meta.php:1194
701
  msgid "Items Category Font Size"
702
  msgstr ""
703
 
704
+ #: includes/meta.php:1201
705
  msgid "Category Text Align"
706
  msgstr ""
707
 
708
+ #: includes/meta.php:1216
709
  msgid "Items Category Font color"
710
  msgstr ""
711
 
712
+ #: includes/meta.php:1271
713
  msgid "Custom CSS for this slider."
714
  msgstr ""
715
 
716
+ #: includes/meta.php:1272
717
  msgid ""
718
  "Do not use &lt;style>&lt;/style> tag, you can use bellow prefix to your css, "
719
  "sometime you need use \"!important\" to overrid."
721
 
722
  #: templates/wcps-featured.php:22
723
  msgid "Featured Product"
724
+ msgstr ""
725
 
726
  #: templates/wcps-rating.php:41
727
  msgid "Rated"
728
+ msgstr ""
729
 
730
  #: templates/wcps-sale.php:19
731
  msgid "Sale Product"
732
+ msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/woocommerce-products-slider-fi.mo ADDED
Binary file
languages/{wcps-bn_BD.po → woocommerce-products-slider-fi.po} RENAMED
@@ -1,15 +1,15 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Woocommerce Products Slider\n"
4
- "POT-Creation-Date: 2016-03-15 19:26+0600\n"
5
- "PO-Revision-Date: 2016-03-15 19:26+0600\n"
6
  "Last-Translator: Nur Hasan <public.nurhasan@gmail.com>\n"
7
  "Language-Team: PickPlugins <support@pickplugins.com>\n"
8
- "Language: en\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.7\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-KeywordsList: __;_e\n"
@@ -17,33 +17,33 @@ msgstr ""
17
  "X-Poedit-SearchPath-1: includes\n"
18
  "X-Poedit-SearchPath-2: templates\n"
19
 
20
- #: includes/class-functions.php:62 includes/meta.php:812
21
  msgid "Thumbnail"
22
  msgstr ""
23
 
24
- #: includes/class-functions.php:63 includes/meta.php:699
25
  msgid "Title"
26
- msgstr "টাইটেল"
27
 
28
  #: includes/class-functions.php:64
29
  msgid "Excerpt"
30
  msgstr ""
31
 
32
- #: includes/class-functions.php:65 includes/meta.php:823
33
  msgid "Category"
34
- msgstr "ক্যাটেগোরী"
35
 
36
  #: includes/class-functions.php:66
37
  msgid "Price"
38
- msgstr "মুল্য"
39
 
40
  #: includes/class-functions.php:67
41
  msgid "Rating"
42
- msgstr "রেটিং"
43
 
44
  #: includes/class-functions.php:68
45
  msgid "Cart"
46
- msgstr "কার্ট"
47
 
48
  #: includes/class-functions.php:69
49
  msgid "Sale"
@@ -51,13 +51,13 @@ msgstr ""
51
 
52
  #: includes/class-settings.php:21
53
  msgid "Settings"
54
- msgstr "সেটিংস"
55
 
56
  #: includes/class-shortcodes.php:143
57
  msgid "No Product to Slide"
58
  msgstr ""
59
 
60
- #: includes/functions.php:84 includes/meta.php:293 includes/meta.php:304
61
  msgid "Shortcode"
62
  msgstr ""
63
 
@@ -73,7 +73,7 @@ msgstr ""
73
  msgid " Settings"
74
  msgstr ""
75
 
76
- #: includes/menu/settings.php:67 includes/meta.php:294
77
  msgid "Options"
78
  msgstr ""
79
 
@@ -85,11 +85,11 @@ msgstr ""
85
  msgid "Track product View"
86
  msgstr ""
87
 
88
- #: includes/menu/settings.php:81 includes/meta.php:711 includes/meta.php:840
89
  msgid "No"
90
  msgstr ""
91
 
92
- #: includes/menu/settings.php:82 includes/meta.php:841
93
  msgid "Yes"
94
  msgstr ""
95
 
@@ -170,456 +170,550 @@ msgstr ""
170
  msgid "Woocommerce Products Slider Options"
171
  msgstr ""
172
 
173
- #: includes/meta.php:295
174
  msgid "Style"
175
  msgstr ""
176
 
177
- #: includes/meta.php:296
178
  msgid "Content"
179
  msgstr ""
180
 
181
- #: includes/meta.php:297
182
  msgid "Custom CSS"
183
  msgstr ""
184
 
185
- #: includes/meta.php:306
186
  msgid ""
187
  "Copy this shortcode and paste on page or post where you want to display "
188
  "slider."
189
  msgstr ""
190
 
191
- #: includes/meta.php:308
192
  msgid "Use PHP code to your themes file to display slider."
193
  msgstr ""
194
 
195
- #: includes/meta.php:321
196
  msgid "Slider Total Items"
197
- msgstr "সর্বমোট কতটি পন্য দেখাবেন "
198
 
199
- #: includes/meta.php:322
200
  msgid "ex: 10"
201
- msgstr "উদাহরনঃ ১০"
202
 
203
- #: includes/meta.php:327
204
  msgid "Slider Column Number"
205
  msgstr ""
206
 
207
- #: includes/meta.php:329
208
  msgid "In Destop: (min:1000px and max)"
209
  msgstr ""
210
 
211
- #: includes/meta.php:332
212
  msgid "In Tablet & Small Desktop: (900px max width)"
213
  msgstr ""
214
 
215
- #: includes/meta.php:335
216
  msgid "In Mobile: (479px max width)"
217
  msgstr ""
218
 
219
- #: includes/meta.php:343
220
  msgid "Slider Auto Play"
221
  msgstr ""
222
 
223
- #: includes/meta.php:348 includes/meta.php:358 includes/meta.php:369
224
- #: includes/meta.php:392 includes/meta.php:407 includes/meta.php:436
225
- #: includes/meta.php:447
 
226
  msgid "True"
227
  msgstr ""
228
 
229
- #: includes/meta.php:349 includes/meta.php:359 includes/meta.php:370
230
- #: includes/meta.php:393 includes/meta.php:406 includes/meta.php:437
231
- #: includes/meta.php:448
 
232
  msgid "False"
233
  msgstr ""
234
 
235
- #: includes/meta.php:354
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  msgid "Slider Stop on Hover"
237
  msgstr ""
238
 
239
- #: includes/meta.php:365
240
  msgid "Slider Navigation"
241
  msgstr ""
242
 
243
- #: includes/meta.php:366
244
  msgid "Slider Navigation at Top"
245
  msgstr ""
246
 
247
- #: includes/meta.php:374
248
  msgid "Slider Navigation Position"
249
  msgstr ""
250
 
251
- #: includes/meta.php:376
252
  msgid "Top Right"
253
  msgstr ""
254
 
255
- #: includes/meta.php:377
256
  msgid "Middle"
257
  msgstr ""
258
 
259
- #: includes/meta.php:378
260
  msgid "Middle fixed"
261
  msgstr ""
262
 
263
- #: includes/meta.php:388
264
  msgid "Slider Pagination"
265
  msgstr ""
266
 
267
- #: includes/meta.php:389
268
  msgid "Slider Pagination at Bottom"
269
  msgstr ""
270
 
271
- #: includes/meta.php:398
272
  msgid "Pagination Background Color"
273
  msgstr ""
274
 
275
- #: includes/meta.php:401
276
  msgid "Pagination Text Color"
277
  msgstr ""
278
 
279
- #: includes/meta.php:404
280
  msgid "Pagination Number Counting"
281
  msgstr ""
282
 
283
- #: includes/meta.php:420
284
  msgid "Slide Speed"
285
  msgstr ""
286
 
287
- #: includes/meta.php:425
288
  msgid "Pagination Slide Speed"
289
  msgstr ""
290
 
291
- #: includes/meta.php:431
292
  msgid "Slider Touch Drag Enabled"
293
  msgstr ""
294
 
295
- #: includes/meta.php:443
296
  msgid "Slider Mouse Drag Enabled"
297
  msgstr ""
298
 
299
- #: includes/meta.php:457
300
  msgid "Themes for slider"
301
  msgstr ""
302
 
303
- #: includes/meta.php:480
304
  msgid "Slider Ribbon"
305
  msgstr ""
306
 
307
- #: includes/meta.php:551
308
  msgid "Container options"
309
  msgstr ""
310
 
311
- #: includes/meta.php:552
312
  msgid "Padding: (ex: 10px)"
313
  msgstr ""
314
 
315
- #: includes/meta.php:555
316
  msgid "Background color:"
317
  msgstr ""
318
 
319
- #: includes/meta.php:558
320
  msgid "Background image:"
321
  msgstr ""
322
 
323
- #: includes/meta.php:563
324
  msgid "Clear"
325
  msgstr ""
326
 
327
- #: includes/meta.php:588
328
  msgid "Items Options"
329
  msgstr ""
330
 
331
- #: includes/meta.php:589
332
  msgid "Items Background color"
333
  msgstr ""
334
 
335
- #: includes/meta.php:592
336
  msgid "Items Padding"
337
  msgstr ""
338
 
339
- #: includes/meta.php:604
340
  msgid "Empty Thumbnail"
341
  msgstr ""
342
 
343
- #: includes/meta.php:605
344
  msgid "Custom thumbnail image url"
345
  msgstr ""
346
 
347
- #: includes/meta.php:674
348
  msgid "Query order"
349
  msgstr ""
350
 
351
- #: includes/meta.php:677
352
  msgid "Descending"
353
  msgstr ""
354
 
355
- #: includes/meta.php:678
356
  msgid "Ascending "
357
  msgstr ""
358
 
359
- #: includes/meta.php:690
360
  msgid "Query orderBy"
361
  msgstr ""
362
 
363
- #: includes/meta.php:693
364
  msgid "None"
365
  msgstr ""
366
 
367
- #: includes/meta.php:694
368
  msgid "ID"
369
  msgstr ""
370
 
371
- #: includes/meta.php:695
372
  msgid "Date"
373
  msgstr ""
374
 
375
- #: includes/meta.php:696
376
  msgid "Rand"
377
  msgstr ""
378
 
379
- #: includes/meta.php:697
380
  msgid "Comment Count"
381
  msgstr ""
382
 
383
- #: includes/meta.php:698
384
  msgid "Author"
385
  msgstr ""
386
 
387
- #: includes/meta.php:700
388
  msgid "Name"
389
  msgstr ""
390
 
391
- #: includes/meta.php:701
392
  msgid "Type"
393
  msgstr ""
394
 
395
- #: includes/meta.php:708
396
  msgid "Hide out of stock items"
397
  msgstr ""
398
 
399
- #: includes/meta.php:712
400
  msgid "Yes "
401
  msgstr ""
402
 
403
- #: includes/meta.php:721
404
  msgid "Filter Slider Content."
405
  msgstr ""
406
 
407
- #: includes/meta.php:724
408
  msgid "Display from <b>Recent</b> Published"
409
  msgstr ""
410
 
411
- #: includes/meta.php:725
412
  msgid "Slider items will query from recent published product."
413
  msgstr ""
414
 
415
- #: includes/meta.php:728
416
  msgid "Display from <b>Featured</b> Product"
417
  msgstr ""
418
 
419
- #: includes/meta.php:729
420
  msgid "Slider items will query from featured marked product."
421
  msgstr ""
422
 
423
- #: includes/meta.php:732
424
  msgid "Display from Only <b>Year</b>"
425
  msgstr ""
426
 
427
- #: includes/meta.php:734
428
  msgid "Slider items will query from a year."
429
  msgstr ""
430
 
431
- #: includes/meta.php:739
432
  msgid "Display from <b>Month</b>"
433
  msgstr ""
434
 
435
- #: includes/meta.php:740
436
  msgid "Slider items will query from Month of a year."
437
  msgstr ""
438
 
439
- #: includes/meta.php:752
440
  msgid "Items sort."
441
  msgstr ""
442
 
443
- #: includes/meta.php:753
444
  msgid "Click each items to expand."
445
  msgstr ""
446
 
447
- #: includes/meta.php:754
448
  msgid "Reset"
449
  msgstr ""
450
 
451
- #: includes/meta.php:806
452
  msgid "Slider Thumbnail Size"
453
  msgstr ""
454
 
455
- #: includes/meta.php:809
456
  msgid "Full"
457
  msgstr ""
458
 
459
- #: includes/meta.php:810
460
  msgid "Large"
461
  msgstr ""
462
 
463
- #: includes/meta.php:811
464
  msgid "Medium"
465
  msgstr ""
466
 
467
- #: includes/meta.php:819
468
  msgid "Items thumbnail link's to"
469
  msgstr ""
470
 
471
- #: includes/meta.php:822
472
  msgid "Product"
473
  msgstr ""
474
 
475
- #: includes/meta.php:831
476
  msgid "Slider thumb max hieght(px)"
477
  msgstr ""
478
 
479
- #: includes/meta.php:837
480
  msgid "Display Thumbnail Zoom button"
481
  msgstr ""
482
 
483
- #: includes/meta.php:854
484
  msgid "Items Add to cart button Style"
485
  msgstr ""
486
 
487
- #: includes/meta.php:855
488
  msgid "You can hide items Add to cart button on slider."
489
  msgstr ""
490
 
491
- #: includes/meta.php:857
492
  msgid "Default"
493
  msgstr ""
494
 
495
- #: includes/meta.php:858
496
  msgid "Custom"
497
  msgstr ""
498
 
499
- #: includes/meta.php:863
500
  msgid "Add to cart Background Color"
501
  msgstr ""
502
 
503
- #: includes/meta.php:869
504
  msgid "Add to cart Text Color"
505
  msgstr ""
506
 
507
- #: includes/meta.php:875
508
  msgid "Items Cart Text Align"
509
  msgstr ""
510
 
511
- #: includes/meta.php:879 includes/meta.php:932 includes/meta.php:991
512
- #: includes/meta.php:1016 includes/meta.php:1072 includes/meta.php:1114
513
  msgid "Left"
514
  msgstr ""
515
 
516
- #: includes/meta.php:880 includes/meta.php:933 includes/meta.php:992
517
- #: includes/meta.php:1017 includes/meta.php:1073 includes/meta.php:1115
518
  msgid "Right"
519
  msgstr ""
520
 
521
- #: includes/meta.php:881 includes/meta.php:934 includes/meta.php:993
522
- #: includes/meta.php:1018 includes/meta.php:1075 includes/meta.php:1116
523
  msgid "Center"
524
  msgstr ""
525
 
526
- #: includes/meta.php:897
527
  msgid "Sale marker icon url"
528
  msgstr ""
529
 
530
- #: includes/meta.php:916
531
  msgid "Items Title Color"
532
  msgstr ""
533
 
534
- #: includes/meta.php:921
535
  msgid "Items Title Font Size"
536
  msgstr ""
537
 
538
- #: includes/meta.php:928
539
  msgid "Items Title Text Align"
540
  msgstr ""
541
 
542
- #: includes/meta.php:947
543
  msgid "Featured marker icon url"
544
  msgstr ""
545
 
546
- #: includes/meta.php:959
547
  msgid "Price format on slider"
548
  msgstr ""
549
 
550
- #: includes/meta.php:962
551
  msgid "Full Format"
552
  msgstr ""
553
 
554
- #: includes/meta.php:963
555
  msgid "Sale price"
556
  msgstr ""
557
 
558
- #: includes/meta.php:964
559
  msgid "Regular price"
560
  msgstr ""
561
 
562
- #: includes/meta.php:973
563
  msgid "Items Price Color"
564
  msgstr ""
565
 
566
- #: includes/meta.php:979
567
  msgid "Items price Font Size"
568
  msgstr ""
569
 
570
- #: includes/meta.php:987
571
  msgid "Price Text Align"
572
  msgstr ""
573
 
574
- #: includes/meta.php:1012
575
  msgid "Items Rating Text Align"
576
  msgstr ""
577
 
578
- #: includes/meta.php:1025
579
  msgid "Items ratings Font Size"
580
  msgstr ""
581
 
582
- #: includes/meta.php:1032
583
  msgid "Items Ratings Color"
584
  msgstr ""
585
 
586
- #: includes/meta.php:1049
587
  msgid "Excerpt word count"
588
  msgstr ""
589
 
590
- #: includes/meta.php:1055
591
  msgid "Excerpt read more text"
592
  msgstr ""
593
 
594
- #: includes/meta.php:1061
595
  msgid "Items Excerpt Font Size"
596
  msgstr ""
597
 
598
- #: includes/meta.php:1068
599
  msgid "Excerpt Text Align"
600
  msgstr ""
601
 
602
- #: includes/meta.php:1081
603
  msgid "Items Excerpt Font color"
604
  msgstr ""
605
 
606
- #: includes/meta.php:1103
607
  msgid "Items Category Font Size"
608
  msgstr ""
609
 
610
- #: includes/meta.php:1110
611
  msgid "Category Text Align"
612
  msgstr ""
613
 
614
- #: includes/meta.php:1125
615
  msgid "Items Category Font color"
616
  msgstr ""
617
 
618
- #: includes/meta.php:1180
619
  msgid "Custom CSS for this slider."
620
  msgstr ""
621
 
622
- #: includes/meta.php:1181
623
  msgid ""
624
  "Do not use &lt;style>&lt;/style> tag, you can use bellow prefix to your css, "
625
  "sometime you need use \"!important\" to overrid."
@@ -636,15 +730,3 @@ msgstr ""
636
  #: templates/wcps-sale.php:19
637
  msgid "Sale Product"
638
  msgstr ""
639
-
640
- #~ msgid "License"
641
- #~ msgstr "লাইসেন্স"
642
-
643
- #~ msgid "Price: "
644
- #~ msgstr "মুল্য"
645
-
646
- #~ msgid "Price- "
647
- #~ msgstr "মুল্য"
648
-
649
- #~ msgid "Price:"
650
- #~ msgstr "মুল্য"
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Woocommerce Products Slider\n"
4
+ "POT-Creation-Date: 2016-11-17 09:54+0600\n"
5
+ "PO-Revision-Date: 2016-11-17 09:54+0600\n"
6
  "Last-Translator: Nur Hasan <public.nurhasan@gmail.com>\n"
7
  "Language-Team: PickPlugins <support@pickplugins.com>\n"
8
+ "Language: fi\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.9\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-KeywordsList: __;_e\n"
17
  "X-Poedit-SearchPath-1: includes\n"
18
  "X-Poedit-SearchPath-2: templates\n"
19
 
20
+ #: includes/class-functions.php:62 includes/meta.php:903
21
  msgid "Thumbnail"
22
  msgstr ""
23
 
24
+ #: includes/class-functions.php:63 includes/meta.php:790
25
  msgid "Title"
26
+ msgstr ""
27
 
28
  #: includes/class-functions.php:64
29
  msgid "Excerpt"
30
  msgstr ""
31
 
32
+ #: includes/class-functions.php:65 includes/meta.php:914
33
  msgid "Category"
34
+ msgstr ""
35
 
36
  #: includes/class-functions.php:66
37
  msgid "Price"
38
+ msgstr ""
39
 
40
  #: includes/class-functions.php:67
41
  msgid "Rating"
42
+ msgstr ""
43
 
44
  #: includes/class-functions.php:68
45
  msgid "Cart"
46
+ msgstr ""
47
 
48
  #: includes/class-functions.php:69
49
  msgid "Sale"
51
 
52
  #: includes/class-settings.php:21
53
  msgid "Settings"
54
+ msgstr ""
55
 
56
  #: includes/class-shortcodes.php:143
57
  msgid "No Product to Slide"
58
  msgstr ""
59
 
60
+ #: includes/functions.php:84 includes/meta.php:299 includes/meta.php:310
61
  msgid "Shortcode"
62
  msgstr ""
63
 
73
  msgid " Settings"
74
  msgstr ""
75
 
76
+ #: includes/menu/settings.php:67 includes/meta.php:300
77
  msgid "Options"
78
  msgstr ""
79
 
85
  msgid "Track product View"
86
  msgstr ""
87
 
88
+ #: includes/menu/settings.php:81 includes/meta.php:802 includes/meta.php:931
89
  msgid "No"
90
  msgstr ""
91
 
92
+ #: includes/menu/settings.php:82 includes/meta.php:932
93
  msgid "Yes"
94
  msgstr ""
95
 
170
  msgid "Woocommerce Products Slider Options"
171
  msgstr ""
172
 
173
+ #: includes/meta.php:301
174
  msgid "Style"
175
  msgstr ""
176
 
177
+ #: includes/meta.php:302
178
  msgid "Content"
179
  msgstr ""
180
 
181
+ #: includes/meta.php:303
182
  msgid "Custom CSS"
183
  msgstr ""
184
 
185
+ #: includes/meta.php:312
186
  msgid ""
187
  "Copy this shortcode and paste on page or post where you want to display "
188
  "slider."
189
  msgstr ""
190
 
191
+ #: includes/meta.php:314
192
  msgid "Use PHP code to your themes file to display slider."
193
  msgstr ""
194
 
195
+ #: includes/meta.php:327
196
  msgid "Slider Total Items"
197
+ msgstr ""
198
 
199
+ #: includes/meta.php:328
200
  msgid "ex: 10"
201
+ msgstr ""
202
 
203
+ #: includes/meta.php:333
204
  msgid "Slider Column Number"
205
  msgstr ""
206
 
207
+ #: includes/meta.php:335
208
  msgid "In Destop: (min:1000px and max)"
209
  msgstr ""
210
 
211
+ #: includes/meta.php:338
212
  msgid "In Tablet & Small Desktop: (900px max width)"
213
  msgstr ""
214
 
215
+ #: includes/meta.php:341
216
  msgid "In Mobile: (479px max width)"
217
  msgstr ""
218
 
219
+ #: includes/meta.php:349
220
  msgid "Slider Auto Play"
221
  msgstr ""
222
 
223
+ #: includes/meta.php:354 includes/meta.php:360 includes/meta.php:366
224
+ #: includes/meta.php:372 includes/meta.php:380 includes/meta.php:449
225
+ #: includes/meta.php:460 includes/meta.php:483 includes/meta.php:498
226
+ #: includes/meta.php:527 includes/meta.php:538
227
  msgid "True"
228
  msgstr ""
229
 
230
+ #: includes/meta.php:355 includes/meta.php:361 includes/meta.php:367
231
+ #: includes/meta.php:373 includes/meta.php:379 includes/meta.php:450
232
+ #: includes/meta.php:461 includes/meta.php:484 includes/meta.php:497
233
+ #: includes/meta.php:528 includes/meta.php:539
234
  msgid "False"
235
  msgstr ""
236
 
237
+ #: includes/meta.php:358
238
+ msgid "Slider rewind"
239
+ msgstr ""
240
+
241
+ #: includes/meta.php:364
242
+ msgid "Slider loop"
243
+ msgstr ""
244
+
245
+ #: includes/meta.php:370
246
+ msgid "Slider center"
247
+ msgstr ""
248
+
249
+ #: includes/meta.php:376
250
+ msgid "RTL Enabled"
251
+ msgstr ""
252
+
253
+ #: includes/meta.php:386
254
+ msgid "Animate Out"
255
+ msgstr ""
256
+
257
+ #: includes/meta.php:389 includes/meta.php:420
258
+ msgid "fadeOut"
259
+ msgstr ""
260
+
261
+ #: includes/meta.php:390 includes/meta.php:421
262
+ msgid "bounce"
263
+ msgstr ""
264
+
265
+ #: includes/meta.php:391 includes/meta.php:422
266
+ msgid "flash"
267
+ msgstr ""
268
+
269
+ #: includes/meta.php:392 includes/meta.php:423
270
+ msgid "pulse"
271
+ msgstr ""
272
+
273
+ #: includes/meta.php:395 includes/meta.php:425
274
+ msgid "Shake"
275
+ msgstr ""
276
+
277
+ #: includes/meta.php:396 includes/meta.php:426
278
+ msgid "Swing"
279
+ msgstr ""
280
+
281
+ #: includes/meta.php:397 includes/meta.php:427
282
+ msgid "Tada"
283
+ msgstr ""
284
+
285
+ #: includes/meta.php:398 includes/meta.php:428
286
+ msgid "Wobble"
287
+ msgstr ""
288
+
289
+ #: includes/meta.php:399 includes/meta.php:429
290
+ msgid "flip"
291
+ msgstr ""
292
+
293
+ #: includes/meta.php:400 includes/meta.php:430
294
+ msgid "flipInX"
295
+ msgstr ""
296
+
297
+ #: includes/meta.php:401 includes/meta.php:431
298
+ msgid "flipInY"
299
+ msgstr ""
300
+
301
+ #: includes/meta.php:402 includes/meta.php:432
302
+ msgid "fadeIn"
303
+ msgstr ""
304
+
305
+ #: includes/meta.php:403 includes/meta.php:433
306
+ msgid "fadeInDown"
307
+ msgstr ""
308
+
309
+ #: includes/meta.php:404 includes/meta.php:434
310
+ msgid "fadeInUp"
311
+ msgstr ""
312
+
313
+ #: includes/meta.php:405 includes/meta.php:435
314
+ msgid "bounceIn"
315
+ msgstr ""
316
+
317
+ #: includes/meta.php:406 includes/meta.php:436
318
+ msgid "bounceInDown"
319
+ msgstr ""
320
+
321
+ #: includes/meta.php:407 includes/meta.php:437
322
+ msgid "bounceInUp"
323
+ msgstr ""
324
+
325
+ #: includes/meta.php:417
326
+ msgid "Animate In"
327
+ msgstr ""
328
+
329
+ #: includes/meta.php:445
330
  msgid "Slider Stop on Hover"
331
  msgstr ""
332
 
333
+ #: includes/meta.php:456
334
  msgid "Slider Navigation"
335
  msgstr ""
336
 
337
+ #: includes/meta.php:457
338
  msgid "Slider Navigation at Top"
339
  msgstr ""
340
 
341
+ #: includes/meta.php:465
342
  msgid "Slider Navigation Position"
343
  msgstr ""
344
 
345
+ #: includes/meta.php:467
346
  msgid "Top Right"
347
  msgstr ""
348
 
349
+ #: includes/meta.php:468
350
  msgid "Middle"
351
  msgstr ""
352
 
353
+ #: includes/meta.php:469
354
  msgid "Middle fixed"
355
  msgstr ""
356
 
357
+ #: includes/meta.php:479
358
  msgid "Slider Pagination"
359
  msgstr ""
360
 
361
+ #: includes/meta.php:480
362
  msgid "Slider Pagination at Bottom"
363
  msgstr ""
364
 
365
+ #: includes/meta.php:489
366
  msgid "Pagination Background Color"
367
  msgstr ""
368
 
369
+ #: includes/meta.php:492
370
  msgid "Pagination Text Color"
371
  msgstr ""
372
 
373
+ #: includes/meta.php:495
374
  msgid "Pagination Number Counting"
375
  msgstr ""
376
 
377
+ #: includes/meta.php:511
378
  msgid "Slide Speed"
379
  msgstr ""
380
 
381
+ #: includes/meta.php:516
382
  msgid "Pagination Slide Speed"
383
  msgstr ""
384
 
385
+ #: includes/meta.php:522
386
  msgid "Slider Touch Drag Enabled"
387
  msgstr ""
388
 
389
+ #: includes/meta.php:534
390
  msgid "Slider Mouse Drag Enabled"
391
  msgstr ""
392
 
393
+ #: includes/meta.php:548
394
  msgid "Themes for slider"
395
  msgstr ""
396
 
397
+ #: includes/meta.php:571
398
  msgid "Slider Ribbon"
399
  msgstr ""
400
 
401
+ #: includes/meta.php:642
402
  msgid "Container options"
403
  msgstr ""
404
 
405
+ #: includes/meta.php:643
406
  msgid "Padding: (ex: 10px)"
407
  msgstr ""
408
 
409
+ #: includes/meta.php:646
410
  msgid "Background color:"
411
  msgstr ""
412
 
413
+ #: includes/meta.php:649
414
  msgid "Background image:"
415
  msgstr ""
416
 
417
+ #: includes/meta.php:654
418
  msgid "Clear"
419
  msgstr ""
420
 
421
+ #: includes/meta.php:679
422
  msgid "Items Options"
423
  msgstr ""
424
 
425
+ #: includes/meta.php:680
426
  msgid "Items Background color"
427
  msgstr ""
428
 
429
+ #: includes/meta.php:683
430
  msgid "Items Padding"
431
  msgstr ""
432
 
433
+ #: includes/meta.php:695
434
  msgid "Empty Thumbnail"
435
  msgstr ""
436
 
437
+ #: includes/meta.php:696
438
  msgid "Custom thumbnail image url"
439
  msgstr ""
440
 
441
+ #: includes/meta.php:765
442
  msgid "Query order"
443
  msgstr ""
444
 
445
+ #: includes/meta.php:768
446
  msgid "Descending"
447
  msgstr ""
448
 
449
+ #: includes/meta.php:769
450
  msgid "Ascending "
451
  msgstr ""
452
 
453
+ #: includes/meta.php:781
454
  msgid "Query orderBy"
455
  msgstr ""
456
 
457
+ #: includes/meta.php:784
458
  msgid "None"
459
  msgstr ""
460
 
461
+ #: includes/meta.php:785
462
  msgid "ID"
463
  msgstr ""
464
 
465
+ #: includes/meta.php:786
466
  msgid "Date"
467
  msgstr ""
468
 
469
+ #: includes/meta.php:787
470
  msgid "Rand"
471
  msgstr ""
472
 
473
+ #: includes/meta.php:788
474
  msgid "Comment Count"
475
  msgstr ""
476
 
477
+ #: includes/meta.php:789
478
  msgid "Author"
479
  msgstr ""
480
 
481
+ #: includes/meta.php:791
482
  msgid "Name"
483
  msgstr ""
484
 
485
+ #: includes/meta.php:792
486
  msgid "Type"
487
  msgstr ""
488
 
489
+ #: includes/meta.php:799
490
  msgid "Hide out of stock items"
491
  msgstr ""
492
 
493
+ #: includes/meta.php:803
494
  msgid "Yes "
495
  msgstr ""
496
 
497
+ #: includes/meta.php:812
498
  msgid "Filter Slider Content."
499
  msgstr ""
500
 
501
+ #: includes/meta.php:815
502
  msgid "Display from <b>Recent</b> Published"
503
  msgstr ""
504
 
505
+ #: includes/meta.php:816
506
  msgid "Slider items will query from recent published product."
507
  msgstr ""
508
 
509
+ #: includes/meta.php:819
510
  msgid "Display from <b>Featured</b> Product"
511
  msgstr ""
512
 
513
+ #: includes/meta.php:820
514
  msgid "Slider items will query from featured marked product."
515
  msgstr ""
516
 
517
+ #: includes/meta.php:823
518
  msgid "Display from Only <b>Year</b>"
519
  msgstr ""
520
 
521
+ #: includes/meta.php:825
522
  msgid "Slider items will query from a year."
523
  msgstr ""
524
 
525
+ #: includes/meta.php:830
526
  msgid "Display from <b>Month</b>"
527
  msgstr ""
528
 
529
+ #: includes/meta.php:831
530
  msgid "Slider items will query from Month of a year."
531
  msgstr ""
532
 
533
+ #: includes/meta.php:843
534
  msgid "Items sort."
535
  msgstr ""
536
 
537
+ #: includes/meta.php:844
538
  msgid "Click each items to expand."
539
  msgstr ""
540
 
541
+ #: includes/meta.php:845
542
  msgid "Reset"
543
  msgstr ""
544
 
545
+ #: includes/meta.php:897
546
  msgid "Slider Thumbnail Size"
547
  msgstr ""
548
 
549
+ #: includes/meta.php:900
550
  msgid "Full"
551
  msgstr ""
552
 
553
+ #: includes/meta.php:901
554
  msgid "Large"
555
  msgstr ""
556
 
557
+ #: includes/meta.php:902
558
  msgid "Medium"
559
  msgstr ""
560
 
561
+ #: includes/meta.php:910
562
  msgid "Items thumbnail link's to"
563
  msgstr ""
564
 
565
+ #: includes/meta.php:913
566
  msgid "Product"
567
  msgstr ""
568
 
569
+ #: includes/meta.php:922
570
  msgid "Slider thumb max hieght(px)"
571
  msgstr ""
572
 
573
+ #: includes/meta.php:928
574
  msgid "Display Thumbnail Zoom button"
575
  msgstr ""
576
 
577
+ #: includes/meta.php:945
578
  msgid "Items Add to cart button Style"
579
  msgstr ""
580
 
581
+ #: includes/meta.php:946
582
  msgid "You can hide items Add to cart button on slider."
583
  msgstr ""
584
 
585
+ #: includes/meta.php:948
586
  msgid "Default"
587
  msgstr ""
588
 
589
+ #: includes/meta.php:949
590
  msgid "Custom"
591
  msgstr ""
592
 
593
+ #: includes/meta.php:954
594
  msgid "Add to cart Background Color"
595
  msgstr ""
596
 
597
+ #: includes/meta.php:960
598
  msgid "Add to cart Text Color"
599
  msgstr ""
600
 
601
+ #: includes/meta.php:966
602
  msgid "Items Cart Text Align"
603
  msgstr ""
604
 
605
+ #: includes/meta.php:970 includes/meta.php:1023 includes/meta.php:1082
606
+ #: includes/meta.php:1107 includes/meta.php:1163 includes/meta.php:1205
607
  msgid "Left"
608
  msgstr ""
609
 
610
+ #: includes/meta.php:971 includes/meta.php:1024 includes/meta.php:1083
611
+ #: includes/meta.php:1108 includes/meta.php:1164 includes/meta.php:1206
612
  msgid "Right"
613
  msgstr ""
614
 
615
+ #: includes/meta.php:972 includes/meta.php:1025 includes/meta.php:1084
616
+ #: includes/meta.php:1109 includes/meta.php:1166 includes/meta.php:1207
617
  msgid "Center"
618
  msgstr ""
619
 
620
+ #: includes/meta.php:988
621
  msgid "Sale marker icon url"
622
  msgstr ""
623
 
624
+ #: includes/meta.php:1007
625
  msgid "Items Title Color"
626
  msgstr ""
627
 
628
+ #: includes/meta.php:1012
629
  msgid "Items Title Font Size"
630
  msgstr ""
631
 
632
+ #: includes/meta.php:1019
633
  msgid "Items Title Text Align"
634
  msgstr ""
635
 
636
+ #: includes/meta.php:1038
637
  msgid "Featured marker icon url"
638
  msgstr ""
639
 
640
+ #: includes/meta.php:1050
641
  msgid "Price format on slider"
642
  msgstr ""
643
 
644
+ #: includes/meta.php:1053
645
  msgid "Full Format"
646
  msgstr ""
647
 
648
+ #: includes/meta.php:1054
649
  msgid "Sale price"
650
  msgstr ""
651
 
652
+ #: includes/meta.php:1055
653
  msgid "Regular price"
654
  msgstr ""
655
 
656
+ #: includes/meta.php:1064
657
  msgid "Items Price Color"
658
  msgstr ""
659
 
660
+ #: includes/meta.php:1070
661
  msgid "Items price Font Size"
662
  msgstr ""
663
 
664
+ #: includes/meta.php:1078
665
  msgid "Price Text Align"
666
  msgstr ""
667
 
668
+ #: includes/meta.php:1103
669
  msgid "Items Rating Text Align"
670
  msgstr ""
671
 
672
+ #: includes/meta.php:1116
673
  msgid "Items ratings Font Size"
674
  msgstr ""
675
 
676
+ #: includes/meta.php:1123
677
  msgid "Items Ratings Color"
678
  msgstr ""
679
 
680
+ #: includes/meta.php:1140
681
  msgid "Excerpt word count"
682
  msgstr ""
683
 
684
+ #: includes/meta.php:1146
685
  msgid "Excerpt read more text"
686
  msgstr ""
687
 
688
+ #: includes/meta.php:1152
689
  msgid "Items Excerpt Font Size"
690
  msgstr ""
691
 
692
+ #: includes/meta.php:1159
693
  msgid "Excerpt Text Align"
694
  msgstr ""
695
 
696
+ #: includes/meta.php:1172
697
  msgid "Items Excerpt Font color"
698
  msgstr ""
699
 
700
+ #: includes/meta.php:1194
701
  msgid "Items Category Font Size"
702
  msgstr ""
703
 
704
+ #: includes/meta.php:1201
705
  msgid "Category Text Align"
706
  msgstr ""
707
 
708
+ #: includes/meta.php:1216
709
  msgid "Items Category Font color"
710
  msgstr ""
711
 
712
+ #: includes/meta.php:1271
713
  msgid "Custom CSS for this slider."
714
  msgstr ""
715
 
716
+ #: includes/meta.php:1272
717
  msgid ""
718
  "Do not use &lt;style>&lt;/style> tag, you can use bellow prefix to your css, "
719
  "sometime you need use \"!important\" to overrid."
730
  #: templates/wcps-sale.php:19
731
  msgid "Sale Product"
732
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
languages/{default.mo → woocommerce-products-slider.mo} RENAMED
Binary file
languages/{default.po → woocommerce-products-slider.po} RENAMED
@@ -1,15 +1,15 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Woocommerce Products Slider\n"
4
- "POT-Creation-Date: 2016-03-15 19:25+0600\n"
5
- "PO-Revision-Date: 2016-03-15 19:25+0600\n"
6
  "Last-Translator: Nur Hasan <public.nurhasan@gmail.com>\n"
7
  "Language-Team: PickPlugins <support@pickplugins.com>\n"
8
  "Language: en\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.7\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-KeywordsList: __;_e\n"
@@ -17,11 +17,11 @@ msgstr ""
17
  "X-Poedit-SearchPath-1: includes\n"
18
  "X-Poedit-SearchPath-2: templates\n"
19
 
20
- #: includes/class-functions.php:62 includes/meta.php:812
21
  msgid "Thumbnail"
22
  msgstr ""
23
 
24
- #: includes/class-functions.php:63 includes/meta.php:699
25
  msgid "Title"
26
  msgstr ""
27
 
@@ -29,7 +29,7 @@ msgstr ""
29
  msgid "Excerpt"
30
  msgstr ""
31
 
32
- #: includes/class-functions.php:65 includes/meta.php:823
33
  msgid "Category"
34
  msgstr ""
35
 
@@ -57,7 +57,7 @@ msgstr ""
57
  msgid "No Product to Slide"
58
  msgstr ""
59
 
60
- #: includes/functions.php:84 includes/meta.php:293 includes/meta.php:304
61
  msgid "Shortcode"
62
  msgstr ""
63
 
@@ -73,7 +73,7 @@ msgstr ""
73
  msgid " Settings"
74
  msgstr ""
75
 
76
- #: includes/menu/settings.php:67 includes/meta.php:294
77
  msgid "Options"
78
  msgstr ""
79
 
@@ -85,11 +85,11 @@ msgstr ""
85
  msgid "Track product View"
86
  msgstr ""
87
 
88
- #: includes/menu/settings.php:81 includes/meta.php:711 includes/meta.php:840
89
  msgid "No"
90
  msgstr ""
91
 
92
- #: includes/menu/settings.php:82 includes/meta.php:841
93
  msgid "Yes"
94
  msgstr ""
95
 
@@ -170,456 +170,550 @@ msgstr ""
170
  msgid "Woocommerce Products Slider Options"
171
  msgstr ""
172
 
173
- #: includes/meta.php:295
174
  msgid "Style"
175
  msgstr ""
176
 
177
- #: includes/meta.php:296
178
  msgid "Content"
179
  msgstr ""
180
 
181
- #: includes/meta.php:297
182
  msgid "Custom CSS"
183
  msgstr ""
184
 
185
- #: includes/meta.php:306
186
  msgid ""
187
  "Copy this shortcode and paste on page or post where you want to display "
188
  "slider."
189
  msgstr ""
190
 
191
- #: includes/meta.php:308
192
  msgid "Use PHP code to your themes file to display slider."
193
  msgstr ""
194
 
195
- #: includes/meta.php:321
196
  msgid "Slider Total Items"
197
  msgstr ""
198
 
199
- #: includes/meta.php:322
200
  msgid "ex: 10"
201
  msgstr ""
202
 
203
- #: includes/meta.php:327
204
  msgid "Slider Column Number"
205
  msgstr ""
206
 
207
- #: includes/meta.php:329
208
  msgid "In Destop: (min:1000px and max)"
209
  msgstr ""
210
 
211
- #: includes/meta.php:332
212
  msgid "In Tablet & Small Desktop: (900px max width)"
213
  msgstr ""
214
 
215
- #: includes/meta.php:335
216
  msgid "In Mobile: (479px max width)"
217
  msgstr ""
218
 
219
- #: includes/meta.php:343
220
  msgid "Slider Auto Play"
221
  msgstr ""
222
 
223
- #: includes/meta.php:348 includes/meta.php:358 includes/meta.php:369
224
- #: includes/meta.php:392 includes/meta.php:407 includes/meta.php:436
225
- #: includes/meta.php:447
 
226
  msgid "True"
227
  msgstr ""
228
 
229
- #: includes/meta.php:349 includes/meta.php:359 includes/meta.php:370
230
- #: includes/meta.php:393 includes/meta.php:406 includes/meta.php:437
231
- #: includes/meta.php:448
 
232
  msgid "False"
233
  msgstr ""
234
 
235
- #: includes/meta.php:354
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  msgid "Slider Stop on Hover"
237
  msgstr ""
238
 
239
- #: includes/meta.php:365
240
  msgid "Slider Navigation"
241
  msgstr ""
242
 
243
- #: includes/meta.php:366
244
  msgid "Slider Navigation at Top"
245
  msgstr ""
246
 
247
- #: includes/meta.php:374
248
  msgid "Slider Navigation Position"
249
  msgstr ""
250
 
251
- #: includes/meta.php:376
252
  msgid "Top Right"
253
  msgstr ""
254
 
255
- #: includes/meta.php:377
256
  msgid "Middle"
257
  msgstr ""
258
 
259
- #: includes/meta.php:378
260
  msgid "Middle fixed"
261
  msgstr ""
262
 
263
- #: includes/meta.php:388
264
  msgid "Slider Pagination"
265
  msgstr ""
266
 
267
- #: includes/meta.php:389
268
  msgid "Slider Pagination at Bottom"
269
  msgstr ""
270
 
271
- #: includes/meta.php:398
272
  msgid "Pagination Background Color"
273
  msgstr ""
274
 
275
- #: includes/meta.php:401
276
  msgid "Pagination Text Color"
277
  msgstr ""
278
 
279
- #: includes/meta.php:404
280
  msgid "Pagination Number Counting"
281
  msgstr ""
282
 
283
- #: includes/meta.php:420
284
  msgid "Slide Speed"
285
  msgstr ""
286
 
287
- #: includes/meta.php:425
288
  msgid "Pagination Slide Speed"
289
  msgstr ""
290
 
291
- #: includes/meta.php:431
292
  msgid "Slider Touch Drag Enabled"
293
  msgstr ""
294
 
295
- #: includes/meta.php:443
296
  msgid "Slider Mouse Drag Enabled"
297
  msgstr ""
298
 
299
- #: includes/meta.php:457
300
  msgid "Themes for slider"
301
  msgstr ""
302
 
303
- #: includes/meta.php:480
304
  msgid "Slider Ribbon"
305
  msgstr ""
306
 
307
- #: includes/meta.php:551
308
  msgid "Container options"
309
  msgstr ""
310
 
311
- #: includes/meta.php:552
312
  msgid "Padding: (ex: 10px)"
313
  msgstr ""
314
 
315
- #: includes/meta.php:555
316
  msgid "Background color:"
317
  msgstr ""
318
 
319
- #: includes/meta.php:558
320
  msgid "Background image:"
321
  msgstr ""
322
 
323
- #: includes/meta.php:563
324
  msgid "Clear"
325
  msgstr ""
326
 
327
- #: includes/meta.php:588
328
  msgid "Items Options"
329
  msgstr ""
330
 
331
- #: includes/meta.php:589
332
  msgid "Items Background color"
333
  msgstr ""
334
 
335
- #: includes/meta.php:592
336
  msgid "Items Padding"
337
  msgstr ""
338
 
339
- #: includes/meta.php:604
340
  msgid "Empty Thumbnail"
341
  msgstr ""
342
 
343
- #: includes/meta.php:605
344
  msgid "Custom thumbnail image url"
345
  msgstr ""
346
 
347
- #: includes/meta.php:674
348
  msgid "Query order"
349
  msgstr ""
350
 
351
- #: includes/meta.php:677
352
  msgid "Descending"
353
  msgstr ""
354
 
355
- #: includes/meta.php:678
356
  msgid "Ascending "
357
  msgstr ""
358
 
359
- #: includes/meta.php:690
360
  msgid "Query orderBy"
361
  msgstr ""
362
 
363
- #: includes/meta.php:693
364
  msgid "None"
365
  msgstr ""
366
 
367
- #: includes/meta.php:694
368
  msgid "ID"
369
  msgstr ""
370
 
371
- #: includes/meta.php:695
372
  msgid "Date"
373
  msgstr ""
374
 
375
- #: includes/meta.php:696
376
  msgid "Rand"
377
  msgstr ""
378
 
379
- #: includes/meta.php:697
380
  msgid "Comment Count"
381
  msgstr ""
382
 
383
- #: includes/meta.php:698
384
  msgid "Author"
385
  msgstr ""
386
 
387
- #: includes/meta.php:700
388
  msgid "Name"
389
  msgstr ""
390
 
391
- #: includes/meta.php:701
392
  msgid "Type"
393
  msgstr ""
394
 
395
- #: includes/meta.php:708
396
  msgid "Hide out of stock items"
397
  msgstr ""
398
 
399
- #: includes/meta.php:712
400
  msgid "Yes "
401
  msgstr ""
402
 
403
- #: includes/meta.php:721
404
  msgid "Filter Slider Content."
405
  msgstr ""
406
 
407
- #: includes/meta.php:724
408
  msgid "Display from <b>Recent</b> Published"
409
  msgstr ""
410
 
411
- #: includes/meta.php:725
412
  msgid "Slider items will query from recent published product."
413
  msgstr ""
414
 
415
- #: includes/meta.php:728
416
  msgid "Display from <b>Featured</b> Product"
417
  msgstr ""
418
 
419
- #: includes/meta.php:729
420
  msgid "Slider items will query from featured marked product."
421
  msgstr ""
422
 
423
- #: includes/meta.php:732
424
  msgid "Display from Only <b>Year</b>"
425
  msgstr ""
426
 
427
- #: includes/meta.php:734
428
  msgid "Slider items will query from a year."
429
  msgstr ""
430
 
431
- #: includes/meta.php:739
432
  msgid "Display from <b>Month</b>"
433
  msgstr ""
434
 
435
- #: includes/meta.php:740
436
  msgid "Slider items will query from Month of a year."
437
  msgstr ""
438
 
439
- #: includes/meta.php:752
440
  msgid "Items sort."
441
  msgstr ""
442
 
443
- #: includes/meta.php:753
444
  msgid "Click each items to expand."
445
  msgstr ""
446
 
447
- #: includes/meta.php:754
448
  msgid "Reset"
449
  msgstr ""
450
 
451
- #: includes/meta.php:806
452
  msgid "Slider Thumbnail Size"
453
  msgstr ""
454
 
455
- #: includes/meta.php:809
456
  msgid "Full"
457
  msgstr ""
458
 
459
- #: includes/meta.php:810
460
  msgid "Large"
461
  msgstr ""
462
 
463
- #: includes/meta.php:811
464
  msgid "Medium"
465
  msgstr ""
466
 
467
- #: includes/meta.php:819
468
  msgid "Items thumbnail link's to"
469
  msgstr ""
470
 
471
- #: includes/meta.php:822
472
  msgid "Product"
473
  msgstr ""
474
 
475
- #: includes/meta.php:831
476
  msgid "Slider thumb max hieght(px)"
477
  msgstr ""
478
 
479
- #: includes/meta.php:837
480
  msgid "Display Thumbnail Zoom button"
481
  msgstr ""
482
 
483
- #: includes/meta.php:854
484
  msgid "Items Add to cart button Style"
485
  msgstr ""
486
 
487
- #: includes/meta.php:855
488
  msgid "You can hide items Add to cart button on slider."
489
  msgstr ""
490
 
491
- #: includes/meta.php:857
492
  msgid "Default"
493
  msgstr ""
494
 
495
- #: includes/meta.php:858
496
  msgid "Custom"
497
  msgstr ""
498
 
499
- #: includes/meta.php:863
500
  msgid "Add to cart Background Color"
501
  msgstr ""
502
 
503
- #: includes/meta.php:869
504
  msgid "Add to cart Text Color"
505
  msgstr ""
506
 
507
- #: includes/meta.php:875
508
  msgid "Items Cart Text Align"
509
  msgstr ""
510
 
511
- #: includes/meta.php:879 includes/meta.php:932 includes/meta.php:991
512
- #: includes/meta.php:1016 includes/meta.php:1072 includes/meta.php:1114
513
  msgid "Left"
514
  msgstr ""
515
 
516
- #: includes/meta.php:880 includes/meta.php:933 includes/meta.php:992
517
- #: includes/meta.php:1017 includes/meta.php:1073 includes/meta.php:1115
518
  msgid "Right"
519
  msgstr ""
520
 
521
- #: includes/meta.php:881 includes/meta.php:934 includes/meta.php:993
522
- #: includes/meta.php:1018 includes/meta.php:1075 includes/meta.php:1116
523
  msgid "Center"
524
  msgstr ""
525
 
526
- #: includes/meta.php:897
527
  msgid "Sale marker icon url"
528
  msgstr ""
529
 
530
- #: includes/meta.php:916
531
  msgid "Items Title Color"
532
  msgstr ""
533
 
534
- #: includes/meta.php:921
535
  msgid "Items Title Font Size"
536
  msgstr ""
537
 
538
- #: includes/meta.php:928
539
  msgid "Items Title Text Align"
540
  msgstr ""
541
 
542
- #: includes/meta.php:947
543
  msgid "Featured marker icon url"
544
  msgstr ""
545
 
546
- #: includes/meta.php:959
547
  msgid "Price format on slider"
548
  msgstr ""
549
 
550
- #: includes/meta.php:962
551
  msgid "Full Format"
552
  msgstr ""
553
 
554
- #: includes/meta.php:963
555
  msgid "Sale price"
556
  msgstr ""
557
 
558
- #: includes/meta.php:964
559
  msgid "Regular price"
560
  msgstr ""
561
 
562
- #: includes/meta.php:973
563
  msgid "Items Price Color"
564
  msgstr ""
565
 
566
- #: includes/meta.php:979
567
  msgid "Items price Font Size"
568
  msgstr ""
569
 
570
- #: includes/meta.php:987
571
  msgid "Price Text Align"
572
  msgstr ""
573
 
574
- #: includes/meta.php:1012
575
  msgid "Items Rating Text Align"
576
  msgstr ""
577
 
578
- #: includes/meta.php:1025
579
  msgid "Items ratings Font Size"
580
  msgstr ""
581
 
582
- #: includes/meta.php:1032
583
  msgid "Items Ratings Color"
584
  msgstr ""
585
 
586
- #: includes/meta.php:1049
587
  msgid "Excerpt word count"
588
  msgstr ""
589
 
590
- #: includes/meta.php:1055
591
  msgid "Excerpt read more text"
592
  msgstr ""
593
 
594
- #: includes/meta.php:1061
595
  msgid "Items Excerpt Font Size"
596
  msgstr ""
597
 
598
- #: includes/meta.php:1068
599
  msgid "Excerpt Text Align"
600
  msgstr ""
601
 
602
- #: includes/meta.php:1081
603
  msgid "Items Excerpt Font color"
604
  msgstr ""
605
 
606
- #: includes/meta.php:1103
607
  msgid "Items Category Font Size"
608
  msgstr ""
609
 
610
- #: includes/meta.php:1110
611
  msgid "Category Text Align"
612
  msgstr ""
613
 
614
- #: includes/meta.php:1125
615
  msgid "Items Category Font color"
616
  msgstr ""
617
 
618
- #: includes/meta.php:1180
619
  msgid "Custom CSS for this slider."
620
  msgstr ""
621
 
622
- #: includes/meta.php:1181
623
  msgid ""
624
  "Do not use &lt;style>&lt;/style> tag, you can use bellow prefix to your css, "
625
  "sometime you need use \"!important\" to overrid."
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Woocommerce Products Slider\n"
4
+ "POT-Creation-Date: 2016-11-17 09:54+0600\n"
5
+ "PO-Revision-Date: 2016-11-17 09:54+0600\n"
6
  "Last-Translator: Nur Hasan <public.nurhasan@gmail.com>\n"
7
  "Language-Team: PickPlugins <support@pickplugins.com>\n"
8
  "Language: en\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.9\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-KeywordsList: __;_e\n"
17
  "X-Poedit-SearchPath-1: includes\n"
18
  "X-Poedit-SearchPath-2: templates\n"
19
 
20
+ #: includes/class-functions.php:62 includes/meta.php:903
21
  msgid "Thumbnail"
22
  msgstr ""
23
 
24
+ #: includes/class-functions.php:63 includes/meta.php:790
25
  msgid "Title"
26
  msgstr ""
27
 
29
  msgid "Excerpt"
30
  msgstr ""
31
 
32
+ #: includes/class-functions.php:65 includes/meta.php:914
33
  msgid "Category"
34
  msgstr ""
35
 
57
  msgid "No Product to Slide"
58
  msgstr ""
59
 
60
+ #: includes/functions.php:84 includes/meta.php:299 includes/meta.php:310
61
  msgid "Shortcode"
62
  msgstr ""
63
 
73
  msgid " Settings"
74
  msgstr ""
75
 
76
+ #: includes/menu/settings.php:67 includes/meta.php:300
77
  msgid "Options"
78
  msgstr ""
79
 
85
  msgid "Track product View"
86
  msgstr ""
87
 
88
+ #: includes/menu/settings.php:81 includes/meta.php:802 includes/meta.php:931
89
  msgid "No"
90
  msgstr ""
91
 
92
+ #: includes/menu/settings.php:82 includes/meta.php:932
93
  msgid "Yes"
94
  msgstr ""
95
 
170
  msgid "Woocommerce Products Slider Options"
171
  msgstr ""
172
 
173
+ #: includes/meta.php:301
174
  msgid "Style"
175
  msgstr ""
176
 
177
+ #: includes/meta.php:302
178
  msgid "Content"
179
  msgstr ""
180
 
181
+ #: includes/meta.php:303
182
  msgid "Custom CSS"
183
  msgstr ""
184
 
185
+ #: includes/meta.php:312
186
  msgid ""
187
  "Copy this shortcode and paste on page or post where you want to display "
188
  "slider."
189
  msgstr ""
190
 
191
+ #: includes/meta.php:314
192
  msgid "Use PHP code to your themes file to display slider."
193
  msgstr ""
194
 
195
+ #: includes/meta.php:327
196
  msgid "Slider Total Items"
197
  msgstr ""
198
 
199
+ #: includes/meta.php:328
200
  msgid "ex: 10"
201
  msgstr ""
202
 
203
+ #: includes/meta.php:333
204
  msgid "Slider Column Number"
205
  msgstr ""
206
 
207
+ #: includes/meta.php:335
208
  msgid "In Destop: (min:1000px and max)"
209
  msgstr ""
210
 
211
+ #: includes/meta.php:338
212
  msgid "In Tablet & Small Desktop: (900px max width)"
213
  msgstr ""
214
 
215
+ #: includes/meta.php:341
216
  msgid "In Mobile: (479px max width)"
217
  msgstr ""
218
 
219
+ #: includes/meta.php:349
220
  msgid "Slider Auto Play"
221
  msgstr ""
222
 
223
+ #: includes/meta.php:354 includes/meta.php:360 includes/meta.php:366
224
+ #: includes/meta.php:372 includes/meta.php:380 includes/meta.php:449
225
+ #: includes/meta.php:460 includes/meta.php:483 includes/meta.php:498
226
+ #: includes/meta.php:527 includes/meta.php:538
227
  msgid "True"
228
  msgstr ""
229
 
230
+ #: includes/meta.php:355 includes/meta.php:361 includes/meta.php:367
231
+ #: includes/meta.php:373 includes/meta.php:379 includes/meta.php:450
232
+ #: includes/meta.php:461 includes/meta.php:484 includes/meta.php:497
233
+ #: includes/meta.php:528 includes/meta.php:539
234
  msgid "False"
235
  msgstr ""
236
 
237
+ #: includes/meta.php:358
238
+ msgid "Slider rewind"
239
+ msgstr ""
240
+
241
+ #: includes/meta.php:364
242
+ msgid "Slider loop"
243
+ msgstr ""
244
+
245
+ #: includes/meta.php:370
246
+ msgid "Slider center"
247
+ msgstr ""
248
+
249
+ #: includes/meta.php:376
250
+ msgid "RTL Enabled"
251
+ msgstr ""
252
+
253
+ #: includes/meta.php:386
254
+ msgid "Animate Out"
255
+ msgstr ""
256
+
257
+ #: includes/meta.php:389 includes/meta.php:420
258
+ msgid "fadeOut"
259
+ msgstr ""
260
+
261
+ #: includes/meta.php:390 includes/meta.php:421
262
+ msgid "bounce"
263
+ msgstr ""
264
+
265
+ #: includes/meta.php:391 includes/meta.php:422
266
+ msgid "flash"
267
+ msgstr ""
268
+
269
+ #: includes/meta.php:392 includes/meta.php:423
270
+ msgid "pulse"
271
+ msgstr ""
272
+
273
+ #: includes/meta.php:395 includes/meta.php:425
274
+ msgid "Shake"
275
+ msgstr ""
276
+
277
+ #: includes/meta.php:396 includes/meta.php:426
278
+ msgid "Swing"
279
+ msgstr ""
280
+
281
+ #: includes/meta.php:397 includes/meta.php:427
282
+ msgid "Tada"
283
+ msgstr ""
284
+
285
+ #: includes/meta.php:398 includes/meta.php:428
286
+ msgid "Wobble"
287
+ msgstr ""
288
+
289
+ #: includes/meta.php:399 includes/meta.php:429
290
+ msgid "flip"
291
+ msgstr ""
292
+
293
+ #: includes/meta.php:400 includes/meta.php:430
294
+ msgid "flipInX"
295
+ msgstr ""
296
+
297
+ #: includes/meta.php:401 includes/meta.php:431
298
+ msgid "flipInY"
299
+ msgstr ""
300
+
301
+ #: includes/meta.php:402 includes/meta.php:432
302
+ msgid "fadeIn"
303
+ msgstr ""
304
+
305
+ #: includes/meta.php:403 includes/meta.php:433
306
+ msgid "fadeInDown"
307
+ msgstr ""
308
+
309
+ #: includes/meta.php:404 includes/meta.php:434
310
+ msgid "fadeInUp"
311
+ msgstr ""
312
+
313
+ #: includes/meta.php:405 includes/meta.php:435
314
+ msgid "bounceIn"
315
+ msgstr ""
316
+
317
+ #: includes/meta.php:406 includes/meta.php:436
318
+ msgid "bounceInDown"
319
+ msgstr ""
320
+
321
+ #: includes/meta.php:407 includes/meta.php:437
322
+ msgid "bounceInUp"
323
+ msgstr ""
324
+
325
+ #: includes/meta.php:417
326
+ msgid "Animate In"
327
+ msgstr ""
328
+
329
+ #: includes/meta.php:445
330
  msgid "Slider Stop on Hover"
331
  msgstr ""
332
 
333
+ #: includes/meta.php:456
334
  msgid "Slider Navigation"
335
  msgstr ""
336
 
337
+ #: includes/meta.php:457
338
  msgid "Slider Navigation at Top"
339
  msgstr ""
340
 
341
+ #: includes/meta.php:465
342
  msgid "Slider Navigation Position"
343
  msgstr ""
344
 
345
+ #: includes/meta.php:467
346
  msgid "Top Right"
347
  msgstr ""
348
 
349
+ #: includes/meta.php:468
350
  msgid "Middle"
351
  msgstr ""
352
 
353
+ #: includes/meta.php:469
354
  msgid "Middle fixed"
355
  msgstr ""
356
 
357
+ #: includes/meta.php:479
358
  msgid "Slider Pagination"
359
  msgstr ""
360
 
361
+ #: includes/meta.php:480
362
  msgid "Slider Pagination at Bottom"
363
  msgstr ""
364
 
365
+ #: includes/meta.php:489
366
  msgid "Pagination Background Color"
367
  msgstr ""
368
 
369
+ #: includes/meta.php:492
370
  msgid "Pagination Text Color"
371
  msgstr ""
372
 
373
+ #: includes/meta.php:495
374
  msgid "Pagination Number Counting"
375
  msgstr ""
376
 
377
+ #: includes/meta.php:511
378
  msgid "Slide Speed"
379
  msgstr ""
380
 
381
+ #: includes/meta.php:516
382
  msgid "Pagination Slide Speed"
383
  msgstr ""
384
 
385
+ #: includes/meta.php:522
386
  msgid "Slider Touch Drag Enabled"
387
  msgstr ""
388
 
389
+ #: includes/meta.php:534
390
  msgid "Slider Mouse Drag Enabled"
391
  msgstr ""
392
 
393
+ #: includes/meta.php:548
394
  msgid "Themes for slider"
395
  msgstr ""
396
 
397
+ #: includes/meta.php:571
398
  msgid "Slider Ribbon"
399
  msgstr ""
400
 
401
+ #: includes/meta.php:642
402
  msgid "Container options"
403
  msgstr ""
404
 
405
+ #: includes/meta.php:643
406
  msgid "Padding: (ex: 10px)"
407
  msgstr ""
408
 
409
+ #: includes/meta.php:646
410
  msgid "Background color:"
411
  msgstr ""
412
 
413
+ #: includes/meta.php:649
414
  msgid "Background image:"
415
  msgstr ""
416
 
417
+ #: includes/meta.php:654
418
  msgid "Clear"
419
  msgstr ""
420
 
421
+ #: includes/meta.php:679
422
  msgid "Items Options"
423
  msgstr ""
424
 
425
+ #: includes/meta.php:680
426
  msgid "Items Background color"
427
  msgstr ""
428
 
429
+ #: includes/meta.php:683
430
  msgid "Items Padding"
431
  msgstr ""
432
 
433
+ #: includes/meta.php:695
434
  msgid "Empty Thumbnail"
435
  msgstr ""
436
 
437
+ #: includes/meta.php:696
438
  msgid "Custom thumbnail image url"
439
  msgstr ""
440
 
441
+ #: includes/meta.php:765
442
  msgid "Query order"
443
  msgstr ""
444
 
445
+ #: includes/meta.php:768
446
  msgid "Descending"
447
  msgstr ""
448
 
449
+ #: includes/meta.php:769
450
  msgid "Ascending "
451
  msgstr ""
452
 
453
+ #: includes/meta.php:781
454
  msgid "Query orderBy"
455
  msgstr ""
456
 
457
+ #: includes/meta.php:784
458
  msgid "None"
459
  msgstr ""
460
 
461
+ #: includes/meta.php:785
462
  msgid "ID"
463
  msgstr ""
464
 
465
+ #: includes/meta.php:786
466
  msgid "Date"
467
  msgstr ""
468
 
469
+ #: includes/meta.php:787
470
  msgid "Rand"
471
  msgstr ""
472
 
473
+ #: includes/meta.php:788
474
  msgid "Comment Count"
475
  msgstr ""
476
 
477
+ #: includes/meta.php:789
478
  msgid "Author"
479
  msgstr ""
480
 
481
+ #: includes/meta.php:791
482
  msgid "Name"
483
  msgstr ""
484
 
485
+ #: includes/meta.php:792
486
  msgid "Type"
487
  msgstr ""
488
 
489
+ #: includes/meta.php:799
490
  msgid "Hide out of stock items"
491
  msgstr ""
492
 
493
+ #: includes/meta.php:803
494
  msgid "Yes "
495
  msgstr ""
496
 
497
+ #: includes/meta.php:812
498
  msgid "Filter Slider Content."
499
  msgstr ""
500
 
501
+ #: includes/meta.php:815
502
  msgid "Display from <b>Recent</b> Published"
503
  msgstr ""
504
 
505
+ #: includes/meta.php:816
506
  msgid "Slider items will query from recent published product."
507
  msgstr ""
508
 
509
+ #: includes/meta.php:819
510
  msgid "Display from <b>Featured</b> Product"
511
  msgstr ""
512
 
513
+ #: includes/meta.php:820
514
  msgid "Slider items will query from featured marked product."
515
  msgstr ""
516
 
517
+ #: includes/meta.php:823
518
  msgid "Display from Only <b>Year</b>"
519
  msgstr ""
520
 
521
+ #: includes/meta.php:825
522
  msgid "Slider items will query from a year."
523
  msgstr ""
524
 
525
+ #: includes/meta.php:830
526
  msgid "Display from <b>Month</b>"
527
  msgstr ""
528
 
529
+ #: includes/meta.php:831
530
  msgid "Slider items will query from Month of a year."
531
  msgstr ""
532
 
533
+ #: includes/meta.php:843
534
  msgid "Items sort."
535
  msgstr ""
536
 
537
+ #: includes/meta.php:844
538
  msgid "Click each items to expand."
539
  msgstr ""
540
 
541
+ #: includes/meta.php:845
542
  msgid "Reset"
543
  msgstr ""
544
 
545
+ #: includes/meta.php:897
546
  msgid "Slider Thumbnail Size"
547
  msgstr ""
548
 
549
+ #: includes/meta.php:900
550
  msgid "Full"
551
  msgstr ""
552
 
553
+ #: includes/meta.php:901
554
  msgid "Large"
555
  msgstr ""
556
 
557
+ #: includes/meta.php:902
558
  msgid "Medium"
559
  msgstr ""
560
 
561
+ #: includes/meta.php:910
562
  msgid "Items thumbnail link's to"
563
  msgstr ""
564
 
565
+ #: includes/meta.php:913
566
  msgid "Product"
567
  msgstr ""
568
 
569
+ #: includes/meta.php:922
570
  msgid "Slider thumb max hieght(px)"
571
  msgstr ""
572
 
573
+ #: includes/meta.php:928
574
  msgid "Display Thumbnail Zoom button"
575
  msgstr ""
576
 
577
+ #: includes/meta.php:945
578
  msgid "Items Add to cart button Style"
579
  msgstr ""
580
 
581
+ #: includes/meta.php:946
582
  msgid "You can hide items Add to cart button on slider."
583
  msgstr ""
584
 
585
+ #: includes/meta.php:948
586
  msgid "Default"
587
  msgstr ""
588
 
589
+ #: includes/meta.php:949
590
  msgid "Custom"
591
  msgstr ""
592
 
593
+ #: includes/meta.php:954
594
  msgid "Add to cart Background Color"
595
  msgstr ""
596
 
597
+ #: includes/meta.php:960
598
  msgid "Add to cart Text Color"
599
  msgstr ""
600
 
601
+ #: includes/meta.php:966
602
  msgid "Items Cart Text Align"
603
  msgstr ""
604
 
605
+ #: includes/meta.php:970 includes/meta.php:1023 includes/meta.php:1082
606
+ #: includes/meta.php:1107 includes/meta.php:1163 includes/meta.php:1205
607
  msgid "Left"
608
  msgstr ""
609
 
610
+ #: includes/meta.php:971 includes/meta.php:1024 includes/meta.php:1083
611
+ #: includes/meta.php:1108 includes/meta.php:1164 includes/meta.php:1206
612
  msgid "Right"
613
  msgstr ""
614
 
615
+ #: includes/meta.php:972 includes/meta.php:1025 includes/meta.php:1084
616
+ #: includes/meta.php:1109 includes/meta.php:1166 includes/meta.php:1207
617
  msgid "Center"
618
  msgstr ""
619
 
620
+ #: includes/meta.php:988
621
  msgid "Sale marker icon url"
622
  msgstr ""
623
 
624
+ #: includes/meta.php:1007
625
  msgid "Items Title Color"
626
  msgstr ""
627
 
628
+ #: includes/meta.php:1012
629
  msgid "Items Title Font Size"
630
  msgstr ""
631
 
632
+ #: includes/meta.php:1019
633
  msgid "Items Title Text Align"
634
  msgstr ""
635
 
636
+ #: includes/meta.php:1038
637
  msgid "Featured marker icon url"
638
  msgstr ""
639
 
640
+ #: includes/meta.php:1050
641
  msgid "Price format on slider"
642
  msgstr ""
643
 
644
+ #: includes/meta.php:1053
645
  msgid "Full Format"
646
  msgstr ""
647
 
648
+ #: includes/meta.php:1054
649
  msgid "Sale price"
650
  msgstr ""
651
 
652
+ #: includes/meta.php:1055
653
  msgid "Regular price"
654
  msgstr ""
655
 
656
+ #: includes/meta.php:1064
657
  msgid "Items Price Color"
658
  msgstr ""
659
 
660
+ #: includes/meta.php:1070
661
  msgid "Items price Font Size"
662
  msgstr ""
663
 
664
+ #: includes/meta.php:1078
665
  msgid "Price Text Align"
666
  msgstr ""
667
 
668
+ #: includes/meta.php:1103
669
  msgid "Items Rating Text Align"
670
  msgstr ""
671
 
672
+ #: includes/meta.php:1116
673
  msgid "Items ratings Font Size"
674
  msgstr ""
675
 
676
+ #: includes/meta.php:1123
677
  msgid "Items Ratings Color"
678
  msgstr ""
679
 
680
+ #: includes/meta.php:1140
681
  msgid "Excerpt word count"
682
  msgstr ""
683
 
684
+ #: includes/meta.php:1146
685
  msgid "Excerpt read more text"
686
  msgstr ""
687
 
688
+ #: includes/meta.php:1152
689
  msgid "Items Excerpt Font Size"
690
  msgstr ""
691
 
692
+ #: includes/meta.php:1159
693
  msgid "Excerpt Text Align"
694
  msgstr ""
695
 
696
+ #: includes/meta.php:1172
697
  msgid "Items Excerpt Font color"
698
  msgstr ""
699
 
700
+ #: includes/meta.php:1194
701
  msgid "Items Category Font Size"
702
  msgstr ""
703
 
704
+ #: includes/meta.php:1201
705
  msgid "Category Text Align"
706
  msgstr ""
707
 
708
+ #: includes/meta.php:1216
709
  msgid "Items Category Font color"
710
  msgstr ""
711
 
712
+ #: includes/meta.php:1271
713
  msgid "Custom CSS for this slider."
714
  msgstr ""
715
 
716
+ #: includes/meta.php:1272
717
  msgid ""
718
  "Do not use &lt;style>&lt;/style> tag, you can use bellow prefix to your css, "
719
  "sometime you need use \"!important\" to overrid."
readme.txt CHANGED
@@ -3,8 +3,8 @@
3
  Donate link: http://pickplugins.com
4
  Tags: carousel, product, slider, woocommerce, carousel slider, product slider, woocommerce slider, Woocommerce Product slider
5
  Requires at least: 3.8
6
- Tested up to: 4.6
7
- Stable tag: 1.12.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -91,6 +91,9 @@ then paste this shortcode anywhere in your page to display slider<br />
91
 
92
  == Changelog ==
93
 
 
 
 
94
  = 1.12.4 =
95
  * 26/08/2016 – fix - ribbon none.png missing issue fixed.
96
 
3
  Donate link: http://pickplugins.com
4
  Tags: carousel, product, slider, woocommerce, carousel slider, product slider, woocommerce slider, Woocommerce Product slider
5
  Requires at least: 3.8
6
+ Tested up to: 4.7
7
+ Stable tag: 1.12.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
91
 
92
  == Changelog ==
93
 
94
+ = 1.12.5 =
95
+ * 17/11/2016 update - update owl js & css files version 2.0.1 aseets.
96
+
97
  = 1.12.4 =
98
  * 26/08/2016 – fix - ribbon none.png missing issue fixed.
99
 
templates/layer-media.php CHANGED
@@ -9,5 +9,18 @@ if ( ! defined('ABSPATH')) exit; // if direct access
9
 
10
 
11
  $html.='<div class="layer-media">';
12
- include wcps_plugin_dir.'/templates/wcps-thumb.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  $html.='</div>';
9
 
10
 
11
  $html.='<div class="layer-media">';
12
+
13
+ foreach($wcps_grid_items as $item_key=>$item){
14
+ if(empty($wcps_grid_items_hide[$item_key])){
15
+
16
+ if($item_key=='thumb')
17
+ include wcps_plugin_dir.'/templates/wcps-'.$item_key.'.php';
18
+ }
19
+ }
20
+
21
+
22
+
23
+
24
+
25
+ //include wcps_plugin_dir.'/templates/wcps-thumb.php';
26
  $html.='</div>';
templates/scripts-old.php ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * @Author PickPlugins
5
+ * Copyright: 2015 PickPlugins
6
+ */
7
+
8
+ if ( ! defined('ABSPATH')) exit; // if direct access
9
+
10
+
11
+ $html.= '<script>
12
+ jQuery(document).ready(function($)
13
+ {
14
+ $("#wcps-'.$post_id.'").owlCarousel({
15
+
16
+ items : '.$wcps_column_number.', //10 items above 1000px browser width
17
+ itemsDesktop : [1000,'.$wcps_column_number.'], //5 items between 1000px and 901px
18
+ itemsDesktopSmall : [900,'.$wcps_column_number_tablet.'], // betweem 900px and 601px
19
+ itemsTablet: [600,'.$wcps_column_number_tablet.'], //2 items between 600 and 0
20
+ itemsMobile : [479,'.$wcps_column_number_mobile.'],
21
+ navigationText : ["",""],
22
+ ';
23
+
24
+
25
+ if($wcps_auto_play=="true")
26
+ {
27
+
28
+ $html.= 'autoPlay: '.$wcps_auto_play.',';
29
+
30
+ }
31
+
32
+ if($wcps_stop_on_hover=="true")
33
+ {
34
+
35
+ $html.= 'stopOnHover: '.$wcps_stop_on_hover.',';
36
+
37
+ }
38
+
39
+ if($wcps_slider_navigation=="true")
40
+ {
41
+
42
+ $html.= 'navigation: '.$wcps_slider_navigation.',';
43
+
44
+ }
45
+
46
+ if(($wcps_slider_pagination=="true"))
47
+ {
48
+
49
+ $html.= 'pagination: '.$wcps_slider_pagination.',';
50
+
51
+ }
52
+ else
53
+ {
54
+ $html.= 'pagination: false,';
55
+ }
56
+
57
+
58
+ if(($wcps_slider_pagination_count=="true"))
59
+ {
60
+
61
+ $html.= 'paginationNumbers: true,';
62
+
63
+ }
64
+ else
65
+ {
66
+ $html.= 'paginationNumbers: false,';
67
+ }
68
+
69
+
70
+
71
+ if(!empty($wcps_slide_speed))
72
+ {
73
+
74
+ $html.= 'slideSpeed: '.$wcps_slide_speed.',';
75
+
76
+ }
77
+
78
+
79
+ if(!empty($wcps_pagination_slide_speed))
80
+ {
81
+
82
+ $html.= 'paginationSpeed: '.$wcps_pagination_slide_speed.',';
83
+
84
+ }
85
+
86
+
87
+ if(($wcps_slider_touch_drag=="true"))
88
+ {
89
+
90
+ $html.= 'touchDrag : true,';
91
+
92
+ }
93
+ else
94
+ {
95
+ $html.= 'touchDrag: false,';
96
+ }
97
+
98
+
99
+
100
+ if(($wcps_slider_mouse_drag=="true" ))
101
+ {
102
+
103
+ $html.= 'mouseDrag : true,';
104
+
105
+ }
106
+ else
107
+ {
108
+ $html.= 'mouseDrag : false,';
109
+ }
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+ $html.= '});
119
+
120
+ });';
121
+
122
+
123
+ if($wcps_slider_navigation_position == 'topright')
124
+ {
125
+ $html.= 'jQuery(document).ready(function($)
126
+ {
127
+ $(".owl-buttons").addClass("topright");
128
+
129
+
130
+ })';
131
+ }
132
+ elseif($wcps_slider_navigation_position == 'middle')
133
+ {
134
+ $html.= 'jQuery(document).ready(function($)
135
+ {
136
+ $(".owl-buttons").addClass("middle");
137
+
138
+
139
+ })';
140
+ }
141
+ elseif($wcps_slider_navigation_position == 'middle-fixed')
142
+ {
143
+ $html.= 'jQuery(document).ready(function($)
144
+ {
145
+ $(".owl-buttons").addClass("middle-fixed");
146
+
147
+
148
+
149
+ })';
150
+ }
151
+
152
+ $html.= '</script>';
templates/scripts.php CHANGED
@@ -14,91 +14,103 @@ if ( ! defined('ABSPATH')) exit; // if direct access
14
  $("#wcps-'.$post_id.'").owlCarousel({
15
 
16
  items : '.$wcps_column_number.', //10 items above 1000px browser width
17
- itemsDesktop : [1000,'.$wcps_column_number.'], //5 items between 1000px and 901px
18
- itemsDesktopSmall : [900,'.$wcps_column_number_tablet.'], // betweem 900px and 601px
19
- itemsTablet: [600,'.$wcps_column_number_tablet.'], //2 items between 600 and 0
20
- itemsMobile : [479,'.$wcps_column_number_mobile.'],
21
- navigationText : ["",""],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  ';
23
 
24
-
 
 
 
 
 
 
 
 
 
25
  if($wcps_auto_play=="true")
26
  {
27
 
28
- $html.= 'autoPlay: '.$wcps_auto_play.',';
29
-
 
 
30
  }
31
 
32
- if($wcps_stop_on_hover=="true")
33
- {
34
-
35
- $html.= 'stopOnHover: '.$wcps_stop_on_hover.',';
36
-
37
- }
38
 
39
- if($wcps_slider_navigation=="true")
40
- {
41
 
42
- $html.= 'navigation: '.$wcps_slider_navigation.',';
 
 
43
 
44
- }
45
 
46
- if(($wcps_slider_pagination=="true"))
47
- {
48
 
49
- $html.= 'pagination: '.$wcps_slider_pagination.',';
 
 
50
 
51
  }
52
- else
53
- {
54
- $html.= 'pagination: false,';
55
  }
56
 
 
57
 
58
- if(($wcps_slider_pagination_count=="true"))
59
- {
60
-
61
- $html.= 'paginationNumbers: true,';
62
 
63
- }
64
- else
65
- {
66
- $html.= 'paginationNumbers: false,';
67
- }
68
-
69
-
70
-
71
- if(!empty($wcps_slide_speed))
72
- {
73
 
74
- $html.= 'slideSpeed: '.$wcps_slide_speed.',';
75
 
76
- }
77
-
78
 
79
- if(!empty($wcps_pagination_slide_speed))
80
- {
81
 
82
- $html.= 'paginationSpeed: '.$wcps_pagination_slide_speed.',';
83
-
84
- }
85
-
86
-
87
- if(($wcps_slider_touch_drag=="true"))
88
- {
89
 
90
- $html.= 'touchDrag : true,';
91
 
92
  }
93
  else
94
  {
95
  $html.= 'touchDrag: false,';
96
- }
97
-
98
-
99
-
100
- if(($wcps_slider_mouse_drag=="true" ))
101
- {
102
 
103
  $html.= 'mouseDrag : true,';
104
 
@@ -106,15 +118,12 @@ if ( ! defined('ABSPATH')) exit; // if direct access
106
  else
107
  {
108
  $html.= 'mouseDrag : false,';
109
- }
110
-
111
-
112
-
113
-
114
-
115
 
116
 
117
 
 
118
  $html.= '});
119
 
120
  });';
@@ -124,7 +133,7 @@ if ( ! defined('ABSPATH')) exit; // if direct access
124
  {
125
  $html.= 'jQuery(document).ready(function($)
126
  {
127
- $(".owl-buttons").addClass("topright");
128
 
129
 
130
  })';
@@ -133,7 +142,7 @@ if ( ! defined('ABSPATH')) exit; // if direct access
133
  {
134
  $html.= 'jQuery(document).ready(function($)
135
  {
136
- $(".owl-buttons").addClass("middle");
137
 
138
 
139
  })';
@@ -142,7 +151,7 @@ if ( ! defined('ABSPATH')) exit; // if direct access
142
  {
143
  $html.= 'jQuery(document).ready(function($)
144
  {
145
- $(".owl-buttons").addClass("middle-fixed");
146
 
147
 
148
 
14
  $("#wcps-'.$post_id.'").owlCarousel({
15
 
16
  items : '.$wcps_column_number.', //10 items above 1000px browser width
17
+
18
+
19
+ responsiveClass:true,
20
+
21
+ responsive:{
22
+ 0:{
23
+ items:'.$wcps_column_number_mobile.',
24
+
25
+ },
26
+ 600:{
27
+ items:'.$wcps_column_number_tablet.',
28
+
29
+ },
30
+
31
+ 900:{
32
+ items:'.$wcps_column_number_tablet.',
33
+
34
+ },
35
+
36
+ 1000:{
37
+ items:'.$wcps_column_number.',
38
+
39
+
40
+ }
41
+ },
42
+
43
+
44
+
45
+
46
  ';
47
 
48
+ //var_dump($wcps_auto_play);
49
+
50
+ $html.= 'loop: '.$wcps_loop.',';
51
+ $html.= 'rewind: '.$wcps_rewind.',';
52
+ $html.= 'center: '.$wcps_center.',';
53
+ $html.= 'rtl: '.$wcps_slider_rtl.',';
54
+ $html.= 'animateOut: "'.$wcps_slider_animateout.'",';
55
+ $html.= 'animateIn: "'.$wcps_slider_animatein.'",';
56
+
57
+
58
  if($wcps_auto_play=="true")
59
  {
60
 
61
+
62
+ $html.= 'autoplay: true,';
63
+ //$html.= 'autoplayTimeout: 500,';
64
+ $html.= 'autoplayHoverPause: '.$wcps_stop_on_hover.',';
65
  }
66
 
67
+
 
 
 
 
 
68
 
69
+ if($wcps_slider_navigation=="true"){
 
70
 
71
+ $html.= '
72
+ navText : ["",""],
73
+ nav: true,';
74
 
75
+ }
76
 
 
 
77
 
78
+ if(($wcps_slider_pagination=="true")){
79
+
80
+ $html.= 'dots: true,';
81
 
82
  }
83
+ else{
84
+ $html.= 'dots: false,';
 
85
  }
86
 
87
+ if(!empty($wcps_slide_speed)){
88
 
89
+ $html.= 'navSpeed: '.$wcps_slide_speed.',';
 
 
 
90
 
91
+ }
92
+
93
+
94
+ if(!empty($wcps_pagination_slide_speed)){
 
 
 
 
 
 
95
 
96
+ $html.= 'dotsSpeed: '.$wcps_pagination_slide_speed.',';
97
 
98
+ }
 
99
 
 
 
100
 
101
+ if(($wcps_slider_touch_drag=="true")){
 
 
 
 
 
 
102
 
103
+ $html.= 'touchDrag : true,';
104
 
105
  }
106
  else
107
  {
108
  $html.= 'touchDrag: false,';
109
+ }
110
+
111
+
112
+
113
+ if(($wcps_slider_mouse_drag=="true" )){
 
114
 
115
  $html.= 'mouseDrag : true,';
116
 
118
  else
119
  {
120
  $html.= 'mouseDrag : false,';
121
+ }
122
+
 
 
 
 
123
 
124
 
125
 
126
+
127
  $html.= '});
128
 
129
  });';
133
  {
134
  $html.= 'jQuery(document).ready(function($)
135
  {
136
+ $(".owl-nav").addClass("topright");
137
 
138
 
139
  })';
142
  {
143
  $html.= 'jQuery(document).ready(function($)
144
  {
145
+ $(".owl-nav").addClass("middle");
146
 
147
 
148
  })';
151
  {
152
  $html.= 'jQuery(document).ready(function($)
153
  {
154
+ $(".owl-nav").addClass("middle-fixed");
155
 
156
 
157
 
templates/variables.php CHANGED
@@ -61,6 +61,22 @@ if ( ! defined('ABSPATH')) exit; // if direct access
61
  if(empty($wcps_auto_play)){
62
  $wcps_auto_play = 'true';
63
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
 
65
  $wcps_stop_on_hover = get_post_meta( $post_id, 'wcps_stop_on_hover', true );
66
  if(empty($wcps_stop_on_hover)){
@@ -98,6 +114,16 @@ if ( ! defined('ABSPATH')) exit; // if direct access
98
  $wcps_slider_touch_drag = get_post_meta( $post_id, 'wcps_slider_touch_drag', true );
99
  $wcps_slider_mouse_drag = get_post_meta( $post_id, 'wcps_slider_mouse_drag', true );
100
 
 
 
 
 
 
 
 
 
 
 
101
  $wcps_content_source = get_post_meta( $post_id, 'wcps_content_source', true );
102
  if(empty($wcps_content_source)){
103
  $wcps_content_source = 'recent';
61
  if(empty($wcps_auto_play)){
62
  $wcps_auto_play = 'true';
63
  }
64
+
65
+ $wcps_rewind = get_post_meta( $post_id, 'wcps_rewind', true );
66
+ if(empty($wcps_rewind)){
67
+ $wcps_rewind = 'true';
68
+ }
69
+
70
+ $wcps_loop = get_post_meta( $post_id, 'wcps_loop', true );
71
+ if(empty($wcps_loop)){
72
+ $wcps_loop = 'true';
73
+ }
74
+
75
+ $wcps_center = get_post_meta( $post_id, 'wcps_center', true );
76
+ if(empty($wcps_center)){
77
+ $wcps_center = 'false';
78
+ }
79
+
80
 
81
  $wcps_stop_on_hover = get_post_meta( $post_id, 'wcps_stop_on_hover', true );
82
  if(empty($wcps_stop_on_hover)){
114
  $wcps_slider_touch_drag = get_post_meta( $post_id, 'wcps_slider_touch_drag', true );
115
  $wcps_slider_mouse_drag = get_post_meta( $post_id, 'wcps_slider_mouse_drag', true );
116
 
117
+ $wcps_slider_rtl = get_post_meta( $post_id, 'wcps_slider_rtl', true );
118
+ if(empty($wcps_slider_rtl)){$wcps_slider_rtl = 'false'; }
119
+
120
+ $wcps_slider_animateout = get_post_meta( $post_id, 'wcps_slider_animateout', true );
121
+ if(empty($wcps_slider_animateout)){$wcps_slider_animateout = 'fadeOut'; }
122
+
123
+ $wcps_slider_animatein = get_post_meta( $post_id, 'wcps_slider_animatein', true );
124
+ if(empty($wcps_slider_animatein)){$wcps_slider_animatein = 'flipInX'; }
125
+
126
+
127
  $wcps_content_source = get_post_meta( $post_id, 'wcps_content_source', true );
128
  if(empty($wcps_content_source)){
129
  $wcps_content_source = 'recent';
templates/wcps-excerpt.php CHANGED
@@ -8,9 +8,9 @@
8
  if ( ! defined('ABSPATH')) exit; // if direct access
9
 
10
 
11
- global $post;
12
-
13
- $excerpt_text = wp_trim_words( $post->post_excerpt , $wcps_items_excerpt_count, ' <a class="read-more" href="'.get_permalink(get_the_ID()).'"> '.$wcps_items_excerpt_read_more.'</a>' );
14
 
15
  $excerpt_text = apply_filters( 'wcps_filter_excerpt', $excerpt_text );
16
 
8
  if ( ! defined('ABSPATH')) exit; // if direct access
9
 
10
 
11
+ //global $post;
12
+ $excerpt_text = wp_trim_words( get_the_excerpt() , $wcps_items_excerpt_count, ' <a class="read-more" href="'.get_permalink(get_the_ID()).'"> '.$wcps_items_excerpt_read_more.'</a>' );
13
+ //$excerpt_text = wp_trim_words( $post->post_excerpt , $wcps_items_excerpt_count, ' <a class="read-more" href="'.get_permalink(get_the_ID()).'"> '.$wcps_items_excerpt_read_more.'</a>' );
14
 
15
  $excerpt_text = apply_filters( 'wcps_filter_excerpt', $excerpt_text );
16
 
woocommerce-products-slider.php CHANGED
@@ -3,9 +3,10 @@
3
  Plugin Name: Woocommerce Products Slider
4
  Plugin URI: http://pickplugins.com/items/woocommerce-product-slider-for-wordpress/
5
  Description: Fully responsive and mobile ready Carousel Slider for your woo-commerce product. unlimited slider anywhere via short-codes and easy admin setting.
6
- Version: 1.12.4
7
  Author: pickplugins
8
  Author URI: http://pickplugins.com
 
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
  */
@@ -26,10 +27,11 @@ class WoocommerceProductsSlider{
26
  define('wcps_conatct_url', 'http://pickplugins.com/contact/' );
27
  define('wcps_qa_url', 'http://pickplugins.com/questions/' );
28
  define('wcps_plugin_name', 'Woocommerce Products Slider' );
29
- define('wcps_plugin_version', '1.12.4' );
30
  define('wcps_customer_type', 'free' ); // pro & free
31
  define('wcps_share_url', 'https://wordpress.org/plugins/woocommerce-products-slider/' );
32
  define('wcps_tutorial_video_url', '//www.youtube.com/embed/B0sOSp3h9fE?rel=0' );
 
33
 
34
  require_once( plugin_dir_path( __FILE__ ) . 'includes/meta.php');
35
  require_once( plugin_dir_path( __FILE__ ) . 'includes/functions.php');
@@ -61,7 +63,7 @@ class WoocommerceProductsSlider{
61
 
62
 
63
  public function wcps_load_textdomain() {
64
- load_plugin_textdomain( 'wcps', false, plugin_basename( dirname( __FILE__ ) ) . '/languages/' );
65
  }
66
 
67
 
@@ -95,9 +97,19 @@ class WoocommerceProductsSlider{
95
  wp_enqueue_style('wcps_style', wcps_plugin_url.'assets/front/css/style.css');
96
  wp_enqueue_style('wcps_style.themes', wcps_plugin_url.'assets/global/css/style.themes.css');
97
  wp_enqueue_style('font-awesome', wcps_plugin_url.'assets/global/css/font-awesome.css');
98
- wp_enqueue_script('owl.carousel', plugins_url( '/assets/front/js/owl.carousel.js' , __FILE__ ) , array( 'jquery' ));
 
 
 
 
 
99
  wp_enqueue_style('owl.carousel', wcps_plugin_url.'assets/front/css/owl.carousel.css');
100
- wp_enqueue_style('owl.theme', wcps_plugin_url.'assets/front/css/owl.theme.css');
 
 
 
 
 
101
  }
102
 
103
  public function wcps_admin_scripts(){
3
  Plugin Name: Woocommerce Products Slider
4
  Plugin URI: http://pickplugins.com/items/woocommerce-product-slider-for-wordpress/
5
  Description: Fully responsive and mobile ready Carousel Slider for your woo-commerce product. unlimited slider anywhere via short-codes and easy admin setting.
6
+ Version: 1.12.5
7
  Author: pickplugins
8
  Author URI: http://pickplugins.com
9
+ Text Domain: woocommerce-products-slider
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
  */
27
  define('wcps_conatct_url', 'http://pickplugins.com/contact/' );
28
  define('wcps_qa_url', 'http://pickplugins.com/questions/' );
29
  define('wcps_plugin_name', 'Woocommerce Products Slider' );
30
+ define('wcps_plugin_version', '1.12.5' );
31
  define('wcps_customer_type', 'free' ); // pro & free
32
  define('wcps_share_url', 'https://wordpress.org/plugins/woocommerce-products-slider/' );
33
  define('wcps_tutorial_video_url', '//www.youtube.com/embed/B0sOSp3h9fE?rel=0' );
34
+ define('wcps_textdomain', 'woocommerce-products-slider' );
35
 
36
  require_once( plugin_dir_path( __FILE__ ) . 'includes/meta.php');
37
  require_once( plugin_dir_path( __FILE__ ) . 'includes/functions.php');
63
 
64
 
65
  public function wcps_load_textdomain() {
66
+ load_plugin_textdomain( wcps_textdomain, false, plugin_basename( dirname( __FILE__ ) ) . '/languages/' );
67
  }
68
 
69
 
97
  wp_enqueue_style('wcps_style', wcps_plugin_url.'assets/front/css/style.css');
98
  wp_enqueue_style('wcps_style.themes', wcps_plugin_url.'assets/global/css/style.themes.css');
99
  wp_enqueue_style('font-awesome', wcps_plugin_url.'assets/global/css/font-awesome.css');
100
+ //wp_enqueue_script('owl.carousel', plugins_url( '/assets/front/js/owl.carousel.js' , __FILE__ ) , array( 'jquery' ));
101
+ //wp_enqueue_style('owl.carousel', wcps_plugin_url.'assets/front/css/owl.carousel.css');
102
+ //wp_enqueue_style('owl.theme', wcps_plugin_url.'assets/front/css/owl.theme.css');
103
+
104
+ wp_enqueue_script('owl.carousel.min', plugins_url( '/assets/front/js/owl.carousel.min.js' , __FILE__ ) , array( 'jquery' ));
105
+
106
  wp_enqueue_style('owl.carousel', wcps_plugin_url.'assets/front/css/owl.carousel.css');
107
+
108
+
109
+
110
+
111
+
112
+
113
  }
114
 
115
  public function wcps_admin_scripts(){