Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/public/frontend/js/ |
/*=======================================
[Start Activation Code]
=========================================
01. Mobile Menu JS
02. Sticky Header JS
03. Search JS
04. Slider Range JS
05. Home Slider JS
06. Popular Slider JS
07. Quick View Slider JS
08. Home Slider 4 JS
09. CountDown
10. Flex Slider JS
11. Cart Plus Minus Button
12. Checkbox JS
13. Extra Scroll JS
14. Product page Quantity Counter
15. Video Popup JS
16. Scroll UP JS
17. Nice Select JS
18. Others JS
=========================================
[End Activation Code]
=========================================*/
// window.onload = () => {
// 'use strict';
// if ('serviceWorker' in navigator) {
// navigator.serviceWorker
// .register('./sw.js');
// }
// }
;(function ($) {
'use strict'
$(document).on('ready', function () {
/*====================================
Mobile Menu
======================================*/
$('.menu').slicknav({
prependTo: '.mobile-nav',
duration: 300,
animateIn: 'fadeIn',
animateOut: 'fadeOut',
closeOnClick: true
})
/*====================================
03. Sticky Header JS
======================================*/
$(window).on('scroll', function () {
if ($(this).scrollTop() > 200) {
$('.header').addClass('sticky')
} else {
$('.header').removeClass('sticky')
}
})
/*=======================
Search JS JS
=========================*/
$('.top-search a').on('click', function () {
$('.search-top').toggleClass('active')
})
/*=======================
Home Slider JS
=========================*/
$('.home-slider').owlCarousel({
items: 1,
autoplay: true,
autoplayTimeout: 5000,
smartSpeed: 400,
animateIn: 'fadeIn',
animateOut: 'fadeOut',
autoplayHoverPause: true,
loop: true,
nav: true,
merge: true,
dots: false,
navText: [
'<i class="ti-angle-left"></i>',
'<i class="ti-angle-right"></i>'
],
responsive: {
0: {
items: 1
},
300: {
items: 1
},
480: {
items: 2
},
768: {
items: 3
},
1170: {
items: 4
}
}
})
/*=======================
Popular Slider JS
=========================*/
$('.popular-slider').owlCarousel({
items: 1,
autoplay: true,
autoplayTimeout: 5000,
smartSpeed: 400,
animateIn: 'fadeIn',
animateOut: 'fadeOut',
autoplayHoverPause: true,
loop: true,
nav: true,
merge: true,
dots: false,
navText: [
'<i class="ti-angle-left"></i>',
'<i class="ti-angle-right"></i>'
],
responsive: {
0: {
items: 1
},
300: {
items: 1
},
480: {
items: 2
},
768: {
items: 3
},
1170: {
items: 4
}
}
})
/*===========================
Quick View Slider JS
=============================*/
$('.quickview-slider-active').owlCarousel({
items: 1,
autoplay: true,
autoplayTimeout: 5000,
smartSpeed: 400,
autoplayHoverPause: true,
nav: true,
loop: true,
merge: true,
dots: false,
navText: [
'<i class=" ti-arrow-left"></i>',
'<i class=" ti-arrow-right"></i>'
]
})
/*===========================
Home Slider 4 JS
=============================*/
$('.home-slider-4').owlCarousel({
items: 1,
autoplay: true,
autoplayTimeout: 5000,
smartSpeed: 400,
autoplayHoverPause: true,
nav: true,
loop: true,
merge: true,
dots: false,
navText: [
'<i class=" ti-arrow-left"></i>',
'<i class=" ti-arrow-right"></i>'
]
})
/*====================================
14. CountDown
======================================*/
// $('[data-countdown]').each(function () {
// var $this = $(this),
// finalDate = $(this).data('countdown')
// $this.countdown(finalDate, function (event) {
// $this.html(
// event.strftime(
// '<div class="cdown"><span class="days"><strong>%-D</strong><p>Days.</p></span></div><div class="cdown"><span class="hour"><strong> %-H</strong><p>Hours.</p></span></div> <div class="cdown"><span class="minutes"><strong>%M</strong> <p>MINUTES.</p></span></div><div class="cdown"><span class="second"><strong> %S</strong><p>SECONDS.</p></span></div>'
// )
// )
// })
// })
/*====================================
16. Flex Slider JS
======================================*/
$('.flexslider-thumbnails').flexslider({
animation: 'slide',
controlNav: 'thumbnails'
})
/*====================================
Cart Plus Minus Button
======================================*/
var CartPlusMinus = $('.cart-plus-minus')
CartPlusMinus.prepend('<div class="dec qtybutton">-</div>')
CartPlusMinus.append('<div class="inc qtybutton">+</div>')
$('.qtybutton').on('click', function () {
var $button = $(this)
var oldValue = $button
.parent()
.find('input')
.val()
if ($button.text() === '+') {
var newVal = parseFloat(oldValue) + 1
} else {
// Don't allow decrementing below zero
if (oldValue > 0) {
var newVal = parseFloat(oldValue) - 1
} else {
newVal = 1
}
}
$button
.parent()
.find('input')
.val(newVal)
})
/*=======================
Extra Scroll JS
=========================*/
$('.scroll').on('click', function (e) {
var anchor = $(this)
$('html, body')
.stop()
.animate(
{
scrollTop: $(anchor.attr('href')).offset().top - 0
},
900
)
e.preventDefault()
})
/*===============================
10. Checkbox JS
=================================*/
$('input[type="checkbox"]').change(function () {
if ($(this).is(':checked')) {
$(this)
.parent('label')
.addClass('checked')
} else {
$(this)
.parent('label')
.removeClass('checked')
}
})
/*==================================
12. Product page Quantity Counter
===================================*/
$('.qty-box .quantity-right-plus').on('click', function () {
var $qty = $('.qty-box .input-number')
var currentVal = parseInt($qty.val(), 10)
if (!isNaN(currentVal)) {
$qty.val(currentVal + 1)
}
})
$('.qty-box .quantity-left-minus').on('click', function () {
var $qty = $('.qty-box .input-number')
var currentVal = parseInt($qty.val(), 10)
if (!isNaN(currentVal) && currentVal > 1) {
$qty.val(currentVal - 1)
}
})
/*=====================================
15. Video Popup JS
======================================*/
$('.video-popup').magnificPopup({
type: 'iframe',
removalDelay: 300,
mainClass: 'mfp-fade'
})
/*====================================
16. Scroll Up JS
======================================*/
$.scrollUp({
scrollText: '<span><i class="fa fa-angle-up"></i></span>',
easingType: 'easeInOutExpo',
scrollSpeed: 900,
animation: 'fade'
})
})
/*====================================
17. Nice Select JS
======================================*/
$('.nice-select').niceSelect()
/*====================================
18. Other JS
======================================*/
//------------- DETAIL ADD - MINUS COUNT ORDER -------------//
$('.btn-number').click(function (e) {
e.preventDefault()
const fieldName = $(this).attr('data-field')
const type = $(this).attr('data-type')
var input = $("input[name='" + fieldName + "']")
var currentVal = parseInt(input.val())
if (!isNaN(currentVal)) {
if (type == 'minus') {
if (currentVal > input.attr('data-min')) {
input.val(currentVal - 1).change()
}
if (parseInt(input.val()) == input.attr('data-min')) {
$(this).attr('disabled', true)
}
} else if (type == 'plus') {
if (currentVal < input.attr('data-max')) {
input.val(currentVal + 1).change()
}
if (parseInt(input.val()) == input.attr('data-max')) {
$(this).attr('disabled', true)
}
}
} else {
input.val(0)
}
})
$('.input-number').focusin(function () {
$(this).data('oldValue', $(this).val())
})
$('.input-number').change(function () {
const minValue = parseInt($(this).attr('data-min'))
const maxValue = parseInt($(this).attr('data-max'))
const valueCurrent = parseInt($(this).val())
const name = $(this).attr('name')
if (valueCurrent >= minValue) {
$(
".btn-number[data-type='minus'][data-field='" + name + "']"
).removeAttr('disabled')
} else {
alert('Sorry, the minimum value was reached')
$(this).val($(this).data('oldValue'))
}
if (valueCurrent <= maxValue) {
$(
".btn-number[data-type='plus'][data-field='" + name + "']"
).removeAttr('disabled')
} else {
alert('Sorry, the maximum value was reached')
$(this).val($(this).data('oldValue'))
}
})
$('.input-number').keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if (
$.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)
) {
// let it happen, don't do anything
return
}
// Ensure that it is a number and stop the keypress
if (
(e.shiftKey || e.keyCode < 48 || e.keyCode > 57) &&
(e.keyCode < 96 || e.keyCode > 105)
) {
e.preventDefault()
}
})
/** Autoclose alerts */
setTimeout(() => $(".alert-dismissable .close").click(), 10000);
})(jQuery)