!(function (a, b, c, d) {
function e(b, c) {
(this.settings = null),
(this.options = a.extend({}, e.Defaults, c)),
(this.$element = a(b)),
(this.drag = a.extend({}, m)),
(this.state = a.extend({}, n)),
(this.e = a.extend({}, o)),
(this._plugins = {}),
(this._supress = {}),
(this._current = null),
(this._speed = null),
(this._coordinates = []),
(this._breakpoint = null),
(this._width = null),
(this._items = []),
(this._clones = []),
(this._mergers = []),
(this._invalidated = {}),
(this._pipe = []),
a.each(
e.Plugins,
a.proxy(function (a, b) {
this._plugins[a[0].toLowerCase() + a.slice(1)] = new b(this);
}, this)
),
a.each(
e.Pipe,
a.proxy(function (b, c) {
this._pipe.push({ filter: c.filter, run: a.proxy(c.run, this) });
}, this)
),
this.setup(),
this.initialize();
}
function f(a) {
if (a.touches !== d)
return { x: a.touches[0].pageX, y: a.touches[0].pageY };
if (a.touches === d) {
if (a.pageX !== d) return { x: a.pageX, y: a.pageY };
if (a.pageX === d) return { x: a.clientX, y: a.clientY };
}
}
function g(a) {
var b,
d,
e = c.createElement("div"),
f = a;
for (b in f)
if (((d = f[b]), "undefined" != typeof e.style[d]))
return (e = null), [d, b];
return [!1];
}
function h() {
return g([
"transition",
"WebkitTransition",
"MozTransition",
"OTransition",
])[1];
}
function i() {
return g([
"transform",
"WebkitTransform",
"MozTransform",
"OTransform",
"msTransform",
])[0];
}
function j() {
return g([
"perspective",
"webkitPerspective",
"MozPerspective",
"OPerspective",
"MsPerspective",
])[0];
}
function k() {
return "ontouchstart" in b || !!navigator.msMaxTouchPoints;
}
function l() {
return b.navigator.msPointerEnabled;
}
var m, n, o;
(m = {
start: 0,
startX: 0,
startY: 0,
current: 0,
currentX: 0,
currentY: 0,
offsetX: 0,
offsetY: 0,
distance: null,
startTime: 0,
endTime: 0,
updatedX: 0,
targetEl: null,
}),
(n = {
isTouch: !1,
isScrolling: !1,
isSwiping: !1,
direction: !1,
inMotion: !1,
}),
(o = {
_onDragStart: null,
_onDragMove: null,
_onDragEnd: null,
_transitionEnd: null,
_resizer: null,
_responsiveCall: null,
_goToLoop: null,
_checkVisibile: null,
}),
(e.Defaults = {
items: 3,
loop: !1,
center: !1,
mouseDrag: !0,
touchDrag: !0,
pullDrag: !0,
freeDrag: !1,
margin: 0,
stagePadding: 0,
merge: !1,
mergeFit: !0,
autoWidth: !1,
startPosition: 0,
rtl: !1,
smartSpeed: 250,
fluidSpeed: !1,
dragEndSpeed: !1,
responsive: {},
responsiveRefreshRate: 200,
responsiveBaseElement: b,
responsiveClass: !1,
fallbackEasing: "swing",
info: !1,
nestedItemSelector: !1,
itemElement: "div",
stageElement: "div",
themeClass: "owl-theme",
baseClass: "owl-carousel",
itemClass: "owl-item",
centerClass: "center",
activeClass: "active",
}),
(e.Width = { Default: "default", Inner: "inner", Outer: "outer" }),
(e.Plugins = {}),
(e.Pipe = [
{
filter: ["width", "items", "settings"],
run: function (a) {
a.current = this._items && this._items[this.relative(this._current)];
},
},
{
filter: ["items", "settings"],
run: function () {
var a = this._clones,
b = this.$stage.children(".cloned");
(b.length !== a.length || (!this.settings.loop && a.length > 0)) &&
(this.$stage.children(".cloned").remove(), (this._clones = []));
},
},
{
filter: ["items", "settings"],
run: function () {
var a,
b,
c = this._clones,
d = this._items,
e = this.settings.loop
? c.length - Math.max(2 * this.settings.items, 4)
: 0;
for (a = 0, b = Math.abs(e / 2); b > a; a++)
e > 0
? (this.$stage
.children()
.eq(d.length + c.length - 1)
.remove(),
c.pop(),
this.$stage.children().eq(0).remove(),
c.pop())
: (c.push(c.length / 2),
this.$stage.append(
d[c[c.length - 1]].clone().addClass("cloned")
),
c.push(d.length - 1 - (c.length - 1) / 2),
this.$stage.prepend(
d[c[c.length - 1]].clone().addClass("cloned")
));
},
},
{
filter: ["width", "items", "settings"],
run: function () {
var a,
b,
c,
d = this.settings.rtl ? 1 : -1,
e = (this.width() / this.settings.items).toFixed(3),
f = 0;
for (
this._coordinates = [],
b = 0,
c = this._clones.length + this._items.length;
c > b;
b++
)
(a = this._mergers[this.relative(b)]),
(a =
(this.settings.mergeFit && Math.min(a, this.settings.items)) ||
a),
(f +=
(this.settings.autoWidth
? this._items[this.relative(b)].width() + this.settings.margin
: e * a) * d),
this._coordinates.push(f);
},
},
{
filter: ["width", "items", "settings"],
run: function () {
var b,
c,
d = (this.width() / this.settings.items).toFixed(3),
e = {
width:
Math.abs(this._coordinates[this._coordinates.length - 1]) +
2 * this.settings.stagePadding,
"padding-left": this.settings.stagePadding || "",
"padding-right": this.settings.stagePadding || "",
};
if (
(this.$stage.css(e),
(e = {
width: this.settings.autoWidth
? "auto"
: d - this.settings.margin,
}),
(e[this.settings.rtl ? "margin-left" : "margin-right"] =
this.settings.margin),
!this.settings.autoWidth &&
a.grep(this._mergers, function (a) {
return a > 1;
}).length > 0)
)
for (b = 0, c = this._coordinates.length; c > b; b++)
(e.width =
Math.abs(this._coordinates[b]) -
Math.abs(this._coordinates[b - 1] || 0) -
this.settings.margin),
this.$stage.children().eq(b).css(e);
else this.$stage.children().css(e);
},
},
{
filter: ["width", "items", "settings"],
run: function (a) {
a.current && this.reset(this.$stage.children().index(a.current));
},
},
{
filter: ["position"],
run: function () {
this.animate(this.coordinates(this._current));
},
},
{
filter: ["width", "position", "items", "settings"],
run: function () {
var a,
b,
c,
d,
e = this.settings.rtl ? 1 : -1,
f = 2 * this.settings.stagePadding,
g = this.coordinates(this.current()) + f,
h = g + this.width() * e,
i = [];
for (c = 0, d = this._coordinates.length; d > c; c++)
(a = this._coordinates[c - 1] || 0),
(b = Math.abs(this._coordinates[c]) + f * e),
((this.op(a, "<=", g) && this.op(a, ">", h)) ||
(this.op(b, "<", g) && this.op(b, ">", h))) &&
i.push(c);
this.$stage
.children("." + this.settings.activeClass)
.removeClass(this.settings.activeClass),
this.$stage
.children(":eq(" + i.join("), :eq(") + ")")
.addClass(this.settings.activeClass),
this.settings.center &&
(this.$stage
.children("." + this.settings.centerClass)
.removeClass(this.settings.centerClass),
this.$stage
.children()
.eq(this.current())
.addClass(this.settings.centerClass));
},
},
]),
(e.prototype.initialize = function () {
if (
(this.trigger("initialize"),
this.$element
.addClass(this.settings.baseClass)
.addClass(this.settings.themeClass)
.toggleClass("owl-rtl", this.settings.rtl),
this.browserSupport(),
this.settings.autoWidth && this.state.imagesLoaded !== !0)
) {
var b, c, e;
if (
((b = this.$element.find("img")),
(c = this.settings.nestedItemSelector
? "." + this.settings.nestedItemSelector
: d),
(e = this.$element.children(c).width()),
b.length && 0 >= e)
)
return this.preloadAutoWidthImages(b), !1;
}
this.$element.addClass("owl-loading"),
(this.$stage = a(
"<" + this.settings.stageElement + ' class="owl-stage"/>'
).wrap('
')),
this.$element.append(this.$stage.parent()),
this.replace(this.$element.children().not(this.$stage.parent())),
(this._width = this.$element.width()),
this.refresh(),
this.$element.removeClass("owl-loading").addClass("owl-loaded"),
this.eventsCall(),
this.internalEvents(),
this.addTriggerableEvents(),
this.trigger("initialized");
}),
(e.prototype.setup = function () {
var b = this.viewport(),
c = this.options.responsive,
d = -1,
e = null;
c
? (a.each(c, function (a) {
b >= a && a > d && (d = Number(a));
}),
(e = a.extend({}, this.options, c[d])),
delete e.responsive,
e.responsiveClass &&
this.$element
.attr("class", function (a, b) {
return b.replace(/\b owl-responsive-\S+/g, "");
})
.addClass("owl-responsive-" + d))
: (e = a.extend({}, this.options)),
(null === this.settings || this._breakpoint !== d) &&
(this.trigger("change", { property: { name: "settings", value: e } }),
(this._breakpoint = d),
(this.settings = e),
this.invalidate("settings"),
this.trigger("changed", {
property: { name: "settings", value: this.settings },
}));
}),
(e.prototype.optionsLogic = function () {
this.$element.toggleClass("owl-center", this.settings.center),
this.settings.loop &&
this._items.length < this.settings.items &&
(this.settings.loop = !1),
this.settings.autoWidth &&
((this.settings.stagePadding = !1), (this.settings.merge = !1));
}),
(e.prototype.prepare = function (b) {
var c = this.trigger("prepare", { content: b });
return (
c.data ||
(c.data = a("<" + this.settings.itemElement + "/>")
.addClass(this.settings.itemClass)
.append(b)),
this.trigger("prepared", { content: c.data }),
c.data
);
}),
(e.prototype.update = function () {
for (
var b = 0,
c = this._pipe.length,
d = a.proxy(function (a) {
return this[a];
}, this._invalidated),
e = {};
c > b;
)
(this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) &&
this._pipe[b].run(e),
b++;
this._invalidated = {};
}),
(e.prototype.width = function (a) {
switch ((a = a || e.Width.Default)) {
case e.Width.Inner:
case e.Width.Outer:
return this._width;
default:
return (
this._width - 2 * this.settings.stagePadding + this.settings.margin
);
}
}),
(e.prototype.refresh = function () {
if (0 === this._items.length) return !1;
new Date().getTime();
this.trigger("refresh"),
this.setup(),
this.optionsLogic(),
this.$stage.addClass("owl-refresh"),
this.update(),
this.$stage.removeClass("owl-refresh"),
(this.state.orientation = b.orientation),
this.watchVisibility(),
this.trigger("refreshed");
}),
(e.prototype.eventsCall = function () {
(this.e._onDragStart = a.proxy(function (a) {
this.onDragStart(a);
}, this)),
(this.e._onDragMove = a.proxy(function (a) {
this.onDragMove(a);
}, this)),
(this.e._onDragEnd = a.proxy(function (a) {
this.onDragEnd(a);
}, this)),
(this.e._onResize = a.proxy(function (a) {
this.onResize(a);
}, this)),
(this.e._transitionEnd = a.proxy(function (a) {
this.transitionEnd(a);
}, this)),
(this.e._preventClick = a.proxy(function (a) {
this.preventClick(a);
}, this));
}),
(e.prototype.onThrottledResize = function () {
b.clearTimeout(this.resizeTimer),
(this.resizeTimer = b.setTimeout(
this.e._onResize,
this.settings.responsiveRefreshRate
));
}),
(e.prototype.onResize = function () {
return this._items.length
? this._width === this.$element.width()
? !1
: this.trigger("resize").isDefaultPrevented()
? !1
: ((this._width = this.$element.width()),
this.invalidate("width"),
this.refresh(),
void this.trigger("resized"))
: !1;
}),
(e.prototype.eventsRouter = function (a) {
var b = a.type;
"mousedown" === b || "touchstart" === b
? this.onDragStart(a)
: "mousemove" === b || "touchmove" === b
? this.onDragMove(a)
: "mouseup" === b || "touchend" === b
? this.onDragEnd(a)
: "touchcancel" === b && this.onDragEnd(a);
}),
(e.prototype.internalEvents = function () {
var c = (k(), l());
this.settings.mouseDrag
? (this.$stage.on(
"mousedown",
a.proxy(function (a) {
this.eventsRouter(a);
}, this)
),
this.$stage.on("dragstart", function () {
return !1;
}),
(this.$stage.get(0).onselectstart = function () {
return !1;
}))
: this.$element.addClass("owl-text-select-on"),
this.settings.touchDrag &&
!c &&
this.$stage.on(
"touchstart touchcancel",
a.proxy(function (a) {
this.eventsRouter(a);
}, this)
),
this.transitionEndVendor &&
this.on(
this.$stage.get(0),
this.transitionEndVendor,
this.e._transitionEnd,
!1
),
this.settings.responsive !== !1 &&
this.on(b, "resize", a.proxy(this.onThrottledResize, this));
}),
(e.prototype.onDragStart = function (d) {
var e, g, h, i;
if (
((e = d.originalEvent || d || b.event),
3 === e.which || this.state.isTouch)
)
return !1;
if (
("mousedown" === e.type && this.$stage.addClass("owl-grab"),
this.trigger("drag"),
(this.drag.startTime = new Date().getTime()),
this.speed(0),
(this.state.isTouch = !0),
(this.state.isScrolling = !1),
(this.state.isSwiping = !1),
(this.drag.distance = 0),
(g = f(e).x),
(h = f(e).y),
(this.drag.offsetX = this.$stage.position().left),
(this.drag.offsetY = this.$stage.position().top),
this.settings.rtl &&
(this.drag.offsetX =
this.$stage.position().left +
this.$stage.width() -
this.width() +
this.settings.margin),
this.state.inMotion && this.support3d)
)
(i = this.getTransformProperty()),
(this.drag.offsetX = i),
this.animate(i),
(this.state.inMotion = !0);
else if (this.state.inMotion && !this.support3d)
return (this.state.inMotion = !1), !1;
(this.drag.startX = g - this.drag.offsetX),
(this.drag.startY = h - this.drag.offsetY),
(this.drag.start = g - this.drag.startX),
(this.drag.targetEl = e.target || e.srcElement),
(this.drag.updatedX = this.drag.start),
("IMG" === this.drag.targetEl.tagName ||
"A" === this.drag.targetEl.tagName) &&
(this.drag.targetEl.draggable = !1),
a(c).on(
"mousemove.owl.dragEvents mouseup.owl.dragEvents touchmove.owl.dragEvents touchend.owl.dragEvents",
a.proxy(function (a) {
this.eventsRouter(a);
}, this)
);
}),
(e.prototype.onDragMove = function (a) {
var c, e, g, h, i, j;
this.state.isTouch &&
(this.state.isScrolling ||
((c = a.originalEvent || a || b.event),
(e = f(c).x),
(g = f(c).y),
(this.drag.currentX = e - this.drag.startX),
(this.drag.currentY = g - this.drag.startY),
(this.drag.distance = this.drag.currentX - this.drag.offsetX),
this.drag.distance < 0
? (this.state.direction = this.settings.rtl ? "right" : "left")
: this.drag.distance > 0 &&
(this.state.direction = this.settings.rtl ? "left" : "right"),
this.settings.loop
? this.op(
this.drag.currentX,
">",
this.coordinates(this.minimum())
) && "right" === this.state.direction
? (this.drag.currentX -=
(this.settings.center && this.coordinates(0)) -
this.coordinates(this._items.length))
: this.op(
this.drag.currentX,
"<",
this.coordinates(this.maximum())
) &&
"left" === this.state.direction &&
(this.drag.currentX +=
(this.settings.center && this.coordinates(0)) -
this.coordinates(this._items.length))
: ((h = this.coordinates(
this.settings.rtl ? this.maximum() : this.minimum()
)),
(i = this.coordinates(
this.settings.rtl ? this.minimum() : this.maximum()
)),
(j = this.settings.pullDrag ? this.drag.distance / 5 : 0),
(this.drag.currentX = Math.max(
Math.min(this.drag.currentX, h + j),
i + j
))),
(this.drag.distance > 8 || this.drag.distance < -8) &&
(c.preventDefault !== d ? c.preventDefault() : (c.returnValue = !1),
(this.state.isSwiping = !0)),
(this.drag.updatedX = this.drag.currentX),
(this.drag.currentY > 16 || this.drag.currentY < -16) &&
this.state.isSwiping === !1 &&
((this.state.isScrolling = !0),
(this.drag.updatedX = this.drag.start)),
this.animate(this.drag.updatedX)));
}),
(e.prototype.onDragEnd = function (b) {
var d, e, f;
if (this.state.isTouch) {
if (
("mouseup" === b.type && this.$stage.removeClass("owl-grab"),
this.trigger("dragged"),
this.drag.targetEl.removeAttribute("draggable"),
(this.state.isTouch = !1),
(this.state.isScrolling = !1),
(this.state.isSwiping = !1),
0 === this.drag.distance && this.state.inMotion !== !0)
)
return (this.state.inMotion = !1), !1;
(this.drag.endTime = new Date().getTime()),
(d = this.drag.endTime - this.drag.startTime),
(e = Math.abs(this.drag.distance)),
(e > 3 || d > 300) && this.removeClick(this.drag.targetEl),
(f = this.closest(this.drag.updatedX)),
this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed),
this.current(f),
this.invalidate("position"),
this.update(),
this.settings.pullDrag ||
this.drag.updatedX !== this.coordinates(f) ||
this.transitionEnd(),
(this.drag.distance = 0),
a(c).off(".owl.dragEvents");
}
}),
(e.prototype.removeClick = function (c) {
(this.drag.targetEl = c),
a(c).on("click.preventClick", this.e._preventClick),
b.setTimeout(function () {
a(c).off("click.preventClick");
}, 300);
}),
(e.prototype.preventClick = function (b) {
b.preventDefault ? b.preventDefault() : (b.returnValue = !1),
b.stopPropagation && b.stopPropagation(),
a(b.target).off("click.preventClick");
}),
(e.prototype.getTransformProperty = function () {
var a, c;
return (
(a = b
.getComputedStyle(this.$stage.get(0), null)
.getPropertyValue(this.vendorName + "transform")),
(a = a.replace(/matrix(3d)?\(|\)/g, "").split(",")),
(c = 16 === a.length),
c !== !0 ? a[4] : a[12]
);
}),
(e.prototype.closest = function (b) {
var c = -1,
d = 30,
e = this.width(),
f = this.coordinates();
return (
this.settings.freeDrag ||
a.each(
f,
a.proxy(function (a, g) {
return (
b > g - d && g + d > b
? (c = a)
: this.op(b, "<", g) &&
this.op(b, ">", f[a + 1] || g - e) &&
(c = "left" === this.state.direction ? a + 1 : a),
-1 === c
);
}, this)
),
this.settings.loop ||
(this.op(b, ">", f[this.minimum()])
? (c = b = this.minimum())
: this.op(b, "<", f[this.maximum()]) && (c = b = this.maximum())),
c
);
}),
(e.prototype.animate = function (b) {
this.trigger("translate"),
(this.state.inMotion = this.speed() > 0),
this.support3d
? this.$stage.css({
transform: "translate3d(" + b + "px,0px, 0px)",
transition: this.speed() / 1e3 + "s",
})
: this.state.isTouch
? this.$stage.css({ left: b + "px" })
: this.$stage.animate(
{ left: b },
this.speed() / 1e3,
this.settings.fallbackEasing,
a.proxy(function () {
this.state.inMotion && this.transitionEnd();
}, this)
);
}),
(e.prototype.current = function (a) {
if (a === d) return this._current;
if (0 === this._items.length) return d;
if (((a = this.normalize(a)), this._current !== a)) {
var b = this.trigger("change", {
property: { name: "position", value: a },
});
b.data !== d && (a = this.normalize(b.data)),
(this._current = a),
this.invalidate("position"),
this.trigger("changed", {
property: { name: "position", value: this._current },
});
}
return this._current;
}),
(e.prototype.invalidate = function (a) {
this._invalidated[a] = !0;
}),
(e.prototype.reset = function (a) {
(a = this.normalize(a)),
a !== d &&
((this._speed = 0),
(this._current = a),
this.suppress(["translate", "translated"]),
this.animate(this.coordinates(a)),
this.release(["translate", "translated"]));
}),
(e.prototype.normalize = function (b, c) {
var e = c ? this._items.length : this._items.length + this._clones.length;
return !a.isNumeric(b) || 1 > e
? d
: (b = this._clones.length
? ((b % e) + e) % e
: Math.max(this.minimum(c), Math.min(this.maximum(c), b)));
}),
(e.prototype.relative = function (a) {
return (
(a = this.normalize(a)),
(a -= this._clones.length / 2),
this.normalize(a, !0)
);
}),
(e.prototype.maximum = function (a) {
var b,
c,
d,
e = 0,
f = this.settings;
if (a) return this._items.length - 1;
if (!f.loop && f.center) b = this._items.length - 1;
else if (f.loop || f.center)
if (f.loop || f.center) b = this._items.length + f.items;
else {
if (!f.autoWidth && !f.merge)
throw "Can not detect maximum absolute position.";
for (
revert = f.rtl ? 1 : -1,
c = this.$stage.width() - this.$element.width();
(d = this.coordinates(e)) && !(d * revert >= c);
)
b = ++e;
}
else b = this._items.length - f.items;
return b;
}),
(e.prototype.minimum = function (a) {
return a ? 0 : this._clones.length / 2;
}),
(e.prototype.items = function (a) {
return a === d
? this._items.slice()
: ((a = this.normalize(a, !0)), this._items[a]);
}),
(e.prototype.mergers = function (a) {
return a === d
? this._mergers.slice()
: ((a = this.normalize(a, !0)), this._mergers[a]);
}),
(e.prototype.clones = function (b) {
var c = this._clones.length / 2,
e = c + this._items.length,
f = function (a) {
return a % 2 === 0 ? e + a / 2 : c - (a + 1) / 2;
};
return b === d
? a.map(this._clones, function (a, b) {
return f(b);
})
: a.map(this._clones, function (a, c) {
return a === b ? f(c) : null;
});
}),
(e.prototype.speed = function (a) {
return a !== d && (this._speed = a), this._speed;
}),
(e.prototype.coordinates = function (b) {
var c = null;
return b === d
? a.map(
this._coordinates,
a.proxy(function (a, b) {
return this.coordinates(b);
}, this)
)
: (this.settings.center
? ((c = this._coordinates[b]),
(c +=
((this.width() - c + (this._coordinates[b - 1] || 0)) / 2) *
(this.settings.rtl ? -1 : 1)))
: (c = this._coordinates[b - 1] || 0),
c);
}),
(e.prototype.duration = function (a, b, c) {
return (
Math.min(Math.max(Math.abs(b - a), 1), 6) *
Math.abs(c || this.settings.smartSpeed)
);
}),
(e.prototype.to = function (c, d) {
if (this.settings.loop) {
var e = c - this.relative(this.current()),
f = this.current(),
g = this.current(),
h = this.current() + e,
i = 0 > g - h ? !0 : !1,
j = this._clones.length + this._items.length;
h < this.settings.items && i === !1
? ((f = g + this._items.length), this.reset(f))
: h >= j - this.settings.items &&
i === !0 &&
((f = g - this._items.length), this.reset(f)),
b.clearTimeout(this.e._goToLoop),
(this.e._goToLoop = b.setTimeout(
a.proxy(function () {
this.speed(this.duration(this.current(), f + e, d)),
this.current(f + e),
this.update();
}, this),
30
));
} else
this.speed(this.duration(this.current(), c, d)),
this.current(c),
this.update();
}),
(e.prototype.next = function (a) {
(a = a || !1), this.to(this.relative(this.current()) + 1, a);
}),
(e.prototype.prev = function (a) {
(a = a || !1), this.to(this.relative(this.current()) - 1, a);
}),
(e.prototype.transitionEnd = function (a) {
return a !== d &&
(a.stopPropagation(),
(a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0))
? !1
: ((this.state.inMotion = !1), void this.trigger("translated"));
}),
(e.prototype.viewport = function () {
var d;
if (this.options.responsiveBaseElement !== b)
d = a(this.options.responsiveBaseElement).width();
else if (b.innerWidth) d = b.innerWidth;
else {
if (!c.documentElement || !c.documentElement.clientWidth)
throw "Can not detect viewport width.";
d = c.documentElement.clientWidth;
}
return d;
}),
(e.prototype.replace = function (b) {
this.$stage.empty(),
(this._items = []),
b && (b = b instanceof jQuery ? b : a(b)),
this.settings.nestedItemSelector &&
(b = b.find("." + this.settings.nestedItemSelector)),
b
.filter(function () {
return 1 === this.nodeType;
})
.each(
a.proxy(function (a, b) {
(b = this.prepare(b)),
this.$stage.append(b),
this._items.push(b),
this._mergers.push(
1 *
b
.find("[data-merge]")
.andSelf("[data-merge]")
.attr("data-merge") || 1
);
}, this)
),
this.reset(
a.isNumeric(this.settings.startPosition)
? this.settings.startPosition
: 0
),
this.invalidate("items");
}),
(e.prototype.add = function (a, b) {
(b = b === d ? this._items.length : this.normalize(b, !0)),
this.trigger("add", { content: a, position: b }),
0 === this._items.length || b === this._items.length
? (this.$stage.append(a),
this._items.push(a),
this._mergers.push(
1 *
a
.find("[data-merge]")
.andSelf("[data-merge]")
.attr("data-merge") || 1
))
: (this._items[b].before(a),
this._items.splice(b, 0, a),
this._mergers.splice(
b,
0,
1 *
a
.find("[data-merge]")
.andSelf("[data-merge]")
.attr("data-merge") || 1
)),
this.invalidate("items"),
this.trigger("added", { content: a, position: b });
}),
(e.prototype.remove = function (a) {
(a = this.normalize(a, !0)),
a !== d &&
(this.trigger("remove", { content: this._items[a], position: a }),
this._items[a].remove(),
this._items.splice(a, 1),
this._mergers.splice(a, 1),
this.invalidate("items"),
this.trigger("removed", { content: null, position: a }));
}),
(e.prototype.addTriggerableEvents = function () {
var b = a.proxy(function (b, c) {
return a.proxy(function (a) {
a.relatedTarget !== this &&
(this.suppress([c]),
b.apply(this, [].slice.call(arguments, 1)),
this.release([c]));
}, this);
}, this);
a.each(
{
next: this.next,
prev: this.prev,
to: this.to,
destroy: this.destroy,
refresh: this.refresh,
replace: this.replace,
add: this.add,
remove: this.remove,
},
a.proxy(function (a, c) {
this.$element.on(a + ".owl.carousel", b(c, a + ".owl.carousel"));
}, this)
);
}),
(e.prototype.watchVisibility = function () {
function c(a) {
return a.offsetWidth > 0 && a.offsetHeight > 0;
}
function d() {
c(this.$element.get(0)) &&
(this.$element.removeClass("owl-hidden"),
this.refresh(),
b.clearInterval(this.e._checkVisibile));
}
c(this.$element.get(0)) ||
(this.$element.addClass("owl-hidden"),
b.clearInterval(this.e._checkVisibile),
(this.e._checkVisibile = b.setInterval(a.proxy(d, this), 500)));
}),
(e.prototype.preloadAutoWidthImages = function (b) {
var c, d, e, f;
(c = 0),
(d = this),
b.each(function (g, h) {
(e = a(h)),
(f = new Image()),
(f.onload = function () {
c++,
e.attr("src", f.src),
e.css("opacity", 1),
c >= b.length && ((d.state.imagesLoaded = !0), d.initialize());
}),
(f.src =
e.attr("src") || e.attr("data-src") || e.attr("data-src-retina"));
});
}),
(e.prototype.destroy = function () {
this.$element.hasClass(this.settings.themeClass) &&
this.$element.removeClass(this.settings.themeClass),
this.settings.responsive !== !1 && a(b).off("resize.owl.carousel"),
this.transitionEndVendor &&
this.off(
this.$stage.get(0),
this.transitionEndVendor,
this.e._transitionEnd
);
for (var d in this._plugins) this._plugins[d].destroy();
(this.settings.mouseDrag || this.settings.touchDrag) &&
(this.$stage.off("mousedown touchstart touchcancel"),
a(c).off(".owl.dragEvents"),
(this.$stage.get(0).onselectstart = function () {}),
this.$stage.off("dragstart", function () {
return !1;
})),
this.$element.off(".owl"),
this.$stage.children(".cloned").remove(),
(this.e = null),
this.$element.removeData("owlCarousel"),
this.$stage.children().contents().unwrap(),
this.$stage.children().unwrap(),
this.$stage.unwrap();
}),
(e.prototype.op = function (a, b, c) {
var d = this.settings.rtl;
switch (b) {
case "<":
return d ? a > c : c > a;
case ">":
return d ? c > a : a > c;
case ">=":
return d ? c >= a : a >= c;
case "<=":
return d ? a >= c : c >= a;
}
}),
(e.prototype.on = function (a, b, c, d) {
a.addEventListener
? a.addEventListener(b, c, d)
: a.attachEvent && a.attachEvent("on" + b, c);
}),
(e.prototype.off = function (a, b, c, d) {
a.removeEventListener
? a.removeEventListener(b, c, d)
: a.detachEvent && a.detachEvent("on" + b, c);
}),
(e.prototype.trigger = function (b, c, d) {
var e = { item: { count: this._items.length, index: this.current() } },
f = a.camelCase(
a
.grep(["on", b, d], function (a) {
return a;
})
.join("-")
.toLowerCase()
),
g = a.Event(
[b, "owl", d || "carousel"].join(".").toLowerCase(),
a.extend({ relatedTarget: this }, e, c)
);
return (
this._supress[b] ||
(a.each(this._plugins, function (a, b) {
b.onTrigger && b.onTrigger(g);
}),
this.$element.trigger(g),
this.settings &&
"function" == typeof this.settings[f] &&
this.settings[f].apply(this, g)),
g
);
}),
(e.prototype.suppress = function (b) {
a.each(
b,
a.proxy(function (a, b) {
this._supress[b] = !0;
}, this)
);
}),
(e.prototype.release = function (b) {
a.each(
b,
a.proxy(function (a, b) {
delete this._supress[b];
}, this)
);
}),
(e.prototype.browserSupport = function () {
if (((this.support3d = j()), this.support3d)) {
this.transformVendor = i();
var a = [
"transitionend",
"webkitTransitionEnd",
"transitionend",
"oTransitionEnd",
];
(this.transitionEndVendor = a[h()]),
(this.vendorName = this.transformVendor.replace(/Transform/i, "")),
(this.vendorName =
"" !== this.vendorName
? "-" + this.vendorName.toLowerCase() + "-"
: "");
}
this.state.orientation = b.orientation;
}),
(a.fn.owlCarousel = function (b) {
return this.each(function () {
a(this).data("owlCarousel") ||
a(this).data("owlCarousel", new e(this, b));
});
}),
(a.fn.owlCarousel.Constructor = e);
})(window.Zepto || window.jQuery, window, document),
(function (a, b) {
var c = function (b) {
(this._core = b),
(this._loaded = []),
(this._handlers = {
"initialized.owl.carousel change.owl.carousel": a.proxy(function (b) {
if (
b.namespace &&
this._core.settings &&
this._core.settings.lazyLoad &&
((b.property && "position" == b.property.name) ||
"initialized" == b.type)
)
for (
var c = this._core.settings,
d = (c.center && Math.ceil(c.items / 2)) || c.items,
e = (c.center && -1 * d) || 0,
f =
((b.property && b.property.value) || this._core.current()) +
e,
g = this._core.clones().length,
h = a.proxy(function (a, b) {
this.load(b);
}, this);
e++ < d;
)
this.load(g / 2 + this._core.relative(f)),
g && a.each(this._core.clones(this._core.relative(f++)), h);
}, this),
}),
(this._core.options = a.extend({}, c.Defaults, this._core.options)),
this._core.$element.on(this._handlers);
};
(c.Defaults = { lazyLoad: !1 }),
(c.prototype.load = function (c) {
var d = this._core.$stage.children().eq(c),
e = d && d.find(".owl-lazy");
!e ||
a.inArray(d.get(0), this._loaded) > -1 ||
(e.each(
a.proxy(function (c, d) {
var e,
f = a(d),
g =
(b.devicePixelRatio > 1 && f.attr("data-src-retina")) ||
f.attr("data-src");
this._core.trigger("load", { element: f, url: g }, "lazy"),
f.is("img")
? f
.one(
"load.owl.lazy",
a.proxy(function () {
f.css("opacity", 1),
this._core.trigger(
"loaded",
{ element: f, url: g },
"lazy"
);
}, this)
)
.attr("src", g)
: ((e = new Image()),
(e.onload = a.proxy(function () {
f.css({
"background-image": "url(" + g + ")",
opacity: "1",
}),
this._core.trigger(
"loaded",
{ element: f, url: g },
"lazy"
);
}, this)),
(e.src = g));
}, this)
),
this._loaded.push(d.get(0)));
}),
(c.prototype.destroy = function () {
var a, b;
for (a in this.handlers) this._core.$element.off(a, this.handlers[a]);
for (b in Object.getOwnPropertyNames(this))
"function" != typeof this[b] && (this[b] = null);
}),
(a.fn.owlCarousel.Constructor.Plugins.Lazy = c);
})(window.Zepto || window.jQuery, window, document),
(function (a) {
var b = function (c) {
(this._core = c),
(this._handlers = {
"initialized.owl.carousel": a.proxy(function () {
this._core.settings.autoHeight && this.update();
}, this),
"changed.owl.carousel": a.proxy(function (a) {
this._core.settings.autoHeight &&
"position" == a.property.name &&
this.update();
}, this),
"loaded.owl.lazy": a.proxy(function (a) {
this._core.settings.autoHeight &&
a.element.closest("." + this._core.settings.itemClass) ===
this._core.$stage.children().eq(this._core.current()) &&
this.update();
}, this),
}),
(this._core.options = a.extend({}, b.Defaults, this._core.options)),
this._core.$element.on(this._handlers);
};
(b.Defaults = { autoHeight: !1, autoHeightClass: "owl-height" }),
(b.prototype.update = function () {
this._core.$stage
.parent()
.height(
this._core.$stage.children().eq(this._core.current()).height()
)
.addClass(this._core.settings.autoHeightClass);
}),
(b.prototype.destroy = function () {
var a, b;
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
for (b in Object.getOwnPropertyNames(this))
"function" != typeof this[b] && (this[b] = null);
}),
(a.fn.owlCarousel.Constructor.Plugins.AutoHeight = b);
})(window.Zepto || window.jQuery, window, document),
(function (a, b, c) {
var d = function (b) {
(this._core = b),
(this._videos = {}),
(this._playing = null),
(this._fullscreen = !1),
(this._handlers = {
"resize.owl.carousel": a.proxy(function (a) {
this._core.settings.video &&
!this.isInFullScreen() &&
a.preventDefault();
}, this),
"refresh.owl.carousel changed.owl.carousel": a.proxy(function () {
this._playing && this.stop();
}, this),
"prepared.owl.carousel": a.proxy(function (b) {
var c = a(b.content).find(".owl-video");
c.length && (c.css("display", "none"), this.fetch(c, a(b.content)));
}, this),
}),
(this._core.options = a.extend({}, d.Defaults, this._core.options)),
this._core.$element.on(this._handlers),
this._core.$element.on(
"click.owl.video",
".owl-video-play-icon",
a.proxy(function (a) {
this.play(a);
}, this)
);
};
(d.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }),
(d.prototype.fetch = function (a, b) {
var c = a.attr("data-vimeo-id") ? "vimeo" : "youtube",
d = a.attr("data-vimeo-id") || a.attr("data-youtube-id"),
e = a.attr("data-width") || this._core.settings.videoWidth,
f = a.attr("data-height") || this._core.settings.videoHeight,
g = a.attr("href");
if (!g) throw new Error("Missing video URL.");
if (
((d = g.match(
/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/
)),
d[3].indexOf("youtu") > -1)
)
c = "youtube";
else {
if (!(d[3].indexOf("vimeo") > -1))
throw new Error("Video URL not supported.");
c = "vimeo";
}
(d = d[6]),
(this._videos[g] = { type: c, id: d, width: e, height: f }),
b.attr("data-video", g),
this.thumbnail(a, this._videos[g]);
}),
(d.prototype.thumbnail = function (b, c) {
var d,
e,
f,
g =
c.width && c.height
? 'style="width:' + c.width + "px;height:" + c.height + 'px;"'
: "",
h = b.find("img"),
i = "src",
j = "",
k = this._core.settings,
l = function (a) {
(e = '
'),
(d = k.lazyLoad
? '
'
: '
'),
b.after(d),
b.after(e);
};
return (
b.wrap('
"),
this._core.settings.lazyLoad && ((i = "data-src"), (j = "owl-lazy")),
h.length
? (l(h.attr(i)), h.remove(), !1)
: void ("youtube" === c.type
? ((f = "http://img.youtube.com/vi/" + c.id + "/hqdefault.jpg"),
l(f))
: "vimeo" === c.type &&
a.ajax({
type: "GET",
url: "http://vimeo.com/api/v2/video/" + c.id + ".json",
jsonp: "callback",
dataType: "jsonp",
success: function (a) {
(f = a[0].thumbnail_large), l(f);
},
}))
);
}),
(d.prototype.stop = function () {
this._core.trigger("stop", null, "video"),
this._playing.find(".owl-video-frame").remove(),
this._playing.removeClass("owl-video-playing"),
(this._playing = null);
}),
(d.prototype.play = function (b) {
this._core.trigger("play", null, "video"), this._playing && this.stop();
var c,
d,
e = a(b.target || b.srcElement),
f = e.closest("." + this._core.settings.itemClass),
g = this._videos[f.attr("data-video")],
h = g.width || "100%",
i = g.height || this._core.$stage.height();
"youtube" === g.type
? (c =
'
VIDEO ')
: "vimeo" === g.type &&
(c =
'
'),
f.addClass("owl-video-playing"),
(this._playing = f),
(d = a(
'
' +
c +
"
"
)),
e.after(d);
}),
(d.prototype.isInFullScreen = function () {
var d =
c.fullscreenElement ||
c.mozFullScreenElement ||
c.webkitFullscreenElement;
return (
d &&
a(d).parent().hasClass("owl-video-frame") &&
(this._core.speed(0), (this._fullscreen = !0)),
d && this._fullscreen && this._playing
? !1
: this._fullscreen
? ((this._fullscreen = !1), !1)
: this._playing && this._core.state.orientation !== b.orientation
? ((this._core.state.orientation = b.orientation), !1)
: !0
);
}),
(d.prototype.destroy = function () {
var a, b;
this._core.$element.off("click.owl.video");
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
for (b in Object.getOwnPropertyNames(this))
"function" != typeof this[b] && (this[b] = null);
}),
(a.fn.owlCarousel.Constructor.Plugins.Video = d);
})(window.Zepto || window.jQuery, window, document),
(function (a, b, c, d) {
var e = function (b) {
(this.core = b),
(this.core.options = a.extend({}, e.Defaults, this.core.options)),
(this.swapping = !0),
(this.previous = d),
(this.next = d),
(this.handlers = {
"change.owl.carousel": a.proxy(function (a) {
"position" == a.property.name &&
((this.previous = this.core.current()),
(this.next = a.property.value));
}, this),
"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":
a.proxy(function (a) {
this.swapping = "translated" == a.type;
}, this),
"translate.owl.carousel": a.proxy(function () {
this.swapping &&
(this.core.options.animateOut || this.core.options.animateIn) &&
this.swap();
}, this),
}),
this.core.$element.on(this.handlers);
};
(e.Defaults = { animateOut: !1, animateIn: !1 }),
(e.prototype.swap = function () {
if (1 === this.core.settings.items && this.core.support3d) {
this.core.speed(0);
var b,
c = a.proxy(this.clear, this),
d = this.core.$stage.children().eq(this.previous),
e = this.core.$stage.children().eq(this.next),
f = this.core.settings.animateIn,
g = this.core.settings.animateOut;
this.core.current() !== this.previous &&
(g &&
((b =
this.core.coordinates(this.previous) -
this.core.coordinates(this.next)),
d
.css({ left: b + "px" })
.addClass("animated owl-animated-out")
.addClass(g)
.one(
"webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",
c
)),
f &&
e
.addClass("animated owl-animated-in")
.addClass(f)
.one(
"webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",
c
));
}
}),
(e.prototype.clear = function (b) {
a(b.target)
.css({ left: "" })
.removeClass("animated owl-animated-out owl-animated-in")
.removeClass(this.core.settings.animateIn)
.removeClass(this.core.settings.animateOut),
this.core.transitionEnd();
}),
(e.prototype.destroy = function () {
var a, b;
for (a in this.handlers) this.core.$element.off(a, this.handlers[a]);
for (b in Object.getOwnPropertyNames(this))
"function" != typeof this[b] && (this[b] = null);
}),
(a.fn.owlCarousel.Constructor.Plugins.Animate = e);
})(window.Zepto || window.jQuery, window, document),
(function (a, b, c) {
var d = function (b) {
(this.core = b),
(this.core.options = a.extend({}, d.Defaults, this.core.options)),
(this.handlers = {
"translated.owl.carousel refreshed.owl.carousel": a.proxy(
function () {
this.autoplay();
},
this
),
"play.owl.autoplay": a.proxy(function (a, b, c) {
this.play(b, c);
}, this),
"stop.owl.autoplay": a.proxy(function () {
this.stop();
}, this),
"mouseover.owl.autoplay": a.proxy(function () {
this.core.settings.autoplayHoverPause && this.pause();
}, this),
"mouseleave.owl.autoplay": a.proxy(function () {
this.core.settings.autoplayHoverPause && this.autoplay();
}, this),
}),
this.core.$element.on(this.handlers);
};
(d.Defaults = {
autoplay: !1,
autoplayTimeout: 5e3,
autoplayHoverPause: !1,
autoplaySpeed: !1,
}),
(d.prototype.autoplay = function () {
this.core.settings.autoplay && !this.core.state.videoPlay
? (b.clearInterval(this.interval),
(this.interval = b.setInterval(
a.proxy(function () {
this.play();
}, this),
this.core.settings.autoplayTimeout
)))
: b.clearInterval(this.interval);
}),
(d.prototype.play = function () {
return c.hidden === !0 ||
this.core.state.isTouch ||
this.core.state.isScrolling ||
this.core.state.isSwiping ||
this.core.state.inMotion
? void 0
: this.core.settings.autoplay === !1
? void b.clearInterval(this.interval)
: void this.core.next(this.core.settings.autoplaySpeed);
}),
(d.prototype.stop = function () {
b.clearInterval(this.interval);
}),
(d.prototype.pause = function () {
b.clearInterval(this.interval);
}),
(d.prototype.destroy = function () {
var a, c;
b.clearInterval(this.interval);
for (a in this.handlers) this.core.$element.off(a, this.handlers[a]);
for (c in Object.getOwnPropertyNames(this))
"function" != typeof this[c] && (this[c] = null);
}),
(a.fn.owlCarousel.Constructor.Plugins.autoplay = d);
})(window.Zepto || window.jQuery, window, document),
(function (a) {
"use strict";
var b = function (c) {
(this._core = c),
(this._initialized = !1),
(this._pages = []),
(this._controls = {}),
(this._templates = []),
(this.$element = this._core.$element),
(this._overrides = {
next: this._core.next,
prev: this._core.prev,
to: this._core.to,
}),
(this._handlers = {
"prepared.owl.carousel": a.proxy(function (b) {
this._core.settings.dotsData &&
this._templates.push(
a(b.content)
.find("[data-dot]")
.andSelf("[data-dot]")
.attr("data-dot")
);
}, this),
"add.owl.carousel": a.proxy(function (b) {
this._core.settings.dotsData &&
this._templates.splice(
b.position,
0,
a(b.content)
.find("[data-dot]")
.andSelf("[data-dot]")
.attr("data-dot")
);
}, this),
"remove.owl.carousel prepared.owl.carousel": a.proxy(function (a) {
this._core.settings.dotsData &&
this._templates.splice(a.position, 1);
}, this),
"change.owl.carousel": a.proxy(function (a) {
if (
"position" == a.property.name &&
!this._core.state.revert &&
!this._core.settings.loop &&
this._core.settings.navRewind
) {
var b = this._core.current(),
c = this._core.maximum(),
d = this._core.minimum();
a.data =
a.property.value > c
? b >= c
? d
: c
: a.property.value < d
? c
: a.property.value;
}
}, this),
"changed.owl.carousel": a.proxy(function (a) {
"position" == a.property.name && this.draw();
}, this),
"refreshed.owl.carousel": a.proxy(function () {
this._initialized || (this.initialize(), (this._initialized = !0)),
this._core.trigger("refresh", null, "navigation"),
this.update(),
this.draw(),
this._core.trigger("refreshed", null, "navigation");
}, this),
}),
(this._core.options = a.extend({}, b.Defaults, this._core.options)),
this.$element.on(this._handlers);
};
(b.Defaults = {
nav: !1,
navRewind: !0,
navText: ["prev", "next"],
navSpeed: !1,
navElement: "div",
navContainer: !1,
navContainerClass: "owl-nav",
navClass: ["owl-prev", "owl-next"],
slideBy: 1,
dotClass: "owl-dot",
dotsClass: "owl-dots",
dots: !0,
dotsEach: !1,
dotData: !1,
dotsSpeed: !1,
dotsContainer: !1,
controlsClass: "owl-controls",
}),
(b.prototype.initialize = function () {
var b,
c,
d = this._core.settings;
d.dotsData ||
(this._templates = [
a("
")
.addClass(d.dotClass)
.append(a("
"))
.prop("outerHTML"),
]),
(d.navContainer && d.dotsContainer) ||
(this._controls.$container = a("")
.addClass(d.controlsClass)
.appendTo(this.$element)),
(this._controls.$indicators = d.dotsContainer
? a(d.dotsContainer)
: a("
")
.hide()
.addClass(d.dotsClass)
.appendTo(this._controls.$container)),
this._controls.$indicators.on(
"click",
"div",
a.proxy(function (b) {
var c = a(b.target).parent().is(this._controls.$indicators)
? a(b.target).index()
: a(b.target).parent().index();
b.preventDefault(), this.to(c, d.dotsSpeed);
}, this)
),
(b = d.navContainer
? a(d.navContainer)
: a("
")
.addClass(d.navContainerClass)
.prependTo(this._controls.$container)),
(this._controls.$next = a("<" + d.navElement + ">")),
(this._controls.$previous = this._controls.$next.clone()),
this._controls.$previous
.addClass(d.navClass[0])
.html(d.navText[0])
.hide()
.prependTo(b)
.on(
"click",
a.proxy(function () {
this.prev(d.navSpeed);
}, this)
),
this._controls.$next
.addClass(d.navClass[1])
.html(d.navText[1])
.hide()
.appendTo(b)
.on(
"click",
a.proxy(function () {
this.next(d.navSpeed);
}, this)
);
for (c in this._overrides) this._core[c] = a.proxy(this[c], this);
}),
(b.prototype.destroy = function () {
var a, b, c, d;
for (a in this._handlers) this.$element.off(a, this._handlers[a]);
for (b in this._controls) this._controls[b].remove();
for (d in this.overides) this._core[d] = this._overrides[d];
for (c in Object.getOwnPropertyNames(this))
"function" != typeof this[c] && (this[c] = null);
}),
(b.prototype.update = function () {
var a,
b,
c,
d = this._core.settings,
e = this._core.clones().length / 2,
f = e + this._core.items().length,
g = d.center || d.autoWidth || d.dotData ? 1 : d.dotsEach || d.items;
if (
("page" !== d.slideBy && (d.slideBy = Math.min(d.slideBy, d.items)),
d.dots || "page" == d.slideBy)
)
for (this._pages = [], a = e, b = 0, c = 0; f > a; a++)
(b >= g || 0 === b) &&
(this._pages.push({ start: a - e, end: a - e + g - 1 }),
(b = 0),
++c),
(b += this._core.mergers(this._core.relative(a)));
}),
(b.prototype.draw = function () {
var b,
c,
d = "",
e = this._core.settings,
f =
(this._core.$stage.children(),
this._core.relative(this._core.current()));
if (
(!e.nav ||
e.loop ||
e.navRewind ||
(this._controls.$previous.toggleClass("disabled", 0 >= f),
this._controls.$next.toggleClass(
"disabled",
f >= this._core.maximum()
)),
this._controls.$previous.toggle(e.nav),
this._controls.$next.toggle(e.nav),
e.dots)
) {
if (
((b =
this._pages.length -
this._controls.$indicators.children().length),
e.dotData && 0 !== b)
) {
for (c = 0; c < this._controls.$indicators.children().length; c++)
d += this._templates[this._core.relative(c)];
this._controls.$indicators.html(d);
} else
b > 0
? ((d = new Array(b + 1).join(this._templates[0])),
this._controls.$indicators.append(d))
: 0 > b &&
this._controls.$indicators.children().slice(b).remove();
this._controls.$indicators.find(".active").removeClass("active"),
this._controls.$indicators
.children()
.eq(a.inArray(this.current(), this._pages))
.addClass("active");
}
this._controls.$indicators.toggle(e.dots);
}),
(b.prototype.onTrigger = function (b) {
var c = this._core.settings;
b.page = {
index: a.inArray(this.current(), this._pages),
count: this._pages.length,
size:
c &&
(c.center || c.autoWidth || c.dotData ? 1 : c.dotsEach || c.items),
};
}),
(b.prototype.current = function () {
var b = this._core.relative(this._core.current());
return a
.grep(this._pages, function (a) {
return a.start <= b && a.end >= b;
})
.pop();
}),
(b.prototype.getPosition = function (b) {
var c,
d,
e = this._core.settings;
return (
"page" == e.slideBy
? ((c = a.inArray(this.current(), this._pages)),
(d = this._pages.length),
b ? ++c : --c,
(c = this._pages[((c % d) + d) % d].start))
: ((c = this._core.relative(this._core.current())),
(d = this._core.items().length),
b ? (c += e.slideBy) : (c -= e.slideBy)),
c
);
}),
(b.prototype.next = function (b) {
a.proxy(this._overrides.to, this._core)(this.getPosition(!0), b);
}),
(b.prototype.prev = function (b) {
a.proxy(this._overrides.to, this._core)(this.getPosition(!1), b);
}),
(b.prototype.to = function (b, c, d) {
var e;
d
? a.proxy(this._overrides.to, this._core)(b, c)
: ((e = this._pages.length),
a.proxy(this._overrides.to, this._core)(
this._pages[((b % e) + e) % e].start,
c
));
}),
(a.fn.owlCarousel.Constructor.Plugins.Navigation = b);
})(window.Zepto || window.jQuery, window, document),
(function (a, b) {
"use strict";
var c = function (d) {
(this._core = d),
(this._hashes = {}),
(this.$element = this._core.$element),
(this._handlers = {
"initialized.owl.carousel": a.proxy(function () {
"URLHash" == this._core.settings.startPosition &&
a(b).trigger("hashchange.owl.navigation");
}, this),
"prepared.owl.carousel": a.proxy(function (b) {
var c = a(b.content)
.find("[data-hash]")
.andSelf("[data-hash]")
.attr("data-hash");
this._hashes[c] = b.content;
}, this),
}),
(this._core.options = a.extend({}, c.Defaults, this._core.options)),
this.$element.on(this._handlers),
a(b).on(
"hashchange.owl.navigation",
a.proxy(function () {
var a = b.location.hash.substring(1),
c = this._core.$stage.children(),
d = (this._hashes[a] && c.index(this._hashes[a])) || 0;
return a ? void this._core.to(d, !1, !0) : !1;
}, this)
);
};
(c.Defaults = { URLhashListener: !1 }),
(c.prototype.destroy = function () {
var c, d;
a(b).off("hashchange.owl.navigation");
for (c in this._handlers) this._core.$element.off(c, this._handlers[c]);
for (d in Object.getOwnPropertyNames(this))
"function" != typeof this[d] && (this[d] = null);
}),
(a.fn.owlCarousel.Constructor.Plugins.Hash = c);
})(window.Zepto || window.jQuery, window, document);
!(function (a) {
a(document).ready(function () {
if (a(".showcase-home .showcasemob-owl").length) {
a(".showcase-home .showcasemob-owl").owlCarousel({
items: 2,
loop: !0,
margin: 15,
nav: !0,
lazyLoad: !0,
navText: [
'
',
'
',
],
dots: !0,
mouseDrag: !1,
});
}
// BRANDS CAROUSEL
if (a(".showcase-brand .showcase-owl").length) {
a(".showcase-brand .showcase-owl").owlCarousel({
items: 6,
loop: !0,
margin: 15,
nav: !0,
lazyLoad: !0,
navText: [
'
',
'
',
],
dots: 0,
mouseDrag: 1,
stopOnHover: 1,
autoplay: 1,
responsive: {
0: {
items: 1,
},
480: {
items: 3,
},
768: {
items: 6,
},
},
});
}
// BRANDS CAROUSEL END //
if (a(".page-home").length) {
a(window).on("load resize", function () {
owl1 = a("#ef-search-categories .row");
owl2 = a("#ef-banner-ruler");
if (a(window).width() <= 768) {
if (!owl1.hasClass("owl-carousel")) {
a(owl1).owlCarousel({
autoplay: true,
dots: false,
items: 1,
lazyLoad: true,
loop: true,
margin: 15,
nav: true,
navText: [
'
',
'
',
],
stopOnHover: true,
});
}
if (!owl2.hasClass("owl-carousel")) {
a(owl2).owlCarousel({
autoplay: true,
dots: false,
items: 1,
lazyLoad: true,
loop: true,
margin: 15,
nav: true,
navText: [
'
',
'
',
],
stopOnHover: true,
});
}
} else {
if (owl1.hasClass("owl-carousel")) {
owl1.trigger("destroy.owl.carousel");
}
if (owl2.hasClass("owl-carousel")) {
owl2.trigger("destroy.owl.carousel");
}
}
});
}
if (a("#owl-slider").length) {
a("#owl-slider").owlCarousel({
items: 1,
loop: true,
lazyLoad: true,
lazyContent: true,
nav: true,
navText: [
'
',
'
',
],
dots: true,
autoplay: true,
});
}
a(".btn-more-less").on("click", function () {
var $this = a(this);
var type = $this.attr("data-type");
var $parent = $this.parents("#quantidade");
var $input = $parent.find("#quant");
var value = parseInt($input.val());
var stock =
$input.attr("data-stock") === undefined ||
$input.attr("data-stock") === null
? 1
: $input.attr("data-stock");
if (type === "less" && value > 1) {
$input.val(--value);
if ($input.val() <= stock) {
jQuery("#span_erro_quant").fadeOut();
jQuery("#button-buy").attr("disabled", false).css("opacity", "1");
}
} else if (type === "more" && value < stock) {
$input.val(++value);
}
return false;
});
//adicionar checkbox pg cadastro e contato
if (a("html").hasClass("page-register")) {
//pagina cadastro
var inputmail = a("input#email").parent("label");
if (inputmail.length) {
inputmail.hide();
}
if (a("#checkboxes").length == 0) {
a("#senha_cliente").parents("p").after(
'\
'
);
a(".botao-prosseguir-cadastro")
.attr("disabled", true)
.css("opacity", ".5");
}
a(".new-check input").on("change", function () {
if (a("#privacidade input").is(":checked")) {
a(".botao-prosseguir-cadastro")
.attr("disabled", false)
.css("opacity", "1");
} else {
a(".botao-prosseguir-cadastro")
.attr("disabled", true)
.css("opacity", ".5");
}
});
var form = a("#frm2");
//newPrivacyApi(form);
}
if (a("html").hasClass("page-contact")) {
//pagina contato
if (a("#checkboxes").length == 0) {
a("form > label").last().after(
'\
'
);
a("#imagem").css({ opacity: ".5", "pointer-events": "none" });
}
if (a("#nome_contato").length) {
a(".cpf_added").remove();
a("#nome_contato").parents("label").after(`
*CPF:
Por favor, informe o seu CPF.
`);
}
a("#cpf_contato").on("keyup", function () {
if (
a(".new-check input:checked").length == a(".new-check").length &&
a("#cpf_contato").val().length === 14
) {
a("#imagem").css({ opacity: "1", "pointer-events": "all" });
} else {
a("#imagem").css({ opacity: ".5", "pointer-events": "none" });
}
});
a(".new-check input").on("change", function () {
if (
a(".new-check input:checked").length == a(".new-check").length &&
a("#cpf_contato").val().length === 14
) {
a("#imagem").css({ opacity: "1", "pointer-events": "all" });
} else {
a("#imagem").css({ opacity: ".5", "pointer-events": "none" });
}
});
var form = a("#form1");
//privacyAPI(form);
}
function newPrivacyApi(form) {
form.submit((e) => {
e.preventDefault();
var isLegalPerson = a("#PessoaFisica").hasClass("aberta")
? false
: a("#PessoaJuridica").hasClass("aberta")
? true
: undefined,
doctoClient =
isLegalPerson && a("#pj_cpf_cliente").val()
? a("#pj_cpf_cliente").val()
: !isLegalPerson && a("#pf_cpf_cliente").val()
? a("#pf_cpf_cliente").val()
: undefined,
name =
isLegalPerson && a("#pj_nome_cliente").val()
? a("#pj_nome_cliente").val()
: !isLegalPerson && a("#pf_nome_cliente").val()
? a("#pf_nome_cliente").val()
: undefined,
marketingOptInFlag = a("#aceite input").is(":checked")
? "false"
: "true",
privacyPolicy = a("#privacidade input").is(":checked")
? "true"
: "false";
var payload = {
bcpId: "",
channel: "Renova",
consents: [
{
consent: "marketingOptInFlag",
consentValue: marketingOptInFlag,
},
{
consent: "privacy.privacyPolicy",
consentValue: privacyPolicy,
},
],
doctoClient,
domain: "https://loja.renovaecopecas.com.br/",
environmentType: "Site",
managementArea: "Bank",
name,
nameArea: "portal cliente",
product: "86",
productName: "Renova",
vertical: "Bank",
};
if (
!a(".mensagensErro").is(":visible") &&
![name, doctoClient, isLegalPerson].includes(undefined)
) {
a.ajax({
url: "https://portoapi.portoseguro.com.br/api-gateway/oauth/v2/access-token",
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Authorization:
"Basic ODhhNWJlMzAtMGExYS00YjExLTg3NzYtMGU5NjE5MzdhMTBmOmM0YjA4MzI2LTVlMzUtNGJmZC1iMTBhLTE5MDUyMWI0OTNlNg==",
},
data: { grant_type: "client_credentials" },
success: function ({ access_token }) {
a.ajax({
url: "https://portoapi.portoseguro.com.br/auditoria/rastreabilidade-cdc/v1/consentimentos",
method: "POST",
headers: {
Authorization: "Bearer " + access_token,
"Content-Type": "application/json",
},
data: JSON.stringify(payload),
success: function (resp) {
form.unbind("submit").submit();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.error(
"[Status]: " + textStatus,
"[Error]: " + errorThrown
);
},
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.error(
"[Status]: " + textStatus,
"[Error]: " + errorThrown
);
},
});
}
});
}
function privacyAPI(form) {
form.submit(function (ev) {
ev.preventDefault();
var contato_cpf = a("#cpf_contato").val(),
contato_name = a("#nome_contato").val(),
cadastro_cpf = a("#fisica").is(":visible")
? a("#pf_cpf_cliente").val()
: a("#pj_cpf_cliente").val(),
cadastro_name = a("#fisica").is(":visible")
? a("#pf_nome_cliente").val()
: a("#pj_nome_cliente").val(),
cpf = (contato_cpf ? contato_cpf : cadastro_cpf).replace(
/[.\-]/g,
""
),
name = contato_name ? contato_name : cadastro_name;
if (!$(".mensagensErro").is(":visible")) {
a.ajax({
url: "https://api.portoseguro.com.br/auth/oauth/v2/token",
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
idp: "6",
},
data: {
client_id: "cd5a66e2-0231-4ddd-8432-6cfc2bd062c3",
client_secret: "e88b9cec-ae5b-4197-90f7-59163bd6817f",
username: "slplgpdm",
password: "pcrzsr05",
grant_type: "password",
},
success: function (response) {
a.ajax({
url: "https://api.portoseguro.com.br/rh/v1/account/info-bcp-cpf",
method: "PUT",
headers: {
Authorization: "Bearer " + response.access_token,
"Content-Type": "application/json",
},
data: JSON.stringify({
cpf: cpf,
name: name,
preferences: [
{
prefId: "privacy.privacyPolicy",
value: "true",
},
{
prefId: "marketingOptInFlag",
value: "true",
},
],
}),
success: function (response) {
form.unbind("submit").submit();
},
});
},
});
}
});
}
});
let elementoRemovido = false;
document.querySelectorAll("#ProdAbas .clearfix li").forEach((e) => {
e.addEventListener("click", function () {
if (!elementoRemovido) {
const conteudo = document.querySelector("#AbaPersonalizadaConteudo11");
if (conteudo) {
conteudo.remove();
elementoRemovido = true;
}
}
if (
this.id === "AbaPersonalizadaLink11" &&
this.classList.contains("aberta")
) {
const conteudo = document.querySelector("#AbaPersonalizadaConteudo11");
if (conteudo) {
conteudo.classList.add("open");
}
} else {
const conteudo = document.querySelector("#AbaPersonalizadaConteudo11");
if (conteudo) {
conteudo.classList.remove("open");
}
}
});
});
function adicionarSvg() {
document
.querySelectorAll("#AbaPersonalizadaConteudo11 .aba_personalizada p")
.forEach((p) => {
const div = document.createElement("div");
div.classList.add("wrapper");
const svg = `
`;
p.parentNode.insertBefore(div, p);
div.appendChild(p);
div.insertAdjacentHTML("beforeend", svg);
div.addEventListener("click", function () {
const ul = this.nextElementSibling;
if (ul && ul.tagName === "UL") {
const svgElement = this.querySelector("svg");
if (svgElement) {
svgElement.classList.toggle("open");
}
ul.classList.toggle("visible");
}
});
});
}
adicionarSvg();
document.querySelectorAll(".aba_personalizada p").forEach((p) => {
p.removeEventListener("click", null);
});
function checkCookie(name) {
const cookies = document.cookie.split(";");
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
if (cookie.startsWith(name + "=")) {
return true;
}
}
return false;
}
const popup = document.querySelector(".popup-overlay");
if (!checkCookie("popupWarning") && popup) {
popup.classList.add("visible");
}
document.querySelectorAll(".close-overlay").forEach((e) => {
e.addEventListener("click", function () {
document.querySelector(".popup-overlay").classList.remove("visible");
function setCookie(name, value, days) {
const date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
const expires = "expires=" + date.toUTCString();
document.cookie = `${name}=${value}; ${expires}; path=/`;
}
setCookie("popupWarning", "off", 1);
});
});
async function data_layer_genereta() {
const waitForDataLayer = async (timeout = 5000, interval = 100) => {
const startTime = Date.now();
while (Date.now() - startTime < timeout) {
if (window.dataLayer) {
return window.dataLayer || [];
}
await new Promise((resolve) => setTimeout(resolve, interval));
}
throw new Error("dataLayer não foi encontrado");
};
const Page = {
sitePage: document.documentElement,
pageTypes: new Map([
["page-home", "Home"],
["page-catalog", "Category"],
["page-search", "search"],
["page-product", "Product"],
["page-newsletter", "Newsletter"],
]),
Version: () => Page.sitePage.dataset.store,
Logged: () =>
!document
.querySelector(".link-logout")
?.classList.contains("tray-hide"),
Type: () => {
try {
if (Page.pageTypes instanceof Map) {
for (const [className, pageType] of Page.pageTypes) {
if (Page.sitePage.classList.contains(className)) return pageType;
}
}
} catch (error) {
console.error(error.message);
}
return null;
},
};
const Search = {
quantity:
Number(
document
.querySelector(".search-counter")
?.textContent.match(/Encontramos (\d+) produto/)?.[1]
) || 0,
Storage: () => {
const formSearch = document.querySelector(".search");
formSearch?.addEventListener("submit", (e) => {
const valueSearch = document.querySelector(".search-key");
localStorage.clear();
if (valueSearch.value)
localStorage.setItem("searchValue", valueSearch.value);
});
},
Parameter: () => localStorage.getItem("searchValue") || "",
};
Search.Storage();
const Product = {
id: document.getElementById("product-container")?.dataset.id || 0,
name: document.querySelector(".product-name")?.textContent || "",
category: dataLayer[0].category || "",
brand: document.getElementById("product-container")?.dataset.brand,
price: parseFloat(
document
.querySelector(".product-main-price > b")
?.textContent.replace("R$", "")
.replace(",", ".") || 0
),
quantity: document.getElementById("quant")?.value || 0,
shipping:
document.getElementById("form_comprar")?.dataset.shipping || false,
};
const ListProduct = {
id: document.querySelector(".product-item")?.dataset.id || "",
name: document.querySelector(".product-name > h2 > b").textContent || "",
category: document.querySelector(".product-item")?.dataset.category,
// brand: document.querySelector('#product-container')?.dataset.brand,
price: parseFloat(
document
.querySelector(".price > strong")
?.textContent.replace("R$", "")
.replace(",", ".") || 0
),
quantity: 1,
};
function slugify(str) {
return str
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "")
.toLowerCase()
.replace(/[^a-z0-9\s-]/g, "")
.trim()
.replace(/\s+/g, "-")
.replace(/-+/g, "-")
.replace(/^-+|-+$/g, "");
}
const ClickContent = () => {
if (Array.isArray(dataLayer)) {
const lastEvent = dataLayer[dataLayer.length - 1];
if (!lastEvent) return "element";
const {
"gtm.elementText": elementText,
"gtm.elementClasses": elementClasses,
"gtm.elementUrl": elementUrl,
} = lastEvent;
if (elementText) return slugify(elementText);
if (elementUrl && elementUrl.includes("banner")) return "banner";
if (elementUrl && elementUrl.includes("whatsapp")) return "whatsapp";
const classesMap = new Map([
["banner-home--link", "banner"],
["account", "account"],
["logotipo_loja", "Logo"],
]);
return classesMap.get(elementClasses) ?? elementClasses ?? "element";
}
};
const addClickEvent = (selector, eventData) => {
document.querySelector(selector)?.addEventListener("click", () => {
window.dataLayer?.push(eventData);
});
};
try {
let dataLayer = await waitForDataLayer();
if (!dataLayer) {
window.dataLayer = [];
dataLayer = window.dataLayer;
}
var customData = {
page: { name: Page.Type() },
site: {
version: Page.Version(),
brand: "porto",
vertical: 1,
},
user: {
id: "",
bc: "",
logged: Page.Logged(),
product: "",
},
};
window.customData = customData;
const originalPush = dataLayer.push;
dataLayer.push = function (...args) {
originalPush.apply(dataLayer, args);
args.forEach((event) => {
if (event.event === "gtm.linkClick") {
dataLayer.push({
event: "select_content",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: `click:link:${ClickContent()}`,
ev_label: "",
});
}
});
};
const boardElement = document.querySelector("section > .board");
if (
Page.Type() == "Newsletter" &&
boardElement?.innerText.includes("Obrigado por cadastrar ")
) {
dataLayer.push({
event: "select_content",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: "inscricao:news-letter:sucesso",
ev_label: "",
});
}
if (Page.Type() == "search") {
dataLayer.push({
event: "search",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: "busca-interna",
ev_label: Search.quantity,
search_term: Search.Parameter(),
});
}
if (Page.Type() === "Product") {
let processandoFrete = false;
// INTERCEPTA a requisição da plataforma e salva as linhas
jQuery(document).ajaxComplete(function (event, xhr, settings) {
if (settings.url.includes("/mvc/store/product/shipping/")) {
const html = xhr.responseText;
const $html = jQuery("
").html(html);
const $linhas = $html
.find("table.tablePage tbody tr")
.not(":has(th)")
.slice(1);
jQuery("body").data("linhasFreteInterceptadas", $linhas);
// Impede inserção automática
jQuery(".shipping-result").html("
");
}
});
jQuery(".botao-simular-frete").on("click", function () {
if (processandoFrete) {
return;
}
processandoFrete = true;
jQuery(".botao-simular-frete").attr("style", "pointer-events: none;");
jQuery(".shipping-result").attr("style", "display: none !important;");
setTimeout(async function () {
try {
const cep1 = jQuery("#cep1").val();
const cep2 = jQuery("#cep2").val();
const shipping = jQuery(".shipping-result > div");
const firstWord = shipping
.text()
.trim()
.split(" ")[0]
.toLowerCase();
if (firstWord === "nao") {
dataLayer.push({
event: "Alert",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: "calcular-frete:erro",
ev_label: "",
});
jQuery(".shipping-result").show();
processandoFrete = false;
return;
}
dataLayer.push({
event: "select_content",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: "calcular-frete:sucesso",
ev_label: "",
});
const values = {
freeshipping_value: jQuery(
'input[name="freeshipping_value"]'
).val(),
freeshipping_text: jQuery(
'input[name="freeshipping_text"]'
).val(),
freeshipping_description: jQuery(
'input[name="freeshipping_description"]'
).val(),
freeshipping_price: jQuery(
'input[name="freeshipping_price"]'
).val(),
freeshipping_category: jQuery(
'input[name="freeshipping_category"]'
).val(),
freeshipping_states: jQuery(
'input[name="freeshipping_states"]'
).val(),
};
const $linhas =
jQuery("body").data("linhasFreteInterceptadas") || jQuery();
const opcoes = [];
$linhas.each(function () {
const $linha = jQuery(this);
let textoOriginal = $linha.text().toLowerCase();
let texto = "";
if (textoOriginal.includes("retirada")) {
texto = textoOriginal;
} else if (textoOriginal.includes("prazo")) {
texto = textoOriginal.split("dia")[0].split("prazo")[1];
} else {
texto = textoOriginal;
}
const numeros = texto.match(/\d+/g);
const dias = numeros
? Math.min(...numeros.map(Number))
: Infinity;
opcoes.push({ $tr: $linha, dias, texto });
});
let freteGratis = opcoes.find((o) => o.texto.includes("grátis"));
const retirarNaLoja = opcoes.find((o) =>
o.texto.includes("retirar na loja")
);
const restantes = opcoes.filter(
(o) => o !== freteGratis && o !== retirarNaLoja
);
let condicionalGratuito = null;
if (
values.freeshipping_value &&
values.freeshipping_price &&
!freteGratis &&
jQuery(".frete-gratis-condicional").length === 0
) {
const productPrice = Number(values.freeshipping_price);
const minFree = Number(values.freeshipping_value);
const blocked = values.freeshipping_category
.split(";")
.map((v) => v.trim());
const productCats = jQuery('input[name="product_category[]"]')
.map(function () {
return jQuery(this).val();
})
.get();
const hasBlocked = productCats.some((cat) =>
blocked.includes(cat)
);
try {
const response = await fetch(
`https://viacep.com.br/ws/${cep1 + cep2}/json/`
);
const data = await response.json();
const uf = data.uf || "";
const allowedStates = values.freeshipping_states
.split(";")
.map((s) => s.trim().toUpperCase());
const stateAllowed = allowedStates.includes(uf.toUpperCase());
if (minFree <= productPrice && stateAllowed && !hasBlocked) {
const $linhaGratis = jQuery(`
${values.freeshipping_text}
Grátis
${values.freeshipping_description}
`);
$linhaGratis.find("td").css("font-size", "12px");
$linhaGratis.find("img").css({
"max-height": "26px",
"max-width": "68px",
height: "auto",
width: "auto",
});
condicionalGratuito = {
$tr: $linhaGratis,
dias: 0,
texto: "frete grátis",
};
freteGratis = condicionalGratuito;
}
} catch (e) {
console.error("â Erro ao buscar UF via CEP:", e);
}
}
const ordenados = restantes.sort((a, b) => a.dias - b.dias);
const novaOrdem = [];
if (freteGratis) {
novaOrdem.push(freteGratis);
} else if (ordenados.length > 0) {
novaOrdem.push(ordenados.shift());
}
if (retirarNaLoja) {
novaOrdem.push(retirarNaLoja);
}
novaOrdem.push(...ordenados);
const $novoTbody = jQuery("
");
$novoTbody.append(`
Forma de Envio:
Valor:
Prazo de Entrega e Observações:
`);
const qtdExibir = retirarNaLoja ? 2 : 1;
novaOrdem.forEach((opcao, index) => {
if (index < qtdExibir) {
opcao.$tr.show();
} else {
opcao.$tr.hide();
}
$novoTbody.append(opcao.$tr);
});
$novoTbody.find("td").each(function () {
if (jQuery(this).text().includes("do Pagamento")) {
jQuery(this).html(
`O pedido ficará disponível para retirada em até 48h após a confirmação de pagamento.`
);
}
});
jQuery(".ver-mais-fretes").remove();
const $verMaisDiv = jQuery("")
.addClass("ver-mais-fretes")
.css({
"text-align": "center",
cursor: "pointer",
padding: "10px",
color: "#666",
"font-weight": "normal",
"font-size": "16px",
"text-decoration": "underline",
})
.html("Ver mais opções de frete")
.on("click", function () {
$novoTbody.find("tr").not(":has(th)").show();
jQuery(this).remove();
});
const $novaTabela = jQuery("
").append($novoTbody);
const $novaDiv = jQuery("").append($novaTabela);
jQuery(".shipping-result")
.html("")
.append('
x ')
.append($novaDiv)
.append($verMaisDiv)
} finally {
setTimeout(() => {
jQuery(".botao-simular-frete").attr(
"style",
"pointer-events: auto;"
);
processandoFrete = false;
}, 3000);
}
}, 1500);
});
// Botão de fechar
jQuery(document).on("click", ".btn-close", function (e) {
e.preventDefault();
e.stopPropagation();
jQuery(".shipping-result").empty().append("
");
});
}
if (Page.Type() == "Home") {
document.querySelectorAll(".product-item__container").forEach((e) => {
e.addEventListener("click", () => {
dataLayer.push({
event: "view_item_list",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: "eccomerce:visualizar:lista-produtos:sucesso",
shipping_tier: "",
shipping: "",
value: ListProduct.price,
currency: "BRL",
items: {
item_id: ListProduct.id,
item_name: ListProduct.name,
item_category: ListProduct.category,
item_brand: ListProduct.brand,
price: ListProduct.price,
item_item_variant: "",
quantity: ListProduct.quantity,
},
});
});
});
}
if (Page.Type() == "Product") {
addClickEvent("#button-buy", {
event: "add_to_cart",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: "eccomerce:add:carrinho:sucesso",
ev_label: "Produto adicionado ao carrinho",
value: Product.price,
currency: "BRL",
items: {
item_id: Product.id,
item_name: Product.name,
item_category: Product.category,
item_brand: Product.brand,
price: Product.price,
item_item_variant: "",
quantity: Product.quantity,
},
});
dataLayer.push({
event: "view_item",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
ev_action: "eccomerce:visualizar:produto",
value: Product.price,
currency: "BRL",
items: {
item_id: Product.id,
item_name: Product.name,
item_category: Product.category,
item_brand: Product.brand,
price: Product.price,
item_item_variant: "",
quantity: Product.quantity,
},
});
}
} catch (error) {
console.error(error.message);
window.dataLayer?.push({
event: "Alert",
ev_category: `renova-ecopecas:porto:${Page.Type()}`,
alert_code: error.code,
env_label: error.message,
});
}
}
data_layer_genereta();
function pricePixDiscount() {
priceTxtReplace();
pricePixDiscountSpots();
pricePixDiscountProductPage();
}
function priceTxtReplace() {
const txts = document.querySelectorAll(".txt-forma-pagamento");
if (!txts || txts.length == 0) return null;
txts.forEach((txt) => {
if (txt.innerHTML.toLowerCase().includes("cart")) {
txt.innerHTML = "no cartão";
}
txt.classList.add("active");
});
}
function cleanPrice(price) {
return price.replace("R$", "").trim().split(",")[0].replace(/\./g, "");
}
function returnPayment(container, type) {
const payclass = type == "spot" ? ".payment" : "#info_preco";
const paymentTxts = [...container.querySelectorAll(".txt-forma-pagamento")];
const pixIndex = paymentTxts.findIndex((txt) =>
txt.textContent.toLowerCase().includes("pix")
);
if (pixIndex == null || pixIndex == undefined || pixIndex == -1)
return null;
const paymentA = container.querySelector(
`${payclass} .precoAvista span span`
);
const paymentB = container.querySelector(
`${payclass} .txt-cadaparcela .preco-parc${pixIndex + 1} span span`
);
const payment = paymentA ?? paymentB;
if (!payment) return null;
const paymentClone = payment.cloneNode(true);
paymentClone.querySelector("span").remove();
const paymentClass = paymentA
? ".precoAvista"
: `.preco-parc${pixIndex + 1}`;
return [paymentClone, paymentClass];
}
function removePayment(container, paymentClass) {
if (paymentClass == ".precoAvista") {
container.querySelector(".precoAvista").remove();
container.querySelector(".txt-avista").remove();
container.querySelector(".txt-com-desconto").remove();
container.querySelector(".txt-forma-pagamento").remove();
return null;
}
const payClass = container.querySelector(paymentClass);
const priceOf = payClass.nextElementSibling;
const txtParc = priceOf.nextElementSibling;
const operator = txtParc.nextElementSibling;
const txtPay = operator.nextElementSibling;
payClass && payClass.remove();
priceOf.classList.contains("preco-de") && priceOf.remove();
txtParc.classList.contains("txt-cadaparcela") && txtParc.remove();
operator.classList.contains("operadora") && operator.remove();
txtPay.classList.contains("txt-forma-pagamento") && txtPay.remove();
}
function pricePixDiscountSpots() {
const spots = document.querySelectorAll(".product-item");
if (spots.length == 0) return null;
spots.forEach((spot) => {
const price = cleanPrice(spot.querySelector(".price strong").innerHTML);
const paymentInfo = returnPayment(spot, "spot");
if (!paymentInfo) return null;
const payment = paymentInfo[0];
if (!payment) return null;
const pix = payment.innerHTML.replace(/\./g, "");
if (price == pix) return removePayment(spot, paymentInfo[1]);
});
}
function pricePixDiscountProductPage() {
const page = document.querySelector("#product-container");
if (!page) return null;
const price = cleanPrice(page.querySelector("#variacaoPreco").innerHTML);
const paymentInfo = returnPayment(page, "page");
if (!paymentInfo) return null;
const payment = paymentInfo[0];
if (!payment) return null;
const pix = payment.innerHTML.replace(/\./g, "");
if (price == pix) return removePayment(page, paymentInfo[1]);
}
pricePixDiscount();
function reloadMinicart() {
const menu = document.querySelector(".trigger-cart");
const menuMobile = document.querySelector(".mini-cart.mobile");
menuMobile.innerHTML = menu.innerHTML;
const itensMobile = menuMobile.querySelectorAll("ul li button");
if (itensMobile.length > 0) {
itensMobile.forEach((item) => {
item.addEventListener("click", () => {
const interval = setInterval(() => {
let itens = menu.querySelectorAll("ul li button");
if (itens.length != itensMobile.length) {
reloadMinicart();
clearInterval(interval);
}
}, 200);
});
});
}
}
function menuToggle() {
const menuMobile = document.querySelector(".mini-cart.mobile");
reloadMinicart();
if (menuMobile.classList.contains("open")) {
menuMobile.classList.remove("open");
} else {
menuMobile.classList.add("open");
}
}
function startMenu() {
if (window.matchMedia("(max-width: 991px)").matches) {
const btns = document.querySelectorAll(".links .link-cart");
btns[1].addEventListener("click", menuToggle);
}
}
window.addEventListener("DOMContentLoaded", startMenu);
if (jQuery(".page-product").length) {
const $cep1 = jQuery("#cep1");
const $cep2 = jQuery("#cep2");
function handlePaste(e) {
e.preventDefault();
const pastedData = (
e.originalEvent.clipboardData || window.clipboardData
).getData("text");
const digits = pastedData.replace(/\D/g, "");
const firstPart = digits.substring(0, 5);
const secondPart = digits.substring(5, 8);
$cep1.val(firstPart);
$cep2.val(secondPart);
}
$cep1.on("paste", handlePaste);
$cep2.on("paste", handlePaste);
}
document.querySelectorAll("a").forEach((link) => {
const text = link.textContent.trim();
const img = link.querySelector("img");
if (!text) {
if (img && img.alt) {
link.setAttribute("aria-label", img.alt);
} else {
link.setAttribute("aria-label", "Link");
}
}
});
function cepPageProduct(){
if (jQuery(".page-product").length) {
function cepInput() {
const cepBox = document.querySelector("#cepbox");
if (!cepBox) return;
const cep1 = document.querySelector("#cep1");
const cep2 = document.querySelector("#cep2");
const inputCepUnico = document.createElement("input");
inputCepUnico.setAttribute("type", "tel");
inputCepUnico.setAttribute("id", "cep");
inputCepUnico.setAttribute("name", "cep");
inputCepUnico.setAttribute("maxlength", "9");
inputCepUnico.setAttribute("placeholder", "Digite seu CEP");
inputCepUnico.setAttribute("class", "text");
inputCepUnico.setAttribute("autocomplete", "postal-code");
inputCepUnico.setAttribute(
"oninput",
"this.value = this.value.replace(/[^0-9]/g, '').replace(/(\\d{5})(\\d)/, '$1-$2');"
);
cep1.style.display = "none";
cep2.style.display = "none";
cep1.setAttribute("type", "hidden");
cep2.setAttribute("type", "hidden");
cep1.removeAttribute("id");
cep2.removeAttribute("id");
cepBox.insertBefore(inputCepUnico, cep1);
inputCepUnico.addEventListener("input", function () {
const valor = this.value.replace(/\D/g, "");
if (valor.length >= 5) {
cep1.value = valor.substring(0, 5);
cep2.value = valor.substring(5, 8);
} else {
cep1.value = "";
cep2.value = "";
}
});
const btnFrete = document.querySelector("#shippingSimulatorButton");
if (btnFrete) {
btnFrete.addEventListener("click", function () {
const valor = inputCepUnico.value.replace(/\D/g, "");
cep1.value = valor.substring(0, 5);
cep2.value = valor.substring(5, 8);
});
}
}
cepInput();
function cepTaxReq() {
jQuery("#modal").css({ top: "-99999999px" });
jQuery(".botao-simular-frete, #shippingSimulatorButton").click(
function () {
jQuery(".shipping-result > div").empty();
jQuery(".shipping-result").css("display", "none");
jQuery("#loader-ajax-frete").fadeIn();
jQuery(".price-total").remove();
jQuery(".cep-notexist").remove();
const $this = jQuery(this);
let url = $this.attr("data-url");
const variant = jQuery("#selectedVariant").length
? jQuery("#selectedVariant").val()
: 0;
const cep = jQuery("#cep").val();
const quant = jQuery("#quant").val();
if (!cep || cep.length < 5) {
jQuery("#loader-ajax-frete").fadeOut();
return false;
}
const cepToNumber = cep.replace(/\D/g, "");
if (cepToNumber.length !== 8) {
jQuery("#loader-ajax-frete").fadeOut();
return false;
}
jQuery.get(
`https://viacep.com.br/ws/${cepToNumber}/json/`,
function (data) {
if (!data || data.erro) {
jQuery("#loader-ajax-frete").fadeOut();
jQuery(".shipping-result").before('
Esse CEP n\u00e3o existe, por favor tente novamente!
');
return false;
}
const cep1 = cepToNumber.substring(0, 5);
const cep2 = cepToNumber.substring(5, 8);
url = url
.replace("%s", cep1)
.replace("%s", cep2)
.replace("%s", quant)
.replace("%s", variant);
jQuery
.ajax({
method: "GET",
url: url,
beforeSend: function () {
if (jQuery("#loader-ajax-frete").length) {
jQuery("#loader-ajax-frete").fadeIn();
}
},
})
.done(function (response) {
const $response = jQuery(response);
jQuery(".shipping-result > div").html(
"
" +
$response.find(".tablePage").eq(1).html() +
"
"
);
jQuery(
jQuery(".shipping-result > div").find('[align="left"]')
).each(function () {
const text = jQuery(this).text().trim();
if (text === "CORREIOS PAC") {
jQuery(this)
.prev()
.html(
'
'
);
}
if (text === "CORREIOS SEDEX") {
jQuery(this)
.prev()
.html(
'
'
);
}
});
jQuery("#form_comprar").attr("data-shipping", true);
function addSumTaxCep() {
jQuery(".shipping-result table tbody tr:has(td)")
.off("click")
.on("click", function () {
const $row = jQuery(this);
if (
$row.find("strong").text().trim().toUpperCase() ===
"A RETIRAR"
)
return;
// jQuery(".shipping-result table tbody tr").removeClass(
// "selected-row"
// );
// $row.addClass("selected-row");
const priceFrete = parseFloat(
$row
.find("strong")
.text()
.replace(/[^\d,]/g, "")
.replace(",", ".")
);
const priceProduct = parseFloat(
jQuery("#variacaoPreco")
.text()
.replace(/[^\d,]/g, "")
.replace(",", ".")
);
const priceJsonText = jQuery("#cep_rule_json").text();
if (!priceJsonText) return;
const priceJson = JSON.parse(
JSON.parse(priceJsonText)
);
jQuery.get(
`https://viacep.com.br/ws/${cepToNumber}/json/`,
function (data) {
if (data && data.uf) {
const uf = data.uf;
const taxEntrada =
priceJson[uf]?.imposto_entrada || 0;
const taxInterEstadual =
priceJson[uf]?.imposto_inter_estadual || 0;
const base = priceProduct + priceFrete;
const taxResult =
base *
((taxEntrada - taxInterEstadual) / 100);
const finalValue = base + taxResult;
const finalValueBRL = finalValue.toLocaleString(
"pt-BR",
{
style: "currency",
currency: "BRL",
}
);
const container =
document.querySelector(".faixa-cep-info");
// let priceHtml =
// container.querySelector(".price-total");
// if (!priceHtml) {
// priceHtml = document.createElement("p");
// priceHtml.classList.add("price-total");
// container.appendChild(priceHtml);
// }
priceHtml.innerHTML = `Valor total do pedido com
impostos ${finalValueBRL}`;
} else {
console.warn(
"Não foi possível obter o estado a partir do CEP."
);
}
}
);
});
}
function orderTaxs() {
jQuery.get(
`https://viacep.com.br/ws/${cepToNumber}/json/`,
function (data) {
if (!data || !data.uf) return;
const uf = data.uf;
const $rows = [];
jQuery(".shipping-result table tbody tr").each(
function () {
const $row = jQuery(this);
if ($row.find("td").length === 0) return;
if (uf === "SP") {
const prazoText = $row
.find("td")
.eq(4)
.text()
.trim()
.toLowerCase();
let menorDia = Number.MAX_SAFE_INTEGER;
let maiorDia = Number.MAX_SAFE_INTEGER;
let isIntervalo = false;
const intervaloMatch = prazoText.match(/de\s+(\d+)\s+a\s+(\d+)\s+dia/);
const unicoMatch = prazoText.match(/(\d+)\s+dia(s)?\s+úteis/);
const unicoMatch2 = prazoText.match(/(\d+)\s+dias\s+úteis/);
const unicoMatch3 = prazoText.match(/prazo de entrega:\s*(\d+)\s+dias/);
if (intervaloMatch) {
menorDia = parseInt(intervaloMatch[1], 10);
maiorDia = parseInt(intervaloMatch[2], 10);
isIntervalo = true;
} else if (unicoMatch) {
menorDia = parseInt(unicoMatch[1], 10);
maiorDia = menorDia;
isIntervalo = false;
} else if (unicoMatch2) {
menorDia = parseInt(unicoMatch2[1], 10);
maiorDia = menorDia;
isIntervalo = false;
} else if (unicoMatch3) {
menorDia = parseInt(unicoMatch3[1], 10);
maiorDia = menorDia;
isIntervalo = false;
}
$row.attr("data-menor-dia", menorDia);
$row.attr("data-maior-dia", maiorDia);
$row.attr("data-is-intervalo", isIntervalo ? "1" : "0");
$rows.push($row);
} else {
const priceText = $row
.find("td:nth-child(4) strong")
.text()
.trim();
if (
priceText &&
priceText.toUpperCase() !== "GRÁTIS" &&
priceText.toUpperCase() !== "A RETIRAR"
) {
const priceValue = parseFloat(
priceText
.replace(/[^\d,]/g, "")
.replace(",", ".")
);
if (!isNaN(priceValue)) {
$row.attr("data-price", priceValue);
}
}
$rows.push($row);
}
}
);
if ($rows.length === 0) return;
if (uf === "SP") {
$rows.sort((a, b) => {
const aMenor = parseInt(a.attr("data-menor-dia"), 10) || Number.MAX_SAFE_INTEGER;
const bMenor = parseInt(b.attr("data-menor-dia"), 10) || Number.MAX_SAFE_INTEGER;
const aMaior = parseInt(a.attr("data-maior-dia"), 10) || Number.MAX_SAFE_INTEGER;
const bMaior = parseInt(b.attr("data-maior-dia"), 10) || Number.MAX_SAFE_INTEGER;
const aIsIntervalo = a.attr("data-is-intervalo") === "1";
const bIsIntervalo = b.attr("data-is-intervalo") === "1";
if (aMenor !== bMenor) {
return aMenor - bMenor;
}
if (aIsIntervalo !== bIsIntervalo) {
return aIsIntervalo ? 1 : -1;
}
return aMaior - bMaior;
});
const indexRetirar = $rows.findIndex(
(r) =>
r
.find("td")
.eq(2)
.text()
.trim()
.toLowerCase() === "retirar na loja"
);
if (indexRetirar > -1) {
const retirarRow = $rows.splice(indexRetirar, 1)[0];
$rows.splice(1, 0, retirarRow);
}
} else {
$rows.sort((a, b) => {
const aPrice = parseFloat(
a.attr("data-price") || Number.MAX_SAFE_INTEGER
);
const bPrice = parseFloat(
b.attr("data-price") || Number.MAX_SAFE_INTEGER
);
return aPrice - bPrice;
});
}
const $tbody = jQuery(".shipping-result table tbody");
$tbody.empty();
$rows.forEach(($row, index) => {
const tipoFrete = $row
.find("td")
.eq(2)
.text()
.trim()
.toLowerCase();
if (
index === 0 ||
tipoFrete === "retirar na loja"
) {
$row.css("display", "");
} else {
$row.css("display", "none");
}
$tbody.append($row);
});
addSumTaxCep();
}
);
}
function addCircle() {
jQuery(
".shipping-result table tbody tr:not(:first-child)"
).each(function () {
jQuery(this).prepend(
'
'
);
});
}
const observer = new MutationObserver(function (
mutationsList,
observer
) {
if (
jQuery(".shipping-result table tbody tr:has(td)")
.length > 0
) {
orderTaxs();
addSumTaxCep();
addCircle();
jQuery(".shipping-result .btn-close").click(
function () {
jQuery(".price-total").slideUp();
}
);
jQuery(".shipping-result").attr(
"style",
"display: block !important;"
);
if (jQuery("#loader-ajax-frete").length) {
jQuery("#loader-ajax-frete").fadeOut();
}
observer.disconnect();
}
});
observer.observe(
document.querySelector(".shipping-result"),
{
childList: true,
subtree: true,
}
);
})
.fail(function () {
console.error("Erro ao consultar frete.");
if (jQuery("#loader-ajax-frete").length) {
jQuery("#loader-ajax-frete").fadeOut();
}
});
}
);
return false;
}
);
function maxQuant(stockQuant) {
const userQty = document.querySelector("#quant").value;
if (userQty > stockQuant) {
jQuery("#span_erro_quant").fadeIn();
jQuery("#button-buy").attr("disabled", true).css("opacity", ".5");
} else {
jQuery("#span_erro_quant").fadeOut();
jQuery("#button-buy").attr("disabled", false).css("opacity", "1");
}
}
document
.querySelector(".title_tabCustom")
.addEventListener("click", function () {
document
.querySelector(".aba_personalizada")
.classList.toggle("show");
document
.querySelector(".title_tabCustom > svg")
.classList.toggle("disable");
});
}
cepTaxReq();
}
}
cepPageProduct();
function seeMoreCatalog(){
if(jQuery('.page-catalog').length) {
document.querySelectorAll('.content-description').forEach(container => {
const box = container.querySelector('.box-description');
const content = box.querySelector('div');
const button = container.querySelector('.seemore');
const maxChars = 300;
const totalText = content.textContent.trim();
if (totalText.length > maxChars) {
button.addEventListener('click', () => {
const isExpanded = box.classList.toggle('expanded');
button.textContent = isExpanded ? 'Ver Menos' : 'Ver Mais';
});
} else {
button.style.display = 'none';
}
});
}
}
seeMoreCatalog();
})(jQuery);