owlcarousel-rails 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8cabd4fe1522910e3c47b674b37a3699bd26faeb
4
+ data.tar.gz: 922182b1523ab3583fb173a31ceecd4b95e31270
5
+ SHA512:
6
+ metadata.gz: 7790e0520b987b2501b327101731b1dc9ac12e746a781d3e8b99b19d51a4a8e58c95a2b12b8cf1173e4de7c1a4b69210611a4a0d50796eb7af269c78e696b33b
7
+ data.tar.gz: 840d6b94b062d3a5da404f737d60250323429a591ece6a77c2a314f55108194e008d1b942e58e36a02f426794c64ac614e500bc5b0a3df660026850f260fe959
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in jquery-datatables-rails.gemspec
4
+ gemspec
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2013 Adrian Rangel
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,81 @@
1
+ OwlCarousel-rails
2
+ ============
3
+
4
+ This gem bundles the contents of [OwlCarousel](https://github.com/OwlFonk/OwlCarousel) from OwlFonk
5
+
6
+ Touch enabled jQuery plugin that lets you create beautiful responsive carousel slider. [Visit Owl Carousel landing page](http://owlgraphic.com/owlcarousel).
7
+
8
+ ###Features:
9
+ * Responsive
10
+ * Touch Events
11
+ * Mouse Slide Events
12
+ * Fully Customizable
13
+ * Choose the number of items to be displayed
14
+ * Multiple Sliders
15
+ * CSS3 3d Transitions
16
+ * Custimizable controls
17
+ * JSON
18
+ * Custom events
19
+ * Helpful callbacks
20
+
21
+ > Tested on IE7, IE8, IE9, IE10, Chrome, Safari, Firefox, Opera, iPhone, iPad, Chrom on Google Nexus.
22
+
23
+
24
+ ### More Demos
25
+ See what Owl can do:
26
+ * [With auto scaling images](http://owlgraphic.com/owlcarousel/demos/images.html)
27
+ * [Full Width](http://owlgraphic.com/owlcarousel/demos/full.html)
28
+ * [Custom Widths](http://owlgraphic.com/owlcarousel/demos/custom.html)
29
+ * [One Item](http://owlgraphic.com/owlcarousel/demos/one.html)
30
+ * [More demos](http://owlgraphic.com/owlcarousel/#more-demos)
31
+
32
+ ### 1.Getting Started
33
+ Load jQuery(1.7+) and include Owl Carousel plugin files
34
+
35
+ ```html
36
+ <!-- Basic stylesheet -->
37
+ <link rel="stylesheet" href="owl-carousel/owl.carousel.css">
38
+
39
+ <!-- Default Theme -->
40
+ <link rel="stylesheet" href="owl-carousel/owl.theme.css">
41
+
42
+ <!-- Include js plugin -->
43
+ <script src="owl-carousel/owl.carousel.js"></script>
44
+ ```
45
+ ### 2.Set up your HTML
46
+ You don't need any special markup. All you need is to wrap your divs inside the container element <div class="owl-carousel">. Class "owl-carousel" is mandatory to apply proper styles that come from owl.carousel.css file.
47
+
48
+ ```html
49
+ <div class="owl-carousel">
50
+ <div> Your Content </div>
51
+ <div> Your Content </div>
52
+ <div> Your Content </div>
53
+ <div> Your Content </div>
54
+ <div> Your Content </div>
55
+ <div> Your Content </div>
56
+ <div> Your Content </div>
57
+ ...
58
+ </div>
59
+ ```
60
+ ### 3.Call the plugin
61
+ Now call the Owl initializer function and your carousel is ready.
62
+
63
+ ```html
64
+ $(".owl-carousel").owlCarousel();
65
+ ```
66
+ ### 4. For more details visit [OwlCarousel landing page](http://owlgraphic.com/owlcarousel)
67
+ ##### Changelog available [here](http://owlgraphic.com/owlcarousel/changelog.html)
68
+
69
+ Contributing
70
+ ------------
71
+
72
+ 1. Fork it.
73
+ 2. Create a branch (`git checkout -b my_markup`)
74
+ 3. Commit your changes (`git commit -am "Cool new feature"`)
75
+ 4. Push to the branch (`git push origin my_markup`)
76
+ 5. Open a [Pull Request][1]
77
+ 6. Enjoy a refreshing 'Insert Favorite Beverage' and wait
78
+
79
+ License
80
+ ------------
81
+ The MIT License (MIT)
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,8 @@
1
+ require "owlcarousel-rails/version"
2
+
3
+ module Owlcarousel
4
+ module Rails
5
+ class Engine < ::Rails::Engine
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ module Owlcarousel
2
+ module Rails
3
+ VERSION = "0.1.31"
4
+ end
5
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/owlcarousel-rails/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = "owlcarousel-rails"
6
+ gem.version = Owlcarousel::Rails::VERSION
7
+ gem.authors = ["OwlFonk", "Adrian Rangel"]
8
+ gem.email = ["adrian.rangel@gmail.com"]
9
+ gem.homepage = "http://owlgraphic.com/owlcarousel/"
10
+ gem.summary = %q{Owl Carousel. Touch enabled jQuery plugin that lets you create beautiful responsive carousel slider.}
11
+ gem.description = %q{Owl Carousel. Touch enabled jQuery plugin that lets you create beautiful responsive carousel slider.}
12
+ gem.license = "MIT"
13
+
14
+ gem.rubyforge_project = "owlcarousel-rails"
15
+
16
+ gem.files = `git ls-files`.split("\n")
17
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ gem.require_paths = ["lib"]
20
+
21
+ gem.add_dependency "jquery-rails"
22
+ gem.add_development_dependency "rake"
23
+
24
+ end
Binary file
Binary file
@@ -0,0 +1,1470 @@
1
+ /*
2
+ * jQuery OwlCarousel v1.31
3
+ *
4
+ * Copyright (c) 2013 Bartosz Wojciechowski
5
+ * http://www.owlgraphic.com/owlcarousel/
6
+ *
7
+ * Licensed under MIT
8
+ *
9
+ */
10
+
11
+ if ( typeof Object.create !== "function" ) {
12
+ Object.create = function( obj ) {
13
+ function F() {};
14
+ F.prototype = obj;
15
+ return new F();
16
+ };
17
+ }
18
+ (function( $, window, document, undefined ) {
19
+
20
+ var Carousel = {
21
+ init :function(options, el){
22
+ var base = this;
23
+
24
+ base.$elem = $(el);
25
+
26
+ // options passed via js override options passed via data attributes
27
+ base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
28
+
29
+ base.userOptions = options;
30
+ base.loadContent();
31
+ },
32
+
33
+ loadContent : function(){
34
+ var base = this;
35
+
36
+ if (typeof base.options.beforeInit === "function") {
37
+ base.options.beforeInit.apply(this,[base.$elem]);
38
+ }
39
+
40
+ if (typeof base.options.jsonPath === "string") {
41
+ var url = base.options.jsonPath;
42
+
43
+ function getData(data) {
44
+ if (typeof base.options.jsonSuccess === "function") {
45
+ base.options.jsonSuccess.apply(this,[data]);
46
+ } else {
47
+ var content = "";
48
+ for(var i in data["owl"]){
49
+ content += data["owl"][i]["item"];
50
+ }
51
+ base.$elem.html(content);
52
+ }
53
+ base.logIn();
54
+ }
55
+ $.getJSON(url,getData);
56
+ } else {
57
+ base.logIn();
58
+ }
59
+ },
60
+
61
+ logIn : function(action){
62
+ var base = this;
63
+
64
+ base.$elem.data("owl-originalStyles", base.$elem.attr("style"))
65
+ .data("owl-originalClasses", base.$elem.attr("class"));
66
+
67
+ base.$elem.css({opacity: 0});
68
+ base.orignalItems = base.options.items;
69
+ base.checkBrowser();
70
+ base.wrapperWidth = 0;
71
+ base.checkVisible;
72
+ base.setVars();
73
+ },
74
+
75
+ setVars : function(){
76
+ var base = this;
77
+ if(base.$elem.children().length === 0){return false}
78
+ base.baseClass();
79
+ base.eventTypes();
80
+ base.$userItems = base.$elem.children();
81
+ base.itemsAmount = base.$userItems.length;
82
+ base.wrapItems();
83
+ base.$owlItems = base.$elem.find(".owl-item");
84
+ base.$owlWrapper = base.$elem.find(".owl-wrapper");
85
+ base.playDirection = "next";
86
+ base.prevItem = 0;
87
+ base.prevArr = [0];
88
+ base.currentItem = 0;
89
+ base.customEvents();
90
+ base.onStartup();
91
+ },
92
+
93
+ onStartup : function(){
94
+ var base = this;
95
+ base.updateItems();
96
+ base.calculateAll();
97
+ base.buildControls();
98
+ base.updateControls();
99
+ base.response();
100
+ base.moveEvents();
101
+ base.stopOnHover();
102
+ base.owlStatus();
103
+
104
+ if(base.options.transitionStyle !== false){
105
+ base.transitionTypes(base.options.transitionStyle);
106
+ }
107
+ if(base.options.autoPlay === true){
108
+ base.options.autoPlay = 5000;
109
+ }
110
+ base.play();
111
+
112
+ base.$elem.find(".owl-wrapper").css("display","block")
113
+
114
+ if(!base.$elem.is(":visible")){
115
+ base.watchVisibility();
116
+ } else {
117
+ base.$elem.css("opacity",1);
118
+ }
119
+ base.onstartup = false;
120
+ base.eachMoveUpdate();
121
+ if (typeof base.options.afterInit === "function") {
122
+ base.options.afterInit.apply(this,[base.$elem]);
123
+ }
124
+ },
125
+
126
+ eachMoveUpdate : function(){
127
+ var base = this;
128
+
129
+ if(base.options.lazyLoad === true){
130
+ base.lazyLoad();
131
+ }
132
+ if(base.options.autoHeight === true){
133
+ base.autoHeight();
134
+ }
135
+ base.onVisibleItems();
136
+
137
+ if (typeof base.options.afterAction === "function") {
138
+ base.options.afterAction.apply(this,[base.$elem]);
139
+ }
140
+ },
141
+
142
+ updateVars : function(){
143
+ var base = this;
144
+ if(typeof base.options.beforeUpdate === "function") {
145
+ base.options.beforeUpdate.apply(this,[base.$elem]);
146
+ }
147
+ base.watchVisibility();
148
+ base.updateItems();
149
+ base.calculateAll();
150
+ base.updatePosition();
151
+ base.updateControls();
152
+ base.eachMoveUpdate();
153
+ if(typeof base.options.afterUpdate === "function") {
154
+ base.options.afterUpdate.apply(this,[base.$elem]);
155
+ }
156
+ },
157
+
158
+ reload : function(elements){
159
+ var base = this;
160
+ setTimeout(function(){
161
+ base.updateVars();
162
+ },0)
163
+ },
164
+
165
+ watchVisibility : function(){
166
+ var base = this;
167
+
168
+ if(base.$elem.is(":visible") === false){
169
+ base.$elem.css({opacity: 0});
170
+ clearInterval(base.autoPlayInterval);
171
+ clearInterval(base.checkVisible);
172
+ } else {
173
+ return false;
174
+ }
175
+ base.checkVisible = setInterval(function(){
176
+ if (base.$elem.is(":visible")) {
177
+ base.reload();
178
+ base.$elem.animate({opacity: 1},200);
179
+ clearInterval(base.checkVisible);
180
+ }
181
+ }, 500);
182
+ },
183
+
184
+ wrapItems : function(){
185
+ var base = this;
186
+ base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
187
+ base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
188
+ base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
189
+ base.$elem.css("display","block");
190
+ },
191
+
192
+ baseClass : function(){
193
+ var base = this;
194
+ var hasBaseClass = base.$elem.hasClass(base.options.baseClass);
195
+ var hasThemeClass = base.$elem.hasClass(base.options.theme);
196
+
197
+ if(!hasBaseClass){
198
+ base.$elem.addClass(base.options.baseClass);
199
+ }
200
+
201
+ if(!hasThemeClass){
202
+ base.$elem.addClass(base.options.theme);
203
+ }
204
+ },
205
+
206
+ updateItems : function(){
207
+ var base = this;
208
+
209
+ if(base.options.responsive === false){
210
+ return false;
211
+ }
212
+ if(base.options.singleItem === true){
213
+ base.options.items = base.orignalItems = 1;
214
+ base.options.itemsCustom = false;
215
+ base.options.itemsDesktop = false;
216
+ base.options.itemsDesktopSmall = false;
217
+ base.options.itemsTablet = false;
218
+ base.options.itemsTabletSmall = false;
219
+ base.options.itemsMobile = false;
220
+ return false;
221
+ }
222
+
223
+ var width = $(base.options.responsiveBaseWidth).width();
224
+
225
+ if(width > (base.options.itemsDesktop[0] || base.orignalItems) ){
226
+ base.options.items = base.orignalItems;
227
+ }
228
+
229
+ if(typeof(base.options.itemsCustom) !== 'undefined' && base.options.itemsCustom !== false){
230
+ //Reorder array by screen size
231
+ base.options.itemsCustom.sort(function(a,b){return a[0]-b[0];});
232
+ for(var i in base.options.itemsCustom){
233
+ if(typeof(base.options.itemsCustom[i]) !== 'undefined' && base.options.itemsCustom[i][0] <= width){
234
+ base.options.items = base.options.itemsCustom[i][1];
235
+ }
236
+ }
237
+ } else {
238
+
239
+ if(width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false){
240
+ base.options.items = base.options.itemsDesktop[1];
241
+ }
242
+
243
+ if(width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false){
244
+ base.options.items = base.options.itemsDesktopSmall[1];
245
+ }
246
+
247
+ if(width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false){
248
+ base.options.items = base.options.itemsTablet[1];
249
+ }
250
+
251
+ if(width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false){
252
+ base.options.items = base.options.itemsTabletSmall[1];
253
+ }
254
+
255
+ if(width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false){
256
+ base.options.items = base.options.itemsMobile[1];
257
+ }
258
+ }
259
+
260
+ //if number of items is less than declared
261
+ if(base.options.items > base.itemsAmount && base.options.itemsScaleUp === true){
262
+ base.options.items = base.itemsAmount;
263
+ }
264
+ },
265
+
266
+ response : function(){
267
+ var base = this,
268
+ smallDelay;
269
+ if(base.options.responsive !== true){
270
+ return false
271
+ }
272
+ var lastWindowWidth = $(window).width();
273
+
274
+ base.resizer = function(){
275
+ if($(window).width() !== lastWindowWidth){
276
+ if(base.options.autoPlay !== false){
277
+ clearInterval(base.autoPlayInterval);
278
+ }
279
+ clearTimeout(smallDelay);
280
+ smallDelay = setTimeout(function(){
281
+ lastWindowWidth = $(window).width();
282
+ base.updateVars();
283
+ },base.options.responsiveRefreshRate);
284
+ }
285
+ }
286
+ $(window).resize(base.resizer)
287
+ },
288
+
289
+ updatePosition : function(){
290
+ var base = this;
291
+ base.jumpTo(base.currentItem);
292
+ if(base.options.autoPlay !== false){
293
+ base.checkAp();
294
+ }
295
+ },
296
+
297
+ appendItemsSizes : function(){
298
+ var base = this;
299
+
300
+ var roundPages = 0;
301
+ var lastItem = base.itemsAmount - base.options.items;
302
+
303
+ base.$owlItems.each(function(index){
304
+ var $this = $(this);
305
+ $this
306
+ .css({"width": base.itemWidth})
307
+ .data("owl-item",Number(index));
308
+
309
+ if(index % base.options.items === 0 || index === lastItem){
310
+ if(!(index > lastItem)){
311
+ roundPages +=1;
312
+ }
313
+ }
314
+ $this.data("owl-roundPages",roundPages)
315
+ });
316
+ },
317
+
318
+ appendWrapperSizes : function(){
319
+ var base = this;
320
+ var width = 0;
321
+
322
+ var width = base.$owlItems.length * base.itemWidth;
323
+
324
+ base.$owlWrapper.css({
325
+ "width": width*2,
326
+ "left": 0
327
+ });
328
+ base.appendItemsSizes();
329
+ },
330
+
331
+ calculateAll : function(){
332
+ var base = this;
333
+ base.calculateWidth();
334
+ base.appendWrapperSizes();
335
+ base.loops();
336
+ base.max();
337
+ },
338
+
339
+ calculateWidth : function(){
340
+ var base = this;
341
+ base.itemWidth = Math.round(base.$elem.width()/base.options.items)
342
+ },
343
+
344
+ max : function(){
345
+ var base = this;
346
+ var maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
347
+ if(base.options.items > base.itemsAmount){
348
+ base.maximumItem = 0;
349
+ maximum = 0
350
+ base.maximumPixels = 0;
351
+ } else {
352
+ base.maximumItem = base.itemsAmount - base.options.items;
353
+ base.maximumPixels = maximum;
354
+ }
355
+ return maximum;
356
+ },
357
+
358
+ min : function(){
359
+ return 0;
360
+ },
361
+
362
+ loops : function(){
363
+ var base = this;
364
+
365
+ base.positionsInArray = [0];
366
+ base.pagesInArray = [];
367
+ var prev = 0;
368
+ var elWidth = 0;
369
+
370
+ for(var i = 0; i<base.itemsAmount; i++){
371
+ elWidth += base.itemWidth;
372
+ base.positionsInArray.push(-elWidth);
373
+
374
+ if(base.options.scrollPerPage === true){
375
+ var item = $(base.$owlItems[i]);
376
+ var roundPageNum = item.data("owl-roundPages");
377
+ if(roundPageNum !== prev){
378
+ base.pagesInArray[prev] = base.positionsInArray[i];
379
+ prev = roundPageNum;
380
+ }
381
+ }
382
+ }
383
+ },
384
+
385
+ buildControls : function(){
386
+ var base = this;
387
+ if(base.options.navigation === true || base.options.pagination === true){
388
+ base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
389
+ }
390
+ if(base.options.pagination === true){
391
+ base.buildPagination();
392
+ }
393
+ if(base.options.navigation === true){
394
+ base.buildButtons();
395
+ }
396
+ },
397
+
398
+ buildButtons : function(){
399
+ var base = this;
400
+ var buttonsWrapper = $("<div class=\"owl-buttons\"/>")
401
+ base.owlControls.append(buttonsWrapper);
402
+
403
+ base.buttonPrev = $("<div/>",{
404
+ "class" : "owl-prev",
405
+ "html" : base.options.navigationText[0] || ""
406
+ });
407
+
408
+ base.buttonNext = $("<div/>",{
409
+ "class" : "owl-next",
410
+ "html" : base.options.navigationText[1] || ""
411
+ });
412
+
413
+ buttonsWrapper
414
+ .append(base.buttonPrev)
415
+ .append(base.buttonNext);
416
+
417
+ buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function(event){
418
+ event.preventDefault();
419
+ })
420
+
421
+ buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function(event){
422
+ event.preventDefault();
423
+ if($(this).hasClass("owl-next")){
424
+ base.next();
425
+ } else{
426
+ base.prev();
427
+ }
428
+ })
429
+ },
430
+
431
+ buildPagination : function(){
432
+ var base = this;
433
+
434
+ base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
435
+ base.owlControls.append(base.paginationWrapper);
436
+
437
+ base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function(event){
438
+ event.preventDefault();
439
+ if(Number($(this).data("owl-page")) !== base.currentItem){
440
+ base.goTo( Number($(this).data("owl-page")), true);
441
+ }
442
+ });
443
+ },
444
+
445
+ updatePagination : function(){
446
+ var base = this;
447
+ if(base.options.pagination === false){
448
+ return false;
449
+ }
450
+
451
+ base.paginationWrapper.html("");
452
+
453
+ var counter = 0;
454
+ var lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
455
+
456
+ for(var i = 0; i<base.itemsAmount; i++){
457
+ if(i % base.options.items === 0){
458
+ counter +=1;
459
+ if(lastPage === i){
460
+ var lastItem = base.itemsAmount - base.options.items;
461
+ }
462
+ var paginationButton = $("<div/>",{
463
+ "class" : "owl-page"
464
+ });
465
+ var paginationButtonInner = $("<span></span>",{
466
+ "text": base.options.paginationNumbers === true ? counter : "",
467
+ "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
468
+ });
469
+ paginationButton.append(paginationButtonInner);
470
+
471
+ paginationButton.data("owl-page",lastPage === i ? lastItem : i);
472
+ paginationButton.data("owl-roundPages",counter);
473
+
474
+ base.paginationWrapper.append(paginationButton);
475
+ }
476
+ }
477
+ base.checkPagination();
478
+ },
479
+ checkPagination : function(){
480
+ var base = this;
481
+ if(base.options.pagination === false){
482
+ return false;
483
+ }
484
+ base.paginationWrapper.find(".owl-page").each(function(i,v){
485
+ if($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages") ){
486
+ base.paginationWrapper
487
+ .find(".owl-page")
488
+ .removeClass("active");
489
+ $(this).addClass("active");
490
+ }
491
+ });
492
+ },
493
+
494
+ checkNavigation : function(){
495
+ var base = this;
496
+
497
+ if(base.options.navigation === false){
498
+ return false;
499
+ }
500
+ if(base.options.rewindNav === false){
501
+ if(base.currentItem === 0 && base.maximumItem === 0){
502
+ base.buttonPrev.addClass("disabled");
503
+ base.buttonNext.addClass("disabled");
504
+ } else if(base.currentItem === 0 && base.maximumItem !== 0){
505
+ base.buttonPrev.addClass("disabled");
506
+ base.buttonNext.removeClass("disabled");
507
+ } else if (base.currentItem === base.maximumItem){
508
+ base.buttonPrev.removeClass("disabled");
509
+ base.buttonNext.addClass("disabled");
510
+ } else if(base.currentItem !== 0 && base.currentItem !== base.maximumItem){
511
+ base.buttonPrev.removeClass("disabled");
512
+ base.buttonNext.removeClass("disabled");
513
+ }
514
+ }
515
+ },
516
+
517
+ updateControls : function(){
518
+ var base = this;
519
+ base.updatePagination();
520
+ base.checkNavigation();
521
+ if(base.owlControls){
522
+ if(base.options.items >= base.itemsAmount){
523
+ base.owlControls.hide();
524
+ } else {
525
+ base.owlControls.show();
526
+ }
527
+ }
528
+ },
529
+
530
+ destroyControls : function(){
531
+ var base = this;
532
+ if(base.owlControls){
533
+ base.owlControls.remove();
534
+ }
535
+ },
536
+
537
+ next : function(speed){
538
+ var base = this;
539
+
540
+ if(base.isTransition){
541
+ return false;
542
+ }
543
+
544
+ base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
545
+ if(base.currentItem > base.maximumItem + (base.options.scrollPerPage == true ? (base.options.items - 1) : 0)){
546
+ if(base.options.rewindNav === true){
547
+ base.currentItem = 0;
548
+ speed = "rewind";
549
+ } else {
550
+ base.currentItem = base.maximumItem;
551
+ return false;
552
+ }
553
+ }
554
+ base.goTo(base.currentItem,speed);
555
+ },
556
+
557
+ prev : function(speed){
558
+ var base = this;
559
+
560
+ if(base.isTransition){
561
+ return false;
562
+ }
563
+
564
+ if(base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items){
565
+ base.currentItem = 0
566
+ } else {
567
+ base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
568
+ }
569
+ if(base.currentItem < 0){
570
+ if(base.options.rewindNav === true){
571
+ base.currentItem = base.maximumItem;
572
+ speed = "rewind"
573
+ } else {
574
+ base.currentItem =0;
575
+ return false;
576
+ }
577
+ }
578
+ base.goTo(base.currentItem,speed);
579
+ },
580
+
581
+ goTo : function(position,speed,drag){
582
+ var base = this;
583
+
584
+ if(base.isTransition){
585
+ return false;
586
+ }
587
+ if(typeof base.options.beforeMove === "function") {
588
+ base.options.beforeMove.apply(this,[base.$elem]);
589
+ }
590
+ if(position >= base.maximumItem){
591
+ position = base.maximumItem;
592
+ }
593
+ else if( position <= 0 ){
594
+ position = 0;
595
+ }
596
+
597
+ base.currentItem = base.owl.currentItem = position;
598
+ if( base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true){
599
+ base.swapSpeed(0)
600
+ if(base.browser.support3d === true){
601
+ base.transition3d(base.positionsInArray[position]);
602
+ } else {
603
+ base.css2slide(base.positionsInArray[position],1);
604
+ }
605
+ base.afterGo();
606
+ base.singleItemTransition();
607
+
608
+ return false;
609
+ }
610
+ var goToPixel = base.positionsInArray[position];
611
+
612
+ if(base.browser.support3d === true){
613
+ base.isCss3Finish = false;
614
+
615
+ if(speed === true){
616
+ base.swapSpeed("paginationSpeed");
617
+ setTimeout(function() {
618
+ base.isCss3Finish = true;
619
+ }, base.options.paginationSpeed);
620
+
621
+ } else if(speed === "rewind" ){
622
+ base.swapSpeed(base.options.rewindSpeed);
623
+ setTimeout(function() {
624
+ base.isCss3Finish = true;
625
+ }, base.options.rewindSpeed);
626
+
627
+ } else {
628
+ base.swapSpeed("slideSpeed");
629
+ setTimeout(function() {
630
+ base.isCss3Finish = true;
631
+ }, base.options.slideSpeed);
632
+ }
633
+ base.transition3d(goToPixel);
634
+ } else {
635
+ if(speed === true){
636
+ base.css2slide(goToPixel, base.options.paginationSpeed);
637
+ } else if(speed === "rewind" ){
638
+ base.css2slide(goToPixel, base.options.rewindSpeed);
639
+ } else {
640
+ base.css2slide(goToPixel, base.options.slideSpeed);
641
+ }
642
+ }
643
+ base.afterGo();
644
+ },
645
+
646
+ jumpTo : function(position){
647
+ var base = this;
648
+ if(typeof base.options.beforeMove === "function") {
649
+ base.options.beforeMove.apply(this,[base.$elem]);
650
+ }
651
+ if(position >= base.maximumItem || position === -1){
652
+ position = base.maximumItem;
653
+ }
654
+ else if( position <= 0 ){
655
+ position = 0;
656
+ }
657
+ base.swapSpeed(0)
658
+ if(base.browser.support3d === true){
659
+ base.transition3d(base.positionsInArray[position]);
660
+ } else {
661
+ base.css2slide(base.positionsInArray[position],1);
662
+ }
663
+ base.currentItem = base.owl.currentItem = position;
664
+ base.afterGo();
665
+ },
666
+
667
+ afterGo : function(){
668
+ var base = this;
669
+
670
+ base.prevArr.push(base.currentItem);
671
+ base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length -2];
672
+ base.prevArr.shift(0)
673
+
674
+ if(base.prevItem !== base.currentItem){
675
+ base.checkPagination();
676
+ base.checkNavigation();
677
+ base.eachMoveUpdate();
678
+
679
+ if(base.options.autoPlay !== false){
680
+ base.checkAp();
681
+ }
682
+ }
683
+ if(typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
684
+ base.options.afterMove.apply(this,[base.$elem]);
685
+ }
686
+ },
687
+
688
+ stop : function(){
689
+ var base = this;
690
+ base.apStatus = "stop";
691
+ clearInterval(base.autoPlayInterval);
692
+ },
693
+
694
+ checkAp : function(){
695
+ var base = this;
696
+ if(base.apStatus !== "stop"){
697
+ base.play();
698
+ }
699
+ },
700
+
701
+ play : function(){
702
+ var base = this;
703
+ base.apStatus = "play";
704
+ if(base.options.autoPlay === false){
705
+ return false;
706
+ }
707
+ clearInterval(base.autoPlayInterval);
708
+ base.autoPlayInterval = setInterval(function(){
709
+ base.next(true);
710
+ },base.options.autoPlay);
711
+ },
712
+
713
+ swapSpeed : function(action){
714
+ var base = this;
715
+ if(action === "slideSpeed"){
716
+ base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
717
+ } else if(action === "paginationSpeed" ){
718
+ base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
719
+ } else if(typeof action !== "string"){
720
+ base.$owlWrapper.css(base.addCssSpeed(action));
721
+ }
722
+ },
723
+
724
+ addCssSpeed : function(speed){
725
+ var base = this;
726
+ return {
727
+ "-webkit-transition": "all "+ speed +"ms ease",
728
+ "-moz-transition": "all "+ speed +"ms ease",
729
+ "-o-transition": "all "+ speed +"ms ease",
730
+ "transition": "all "+ speed +"ms ease"
731
+ };
732
+ },
733
+
734
+ removeTransition : function(){
735
+ return {
736
+ "-webkit-transition": "",
737
+ "-moz-transition": "",
738
+ "-o-transition": "",
739
+ "transition": ""
740
+ };
741
+ },
742
+
743
+ doTranslate : function(pixels){
744
+ return {
745
+ "-webkit-transform": "translate3d("+pixels+"px, 0px, 0px)",
746
+ "-moz-transform": "translate3d("+pixels+"px, 0px, 0px)",
747
+ "-o-transform": "translate3d("+pixels+"px, 0px, 0px)",
748
+ "-ms-transform": "translate3d("+pixels+"px, 0px, 0px)",
749
+ "transform": "translate3d("+pixels+"px, 0px,0px)"
750
+ };
751
+ },
752
+
753
+ transition3d : function(value){
754
+ var base = this;
755
+ base.$owlWrapper.css(base.doTranslate(value));
756
+ },
757
+
758
+ css2move : function(value){
759
+ var base = this;
760
+ base.$owlWrapper.css({"left" : value})
761
+ },
762
+
763
+ css2slide : function(value,speed){
764
+ var base = this;
765
+
766
+ base.isCssFinish = false;
767
+ base.$owlWrapper.stop(true,true).animate({
768
+ "left" : value
769
+ }, {
770
+ duration : speed || base.options.slideSpeed ,
771
+ complete : function(){
772
+ base.isCssFinish = true;
773
+ }
774
+ });
775
+ },
776
+
777
+ checkBrowser : function(){
778
+ var base = this;
779
+
780
+ //Check 3d support
781
+ var translate3D = "translate3d(0px, 0px, 0px)",
782
+ tempElem = document.createElement("div");
783
+
784
+ tempElem.style.cssText= " -moz-transform:" + translate3D +
785
+ "; -ms-transform:" + translate3D +
786
+ "; -o-transform:" + translate3D +
787
+ "; -webkit-transform:" + translate3D +
788
+ "; transform:" + translate3D;
789
+ var regex = /translate3d\(0px, 0px, 0px\)/g,
790
+ asSupport = tempElem.style.cssText.match(regex),
791
+ support3d = (asSupport !== null && asSupport.length === 1);
792
+
793
+ var isTouch = "ontouchstart" in window || navigator.msMaxTouchPoints;
794
+
795
+ base.browser = {
796
+ "support3d" : support3d,
797
+ "isTouch" : isTouch
798
+ }
799
+ },
800
+
801
+ moveEvents : function(){
802
+ var base = this;
803
+ if(base.options.mouseDrag !== false || base.options.touchDrag !== false){
804
+ base.gestures();
805
+ base.disabledEvents();
806
+ }
807
+ },
808
+
809
+ eventTypes : function(){
810
+ var base = this;
811
+ var types = ["s","e","x"];
812
+
813
+ base.ev_types = {};
814
+
815
+ if(base.options.mouseDrag === true && base.options.touchDrag === true){
816
+ types = [
817
+ "touchstart.owl mousedown.owl",
818
+ "touchmove.owl mousemove.owl",
819
+ "touchend.owl touchcancel.owl mouseup.owl"
820
+ ];
821
+ } else if(base.options.mouseDrag === false && base.options.touchDrag === true){
822
+ types = [
823
+ "touchstart.owl",
824
+ "touchmove.owl",
825
+ "touchend.owl touchcancel.owl"
826
+ ];
827
+ } else if(base.options.mouseDrag === true && base.options.touchDrag === false){
828
+ types = [
829
+ "mousedown.owl",
830
+ "mousemove.owl",
831
+ "mouseup.owl"
832
+ ];
833
+ }
834
+
835
+ base.ev_types["start"] = types[0];
836
+ base.ev_types["move"] = types[1];
837
+ base.ev_types["end"] = types[2];
838
+ },
839
+
840
+ disabledEvents : function(){
841
+ var base = this;
842
+ base.$elem.on("dragstart.owl", function(event) { event.preventDefault();});
843
+ base.$elem.on("mousedown.disableTextSelect", function(e) {
844
+ return $(e.target).is('input, textarea, select, option');
845
+ });
846
+ },
847
+
848
+ gestures : function(){
849
+ var base = this;
850
+
851
+ var locals = {
852
+ offsetX : 0,
853
+ offsetY : 0,
854
+ baseElWidth : 0,
855
+ relativePos : 0,
856
+ position: null,
857
+ minSwipe : null,
858
+ maxSwipe: null,
859
+ sliding : null,
860
+ dargging: null,
861
+ targetElement : null
862
+ }
863
+
864
+ base.isCssFinish = true;
865
+
866
+ function getTouches(event){
867
+ if(event.touches){
868
+ return {
869
+ x : event.touches[0].pageX,
870
+ y : event.touches[0].pageY
871
+ }
872
+ } else {
873
+ if(event.pageX !== undefined){
874
+ return {
875
+ x : event.pageX,
876
+ y : event.pageY
877
+ }
878
+ } else {
879
+ return {
880
+ x : event.clientX,
881
+ y : event.clientY
882
+ }
883
+ }
884
+ }
885
+ }
886
+
887
+ function swapEvents(type){
888
+ if(type === "on"){
889
+ $(document).on(base.ev_types["move"], dragMove);
890
+ $(document).on(base.ev_types["end"], dragEnd);
891
+ } else if(type === "off"){
892
+ $(document).off(base.ev_types["move"]);
893
+ $(document).off(base.ev_types["end"]);
894
+ }
895
+ }
896
+
897
+ function dragStart(event) {
898
+ var event = event.originalEvent || event || window.event;
899
+
900
+ if (event.which === 3) {
901
+ return false;
902
+ }
903
+ if(base.itemsAmount <= base.options.items){
904
+ return;
905
+ }
906
+ if(base.isCssFinish === false && !base.options.dragBeforeAnimFinish ){
907
+ return false;
908
+ }
909
+ if(base.isCss3Finish === false && !base.options.dragBeforeAnimFinish ){
910
+ return false;
911
+ }
912
+
913
+ if(base.options.autoPlay !== false){
914
+ clearInterval(base.autoPlayInterval);
915
+ }
916
+
917
+ if(base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")){
918
+ base.$owlWrapper.addClass("grabbing")
919
+ }
920
+
921
+ base.newPosX = 0;
922
+ base.newRelativeX = 0;
923
+
924
+ $(this).css(base.removeTransition());
925
+
926
+ var position = $(this).position();
927
+ locals.relativePos = position.left;
928
+
929
+ locals.offsetX = getTouches(event).x - position.left;
930
+ locals.offsetY = getTouches(event).y - position.top;
931
+
932
+ swapEvents("on");
933
+
934
+ locals.sliding = false;
935
+ locals.targetElement = event.target || event.srcElement;
936
+ }
937
+
938
+ function dragMove(event){
939
+ var event = event.originalEvent || event || window.event;
940
+
941
+ base.newPosX = getTouches(event).x- locals.offsetX;
942
+ base.newPosY = getTouches(event).y - locals.offsetY;
943
+ base.newRelativeX = base.newPosX - locals.relativePos;
944
+
945
+ if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
946
+ locals.dragging = true;
947
+ base.options.startDragging.apply(base,[base.$elem]);
948
+ }
949
+
950
+ if(base.newRelativeX > 8 || base.newRelativeX < -8 && base.browser.isTouch === true){
951
+ event.preventDefault ? event.preventDefault() : event.returnValue = false;
952
+ locals.sliding = true;
953
+ }
954
+
955
+ if((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false){
956
+ $(document).off("touchmove.owl");
957
+ }
958
+
959
+ var minSwipe = function(){
960
+ return base.newRelativeX / 5;
961
+ }
962
+ var maxSwipe = function(){
963
+ return base.maximumPixels + base.newRelativeX / 5;
964
+ }
965
+
966
+ base.newPosX = Math.max(Math.min( base.newPosX, minSwipe() ), maxSwipe() );
967
+ if(base.browser.support3d === true){
968
+ base.transition3d(base.newPosX);
969
+ } else {
970
+ base.css2move(base.newPosX);
971
+ }
972
+ }
973
+
974
+ function dragEnd(event){
975
+ var event = event.originalEvent || event || window.event;
976
+ event.target = event.target || event.srcElement;
977
+
978
+ locals.dragging = false;
979
+
980
+ if(base.browser.isTouch !== true){
981
+ base.$owlWrapper.removeClass("grabbing");
982
+ }
983
+
984
+ if(base.newRelativeX<0){
985
+ base.dragDirection = base.owl.dragDirection = "left"
986
+ } else {
987
+ base.dragDirection = base.owl.dragDirection = "right"
988
+ }
989
+
990
+ if(base.newRelativeX !== 0){
991
+ var newPosition = base.getNewPosition();
992
+ base.goTo(newPosition,false,"drag");
993
+ if(locals.targetElement === event.target && base.browser.isTouch !== true){
994
+ $(event.target).on("click.disable", function(ev){
995
+ ev.stopImmediatePropagation();
996
+ ev.stopPropagation();
997
+ ev.preventDefault();
998
+ $(event.target).off("click.disable");
999
+ });
1000
+ var handlers = $._data(event.target, "events")["click"];
1001
+ var owlStopEvent = handlers.pop();
1002
+ handlers.splice(0, 0, owlStopEvent);
1003
+ }
1004
+ }
1005
+ swapEvents("off");
1006
+ }
1007
+ base.$elem.on(base.ev_types["start"], ".owl-wrapper", dragStart);
1008
+ },
1009
+
1010
+ getNewPosition : function(){
1011
+ var base = this,
1012
+ newPosition;
1013
+
1014
+ newPosition = base.closestItem();
1015
+
1016
+ if(newPosition>base.maximumItem){
1017
+ base.currentItem = base.maximumItem;
1018
+ newPosition = base.maximumItem;
1019
+ } else if( base.newPosX >=0 ){
1020
+ newPosition = 0;
1021
+ base.currentItem = 0;
1022
+ }
1023
+ return newPosition;
1024
+ },
1025
+ closestItem : function(){
1026
+ var base = this,
1027
+ array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
1028
+ goal = base.newPosX,
1029
+ closest = null;
1030
+
1031
+ $.each(array, function(i,v){
1032
+ if( goal - (base.itemWidth/20) > array[i+1] && goal - (base.itemWidth/20)< v && base.moveDirection() === "left") {
1033
+ closest = v;
1034
+ if(base.options.scrollPerPage === true){
1035
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1036
+ } else {
1037
+ base.currentItem = i;
1038
+ }
1039
+ }
1040
+ else if (goal + (base.itemWidth/20) < v && goal + (base.itemWidth/20) > (array[i+1] || array[i]-base.itemWidth) && base.moveDirection() === "right"){
1041
+ if(base.options.scrollPerPage === true){
1042
+ closest = array[i+1] || array[array.length-1];
1043
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1044
+ } else {
1045
+ closest = array[i+1];
1046
+ base.currentItem = i+1;
1047
+ }
1048
+ }
1049
+ });
1050
+ return base.currentItem;
1051
+ },
1052
+
1053
+ moveDirection : function(){
1054
+ var base = this,
1055
+ direction;
1056
+ if(base.newRelativeX < 0 ){
1057
+ direction = "right"
1058
+ base.playDirection = "next"
1059
+ } else {
1060
+ direction = "left"
1061
+ base.playDirection = "prev"
1062
+ }
1063
+ return direction
1064
+ },
1065
+
1066
+ customEvents : function(){
1067
+ var base = this;
1068
+ base.$elem.on("owl.next",function(){
1069
+ base.next();
1070
+ });
1071
+ base.$elem.on("owl.prev",function(){
1072
+ base.prev();
1073
+ });
1074
+ base.$elem.on("owl.play",function(event,speed){
1075
+ base.options.autoPlay = speed;
1076
+ base.play();
1077
+ base.hoverStatus = "play";
1078
+ });
1079
+ base.$elem.on("owl.stop",function(){
1080
+ base.stop();
1081
+ base.hoverStatus = "stop";
1082
+ });
1083
+ base.$elem.on("owl.goTo",function(event,item){
1084
+ base.goTo(item)
1085
+ });
1086
+ base.$elem.on("owl.jumpTo",function(event,item){
1087
+ base.jumpTo(item)
1088
+ });
1089
+ },
1090
+
1091
+ stopOnHover : function(){
1092
+ var base = this;
1093
+ if(base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false){
1094
+ base.$elem.on("mouseover", function(){
1095
+ base.stop();
1096
+ });
1097
+ base.$elem.on("mouseout", function(){
1098
+ if(base.hoverStatus !== "stop"){
1099
+ base.play();
1100
+ }
1101
+ });
1102
+ }
1103
+ },
1104
+
1105
+ lazyLoad : function(){
1106
+ var base = this;
1107
+
1108
+ if(base.options.lazyLoad === false){
1109
+ return false;
1110
+ }
1111
+ for(var i=0; i<base.itemsAmount; i++){
1112
+ var $item = $(base.$owlItems[i]);
1113
+
1114
+ if($item.data("owl-loaded") === "loaded"){
1115
+ continue;
1116
+ }
1117
+
1118
+ var itemNumber = $item.data("owl-item"),
1119
+ $lazyImg = $item.find(".lazyOwl"),
1120
+ follow;
1121
+
1122
+ if( typeof $lazyImg.data("src") !== "string"){
1123
+ $item.data("owl-loaded","loaded");
1124
+ continue;
1125
+ }
1126
+ if($item.data("owl-loaded") === undefined){
1127
+ $lazyImg.hide();
1128
+ $item.addClass("loading").data("owl-loaded","checked");
1129
+ }
1130
+ if(base.options.lazyFollow === true){
1131
+ follow = itemNumber >= base.currentItem;
1132
+ } else {
1133
+ follow = true;
1134
+ }
1135
+ if(follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length){
1136
+ base.lazyPreload($item,$lazyImg);
1137
+ }
1138
+ }
1139
+ },
1140
+
1141
+ lazyPreload : function($item,$lazyImg){
1142
+ var base = this,
1143
+ iterations = 0;
1144
+ if ($lazyImg.prop("tagName") === "DIV") {
1145
+ $lazyImg.css("background-image", "url(" + $lazyImg.data("src")+ ")" );
1146
+ var isBackgroundImg=true;
1147
+ } else {
1148
+ $lazyImg[0].src = $lazyImg.data("src");
1149
+ }
1150
+ checkLazyImage();
1151
+
1152
+ function checkLazyImage(){
1153
+ iterations += 1;
1154
+ if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
1155
+ showImage();
1156
+ } else if(iterations <= 100){//if image loads in less than 10 seconds
1157
+ setTimeout(checkLazyImage,100);
1158
+ } else {
1159
+ showImage();
1160
+ }
1161
+ }
1162
+ function showImage(){
1163
+ $item.data("owl-loaded", "loaded").removeClass("loading");
1164
+ $lazyImg.removeAttr("data-src");
1165
+ base.options.lazyEffect === "fade" ? $lazyImg.fadeIn(400) : $lazyImg.show();
1166
+ if(typeof base.options.afterLazyLoad === "function") {
1167
+ base.options.afterLazyLoad.apply(this,[base.$elem]);
1168
+ }
1169
+ }
1170
+ },
1171
+
1172
+ autoHeight : function(){
1173
+ var base = this;
1174
+ var $currentimg = $(base.$owlItems[base.currentItem]).find("img");
1175
+
1176
+ if($currentimg.get(0) !== undefined ){
1177
+ var iterations = 0;
1178
+ checkImage();
1179
+ } else {
1180
+ addHeight();
1181
+ }
1182
+ function checkImage(){
1183
+ iterations += 1;
1184
+ if ( base.completeImg($currentimg.get(0)) ) {
1185
+ addHeight();
1186
+ } else if(iterations <= 100){ //if image loads in less than 10 seconds
1187
+ setTimeout(checkImage,100);
1188
+ } else {
1189
+ base.wrapperOuter.css("height", ""); //Else remove height attribute
1190
+ }
1191
+ }
1192
+
1193
+ function addHeight(){
1194
+ var $currentItem = $(base.$owlItems[base.currentItem]).height();
1195
+ base.wrapperOuter.css("height",$currentItem+"px");
1196
+ if(!base.wrapperOuter.hasClass("autoHeight")){
1197
+ setTimeout(function(){
1198
+ base.wrapperOuter.addClass("autoHeight");
1199
+ },0);
1200
+ }
1201
+ }
1202
+ },
1203
+
1204
+ completeImg : function(img) {
1205
+ if (!img.complete) {
1206
+ return false;
1207
+ }
1208
+ if (typeof img.naturalWidth !== "undefined" && img.naturalWidth == 0) {
1209
+ return false;
1210
+ }
1211
+ return true;
1212
+ },
1213
+
1214
+ onVisibleItems : function(){
1215
+ var base = this;
1216
+
1217
+ if(base.options.addClassActive === true){
1218
+ base.$owlItems.removeClass("active");
1219
+ }
1220
+ base.visibleItems = [];
1221
+ for(var i=base.currentItem; i<base.currentItem + base.options.items; i++){
1222
+ base.visibleItems.push(i);
1223
+
1224
+ if(base.options.addClassActive === true){
1225
+ $(base.$owlItems[i]).addClass("active");
1226
+ }
1227
+ }
1228
+ base.owl.visibleItems = base.visibleItems;
1229
+ },
1230
+
1231
+ transitionTypes : function(className){
1232
+ var base = this;
1233
+ //Currently available: "fade","backSlide","goDown","fadeUp"
1234
+ base.outClass = "owl-"+className+"-out";
1235
+ base.inClass = "owl-"+className+"-in";
1236
+ },
1237
+
1238
+ singleItemTransition : function(){
1239
+ var base = this;
1240
+ base.isTransition = true;
1241
+
1242
+ var outClass = base.outClass,
1243
+ inClass = base.inClass,
1244
+ $currentItem = base.$owlItems.eq(base.currentItem),
1245
+ $prevItem = base.$owlItems.eq(base.prevItem),
1246
+ prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
1247
+ origin = Math.abs(base.positionsInArray[base.currentItem])+base.itemWidth/2;
1248
+
1249
+ base.$owlWrapper
1250
+ .addClass('owl-origin')
1251
+ .css({
1252
+ "-webkit-transform-origin" : origin+"px",
1253
+ "-moz-perspective-origin" : origin+"px",
1254
+ "perspective-origin" : origin+"px"
1255
+ });
1256
+ function transStyles(prevPos,zindex){
1257
+ return {
1258
+ "position" : "relative",
1259
+ "left" : prevPos+"px"
1260
+ };
1261
+ }
1262
+
1263
+ var animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
1264
+
1265
+ $prevItem
1266
+ .css(transStyles(prevPos,10))
1267
+ .addClass(outClass)
1268
+ .on(animEnd, function() {
1269
+ base.endPrev = true;
1270
+ $prevItem.off(animEnd);
1271
+ base.clearTransStyle($prevItem,outClass);
1272
+ });
1273
+
1274
+ $currentItem
1275
+ .addClass(inClass)
1276
+ .on(animEnd, function() {
1277
+ base.endCurrent = true;
1278
+ $currentItem.off(animEnd);
1279
+ base.clearTransStyle($currentItem,inClass);
1280
+ });
1281
+ },
1282
+
1283
+ clearTransStyle : function(item,classToRemove){
1284
+ var base = this;
1285
+ item.css({
1286
+ "position" : "",
1287
+ "left" : ""
1288
+ })
1289
+ .removeClass(classToRemove);
1290
+ if(base.endPrev && base.endCurrent){
1291
+ base.$owlWrapper.removeClass('owl-origin');
1292
+ base.endPrev = false;
1293
+ base.endCurrent = false;
1294
+ base.isTransition = false;
1295
+ }
1296
+ },
1297
+
1298
+ owlStatus : function(){
1299
+ var base = this;
1300
+ base.owl = {
1301
+ "userOptions" : base.userOptions,
1302
+ "baseElement" : base.$elem,
1303
+ "userItems" : base.$userItems,
1304
+ "owlItems" : base.$owlItems,
1305
+ "currentItem" : base.currentItem,
1306
+ "prevItem" : base.prevItem,
1307
+ "visibleItems" : base.visibleItems,
1308
+ "isTouch" : base.browser.isTouch,
1309
+ "browser" : base.browser,
1310
+ "dragDirection" : base.dragDirection
1311
+ }
1312
+ },
1313
+
1314
+ clearEvents : function(){
1315
+ var base = this;
1316
+ base.$elem.off(".owl owl mousedown.disableTextSelect");
1317
+ $(document).off(".owl owl");
1318
+ $(window).off("resize", base.resizer);
1319
+ },
1320
+
1321
+ unWrap : function(){
1322
+ var base = this;
1323
+ if(base.$elem.children().length !== 0){
1324
+ base.$owlWrapper.unwrap();
1325
+ base.$userItems.unwrap().unwrap();
1326
+ if(base.owlControls){
1327
+ base.owlControls.remove();
1328
+ }
1329
+ }
1330
+ base.clearEvents();
1331
+ base.$elem
1332
+ .attr("style", base.$elem.data("owl-originalStyles") || "")
1333
+ .attr("class", base.$elem.data("owl-originalClasses"));
1334
+ },
1335
+
1336
+ destroy : function(){
1337
+ var base = this;
1338
+ base.stop();
1339
+ clearInterval(base.checkVisible);
1340
+ base.unWrap();
1341
+ base.$elem.removeData();
1342
+ },
1343
+
1344
+ reinit : function(newOptions){
1345
+ var base = this;
1346
+ var options = $.extend({}, base.userOptions, newOptions);
1347
+ base.unWrap();
1348
+ base.init(options,base.$elem);
1349
+ },
1350
+
1351
+ addItem : function(htmlString,targetPosition){
1352
+ var base = this,
1353
+ position;
1354
+
1355
+ if(!htmlString){return false}
1356
+
1357
+ if(base.$elem.children().length === 0){
1358
+ base.$elem.append(htmlString);
1359
+ base.setVars();
1360
+ return false;
1361
+ }
1362
+ base.unWrap();
1363
+ if(targetPosition === undefined || targetPosition === -1){
1364
+ position = -1;
1365
+ } else {
1366
+ position = targetPosition;
1367
+ }
1368
+ if(position >= base.$userItems.length || position === -1){
1369
+ base.$userItems.eq(-1).after(htmlString)
1370
+ } else {
1371
+ base.$userItems.eq(position).before(htmlString)
1372
+ }
1373
+
1374
+ base.setVars();
1375
+ },
1376
+
1377
+ removeItem : function(targetPosition){
1378
+ var base = this,
1379
+ position;
1380
+
1381
+ if(base.$elem.children().length === 0){return false}
1382
+
1383
+ if(targetPosition === undefined || targetPosition === -1){
1384
+ position = -1;
1385
+ } else {
1386
+ position = targetPosition;
1387
+ }
1388
+
1389
+ base.unWrap();
1390
+ base.$userItems.eq(position).remove();
1391
+ base.setVars();
1392
+ }
1393
+
1394
+ };
1395
+
1396
+ $.fn.owlCarousel = function( options ){
1397
+ return this.each(function() {
1398
+ if($(this).data("owl-init") === true){
1399
+ return false;
1400
+ }
1401
+ $(this).data("owl-init", true);
1402
+ var carousel = Object.create( Carousel );
1403
+ carousel.init( options, this );
1404
+ $.data( this, "owlCarousel", carousel );
1405
+ });
1406
+ };
1407
+
1408
+ $.fn.owlCarousel.options = {
1409
+
1410
+ items : 5,
1411
+ itemsCustom : false,
1412
+ itemsDesktop : [1199,4],
1413
+ itemsDesktopSmall : [979,3],
1414
+ itemsTablet : [768,2],
1415
+ itemsTabletSmall : false,
1416
+ itemsMobile : [479,1],
1417
+ singleItem : false,
1418
+ itemsScaleUp : false,
1419
+
1420
+ slideSpeed : 200,
1421
+ paginationSpeed : 800,
1422
+ rewindSpeed : 1000,
1423
+
1424
+ autoPlay : false,
1425
+ stopOnHover : false,
1426
+
1427
+ navigation : false,
1428
+ navigationText : ["prev","next"],
1429
+ rewindNav : true,
1430
+ scrollPerPage : false,
1431
+
1432
+ pagination : true,
1433
+ paginationNumbers : false,
1434
+
1435
+ responsive : true,
1436
+ responsiveRefreshRate : 200,
1437
+ responsiveBaseWidth : window,
1438
+
1439
+
1440
+ baseClass : "owl-carousel",
1441
+ theme : "owl-theme",
1442
+
1443
+ lazyLoad : false,
1444
+ lazyFollow : true,
1445
+ lazyEffect : "fade",
1446
+
1447
+ autoHeight : false,
1448
+
1449
+ jsonPath : false,
1450
+ jsonSuccess : false,
1451
+
1452
+ dragBeforeAnimFinish : true,
1453
+ mouseDrag : true,
1454
+ touchDrag : true,
1455
+
1456
+ addClassActive : false,
1457
+ transitionStyle : false,
1458
+
1459
+ beforeUpdate : false,
1460
+ afterUpdate : false,
1461
+ beforeInit : false,
1462
+ afterInit : false,
1463
+ beforeMove : false,
1464
+ afterMove : false,
1465
+ afterAction : false,
1466
+ startDragging : false,
1467
+ afterLazyLoad: false
1468
+
1469
+ };
1470
+ })( jQuery, window, document );