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������ 15if (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({������ 69 "owl-originalStyles": base.$elem.attr("style"),������ 70 "owl-originalClasses": base.$elem.attr("class")������ 71 });������ 72������ 73 base.$elem.css({opacity: 0});������ 74 base.orignalItems = base.options.items;������ 75 base.checkBrowser();������ 76 base.wrapperWidth = 0;������ 77 base.checkVisible = null;������ 78 base.setVars();������ 79 },������ 80������ 81 setVars : function () {������ 82 var base = this;������ 83 if (base.$elem.children().length === 0) {return false; }������ 84 base.baseClass();������ 85 base.eventTypes();������ 86 base.$userItems = base.$elem.children();������ 87 base.itemsAmount = base.$userItems.length;������ 88 base.wrapItems();������ 89 base.$owlItems = base.$elem.find(".owl-item");������ 90 base.$owlWrapper = base.$elem.find(".owl-wrapper");������ 91 base.playDirection = "next";������ 92 base.prevItem = 0;������ 93 base.prevArr = [0];������ 94 base.currentItem = 0;������ 95 base.customEvents();������ 96 base.onStartup();������ 97 },������ 98������ 99 onStartup : function () {������ 100 var base = this;������ 101 base.updateItems();������ 102 base.calculateAll();������ 103 base.buildControls();������ 104 base.updateControls();������ 105 base.response();������ 106 base.moveEvents();������ 107 base.stopOnHover();������ 108 base.owlStatus();������ 109������ 110 if (base.options.transitionStyle !== false) {������ 111 base.transitionTypes(base.options.transitionStyle);������ 112 }������ 113 if (base.options.autoPlay === true) {������ 114 base.options.autoPlay = 5000;������ 115 }������ 116 base.play();������ 117������ 118 base.$elem.find(".owl-wrapper").css("display", "block");������ 119������ 120 if (!base.$elem.is(":visible")) {������ 121 base.watchVisibility();������ 122 } else {������ 123 base.$elem.css("opacity", 1);������ 124 }������ 125 base.onstartup = false;������ 126 base.eachMoveUpdate();������ 127 if (typeof base.options.afterInit === "function") {������ 128 base.options.afterInit.apply(this, [base.$elem]);������ 129 }������ 130 },������ 131������ 132 eachMoveUpdate : function () {������ 133 var base = this;������ 134������ 135 if (base.options.lazyLoad === true) {������ 136 base.lazyLoad();������ 137 }������ 138 if (base.options.autoHeight === true) {������ 139 base.autoHeight();������ 140 }������ 141 base.onVisibleItems();������ 142������ 143 if (typeof base.options.afterAction === "function") {������ 144 base.options.afterAction.apply(this, [base.$elem]);������ 145 }������ 146 },������ 147������
148 updateVars : function () {������ 149 var base = this;������ 150 if (typeof base.options.beforeUpdate === "function") {������ 151 base.options.beforeUpdate.apply(this, [base.$elem]);������ 152 }������ 153 base.watchVisibility();������ 154 base.updateItems();������ 155 base.calculateAll();������ 156 base.updatePosition();������ 157 base.updateControls();������ 158 base.eachMoveUpdate();������ 159 if (typeof base.options.afterUpdate === "function") {������ 160 base.options.afterUpdate.apply(this, [base.$elem]);������ 161 }������ 162 },������ 163������ 164 reload : function () {������ 165 var base = this;������ 166 window.setTimeout(function () {������ 167 base.updateVars();������ 168 }, 0);������ 169 },������ 170������ 171 watchVisibility : function () {������ 172 var base = this;������ 173������ 174 if (base.$elem.is(":visible") === false) {������ 175 base.$elem.css({opacity: 0});������ 176 window.clearInterval(base.autoPlayInterval);������ 177 window.clearInterval(base.checkVisible);������ 178 } else {������ 179 return false;������ 180 }������ 181 base.checkVisible = window.setInterval(function () {������ 182 if (base.$elem.is(":visible")) {������ 183 base.reload();������ 184 base.$elem.animate({opacity: 1}, 200);������ 185 window.clearInterval(base.checkVisible);������ 186 }������ 187 }, 500);������ 188 },������ 189������ 190 wrapItems : function () {������ 191 var base = this;������ 192 base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");������ 193 base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");������ 194 base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");������ 195 base.$elem.css("display", "block");������ 196 },������ 197������ 198 baseClass : function () {������ 199 var base = this,������ 200 hasBaseClass = base.$elem.hasClass(base.options.baseClass),������ 201 hasThemeClass = base.$elem.hasClass(base.options.theme);������ 202������ 203 if (!hasBaseClass) {������ 204 base.$elem.addClass(base.options.baseClass);������ 205 }������ 206������ 207 if (!hasThemeClass) {������ 208 base.$elem.addClass(base.options.theme);������ 209 }������ 210 },������ 211������ 212 updateItems : function () {������ 213 var base = this, width, i;������ 214������ 215 if (base.options.responsive === false) {������ 216 return false;������ 217 }������ 218 if (base.options.singleItem === true) {������ 219 base.options.items = base.orignalItems = 1;������ 220 base.options.itemsCustom = false;������ 221 base.options.itemsDesktop = false;������ 222 base.options.itemsDesktopSmall = false;������ 223 base.options.itemsTablet = false;������ 224 base.options.itemsTabletSmall = false;������ 225 base.options.itemsMobile = false;������ 226 return false;������ 227 }������ 228������ 229 width = $(base.options.responsiveBaseWidth).width();������ 230������ 231 if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {������ 232 base.options.items = base.orignalItems;������ 233 }������ 234 if (base.options.itemsCustom !== false) {������ 235 //Reorder array by screen size������ 236 base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });������ 237������ 238 for (i = 0; i < base.options.itemsCustom.length; i += 1) {������ 239 if (base.options.itemsCustom[i][0] <= width) {������ 240 base.options.items = base.options.itemsCustom[i][1];������ 241 }������ 242 }������ 243������ 244 } else {������ 245������ 246 if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {������ 247 base.options.items = base.options.itemsDesktop[1];������ 248 }������ 249������ 250 if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {������ 251 base.options.items = base.options.itemsDesktopSmall[1];������ 252 }������ 253������ 254 if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {������ 255 base.options.items = base.options.itemsTablet[1];������ 256 }������ 257������ 258 if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {������ 259 base.options.items = base.options.itemsTabletSmall[1];������ 260 }������ 261������ 262 if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {������ 263 base.options.items = base.options.itemsMobile[1];������ 264 }������ 265 }������ 266������ 267 //if number of items is less than declared������ 268 if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {������ 269 base.options.items = base.itemsAmount;������ 270 }������ 271 },������ 272������ 273 response : function () {������ 274 var base = this,������ 275 smallDelay,������ 276 lastWindowWidth;������ 277������ 278 if (base.options.responsive !== true) {������ 279 return false;������ 280 }������ 281 lastWindowWidth = $(window).width();������ 282������ 283 base.resizer = function () {������ 284 if ($(window).width() !== lastWindowWidth) {������ 285 if (base.options.autoPlay !== false) {������ 286 window.clearInterval(base.autoPlayInterval);������ 287 }������ 288 window.clearTimeout(smallDelay);������
289 smallDelay = window.setTimeout(function () {������ 290 lastWindowWidth = $(window).width();������ 291 base.updateVars();������ 292 }, base.options.responsiveRefreshRate);������ 293 }������ 294 };������ 295 $(window).resize(base.resizer);������ 296 },������ 297������ 298 updatePosition : function () {������ 299 var base = this;������ 300 base.jumpTo(base.currentItem);������ 301 if (base.options.autoPlay !== false) {������ 302 base.checkAp();������ 303 }������ 304 },������ 305������ 306 appendItemsSizes : function () {������ 307 var base = this,������ 308 roundPages = 0,������ 309 lastItem = base.itemsAmount - base.options.items;������ 310������ 311 base.$owlItems.each(function (index) {������ 312 var $this = $(this);������ 313 $this������ 314 .css({"width": base.itemWidth})������ 315 .data("owl-item", Number(index));������ 316������ 317 if (index % base.options.items === 0 || index === lastItem) {������ 318 if (!(index > lastItem)) {������ 319 roundPages += 1;������ 320 }������ 321 }������ 322 $this.data("owl-roundPages", roundPages);������ 323 });������ 324 },������ 325������ 326 appendWrapperSizes : function () {������ 327 var base = this,������ 328 width = base.$owlItems.length * base.itemWidth;������ 329������ 330 base.$owlWrapper.css({������ 331 "width": width * 2,������ 332 "left": 0������ 333 });������ 334 base.appendItemsSizes();������ 335 },������ 336������ 337 calculateAll : function () {������ 338 var base = this;������ 339 base.calculateWidth();������ 340 base.appendWrapperSizes();������ 341 base.loops();������ 342 base.max();������ 343 },������ 344������ 345 calculateWidth : function () {������ 346 var base = this;������ 347 base.itemWidth = Math.round(base.$elem.width() / base.options.items);������ 348 },������ 349������ 350 max : function () {������ 351 var base = this,������ 352 maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;������ 353 if (base.options.items > base.itemsAmount) {������ 354 base.maximumItem = 0;������ 355 maximum = 0;������ 356 base.maximumPixels = 0;������ 357 } else {������ 358 base.maximumItem = base.itemsAmount - base.options.items;������ 359 base.maximumPixels = maximum;������ 360 }������ 361 return maximum;������ 362 },������ 363������ 364 min : function () {������ 365 return 0;������ 366 },������ 367������ 368 loops : function () {������ 369 var base = this,������ 370 prev = 0,������ 371 elWidth = 0,������ 372 i,������ 373 item,������ 374 roundPageNum;������ 375������ 376 base.positionsInArray = [0];������ 377 base.pagesInArray = [];������ 378������ 379 for (i = 0; i < base.itemsAmount; i += 1) {������ 380 elWidth += base.itemWidth;������ 381 base.positionsInArray.push(-elWidth);������ 382������ 383 if (base.options.scrollPerPage === true) {������ 384 item = $(base.$owlItems[i]);������ 385 roundPageNum = item.data("owl-roundPages");������ 386 if (roundPageNum !== prev) {������ 387 base.pagesInArray[prev] = base.positionsInArray[i];������ 388 prev = roundPageNum;������ 389 }������ 390 }������ 391 }������ 392 },������ 393������ 394 buildControls : function () {������ 395 var base = this;������ 396 if (base.options.navigation === true || base.options.pagination === true) {������
397 base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);������ 398 }������ 399 if (base.options.pagination === true) {������ 400 base.buildPagination();������ 401 }������ 402 if (base.options.navigation === true) {������ 403 base.buildButtons();������ 404 }������ 405 },������ 406������ 407 buildButtons : function () {������ 408 var base = this,������ 409 buttonsWrapper = $("<div class=\"owl-buttons\"/>");������ 410 base.owlControls.append(buttonsWrapper);������ 411������ 412 base.buttonPrev = $("<div/>", {������ 413 "class" : "owl-prev",������ 414 "html" : base.options.navigationText[0] || ""������ 415 });������ 416������ 417 base.buttonNext = $("<div/>", {������ 418 "class" : "owl-next",������ 419 "html" : base.options.navigationText[1] || ""������ 420 });������ 421������ 422 buttonsWrapper������ 423 .append(base.buttonPrev)������ 424 .append(base.buttonNext);������ 425������ 426 buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {������ 427 event.preventDefault();������ 428 });������ 429������ 430 buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {������ 431 event.preventDefault();������ 432 if ($(this).hasClass("owl-next")) {������ 433 base.next();������ 434 } else {������ 435 base.prev();������ 436 }������ 437 });������ 438 },������ 439������ 440 buildPagination : function () {������ 441 var base = this;������ 442������ 443 base.paginationWrapper = $("<div class=\"owl-pagination\"/>");������ 444 base.owlControls.append(base.paginationWrapper);������ 445������ 446 base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {������ 447 event.preventDefault();������ 448 if (Number($(this).data("owl-page")) !== base.currentItem) {������ 449 base.goTo(Number($(this).data("owl-page")), true);������ 450 }������ 451 });������ 452 },������ 453������ 454 updatePagination : function () {������ 455 var base = this,������ 456 counter,������ 457 lastPage,������ 458 lastItem,������ 459 i,������ 460 paginationButton,������ 461 paginationButtonInner;������ 462������ 463 if (base.options.pagination === false) {������ 464 return false;������ 465 }������ 466������ 467 base.paginationWrapper.html("");������ 468������ 469 counter = 0;������ 470 lastPage = base.itemsAmount - base.itemsAmount % base.options.items;������ 471������ 472 for (i = 0; i < base.itemsAmount; i += 1) {������ 473 if (i % base.options.items === 0) {������ 474 counter += 1;������ 475 if (lastPage === i) {������ 476 lastItem = base.itemsAmount - base.options.items;������ 477 }������ 478 paginationButton = $("<div/>", {������ 479 "class" : "owl-page"������ 480 });������ 481 paginationButtonInner = $("<span></span>", {������ 482 "text": base.options.paginationNumbers === true ? counter : "",������ 483 "class": base.options.paginationNumbers === true ? "owl-numbers" : ""������ 484 });������ 485 paginationButton.append(paginationButtonInner);������ 486������ 487 paginationButton.data("owl-page", lastPage === i ? lastItem : i);������ 488 paginationButton.data("owl-roundPages", counter);������ 489������ 490 base.paginationWrapper.append(paginationButton);������ 491 }������ 492 }������ 493 base.checkPagination();������ 494 },������ 495 checkPagination : function () {������ 496 var base = this;������ 497 if (base.options.pagination === false) {������ 498 return false;������ 499 }������ 500 base.paginationWrapper.find(".owl-page").each(function () {������ 501 if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {������ 502 base.paginationWrapper������ 503 .find(".owl-page")������ 504 .removeClass("active");������ 505 $(this).addClass("active");������ 506 }������ 507 });������ 508 },������ 509������ 510 checkNavigation : function () {������ 511 var base = this;������ 512������ 513 if (base.options.navigation === false) {������ 514 return false;������ 515 }������ 516 if (base.options.rewindNav === false) {������ 517 if (base.currentItem === 0 && base.maximumItem === 0) {������ 518 base.buttonPrev.addClass("disabled");������ 519 base.buttonNext.addClass("disabled");������ 520 } else if (base.currentItem === 0 && base.maximumItem !== 0) {������ 521 base.buttonPrev.addClass("disabled");������ 522 base.buttonNext.removeClass("disabled");������ 523 } else if (base.currentItem === base.maximumItem) {������ 524 base.buttonPrev.removeClass("disabled");������ 525 base.buttonNext.addClass("disabled");������ 526 } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {������ 527 base.buttonPrev.removeClass("disabled");������ 528 base.buttonNext.removeClass("disabled");������ 529 }������ 530 }������ 531 },������ 532������ 533 updateControls : function () {������ 534 var base = this;������ 535 base.updatePagination();������ 536 base.checkNavigation();������ 537 if (base.owlControls) {������ 538 if (base.options.items >= base.itemsAmount) {������ 539 base.owlControls.hide();������ 540 } else {������ 541 base.owlControls.show();������ 542 }������ 543 }������ 544 },������ 545������ 546 destroyControls : function () {������ 547 var base = this;������ 548 if (base.owlControls) {������ 549 base.owlControls.remove();������ 550 }������ 551 },������ 552������ 553 next : function (speed) {������ 554 var base = this;������ 555������ 556 if (base.isTransition) {������ 557 return false;������ 558 }������ 559������ 560 base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;������ 561 if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {������ 562 if (base.options.rewindNav === true) {������ 563 base.currentItem = 0;������ 564 speed = "rewind";������ 565 } else {������ 566 base.currentItem = base.maximumItem;������ 567 return false;������ 568 }������ 569 }������ 570 base.goTo(base.currentItem, speed);������ 571 },������ 572������ 573 prev : function (speed) {������ 574 var base = this;������ 575������ 576 if (base.isTransition) {������ 577 return false;������ 578 }������ 579������ 580 if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {������ 581 base.currentItem = 0;������ 582 } else {������ 583 base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;������ 584 }������ 585 if (base.currentItem < 0) {������ 586 if (base.options.rewindNav === true) {������ 587 base.currentItem = base.maximumItem;������ 588 speed = "rewind";������ 589 } else {������ 590 base.currentItem = 0;������ 591 return false;������ 592 }������ 593 }������ 594 base.goTo(base.currentItem, speed);������ 595 },������ 596������ 597 goTo : function (position, speed, drag) {������ 598 var base = this,������ 599 goToPixel;������ 600������ 601 if (base.isTransition) {������ 602 return false;������ 603 }������ 604 if (typeof base.options.beforeMove === "function") {������ 605 base.options.beforeMove.apply(this, [base.$elem]);������ 606 }������ 607 if (position >= base.maximumItem) {������ 608 position = base.maximumItem;������ 609 } else if (position <= 0) {������ 610 position = 0;������ 611 }������ 612������ 613 base.currentItem = base.owl.currentItem = position;������ 614 if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {������ 615 base.swapSpeed(0);������ 616 if (base.browser.support3d === true) {������ 617 base.transition3d(base.positionsInArray[position]);������ 618 } else {������ 619 base.css2slide(base.positionsInArray[position], 1);������ 620 }������ 621 base.afterGo();������ 622 base.singleItemTransition();������ 623 return false;������ 624 }������ 625 goToPixel = base.positionsInArray[position];������ 626������ 627 if (base.browser.support3d === true) {������ 628 base.isCss3Finish = false;������ 629������ 630 if (speed === true) {������ 631 base.swapSpeed("paginationSpeed");������ 632 window.setTimeout(function () {������ 633 base.isCss3Finish = true;������ 634 }, base.options.paginationSpeed);������ 635������ 636 } else if (speed === "rewind") {������ 637 base.swapSpeed(base.options.rewindSpeed);������ 638 window.setTimeout(function () {������ 639 base.isCss3Finish = true;������ 640 }, base.options.rewindSpeed);������ 641������ 642 } else {������ 643 base.swapSpeed("slideSpeed");������ 644 window.setTimeout(function () {������ 645 base.isCss3Finish = true;������ 646 }, base.options.slideSpeed);������ 647 }������ 648 base.transition3d(goToPixel);������ 649 } else {������ 650 if (speed === true) {������
651 base.css2slide(goToPixel, base.options.paginationSpeed);������ 652 } else if (speed === "rewind") {������ 653 base.css2slide(goToPixel, base.options.rewindSpeed);������ 654 } else {������ 655 base.css2slide(goToPixel, base.options.slideSpeed);������ 656 }������ 657 }������ 658 base.afterGo();������ 659 },������ 660������ 661 jumpTo : function (position) {������ 662 var base = this;������ 663 if (typeof base.options.beforeMove === "function") {������ 664 base.options.beforeMove.apply(this, [base.$elem]);������ 665 }������ 666 if (position >= base.maximumItem || position === -1) {������ 667 position = base.maximumItem;������ 668 } else if (position <= 0) {������ 669 position = 0;������ 670 }������ 671 base.swapSpeed(0);������ 672 if (base.browser.support3d === true) {������ 673 base.transition3d(base.positionsInArray[position]);������ 674 } else {������ 675 base.css2slide(base.positionsInArray[position], 1);������ 676 }������ 677 base.currentItem = base.owl.currentItem = position;������ 678 base.afterGo();������ 679 },������ 680������ 681 afterGo : function () {������ 682 var base = this;������ 683������ 684 base.prevArr.push(base.currentItem);������ 685 base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];������ 686 base.prevArr.shift(0);������ 687������ 688 if (base.prevItem !== base.currentItem) {������ 689 base.checkPagination();������ 690 base.checkNavigation();������ 691 base.eachMoveUpdate();������ 692������ 693 if (base.options.autoPlay !== false) {������ 694 base.checkAp();������ 695 }������ 696 }������ 697 if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {������ 698 base.options.afterMove.apply(this, [base.$elem]);������ 699 }������ 700 },������ 701������ 702 stop : function () {������ 703 var base = this;������ 704 base.apStatus = "stop";������ 705 window.clearInterval(base.autoPlayInterval);������ 706 },������ 707������ 708 checkAp : function () {������ 709 var base = this;������ 710 if (base.apStatus !== "stop") {������ 711 base.play();������ 712 }������ 713 },������ 714������ 715 play : function () {������ 716 var base = this;������ 717 base.apStatus = "play";������ 718 if (base.options.autoPlay === false) {������ 719 return false;������ 720 }������ 721 window.clearInterval(base.autoPlayInterval);������ 722 base.autoPlayInterval = window.setInterval(function () {������ 723 base.next(true);������ 724 }, base.options.autoPlay);������ 725 },������ 726������ 727 swapSpeed : function (action) {������ 728 var base = this;������ 729 if (action === "slideSpeed") {������ 730 base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));������ 731 } else if (action === "paginationSpeed") {������ 732 base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));������ 733 } else if (typeof action !== "string") {������ 734 base.$owlWrapper.css(base.addCssSpeed(action));������ 735 }������ 736 },������ 737������ 738 addCssSpeed : function (speed) {������ 739 return {������ 740 "-webkit-transition": "all " + speed + "ms ease",������ 741 "-moz-transition": "all " + speed + "ms ease",������ 742 "-o-transition": "all " + speed + "ms ease",������ 743 "transition": "all " + speed + "ms ease"������ 744 };������ 745 },������ 746������ 747 removeTransition : function () {������ 748 return {������ 749 "-webkit-transition": "",������ 750 "-moz-transition": "",������ 751 "-o-transition": "",������ 752 "transition": ""������ 753 };������ 754 },������ 755������ 756 doTranslate : function (pixels) {������ 757 return {������ 758 "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",������ 759 "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",������ 760 "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",������ 761 "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",������ 762 "transform": "translate3d(" + pixels + "px, 0px,0px)"������ 763 };������ 764 },������ 765������ 766 transition3d : function (value) {������ 767 var base = this;������ 768 base.$owlWrapper.css(base.doTranslate(value));������ 769 },������ 770������ 771 css2move : function (value) {������ 772 var base = this;������ 773 base.$owlWrapper.css({"left" : value});������ 774 },������ 775������ 776 css2slide : function (value, speed) {������ 777 var base = this;������ 778������ 779 base.isCssFinish = false;������ 780 base.$owlWrapper.stop(true, true).animate({������ 781 "left" : value������ 782 }, {������ 783 duration : speed || base.options.slideSpeed,������ 784 complete : function () {������ 785 base.isCssFinish = true;������ 786 }������ 787 });������ 788 },������ 789������ 790 checkBrowser : function () {������ 791 var base = this,������ 792 translate3D = "translate3d(0px, 0px, 0px)",������ 793 tempElem = document.createElement("div"),������ 794 regex,������ 795 asSupport,������ 796 support3d,������ 797 isTouch;������ 798������ 799 tempElem.style.cssText = " -moz-transform:" + translate3D +������ 800 "; -ms-transform:" + translate3D +������ 801 "; -o-transform:" + translate3D +������ 802 "; -webkit-transform:" + translate3D +������ 803 "; transform:" + translate3D;������ 804 regex = /translate3d\(0px, 0px, 0px\)/g;������ 805 asSupport = tempElem.style.cssText.match(regex);������ 806 support3d = (asSupport !== null && asSupport.length === 1);������ 807������ 808 isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;������ 809������ 810 base.browser = {������ 811 "support3d" : support3d,������ 812 "isTouch" : isTouch������ 813 };������ 814 },������ 815������ 816 moveEvents : function () {������ 817 var base = this;������ 818 if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {������ 819 base.gestures();������ 820 base.disabledEvents();������ 821 }������ 822 },������ 823������ 824 eventTypes : function () {������ 825 var base = this,������ 826 types = ["s", "e", "x"];������ 827������ 828 base.ev_types = {};������ 829������ 830 if (base.options.mouseDrag === true && base.options.touchDrag === true) {������ 831 types = [������ 832 "touchstart.owl mousedown.owl",������ 833 "touchmove.owl mousemove.owl",������ 834 "touchend.owl touchcancel.owl mouseup.owl"������ 835 ];������ 836 } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {������ 837 types = [������ 838 "touchstart.owl",������ 839 "touchmove.owl",������ 840 "touchend.owl touchcancel.owl"������ 841 ];������ 842 } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {������ 843 types = [������ 844 "mousedown.owl",������ 845 "mousemove.owl",������ 846 "mouseup.owl"������ 847 ];������ 848 }������ 849������ 850 base.ev_types.start = types[0];������ 851 base.ev_types.move = types[1];������ 852 base.ev_types.end = types[2];������ 853 },������ 854������ 855 disabledEvents : function () {������ 856 var base = this;������ 857 base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });������ 858 base.$elem.on("mousedown.disableTextSelect", function (e) {������ 859 return $(e.target).is('input, textarea, select, option');������ 860 });������ 861 },������ 862������ 863 gestures : function () {������ 864 /*jslint unparam: true*/������ 865 var base = this,������ 866 locals = {������ 867 offsetX : 0,������ 868 offsetY : 0,������ 869 baseElWidth : 0,������ 870 relativePos : 0,������ 871 position: null,������ 872 minSwipe : null,������ 873 maxSwipe: null,������ 874 sliding : null,������ 875 dargging: null,������ 876 targetElement : null������ 877 };������ 878������ 879 base.isCssFinish = true;������ 880������ 881 function getTouches(event) {������ 882 if (event.touches !== undefined) {������ 883 return {������ 884 x : event.touches[0].pageX,������ 885 y : event.touches[0].pageY������ 886 };������ 887 }������ 888������ 889 if (event.touches === undefined) {������ 890 if (event.pageX !== undefined) {������ 891 return {������ 892 x : event.pageX,������ 893 y : event.pageY������ 894 };������ 895 }������ 896 if (event.pageX === undefined) {������ 897 return {������ 898 x : event.clientX,������ 899 y : event.clientY������ 900 };������ 901 }������ 902 }������ 903 }������ 904������ 905 function swapEvents(type) {������ 906 if (type === "on") {������ 907 $(document).on(base.ev_types.move, dragMove);������ 908 $(document).on(base.ev_types.end, dragEnd);������ 909 } else if (type === "off") {������ 910 $(document).off(base.ev_types.move);������ 911 $(document).off(base.ev_types.end);������ 912 }������ 913 }������ 914������ 915 function dragStart(event) {������ 916 var ev = event.originalEvent || event || window.event,������ 917 position;������ 918������ 919 if (ev.which === 3) {������ 920 return false;������ 921 }������ 922 if (base.itemsAmount <= base.options.items) {������ 923 return;������ 924 }������ 925 if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {������ 926 return false;������ 927 }������ 928 if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {������ 929 return false;������ 930 }������ 931������ 932 if (base.options.autoPlay !== false) {������ 933 window.clearInterval(base.autoPlayInterval);������ 934 }������ 935������ 936 if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {������ 937 base.$owlWrapper.addClass("grabbing");������ 938 }������ 939������ 940 base.newPosX = 0;������ 941 base.newRelativeX = 0;������ 942������ 943 $(this).css(base.removeTransition());������ 944������ 945 position = $(this).position();������ 946 locals.relativePos = position.left;������ 947������ 948 locals.offsetX = getTouches(ev).x - position.left;������ 949 locals.offsetY = getTouches(ev).y - position.top;������ 950������ 951 swapEvents("on");������ 952������ 953 locals.sliding = false;������ 954 locals.targetElement = ev.target || ev.srcElement;������ 955 }������ 956������ 957 function dragMove(event) {������ 958 var ev = event.originalEvent || event || window.event,������ 959 minSwipe,������ 960 maxSwipe;������ 961������ 962 base.newPosX = getTouches(ev).x - locals.offsetX;������ 963 base.newPosY = getTouches(ev).y - locals.offsetY;������ 964 base.newRelativeX = base.newPosX - locals.relativePos;������ 965������ 966 if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {������ 967 locals.dragging = true;������ 968 base.options.startDragging.apply(base, [base.$elem]);������ 969 }������ 970������ 971 if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {������ 972 if (ev.preventDefault !== undefined) {������ 973 ev.preventDefault();������ 974 } else {������ 975 ev.returnValue = false;������ 976 }������ 977 locals.sliding = true;������ 978 }������ 979������ 980 if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {������ 981 $(document).off("touchmove.owl");������ 982 }������ 983������ 984 minSwipe = function () {������ 985 return base.newRelativeX / 5;������ 986 };������ 987������ 988 maxSwipe = function () {������ 989 return base.maximumPixels + base.newRelativeX / 5;������ 990 };������ 991������ 992 base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());������ 993 if (base.browser.support3d === true) {������ 994 base.transition3d(base.newPosX);������ 995 } else {������ 996 base.css2move(base.newPosX);������ 997 }������ 998 }������ 999������ 1000 function dragEnd(event) {������ 1001 var ev = event.originalEvent || event || window.event,������ 1002 newPosition,������ 1003 handlers,������ 1004 owlStopEvent;������ 1005������ 1006 ev.target = ev.target || ev.srcElement;������ 1007������ 1008 locals.dragging = false;������ 1009������ 1010 if (base.browser.isTouch !== true) {������ 1011 base.$owlWrapper.removeClass("grabbing");������ 1012 }������ 1013������ 1014 if (base.newRelativeX < 0) {������ 1015 base.dragDirection = base.owl.dragDirection = "left";������ 1016 } else {������ 1017 base.dragDirection = base.owl.dragDirection = "right";������ 1018 }������ 1019������ 1020 if (base.newRelativeX !== 0) {������ 1021 newPosition = base.getNewPosition();������ 1022 base.goTo(newPosition, false, "drag");������ 1023 if (locals.targetElement === ev.target && base.browser.isTouch !== true) {������ 1024 $(ev.target).on("click.disable", function (ev) {������ 1025 ev.stopImmediatePropagation();������ 1026 ev.stopPropagation();������ 1027 ev.preventDefault();������ 1028 $(ev.target).off("click.disable");������ 1029 });������ 1030
1030 handlers = $._data(ev.target, "events").click;������ 1031 owlStopEvent = handlers.pop();������ 1032 handlers.splice(0, 0, owlStopEvent);������ 1033 }������ 1034 }������ 1035 swapEvents("off");������ 1036 }������ 1037 base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);������ 1038 },������ 1039������ 1040 getNewPosition : function () {������ 1041 var base = this,������ 1042 newPosition = base.closestItem();������ 1043������ 1044 if (newPosition > base.maximumItem) {������ 1045 base.currentItem = base.maximumItem;������ 1046 newPosition = base.maximumItem;������ 1047 } else if (base.newPosX >= 0) {������ 1048 newPosition = 0;������ 1049 base.currentItem = 0;������ 1050 }������ 1051 return newPosition;������ 1052 },������ 1053 closestItem : function () {������ 1054 var base = this,������ 1055 array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,������ 1056 goal = base.newPosX,������ 1057 closest = null;������ 1058������ 1059 $.each(array, function (i, v) {������ 1060 if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {������ 1061 closest = v;������ 1062 if (base.options.scrollPerPage === true) {������ 1063 base.currentItem = $.inArray(closest, base.positionsInArray);������ 1064 } else {������ 1065 base.currentItem = i;������ 1066 }������ 1067 } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {������ 1068 if (base.options.scrollPerPage === true) {������ 1069 closest = array[i + 1] || array[array.length - 1];������ 1070 base.currentItem = $.inArray(closest, base.positionsInArray);������ 1071 } else {������ 1072 closest = array[i + 1];������ 1073 base.currentItem = i + 1;������ 1074 }������ 1075 }������ 1076 });������ 1077 return base.currentItem;������ 1078 },������ 1079������ 1080 moveDirection : function () {������ 1081 var base = this,������ 1082 direction;������ 1083 if (base.newRelativeX < 0) {������ 1084 direction = "right";������ 1085 base.playDirection = "next";������ 1086 } else {������ 1087 direction = "left";������ 1088 base.playDirection = "prev";������ 1089 }������ 1090 return direction;������ 1091 },������ 1092������ 1093 customEvents : function () {������ 1094 /*jslint unparam: true*/������ 1095 var base = this;������ 1096 base.$elem.on("owl.next", function () {������ 1097 base.next();������ 1098 });������ 1099 base.$elem.on("owl.prev", function () {������ 1100 base.prev();������ 1101 });������ 1102 base.$elem.on("owl.play", function (event, speed) {������ 1103 base.options.autoPlay = speed;������ 1104 base.play();������ 1105 base.hoverStatus = "play";������ 1106 });������ 1107 base.$elem.on("owl.stop", function () {������ 1108 base.stop();������ 1109 base.hoverStatus = "stop";������ 1110 });������ 1111 base.$elem.on("owl.goTo", function (event, item) {������ 1112 base.goTo(item);������ 1113 });������ 1114 base.$elem.on("owl.jumpTo", function (event, item) {������ 1115 base.jumpTo(item);������ 1116 });������ 1117 },������ 1118������ 1119 stopOnHover : function () {������ 1120 var base = this;������ 1121 if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {������ 1122 base.$elem.on("mouseover", function () {������ 1123 base.stop();������ 1124 });������ 1125 base.$elem.on("mouseout", function () {������ 1126 if (base.hoverStatus !== "stop") {������ 1127 base.play();������ 1128 }������ 1129 });������ 1130 }������ 1131 },������ 1132������ 1133 lazyLoad : function () {������ 1134 var base = this,������ 1135 i,������ 1136 $item,������ 1137 itemNumber,������ 1138 $lazyImg,������ 1139 follow;������ 1140������ 1141 if (base.options.lazyLoad === false) {������ 1142 return false;������ 1143 }������ 1144 for (i = 0; i < base.itemsAmount; i += 1) {������ 1145 $item = $(base.$owlItems[i]);������ 1146������ 1147 if ($item.data("owl-loaded") === "loaded") {������ 1148 continue;������ 1149 }������ 1150������ 1151 itemNumber = $item.data("owl-item");������ 1152 $lazyImg = $item.find(".lazyOwl");������ 1153������ 1154 if (typeof $lazyImg.data("src") !== "string") {������ 1155 $item.data("owl-loaded", "loaded");������ 1156 continue;������ 1157 }������ 1158 if ($item.data("owl-loaded") === undefined) {������ 1159 $lazyImg.hide();������ 1160 $item.addClass("loading").data("owl-loaded", "checked");������ 1161 }������ 1162 if (base.options.lazyFollow === true) {������ 1163 follow = itemNumber >= base.currentItem;������ 1164 } else {������ 1165 follow = true;������ 1166 }������ 1167 if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {������ 1168 $lazyImg.each(function() {������ 1169 base.lazyPreload($item, $(this));������ 1170 });������ 1171 }������ 1172 }������ 1173 },������ 1174������ 1175 lazyPreload : function ($item, $lazyImg) {������ 1176 var base = this,������ 1177 iterations = 0,������
1178 isBackgroundImg;������ 1179������ 1180 if ($lazyImg.prop("tagName") === "DIV") {������ 1181 $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");������ 1182 isBackgroundImg = true;������ 1183 } else {������ 1184 $lazyImg[0].src = $lazyImg.data("src");������ 1185 }������ 1186������ 1187 function showImage() {������ 1188 $item.data("owl-loaded", "loaded").removeClass("loading");������ 1189 $lazyImg.removeAttr("data-src");������ 1190 if (base.options.lazyEffect === "fade") {������ 1191 $lazyImg.fadeIn(400);������ 1192 } else {������ 1193 $lazyImg.show();������ 1194 }������ 1195 if (typeof base.options.afterLazyLoad === "function") {������ 1196 base.options.afterLazyLoad.apply(this, [base.$elem]);������ 1197 }������ 1198 }������ 1199������ 1200 function checkLazyImage() {������ 1201 iterations += 1;������ 1202 if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {������ 1203 showImage();������ 1204 } else if (iterations <= 100) {//if image loads in less than 10 seconds ������ 1205 window.setTimeout(checkLazyImage, 100);������ 1206 } else {������ 1207 showImage();������ 1208 }������ 1209 }������ 1210������ 1211 checkLazyImage();������ 1212 },������ 1213������ 1214 autoHeight : function () {������ 1215 var base = this,������ 1216 $currentimg = $(base.$owlItems[base.currentItem]).find("img"),������ 1217 iterations;������ 1218������ 1219 function addHeight() {������ 1220 var $currentItem = $(base.$owlItems[base.currentItem]).height();������ 1221 base.wrapperOuter.css("height", $currentItem + "px");������ 1222 if (!base.wrapperOuter.hasClass("autoHeight")) {������ 1223 window.setTimeout(function () {������ 1224 base.wrapperOuter.addClass("autoHeight");������ 1225 }, 0);������ 1226 }������ 1227 }������ 1228������ 1229 function checkImage() {������ 1230 iterations += 1;������ 1231 if (base.completeImg($currentimg.get(0))) {������ 1232 addHeight();������ 1233 } else if (iterations <= 100) { //if image loads in less than 10 seconds ������ 1234 window.setTimeout(checkImage, 100);������ 1235 } else {������ 1236 base.wrapperOuter.css("height", ""); //Else remove height attribute������ 1237 }������ 1238 }������ 1239������ 1240 if ($currentimg.get(0) !== undefined) {������ 1241 iterations = 0;������ 1242 checkImage();������ 1243 } else {������ 1244 addHeight();������ 1245 }������ 1246 },������ 1247������ 1248 completeImg : function (img) {������ 1249 var naturalWidthType;������ 1250������ 1251 if (!img.complete) {������ 1252 return false;������ 1253 }������ 1254 naturalWidthType = typeof img.naturalWidth;������
1255 if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {������ 1256 return false;������ 1257 }������ 1258 return true;������ 1259 },������ 1260������ 1261 onVisibleItems : function () {������ 1262 var base = this,������ 1263 i;������ 1264������ 1265 if (base.options.addClassActive === true) {������ 1266 base.$owlItems.removeClass("active");������ 1267 }������ 1268 base.visibleItems = [];������ 1269 for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {������ 1270 base.visibleItems.push(i);������ 1271������ 1272 if (base.options.addClassActive === true) {������ 1273 $(base.$owlItems[i]).addClass("active");������ 1274 }������ 1275 }������ 1276 base.owl.visibleItems = base.visibleItems;������ 1277 },������ 1278������ 1279 transitionTypes : function (className) {������ 1280 var base = this;������ 1281 //Currently available: "fade", "backSlide", "goDown", "fadeUp"������ 1282 base.outClass = "owl-" + className + "-out";������ 1283 base.inClass = "owl-" + className + "-in";������ 1284 },������ 1285������ 1286 singleItemTransition : function () {������ 1287 var base = this,������ 1288 outClass = base.outClass,������ 1289 inClass = base.inClass,������ 1290 $currentItem = base.$owlItems.eq(base.currentItem),������ 1291 $prevItem = base.$owlItems.eq(base.prevItem),������ 1292 prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],������ 1293 origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,������ 1294 animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';������ 1295������ 1296 base.isTransition = true;������ 1297������ 1298 base.$owlWrapper������ 1299 .addClass('owl-origin')������ 1300 .css({������ 1301 "-webkit-transform-origin" : origin + "px",������ 1302 "-moz-perspective-origin" : origin + "px",������ 1303 "perspective-origin" : origin + "px"������ 1304 });������ 1305 function transStyles(prevPos) {������ 1306 return {������ 1307 "position" : "relative",������ 1308 "left" : prevPos + "px"������ 1309 };������ 1310 }������ 1311������ 1312 $prevItem������ 1313 .css(transStyles(prevPos, 10))������ 1314 .addClass(outClass)������ 1315 .on(animEnd, function () {������ 1316 base.endPrev = true;������ 1317 $prevItem.off(animEnd);������ 1318 base.clearTransStyle($prevItem, outClass);������ 1319 });������ 1320������ 1321 $currentItem������ 1322 .addClass(inClass)������ 1323 .on(animEnd, function () {������ 1324 base.endCurrent = true;������ 1325 $currentItem.off(animEnd);������ 1326 base.clearTransStyle($currentItem, inClass);������ 1327 });������ 1328 },������ 1329������ 1330 clearTransStyle : function (item, classToRemove) {������ 1331 var base = this;������ 1332 item.css({������ 1333 "position" : "",������ 1334 "left" : ""������ 1335 }).removeClass(classToRemove);������ 1336������ 1337 if (base.endPrev && base.endCurrent) {������ 1338 base.$owlWrapper.removeClass('owl-origin');������ 1339 base.endPrev = false;������ 1340 base.endCurrent = false;������ 1341 base.isTransition = false;������ 1342 }������ 1343 },������ 1344������ 1345 owlStatus : function () {������ 1346 var base = this;������ 1347 base.owl = {������ 1348 "userOptions" : base.userOptions,������ 1349 "baseElement" : base.$elem,������ 1350 "userItems" : base.$userItems,������ 1351 "owlItems" : base.$owlItems,������ 1352 "currentItem" : base.currentItem,������ 1353 "prevItem" : base.prevItem,������ 1354 "visibleItems" : base.visibleItems,������ 1355 "isTouch" : base.browser.isTouch,������ 1356 "browser" : base.browser,������ 1357 "dragDirection" : base.dragDirection������ 1358 };������ 1359 },������ 1360������ 1361 clearEvents : function () {������ 1362 var base = this;������ 1363 base.$elem.off(".owl owl mousedown.disableTextSelect");������ 1364 $(document).off(".owl owl");������ 1365 $(window).off("resize", base.resizer);������ 1366 },������ 1367������ 1368 unWrap : function () {������ 1369 var base = this;������ 1370 if (base.$elem.children().length !== 0) {������ 1371 base.$owlWrapper.unwrap();������ 1372 base.$userItems.unwrap().unwrap();������ 1373 if (base.owlControls) {������ 1374 base.owlControls.remove();������ 1375 }������ 1376 }������ 1377 base.clearEvents();������ 1378 base.$elem.attr({������ 1379 style: base.$elem.data("owl-originalStyles") || "",������ 1380 class: base.$elem.data("owl-originalClasses")������ 1381 });������ 1382 },������ 1383������ 1384 destroy : function () {������ 1385 var base = this;������ 1386 base.stop();������ 1387 window.clearInterval(base.checkVisible);������ 1388 base.unWrap();������ 1389 base.$elem.removeData();������ 1390 },������ 1391������ 1392 reinit : function (newOptions) {������ 1393 var base = this,������ 1394 options = $.extend({}, base.userOptions, newOptions);������ 1395 base.unWrap();������ 1396 base.init(options, base.$elem);������ 1397 },������ 1398������ 1399 addItem : function (htmlString, targetPosition) {������ 1400 var base = this,������ 1401 position;������ 1402������ 1403 if (!htmlString) {return false; }������ 1404������ 1405 if (base.$elem.children().length === 0) {������ 1406 base.$elem.append(htmlString);������ 1407 base.setVars();������ 1408 return false;������ 1409 }������ 1410 base.unWrap();������ 1411 if (targetPosition === undefined || targetPosition === -1) {������ 1412 position = -1;������ 1413 } else {������ 1414 position = targetPosition;������ 1415 }������ 1416 if (position >= base.$userItems.length || position === -1) {������ 1417 base.$userItems.eq(-1).after(htmlString);������ 1418 } else {������ 1419 base.$userItems.eq(position).before(htmlString);������ 1420 }������ 1421������ 1422 base.setVars();������ 1423 },������ 1424������ 1425 removeItem : function (targetPosition) {������ 1426 var base = this,������ 1427 position;������ 1428������ 1429 if (base.$elem.children().length === 0) {������ 1430 return false;������ 1431 }������ 1432 if (targetPosition === undefined || targetPosition === -1) {������ 1433 position = -1;������ 1434 } else {������ 1435 position = targetPosition;������ 1436 }������ 1437������ 1438 base.unWrap();������ 1439 base.$userItems.eq(position).remove();������ 1440 base.setVars();������ 1441 }������ 1442������ 1443 };������ 1444������ 1445 $.fn.owlCarousel = function (options) {������ 1446 return this.each(function () {������ 1447 if ($(this).data("owl-init") === true) {������ 1448 return false;������ 1449 }������ 1450 $(this).data("owl-init", true);������
1451 var carousel = Object.create(Carousel);������ 1452 carousel.init(options, this);������ 1453 $.data(this, "owlCarousel", carousel);������ 1454 });������ 1455 };������ 1456������ 1457 $.fn.owlCarousel.options = {������ 1458������ 1459 items : 5,������ 1460 itemsCustom : false,������ 1461 itemsDesktop : [1199, 4],������ 1462 itemsDesktopSmall : [979, 3],������ 1463 itemsTablet : [768, 2],������ 1464 itemsTabletSmall : false,������ 1465 itemsMobile : [479, 1],������ 1466 singleItem : false,������ 1467 itemsScaleUp : false,������ 1468������ 1469 slideSpeed : 200,������ 1470 paginationSpeed : 800,������ 1471 rewindSpeed : 1000,������ 1472������ 1473 autoPlay : false,������ 1474 stopOnHover : false,������ 1475������ 1476 navigation : false,������ 1477 navigationText : ["prev", "next"],������ 1478 rewindNav : true,������ 1479 scrollPerPage : false,������ 1480������ 1481 pagination : true,������ 1482 paginationNumbers : false,������ 1483������ 1484 responsive : true,������ 1485 responsiveRefreshRate : 200,������ 1486 responsiveBaseWidth : window,������ 1487������ 1488 baseClass : "owl-carousel",������ 1489 theme : "owl-theme",������ 1490������ 1491 lazyLoad : false,������ 1492 lazyFollow : true,������ 1493 lazyEffect : "fade",������ 1494������ 1495 autoHeight : false,������ 1496������ 1497 jsonPath : false,������ 1498 jsonSuccess : false,������ 1499������ 1500 dragBeforeAnimFinish : true,������ 1501 mouseDrag : true,������ 1502 touchDrag : true,������ 1503������ 1504 addClassActive : false,������ 1505 transitionStyle : false,������ 1506������ 1507 beforeUpdate : false,������ 1508 afterUpdate : false,������ 1509 beforeInit : false,������ 1510 afterInit : false,������ 1511 beforeMove : false,������ 1512 afterMove : false,������ 1513 afterAction : false,������ 1514 startDragging : false,������ 1515 afterLazyLoad: false������ 1516 };������ 1517}(jQuery, window, document));������
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.