");
base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
base.$elem.css("display", "block");
},
baseClass: function() {
var base = this,
hasBaseClass = base.$elem.hasClass(base.options.baseClass),
hasThemeClass = base.$elem.hasClass(base.options.theme);
if (!hasBaseClass) {
base.$elem.addClass(base.options.baseClass);
}
if (!hasThemeClass) {
base.$elem.addClass(base.options.theme);
}
},
updateItems: function() {
var base = this,
width, i;
if (base.options.responsive === false) {
return false;
}
if (base.options.singleItem === true) {
base.options.items = base.orignalItems = 1;
base.options.itemsCustom = false;
base.options.itemsDesktop = false;
base.options.itemsDesktopSmall = false;
base.options.itemsTablet = false;
base.options.itemsTabletSmall = false;
base.options.itemsMobile = false;
return false;
}
width = $(base.options.responsiveBaseWidth).width();
if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
base.options.items = base.orignalItems;
}
if (base.options.itemsCustom !== false) {
base.options.itemsCustom.sort(function(a, b) {
return a[0] - b[0];
});
for (i = 0; i < base.options.itemsCustom.length; i += 1) {
if (base.options.itemsCustom[i][0] <= width) {
base.options.items = base.options.itemsCustom[i][1];
}
}
} else {
if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
base.options.items = base.options.itemsDesktop[1];
}
if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
base.options.items = base.options.itemsDesktopSmall[1];
}
if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
base.options.items = base.options.itemsTablet[1];
}
if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
base.options.items = base.options.itemsTabletSmall[1];
}
if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
base.options.items = base.options.itemsMobile[1];
}
}
if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
base.options.items = base.itemsAmount;
}
},
response: function() {
var base = this,
smallDelay, lastWindowWidth;
if (base.options.responsive !== true) {
return false;
}
lastWindowWidth = $(window).width();
base.resizer = function() {
if ($(window).width() !== lastWindowWidth) {
if (base.options.autoPlay !== false) {
window.clearInterval(base.autoPlayInterval);
}
window.clearTimeout(smallDelay);
smallDelay = window.setTimeout(function() {
lastWindowWidth = $(window).width();
base.updateVars();
}, base.options.responsiveRefreshRate);
}
};
$(window).resize(base.resizer);
},
updatePosition: function() {
var base = this;
base.jumpTo(base.currentItem);
if (base.options.autoPlay !== false) {
base.checkAp();
}
},
appendItemsSizes: function() {
var base = this,
roundPages = 0,
lastItem = base.itemsAmount - base.options.items;
base.$owlItems.each(function(index) {
var $this = $(this);
$this.css({
"width": base.itemWidth
}).data("owl-item", Number(index));
if (index % base.options.items === 0 || index === lastItem) {
if (!(index > lastItem)) {
roundPages += 1;
}
}
$this.data("owl-roundPages", roundPages);
});
},
appendWrapperSizes: function() {
var base = this,
width = base.$owlItems.length * base.itemWidth;
base.$owlWrapper.css({
"width": width * 2,
"left": 0
});
base.appendItemsSizes();
},
calculateAll: function() {
var base = this;
base.calculateWidth();
base.appendWrapperSizes();
base.loops();
base.max();
},
calculateWidth: function() {
var base = this;
base.itemWidth = Math.round(base.$elem.width() / base.options.items);
},
max: function() {
var base = this,
maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
if (base.options.items > base.itemsAmount) {
base.maximumItem = 0;
maximum = 0;
base.maximumPixels = 0;
} else {
base.maximumItem = base.itemsAmount - base.options.items;
base.maximumPixels = maximum;
}
return maximum;
},
min: function() {
return 0;
},
loops: function() {
var base = this,
prev = 0,
elWidth = 0,
i, item, roundPageNum;
base.positionsInArray = [0];
base.pagesInArray = [];
for (i = 0; i < base.itemsAmount; i += 1) {
elWidth += base.itemWidth;
base.positionsInArray.push(-elWidth);
if (base.options.scrollPerPage === true) {
item = $(base.$owlItems[i]);
roundPageNum = item.data("owl-roundPages");
if (roundPageNum !== prev) {
base.pagesInArray[prev] = base.positionsInArray[i];
prev = roundPageNum;
}
}
}
},
buildControls: function() {
var base = this;
if (base.options.navigation === true || base.options.pagination === true) {
base.owlControls = $("
").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
}
if (base.options.pagination === true) {
base.buildPagination();
}
if (base.options.navigation === true) {
base.buildButtons();
}
},
buildButtons: function() {
var base = this,
buttonsWrapper = $("
");
base.owlControls.append(buttonsWrapper);
base.buttonPrev = $("
", {
"class": "owl-prev",
"html": base.options.navigationText[0] || ""
});
base.buttonNext = $("
", {
"class": "owl-next nav-next",
"html": base.options.navigationText[1] || ""
});
buttonsWrapper.append(base.buttonPrev).append(base.buttonNext);
buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function(event) {
event.preventDefault();
});
buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function(event) {
event.preventDefault();
if ($(this).hasClass("owl-next")) {
base.next();
} else {
base.prev();
}
});
},
buildPagination: function() {
var base = this;
base.paginationWrapper = $("");
base.owlControls.append(base.paginationWrapper);
base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function(event) {
event.preventDefault();
if (Number($(this).data("owl-page")) !== base.currentItem) {
base.goTo(Number($(this).data("owl-page")), true);
}
});
},
updatePagination: function() {
var base = this,
counter, lastPage, lastItem, i, paginationButton, paginationButtonInner;
if (base.options.pagination === false) {
return false;
}
base.paginationWrapper.html("");
counter = 0;
lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
for (i = 0; i < base.itemsAmount; i += 1) {
if (i % base.options.items === 0) {
counter += 1;
if (lastPage === i) {
lastItem = base.itemsAmount - base.options.items;
}
paginationButton = $("
", {
"class": "owl-page"
});
paginationButtonInner = $("
", {
"text": base.options.paginationNumbers === true ? counter : "",
"class": base.options.paginationNumbers === true ? "owl-numbers" : ""
});
paginationButton.append(paginationButtonInner);
paginationButton.data("owl-page", lastPage === i ? lastItem : i);
paginationButton.data("owl-roundPages", counter);
base.paginationWrapper.append(paginationButton);
}
}
base.checkPagination();
},
checkPagination: function() {
var base = this;
if (base.options.pagination === false) {
return false;
}
base.paginationWrapper.find(".owl-page").each(function() {
if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
base.paginationWrapper.find(".owl-page").removeClass("active");
$(this).addClass("active");
}
});
},
checkNavigation: function() {
var base = this;
if (base.options.navigation === false) {
return false;
}
if (base.options.rewindNav === false) {
if (base.currentItem === 0 && base.maximumItem === 0) {
base.buttonPrev.addClass("disabled");
base.buttonNext.addClass("disabled");
} else if (base.currentItem === 0 && base.maximumItem !== 0) {
base.buttonPrev.addClass("disabled");
base.buttonNext.removeClass("disabled");
} else if (base.currentItem === base.maximumItem) {
base.buttonPrev.removeClass("disabled");
base.buttonNext.addClass("disabled");
} else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
base.buttonPrev.removeClass("disabled");
base.buttonNext.removeClass("disabled");
}
}
},
updateControls: function() {
var base = this;
base.updatePagination();
base.checkNavigation();
if (base.owlControls) {
if (base.options.items >= base.itemsAmount) {
base.owlControls.hide();
} else {
base.owlControls.show();
}
}
},
destroyControls: function() {
var base = this;
if (base.owlControls) {
base.owlControls.remove();
}
},
next: function(speed) {
var base = this;
if (base.isTransition) {
return false;
}
base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
if (base.options.rewindNav === true) {
base.currentItem = 0;
speed = "rewind";
} else {
base.currentItem = base.maximumItem;
return false;
}
}
base.goTo(base.currentItem, speed);
},
prev: function(speed) {
var base = this;
if (base.isTransition) {
return false;
}
if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
base.currentItem = 0;
} else {
base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
}
if (base.currentItem < 0) {
if (base.options.rewindNav === true) {
base.currentItem = base.maximumItem;
speed = "rewind";
} else {
base.currentItem = 0;
return false;
}
}
base.goTo(base.currentItem, speed);
},
goTo: function(position, speed, drag) {
var base = this,
goToPixel;
if (base.isTransition) {
return false;
}
if (typeof base.options.beforeMove === "function") {
base.options.beforeMove.apply(this, [base.$elem]);
}
if (position >= base.maximumItem) {
position = base.maximumItem;
} else if (position <= 0) {
position = 0;
}
base.currentItem = base.owl.currentItem = position;
if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
base.swapSpeed(0);
if (base.browser.support3d === true) {
base.transition3d(base.positionsInArray[position]);
} else {
base.css2slide(base.positionsInArray[position], 1);
}
base.afterGo();
base.singleItemTransition();
return false;
}
goToPixel = base.positionsInArray[position];
if (base.browser.support3d === true) {
base.isCss3Finish = false;
if (speed === true) {
base.swapSpeed("paginationSpeed");
window.setTimeout(function() {
base.isCss3Finish = true;
}, base.options.paginationSpeed);
} else if (speed === "rewind") {
base.swapSpeed(base.options.rewindSpeed);
window.setTimeout(function() {
base.isCss3Finish = true;
}, base.options.rewindSpeed);
} else {
base.swapSpeed("slideSpeed");
window.setTimeout(function() {
base.isCss3Finish = true;
}, base.options.slideSpeed);
}
base.transition3d(goToPixel);
} else {
if (speed === true) {
base.css2slide(goToPixel, base.options.paginationSpeed);
} else if (speed === "rewind") {
base.css2slide(goToPixel, base.options.rewindSpeed);
} else {
base.css2slide(goToPixel, base.options.slideSpeed);
}
}
base.afterGo();
},
jumpTo: function(position) {
var base = this;
if (typeof base.options.beforeMove === "function") {
base.options.beforeMove.apply(this, [base.$elem]);
}
if (position >= base.maximumItem || position === -1) {
position = base.maximumItem;
} else if (position <= 0) {
position = 0;
}
base.swapSpeed(0);
if (base.browser.support3d === true) {
base.transition3d(base.positionsInArray[position]);
} else {
base.css2slide(base.positionsInArray[position], 1);
}
base.currentItem = base.owl.currentItem = position;
base.afterGo();
},
afterGo: function() {
var base = this;
base.prevArr.push(base.currentItem);
base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
base.prevArr.shift(0);
if (base.prevItem !== base.currentItem) {
base.checkPagination();
base.checkNavigation();
base.eachMoveUpdate();
if (base.options.autoPlay !== false) {
base.checkAp();
}
}
if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
base.options.afterMove.apply(this, [base.$elem]);
}
},
stop: function() {
var base = this;
base.apStatus = "stop";
window.clearInterval(base.autoPlayInterval);
},
checkAp: function() {
var base = this;
if (base.apStatus !== "stop") {
base.play();
}
},
play: function() {
var base = this;
base.apStatus = "play";
if (base.options.autoPlay === false) {
return false;
}
window.clearInterval(base.autoPlayInterval);
base.autoPlayInterval = window.setInterval(function() {
base.next(true);
}, base.options.autoPlay);
},
swapSpeed: function(action) {
var base = this;
if (action === "slideSpeed") {
base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
} else if (action === "paginationSpeed") {
base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
} else if (typeof action !== "string") {
base.$owlWrapper.css(base.addCssSpeed(action));
}
},
addCssSpeed: function(speed) {
return {
"-webkit-transition": "all " + speed + "ms ease",
"-moz-transition": "all " + speed + "ms ease",
"-o-transition": "all " + speed + "ms ease",
"transition": "all " + speed + "ms ease"
};
},
removeTransition: function() {
return {
"-webkit-transition": "",
"-moz-transition": "",
"-o-transition": "",
"transition": ""
};
},
doTranslate: function(pixels) {
return {
"-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
"-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
"-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
"-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
"transform": "translate3d(" + pixels + "px, 0px,0px)"
};
},
transition3d: function(value) {
var base = this;
base.$owlWrapper.css(base.doTranslate(value));
},
css2move: function(value) {
var base = this;
base.$owlWrapper.css({
"left": value
});
},
css2slide: function(value, speed) {
var base = this;
base.isCssFinish = false;
base.$owlWrapper.stop(true, true).animate({
"left": value
}, {
duration: speed || base.options.slideSpeed,
complete: function() {
base.isCssFinish = true;
}
});
},
checkBrowser: function() {
var base = this,
translate3D = "translate3d(0px, 0px, 0px)",
tempElem = document.createElement("div"),
regex, asSupport, support3d, isTouch;
tempElem.style.cssText = " -moz-transform:" + translate3D + "; -ms-transform:" + translate3D + "; -o-transform:" + translate3D + "; -webkit-transform:" + translate3D + "; transform:" + translate3D;
regex = /translate3d\(0px, 0px, 0px\)/g;
asSupport = tempElem.style.cssText.match(regex);
support3d = (asSupport !== null && asSupport.length === 1);
isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
base.browser = {
"support3d": support3d,
"isTouch": isTouch
};
},
moveEvents: function() {
var base = this;
if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
base.gestures();
base.disabledEvents();
}
},
eventTypes: function() {
var base = this,
types = ["s", "e", "x"];
base.ev_types = {};
if (base.options.mouseDrag === true && base.options.touchDrag === true) {
types = ["touchstart.owl mousedown.owl", "touchmove.owl mousemove.owl", "touchend.owl touchcancel.owl mouseup.owl"];
} else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
types = ["touchstart.owl", "touchmove.owl", "touchend.owl touchcancel.owl"];
} else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
types = ["mousedown.owl", "mousemove.owl", "mouseup.owl"];
}
base.ev_types.start = types[0];
base.ev_types.move = types[1];
base.ev_types.end = types[2];
},
disabledEvents: function() {
var base = this;
base.$elem.on("dragstart.owl", function(event) {
event.preventDefault();
});
base.$elem.on("mousedown.disableTextSelect", function(e) {
return $(e.target).is('input, textarea, select, option');
});
},
gestures: function() {
var base = this,
locals = {
offsetX: 0,
offsetY: 0,
baseElWidth: 0,
relativePos: 0,
position: null,
minSwipe: null,
maxSwipe: null,
sliding: null,
dargging: null,
targetElement: null
};
base.isCssFinish = true;
function getTouches(event) {
if (event.touches !== undefined) {
return {
x: event.touches[0].pageX,
y: event.touches[0].pageY
};
}
if (event.touches === undefined) {
if (event.pageX !== undefined) {
return {
x: event.pageX,
y: event.pageY
};
}
if (event.pageX === undefined) {
return {
x: event.clientX,
y: event.clientY
};
}
}
}
function swapEvents(type) {
if (type === "on") {
$(document).on(base.ev_types.move, dragMove);
$(document).on(base.ev_types.end, dragEnd);
} else if (type === "off") {
$(document).off(base.ev_types.move);
$(document).off(base.ev_types.end);
}
}
function dragStart(event) {
var ev = event.originalEvent || event || window.event,
position;
if (ev.which === 3) {
return false;
}
if (base.itemsAmount <= base.options.items) {
return;
}
if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
return false;
}
if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
return false;
}
if (base.options.autoPlay !== false) {
window.clearInterval(base.autoPlayInterval);
}
if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
base.$owlWrapper.addClass("grabbing");
}
base.newPosX = 0;
base.newRelativeX = 0;
$(this).css(base.removeTransition());
position = $(this).position();
locals.relativePos = position.left;
locals.offsetX = getTouches(ev).x - position.left;
locals.offsetY = getTouches(ev).y - position.top;
swapEvents("on");
locals.sliding = false;
locals.targetElement = ev.target || ev.srcElement;
}
function dragMove(event) {
var ev = event.originalEvent || event || window.event,
minSwipe, maxSwipe;
base.newPosX = getTouches(ev).x - locals.offsetX;
base.newPosY = getTouches(ev).y - locals.offsetY;
base.newRelativeX = base.newPosX - locals.relativePos;
if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
locals.dragging = true;
base.options.startDragging.apply(base, [base.$elem]);
}
if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
if (ev.preventDefault !== undefined) {
ev.preventDefault();
} else {
ev.returnValue = false;
}
locals.sliding = true;
}
if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
$(document).off("touchmove.owl");
}
minSwipe = function() {
return base.newRelativeX / 5;
};
maxSwipe = function() {
return base.maximumPixels + base.newRelativeX / 5;
};
base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
if (base.browser.support3d === true) {
base.transition3d(base.newPosX);
} else {
base.css2move(base.newPosX);
}
}
function dragEnd(event) {
var ev = event.originalEvent || event || window.event,
newPosition, handlers, owlStopEvent;
ev.target = ev.target || ev.srcElement;
locals.dragging = false;
if (base.browser.isTouch !== true) {
base.$owlWrapper.removeClass("grabbing");
}
if (base.newRelativeX < 0) {
base.dragDirection = base.owl.dragDirection = "left";
} else {
base.dragDirection = base.owl.dragDirection = "right";
}
if (base.newRelativeX !== 0) {
newPosition = base.getNewPosition();
base.goTo(newPosition, false, "drag");
if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
$(ev.target).on("click.disable", function(ev) {
ev.stopImmediatePropagation();
ev.stopPropagation();
ev.preventDefault();
$(ev.target).off("click.disable");
});
handlers = $._data(ev.target, "events").click;
owlStopEvent = handlers.pop();
handlers.splice(0, 0, owlStopEvent);
}
}
swapEvents("off");
}
base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
},
getNewPosition: function() {
var base = this,
newPosition = base.closestItem();
if (newPosition > base.maximumItem) {
base.currentItem = base.maximumItem;
newPosition = base.maximumItem;
} else if (base.newPosX >= 0) {
newPosition = 0;
base.currentItem = 0;
}
return newPosition;
},
closestItem: function() {
var base = this,
array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
goal = base.newPosX,
closest = null;
$.each(array, function(i, v) {
if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
closest = v;
if (base.options.scrollPerPage === true) {
base.currentItem = $.inArray(closest, base.positionsInArray);
} else {
base.currentItem = i;
}
} else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
if (base.options.scrollPerPage === true) {
closest = array[i + 1] || array[array.length - 1];
base.currentItem = $.inArray(closest, base.positionsInArray);
} else {
closest = array[i + 1];
base.currentItem = i + 1;
}
}
});
return base.currentItem;
},
moveDirection: function() {
var base = this,
direction;
if (base.newRelativeX < 0) {
direction = "right";
base.playDirection = "next";
} else {
direction = "left";
base.playDirection = "prev";
}
return direction;
},
customEvents: function() {
var base = this;
base.$elem.on("owl.next", function() {
base.next();
});
base.$elem.on("owl.prev", function() {
base.prev();
});
base.$elem.on("owl.play", function(event, speed) {
base.options.autoPlay = speed;
base.play();
base.hoverStatus = "play";
});
base.$elem.on("owl.stop", function() {
base.stop();
base.hoverStatus = "stop";
});
base.$elem.on("owl.goTo", function(event, item) {
base.goTo(item);
});
base.$elem.on("owl.jumpTo", function(event, item) {
base.jumpTo(item);
});
},
stopOnHover: function() {
var base = this;
if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
base.$elem.on("mouseover", function() {
base.stop();
});
base.$elem.on("mouseout", function() {
if (base.hoverStatus !== "stop") {
base.play();
}
});
}
},
lazyLoad: function() {
var base = this,
i, $item, itemNumber, $lazyImg, follow;
if (base.options.lazyLoad === false) {
return false;
}
for (i = 0; i < base.itemsAmount; i += 1) {
$item = $(base.$owlItems[i]);
if ($item.data("owl-loaded") === "loaded") {
continue;
}
itemNumber = $item.data("owl-item");
$lazyImg = $item.find(".lazyOwl");
if (typeof $lazyImg.data("src") !== "string") {
$item.data("owl-loaded", "loaded");
continue;
}
if ($item.data("owl-loaded") === undefined) {
$lazyImg.hide();
$item.addClass("loading").data("owl-loaded", "checked");
}
if (base.options.lazyFollow === true) {
follow = itemNumber >= base.currentItem;
} else {
follow = true;
}
if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
base.lazyPreload($item, $lazyImg);
}
}
},
lazyPreload: function($item, $lazyImg) {
var base = this,
iterations = 0,
isBackgroundImg;
if ($lazyImg.prop("tagName") === "DIV") {
$lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
isBackgroundImg = true;
} else {
$lazyImg[0].src = $lazyImg.data("src");
}
function showImage() {
$item.data("owl-loaded", "loaded").removeClass("loading");
$lazyImg.removeAttr("data-src");
if (base.options.lazyEffect === "fade") {
$lazyImg.fadeIn(400);
} else {
$lazyImg.show();
}
if (typeof base.options.afterLazyLoad === "function") {
base.options.afterLazyLoad.apply(this, [base.$elem]);
}
}
function checkLazyImage() {
iterations += 1;
if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
showImage();
} else if (iterations <= 100) {
window.setTimeout(checkLazyImage, 100);
} else {
showImage();
}
}
checkLazyImage();
},
autoHeight: function() {
var base = this,
$currentimg = $(base.$owlItems[base.currentItem]).find("img"),
iterations;
function addHeight() {
var $currentItem = $(base.$owlItems[base.currentItem]).height();
base.wrapperOuter.css("height", $currentItem + "px");
if (!base.wrapperOuter.hasClass("autoHeight")) {
window.setTimeout(function() {
base.wrapperOuter.addClass("autoHeight");
}, 0);
}
}
function checkImage() {
iterations += 1;
if (base.completeImg($currentimg.get(0))) {
addHeight();
} else if (iterations <= 100) {
window.setTimeout(checkImage, 100);
} else {
base.wrapperOuter.css("height", "");
}
}
if ($currentimg.get(0) !== undefined) {
iterations = 0;
checkImage();
} else {
addHeight();
}
},
completeImg: function(img) {
var naturalWidthType;
if (!img.complete) {
return false;
}
naturalWidthType = typeof img.naturalWidth;
if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
return false;
}
return true;
},
onVisibleItems: function() {
var base = this,
i;
if (base.options.addClassActive === true) {
base.$owlItems.removeClass("active");
}
base.visibleItems = [];
for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
base.visibleItems.push(i);
if (base.options.addClassActive === true) {
$(base.$owlItems[i]).addClass("active");
}
}
base.owl.visibleItems = base.visibleItems;
},
transitionTypes: function(className) {
var base = this;
base.outClass = "owl-" + className + "-out";
base.inClass = "owl-" + className + "-in";
},
singleItemTransition: function() {
var base = this,
outClass = base.outClass,
inClass = base.inClass,
$currentItem = base.$owlItems.eq(base.currentItem),
$prevItem = base.$owlItems.eq(base.prevItem),
prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
base.isTransition = true;
base.$owlWrapper.addClass('owl-origin').css({
"-webkit-transform-origin": origin + "px",
"-moz-perspective-origin": origin + "px",
"perspective-origin": origin + "px"
});
function transStyles(prevPos) {
return {
"position": "relative",
"left": prevPos + "px"
};
}
$prevItem.css(transStyles(prevPos, 10)).addClass(outClass).on(animEnd, function() {
base.endPrev = true;
$prevItem.off(animEnd);
base.clearTransStyle($prevItem, outClass);
});
$currentItem.addClass(inClass).on(animEnd, function() {
base.endCurrent = true;
$currentItem.off(animEnd);
base.clearTransStyle($currentItem, inClass);
});
},
clearTransStyle: function(item, classToRemove) {
var base = this;
item.css({
"position": "",
"left": ""
}).removeClass(classToRemove);
if (base.endPrev && base.endCurrent) {
base.$owlWrapper.removeClass('owl-origin');
base.endPrev = false;
base.endCurrent = false;
base.isTransition = false;
}
},
owlStatus: function() {
var base = this;
base.owl = {
"userOptions": base.userOptions,
"baseElement": base.$elem,
"userItems": base.$userItems,
"owlItems": base.$owlItems,
"currentItem": base.currentItem,
"prevItem": base.prevItem,
"visibleItems": base.visibleItems,
"isTouch": base.browser.isTouch,
"browser": base.browser,
"dragDirection": base.dragDirection
};
},
clearEvents: function() {
var base = this;
base.$elem.off(".owl owl mousedown.disableTextSelect");
$(document).off(".owl owl");
$(window).off("resize", base.resizer);
},
unWrap: function() {
var base = this;
if (base.$elem.children().length !== 0) {
base.$owlWrapper.unwrap();
base.$userItems.unwrap().unwrap();
if (base.owlControls) {
base.owlControls.remove();
}
}
base.clearEvents();
base.$elem.attr("style", base.$elem.data("owl-originalStyles") || "").attr("class", base.$elem.data("owl-originalClasses"));
},
destroy: function() {
var base = this;
base.stop();
window.clearInterval(base.checkVisible);
base.unWrap();
base.$elem.removeData();
},
reinit: function(newOptions) {
var base = this,
options = $.extend({}, base.userOptions, newOptions);
base.unWrap();
base.init(options, base.$elem);
},
addItem: function(htmlString, targetPosition) {
var base = this,
position;
if (!htmlString) {
return false;
}
if (base.$elem.children().length === 0) {
base.$elem.append(htmlString);
base.setVars();
return false;
}
base.unWrap();
if (targetPosition === undefined || targetPosition === -1) {
position = -1;
} else {
position = targetPosition;
}
if (position >= base.$userItems.length || position === -1) {
base.$userItems.eq(-1).after(htmlString);
} else {
base.$userItems.eq(position).before(htmlString);
}
base.setVars();
},
removeItem: function(targetPosition) {
var base = this,
position;
if (base.$elem.children().length === 0) {
return false;
}
if (targetPosition === undefined || targetPosition === -1) {
position = -1;
} else {
position = targetPosition;
}
base.unWrap();
base.$userItems.eq(position).remove();
base.setVars();
}
};
$.fn.owlCarousel = function(options) {
return this.each(function() {
if ($(this).data("owl-init") === true) {
return false;
}
$(this).data("owl-init", true);
var carousel = Object.create(Carousel);
carousel.init(options, this);
$.data(this, "owlCarousel", carousel);
});
};
$.fn.owlCarousel.options = {
items: 5,
itemsCustom: false,
itemsDesktop: [1199, 4],
itemsDesktopSmall: [979, 3],
itemsTablet: [768, 2],
itemsTabletSmall: false,
itemsMobile: [479, 1],
singleItem: false,
itemsScaleUp: false,
slideSpeed: 200,
paginationSpeed: 800,
rewindSpeed: 1000,
autoPlay: false,
stopOnHover: false,
navigation: true,
navigationText: ["prev", "next"],
rewindNav: true,
scrollPerPage: false,
pagination: false,
paginationNumbers: false,
responsive: true,
responsiveRefreshRate: 200,
responsiveBaseWidth: window,
baseClass: "owl-carousel",
theme: "owl-theme",
lazyLoad: false,
lazyFollow: true,
lazyEffect: "fade",
autoHeight: false,
jsonPath: false,
jsonSuccess: false,
dragBeforeAnimFinish: true,
mouseDrag: true,
touchDrag: true,
addClassActive: false,
transitionStyle: false,
beforeUpdate: false,
afterUpdate: false,
beforeInit: false,
afterInit: false,
beforeMove: false,
afterMove: false,
afterAction: false,
startDragging: false,
afterLazyLoad: false
};
}(jQuery, window, document));