//'use strict';
window.dataLayer = window.dataLayer || [];
var uni_touch_support;
if ('ontouchstart' in document.documentElement) uni_touch_support = true;
$(function() {
if(uni_touch_support) $('body').addClass('touch-support');
uniMenuAim();
uniMenuDropdownPos();
uniMenuMobile();
uniSearch.init();
$('#language li a').on('click', function(e) {
e.preventDefault();
$('#language input[name=\'code\']').val($(this).data('code'));
$('#language').submit();
});
$('#currency li a').on('click', function(e) {
e.preventDefault();
$('#currency input[name=\'code\']').val($(this).data('code'));
$('#currency').submit();
});
$('.header-phones__additional').on('click', function() {
$('.header-phones__additional').addClass('selected').not($(this)).removeClass('selected');
if($('.header-phones__main').text() == $(this).data('phone') && $(this).data('href')) {
location = $(this).data('href');
} else {
$('.header-phones__main').text($(this).data('phone')).data('href', $(this).data('href'));
}
});
$('[data-toggle=\'tooltip\']').tooltip({container:'body', trigger:'hover'});
$('body').on('hide.bs.modal', '.modal.animated', function() {
$(this).removeClass(uniJsVars.popup_effect_in).addClass(uniJsVars.popup_effect_out);
$('body').css({'padding': ''});
});
$('body').on('hidden.bs.modal', '.modal.animated', (e) => {
setTimeout(() => {
e.target.remove();
}, 200);
if($('body > .modal.fade.in').length) $('body').addClass('modal-open');
});
$('.add_to_cart.disabled:not(.fly-menu__product-btn)').each(function() {
$(this).attr('disabled', true);
});
uniChangeBtn();
$(document).ajaxStop(() => {
$('[data-toggle=\'tooltip\']').tooltip({container:'body', trigger:'hover'});
$('.add_to_cart.disabled:not(.fly-menu__product-btn)').each(function(){
$(this).attr('disabled', true);
});
});
//quantity
$('body').on('blur click', '.qty-switch__input, .qty-switch__btn', function(e) {
let $elem = $(this);
if($(this).hasClass('qty-switch__btn')) $elem = $(this).closest('.qty-switch').find('input');
if($(this).hasClass('qty-switch__input') && e.type == 'click') return;
let qty = parseFloat($elem.val()),
min = $elem.data('minimum') ? parseFloat($elem.data('minimum')) : 1,
max = 10000,
step = uniJsVars.qty_switch_step ? min : 1,
decimal = 0,
new_qty;
if($(this).hasClass('qty-switch__input')) {
if(step > 1) qty = Math.round(qty/min)*min;
//new_qty = (qty > min) && (qty < max) ? qty : min;
new_qty = (qty > min) && (qty < max) ? qty : ((qty > max) ? max : min);
} else {
new_qty = $(this).hasClass('fa-plus') ? ((qty < max) ? qty+step : qty) : ((qty > min) ? qty-step : qty);
}
new_qty = new_qty.toFixed(decimal);
$elem.val(new_qty).change();
if($(this).closest('.checkout-cart__quantity, .header-cart__quantity').length) {
cart.update($elem.data('cid'), new_qty);
}
});
$('body').on('touchstart mouseenter', '.option__item', function(e) {
let elem = $(this).find('img');
if(!elem.length) return;
let block = $('
'),
imgSrc = elem.data('thumb'),
elemTop = elem.offset().top,
elemLeft = elem.offset().left+(elem.outerWidth()/2);
$('.option__popup').remove()
$('body').append(block);
if(elemLeft < block.outerWidth()/2) {
elemLeft = elem.offset().left;
} else if(elemLeft + (block.outerWidth()/2) > $(window).width()) {
elemLeft = elem.offset().left + elem.outerWidth() - block.outerWidth();
} else {
elemLeft = elemLeft - (block.outerWidth()/2);
}
setTimeout(() => {
block.css({top: elemTop-block.outerHeight()-10, left: elemLeft}).addClass('show');
}, 170);
$(this).on('mouseleave', () => {
block.remove();
});
$('body').on('touchstart', () => {
block.remove();
});
});
if(uniJsVars.change_opt_img) {
$('main').on('click', '.product-thumb .option__item input', function() {
$(this).closest('.product-thumb').find('a img:first').attr('src', $(this).next().data('thumb'));
});
}
$('body').on('click', '.uni-href', function() {
if(typeof($(this).data('href')) != 'undefined' && $(this).data('href') != '') {
if(($(this).attr('target') || $(this).data('target')) == '_blank') {
window.open($(this).data('href'), '_blank');
} else {
location = $(this).data('href');
}
}
});
//$('.breadcrumb').animate({scrollLeft: 1000}, 0);
$('.breadcrumb').scrollLeft(1000);
if(uniJsVars.unregisterSW && ('serviceWorker' in navigator)) {
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister();
}
});
caches.keys().then(function(cacheNames) {
cacheNames.forEach(cacheName => {
caches.delete(cacheName);
});
});
}
});
const uniSearch = {
init: function() {
let base = this;
$('body').on('click', '.header-search__category-li', function() {
$(this).closest('.header-search').find('.header-search__category-span').text($(this).text());
$(this).closest('.header-search').find('input[name=\'filter_category_id\']').val($(this).data('id'));
});
$('body').on('click', '.header-search__btn', function() {
let url = $('base').attr('href') + 'index.php?route=product/search',
elem = $(this).closest('.header-search'),
elemInput = elem.find('input[name="search"]'),
value = elem.find('input[name="search"]').val(),
filter_category_id = elem.find('input[name=\'filter_category_id\']').val();
if(!value) value = elemInput.attr('placeholder');
if (value) url += '&search='+encodeURIComponent(value);
if (filter_category_id > 0) url += '&category_id='+encodeURIComponent(filter_category_id)+'&sub_category=true';
url += '&description=true';
window.location = url;
});
$('body').on('keydown', '.header-search__input', function(e) {
if (e.keyCode == 13) $(this).parent().find('.header-search__btn').click();
});
if($(window).width() > 575 && uniJsVars.search_phrase_arr.length > 1) {
new Typed('.header-search__input', {
strings: uniJsVars.search_phrase_arr,
startDelay: 1500,
typeSpeed: 80,
backDelay: 1500,
backSpeed: 45,
attr: 'placeholder',
bindInputFocusEvents: true,
loop: true
});
}
base.clearBtn();
},
clearBtn: function() {
const input = 'input[name="search"]', btn_class = '.search-btn-clear';
$(input).each(function() {
$(this).on('input', () => {
$(input).not($(this)).val($(this).val());
if($(this).val() != '') {
$(btn_class).addClass('show');
} else {
$(btn_class).removeClass('show');
}
});
});
$('body').on('click', btn_class, () => {
$(input).val('');
$(btn_class).removeClass('show');
});
}
};
var uniSelectView = {
init:function(viewtype){
var base = this;
base.display = localStorage.getItem('display') ? localStorage.getItem('display') : default_view;
base.displayMFP = localStorage.getItem('displayMFP');
if(typeof(MegaFilter) === 'function' && base.displayMFP) base.display = base.displayMFP;
if(typeof(viewtype) != 'undefined') base.display = viewtype;
base.bind();
base.switcher();
},
switcher:function() {
var base = this, lastWindowWidth = $(window).width(), breakpoint = 992;
base.switcher2 = (new_width) => {
base.displayMobile = localStorage.getItem('displayMobile') ? localStorage.getItem('displayMobile') : default_mobile_view;
if(!$('.products-block').length) return;
let disp = (new_width <= breakpoint) ? base.displayMobile : base.display;
if (disp == 'list') {
base.list();
} else if (disp == 'grid') {
base.grid();
} else {
base.compact();
}
}
base.switcher2(lastWindowWidth);
$(window).resize(function(){
if($(this).width() != lastWindowWidth && $(this).width() >= breakpoint){
base.switcher2($(this).width());
}
});
},
list:function() {
var base = this, breakpoint = 992, product_layout = $('.product-layout'), new_class = 'product-layout product-list list-view col-sm-12';
if(!product_layout.first().attr('class').includes('list-view')) {
$('.list-view, .grid-view, .compact-view, .product-grid, .product-list, .product-compact').attr('class', new_class);
product_layout.find('.product-thumb__name, .product-thumb__description, .product-thumb__option').height('auto');
$.post('index.php?route=extension/module/uni_new_data/setDefaultView', {view: 'list'});
}
$('.sorts-block__btn').addClass('selected').not('#list-view').removeClass('selected');
localStorage.setItem('display', 'list');
localStorage.setItem('displayMFP', 'list');
if($(window).width() <= breakpoint) localStorage.setItem('displayMobile', 'list');
},
grid:function() {
var base = this, breakpoint = 992, col_left = $('#column-left').length, col_right = $('#column-right').length, product_layout = $('.product-layout'), new_class = 'product-layout product-grid grid-view col-sm-6 col-md-3 col-lg-3 col-xxl-4';
if (col_left && col_right) {
new_class = 'product-layout product-grid grid-view col-sm-12 col-md-6 col-lg-6 col-xxl-6-1';
} else if (col_left || col_right) {
new_class = 'product-layout product-grid grid-view col-sm-6 col-md-4 col-lg-4 col-xxl-5';
}
if(!product_layout.first().attr('class').includes('grid-view')) {
$.post('index.php?route=extension/module/uni_new_data/setDefaultView', {view: 'grid'});
}
$('.list-view, .grid-view, .compact-view, .product-grid, .product-list, .product-compact').attr('class', new_class);
$('.sorts-block__btn').addClass('selected').not('#grid-view').removeClass('selected');
if($(window).width() > breakpoint ) {
uniAutoHeight(product_layout.find('.product-thumb__name'));
const arr = ['.grid-view .product-thumb__attribute', '.grid-view .product-thumb__description', '.grid-view .product-thumb__option'];
for (i in arr) {
if($(arr[i]).css('display') !== 'none' || uni_touch_support) {
uniAutoHeight($(arr[i]));
}
}
}
localStorage.setItem('display', 'grid');
localStorage.setItem('displayMFP', 'grid');
if($(window).width() <= breakpoint) localStorage.setItem('displayMobile', 'grid');
},
compact:function() {
var base = this, product_layout = $('.product-layout'), new_class = 'product-layout product-price compact-view col-sm-12';
if(!product_layout.first().attr('class').includes('compact-view')) {
$('.list-view, .grid-view, .compact-view, .product-grid, .product-list, .product-compact').attr('class', new_class);
product_layout.find('.product-thumb__name, .product-thumb__description, .product-thumb__option').css('height', '');
$.post('index.php?route=extension/module/uni_new_data/setDefaultView', {view: 'compact'});
}
$('.sorts-block__btn').addClass('selected').not('#compact-view').removeClass('selected');
if(!product_layout.find('.product-thumb__option').children().length) {
product_layout.find('.product-thumb__option').remove()
}
product_layout.find('.product-thumb__cart.disabled').css('min-width', product_layout.find('.product-thumb__cart').first().outerWidth());
localStorage.setItem('display', 'compact');
localStorage.setItem('displayMFP', 'compact');
},
bind:function() {
var base = this;
$('#list-view').on('click', base.list);
$('#grid-view').on('click', base.grid);
$('#compact-view').on('click', base.compact);
}
};
function uniMenuAim() {
if($(window).width() > 992) {
let blur_blocks = $('main, footer'), items = '.menu__level-2', timer = '', delay = 0, delay2 = 150;
$('.menu.menu2 li.has-children').on('mouseenter', function() {
timer = setTimeout(() => {
changeState($(this), 1);
}, delay);
}).on('mouseleave', function() {
clearTimeout(timer);
changeState($(this), 0);
});
$('.menu.menu1 .menu__collapse').menuAim({
rowSelector:'.menu__level-1-li',
submenuSelector:'*',
activate:function(data) {
changeState($(data), 1);
},
deactivate:function(data) {
changeState($(data), 0);
},
exitMenu:function(data) {
if(!$(data).parent().hasClass('new')) {
return true;
}
}
});
const changeState = (elem, state) => {
const child = elem.children(items);
if(child.css('display') == 'none') child.css('opacity', 0);
$('.menu__level-1-li:first, .menu__level-1-li:first .menu__level-2').removeClass('open');
if(state) {
elem.addClass('open');
child.addClass('open').animate({opacity: 1}, delay2);
} else {
elem.removeClass('open');
child.removeClass('open');
}
};
const menuBlur = () => {
if(uni_touch_support || typeof(uniJsVars) == 'undefined' || !uniJsVars.menu_blur) return;
let blur_delay = 110, blur_timer = '';
$('.menu:not(.new)').on('mouseenter', () => {
blur_timer = setTimeout(() => {
blur_blocks.addClass('blur');
}, blur_delay);
}).on('mouseleave', () => {
clearTimeout(blur_timer);
blur_blocks.removeClass('blur');
});
if($('.menu-wrapper.new').hasClass('show')) {
blur_blocks.addClass('blur');
} else {
blur_blocks.removeClass('blur');
}
};
menuBlur();
const btn = '.header-menu__btn', wrapper = '.menu-wrapper.new', li = '.menu1.new .menu__level-1-li';
if($(wrapper).length) {
$(btn).unbind('click');
$(btn).on('click', function() {
$(this).toggleClass('show');
changeState($(li).not(':first-child'), 0);
changeState($(li).first(), 1);
$(wrapper).toggleClass('show');
menuBlur();
});
}
$('main, footer').on('click touchstart', () => {
$(items).removeClass('open');
$('.menu__pm').removeClass('open');
$('.menu .collapse').collapse('hide');
$('html').removeClass('scroll-disabled');
$('.menu-wrapper, .header-menu__btn').removeClass('show');
blur_blocks.removeClass('blur');
});
} else {
$('body').on('click', '.menu__pm', function() {
$(this).toggleClass('open');
$(this).next().collapse('toggle');
});
$('.menu-open, .menu-close').on('click', () => {
$('html').toggleClass('scroll-disabled');
$('.menu-wrapper').toggleClass('show');
$('.fly-menu__block').removeClass('show');
});
}
};
function uniMenuUpd(block) {
if(!$(block).length) return;
const init = () => {
let menu_block = $(block), menu_items = menu_block.children('.menu__level-1-li:not(.menu__additional)');
menu_items.css('display', '');
if($(window).width() < 992) return;
menu_block.find('.menu__additional').remove();
let coord = menu_block.offset().left + menu_block.width(), flag = false, new_items = '';
if(!menu_items.length || Math.floor(menu_items.last().offset().left + menu_items.last().width()) <= coord) return;
menu_items.each(function() {
if($(this).offset().left + $(this).width() > coord - 60) {
let item = $(this).find('> a'), item_child = $(this).find('.menu__level-2-a'), new_child_items = '';
if(item_child.length) {
new_child_items = '';
}
new_items += '';
$(this).hide();
flag = true;
} else {
$(this).show();
}
});
if (flag) {
if (!menu_block.find('.menu__additional').length) {
let html = '';
menu_block.append(html);
uniMenuAim();
}
menu_block.find('.menu__additional .menu__level-2').html(new_items);
}
}
init();
$(window).resize(init);
};
function uniMenuDropdownPos() {
const menu_block = $('header .menu1:not(.new) .menu__level-2, header .menu2 .menu__level-2');
if(!menu_block.length) return;
const init = () => {
if($(window).width() > 992) {
menu_block.css('max-height', ($(window).height() - $('header .menu').offset().top - 50));
const menu_block_2 = $('header .menu2');
if(!menu_block_2.length) return;
menu_block_2.find('.menu__level-2').each(function() {
const child_pos = ($(this).parent().offset().left + $(this).outerWidth()) - (menu_block_2.offset().left + menu_block_2.outerWidth());
if (child_pos > 0) $(this).css('margin-left', '-'+child_pos+'px');
});
} else {
menu_block.css('max-height', '');
}
}
init();
$(window).resize(init);
};
function uniMenuMobile() {
const menu1 = $('.menu1 .menu__collapse'), menu2 = $('.menu-right .menu__collapse');
if(!menu1.length || !menu2.length) return;
const init = () => {
let windowWidth = $(window).width();
if(windowWidth < 992) {
menu2.find('>li').addClass('new-items').appendTo(menu1);
} else {
menu1.find('.new-items').removeClass('new-items').appendTo(menu2);
}
$windowWidth = windowWidth;
}
init();
$(window).resize(() => {
if ($(window).width() != $windowWidth) {
init();
}
});
}
function uniBannerLink(url) {
$.ajax({
url: url,
type: 'get',
dataType: 'html',
success: function(data) {
var data = $(data);
title = data.find('h1.heading').text();
data.find('h1.heading').remove();
text = data.find('#content').html();
uniModalWindow('modal-banner', 'lg', title, text);
}
});
}
function form_error(form, input, text) {
let element = $(form+' input[name=\''+input+'\'], '+form+' textarea[name=\''+input+'\'], '+form+' select[name=\''+input+'\']').addClass('input-warning');
setTimeout(() => {
$(form+' .input-warning').removeClass('input-warning');
}, 15000);
$(form+' .input-warning').click(function() {
$(this).removeClass('input-warning');
});
}
function uniScrollTo(target, time) {
if (typeof(time) === 'undefined') time = 200;
$('html, body').animate({scrollTop: $(target).offset().top-150}, time);
}
function uniChangeBtn() {
const cart = () => {
let products = $('.header-cart__wrapper').data('products');
if(typeof(products) === 'undefined') return;
products = String(products).split(',').map(Number);
$('.product-thumb__add-to-cart, .product-page__add-to-cart, .compare-page__cart').each(function() {
if(products.indexOf($(this).data('pid')) !== -1) {
$(this).addClass('in_cart');
$(this).children('i').attr('class', uniJsVars.cart_btn.icon_incart);
$(this).children('span').text(uniJsVars.cart_btn.text_incart);
}
});
}
const compare = () => {
let products = $('.top-menu__compare').data('products');
if(!products) return;
products = String(products).split(',').map(Number);
$('.product-thumb__compare, .product-page__compare-btn').each(function() {
const pid = Number($(this).attr('onclick').replace(/\D+/g,''));
if(products.indexOf(pid) !== -1) {
$(this).attr('onclick', $(this).attr('onclick').replace('compare.add', 'compare.remove')).attr('title', uniJsVars.compare_btn.text_remove).addClass('active');
}
});
}
const wishlist = () => {
let products = $('.top-menu__wishlist').data('products');
if(!products) return;
products = String(products).split(',').map(Number);
$('.product-thumb__wishlist, .product-page__wishlist-btn').each(function() {
const pid = Number($(this).attr('onclick').replace(/\D+/g,''));
if(products.indexOf(pid) !== -1) {
$(this).attr('onclick', $(this).attr('onclick').replace('wishlist.add', 'wishlist.remove')).attr('title', uniJsVars.wishlist_btn.text_remove).addClass('active');
}
});
}
cart();
compare();
wishlist();
$(document).ajaxStop(() => {
cart();
compare();
wishlist();
});
}
function uniModalWindow(id, type, title, data) {
/* id = id modal form; type = sm, lg, or empty; title = title modal form; data = text or other data modal form; */
$('#'+id).remove();
let html = '';
$('html body').append(html);
$('#'+id).modal('show');
}
function uniAutoHeight(div) {
const block_height = () => {
$(div).css({height: ''});
let maxheight = 0;
$(div).each(function(){
if($(this).height() > maxheight) {
maxheight = $(this).height();
}
});
if(maxheight > 0) $(div).height(maxheight);
};
block_height();
$(window).resize(block_height);
}
function uniFlyAlert(type, data) {
let time = 15,
effectIn = 'animated bounceInRight',
effectOut = 'animated bounceOutRight';
if(typeof(uniJsVars) != 'undefined') {
time = uniJsVars.alert_time;
effectIn = uniJsVars.alert_effect_in;
effectOut = uniJsVars.alert_effect_out;
}
let time1 = time*1000,
time2 = time1+1000,
time3 = 100,
top_offset = 50,
top_margin = 15,
icon;
if(type == 'success') icon = 'fa-check-circle';
//if(type == 'danger') icon = 'fa-times-circle';
if(type == 'danger') icon = 'fa-exclamation-circle';
if(type == 'warning') icon = 'fa-exclamation-circle';
$('.uni-alert').remove();
let createAlert = (data) => {
if($('.uni-alert').length) {
top_offset = $('.uni-alert:last').position().top + $('.uni-alert:last').outerHeight() + top_margin;
}
let block = $('');
$('html body').append(block);
setTimeout(() => {
block.removeClass(effectIn).addClass(effectOut);
}, time1);
setTimeout(() => {
block.remove();
}, time2);
}
if(typeof(data) == 'object') {
let arr = [];
for (i in data) {
arr.push(data[i]);
}
let index = -1,
timer = setInterval(() => {
if (++index == arr.length) {
clearInterval(timer);
} else {
createAlert(arr[index]);
}
}, time3);
} else {
createAlert(data);
}
}
//add css and js from script
var cssUrls = [], jsUrls = [];
function uniAddCss(url) {
if(cssUrls.indexOf(url) == -1) {
cssUrls.push(url);
$('html head').append(' ')
}
}
function uniAddJs(url) {
if(jsUrls.indexOf(url) == -1) {
jsUrls.push(url);
$.getScript(url);
}
}
(function($){
var Modules = {
init:function(options, el) {
var base = this;
base.$elem = $(el);
base.$elem2 = $(el).children();
base.options = $.extend({}, $.fn.uniModules.options, options);
base.load();
},
load:function() {
var base = this;
base.wrapper = (base.$elem2.closest('.tab-content').length) ? base.$elem2.closest('.tab-content') : base.$elem;
if((base.options.type == 'grid' && module_on_mobile == 'carousel' && base.wrapper.width()+20 < 768) || base.wrapper.closest('#column-left, #column-right').length) {
base.options.type = 'carousel';
}
if(base.wrapper.closest('#column-left, #column-right').length) {
base.options.items = {0: {items: 1}};
}
if (base.options.type == 'grid') {
base.$elem2.children().wrap('
');
} else {
base.$elem2.addClass('owl-carousel').owlCarousel({
responsive:base.options.items,
responsiveBaseElement:base.wrapper,
dots:base.options.dots,
mouseDrag:false,
loop:base.options.loop,
autoplay:base.options.autoplay,
nav:true,
navText:[' ', ' '],
});
if(base.$elem2.width() == 0) {
const item = base.$elem2.find('.owl-item'), item_width = base.items();
item.css({width: item_width});
base.$elem2.find('.owl-stage').css({width:item.length * item_width});
}
}
base.update();
base.reload();
base.responsive();
},
items:function() {
var base = this, match = -1, width = base.wrapper.width();
width += (base.wrapper.attr('class') == 'tab-content' && width < 520) ? 10 : 20;
$.each(base.options.items, (breakpoint) => {
if (breakpoint <= width && breakpoint > match) {
match = Number(breakpoint);
}
});
const items = base.options.items[match]['items']
return (base.options.type == 'carousel') ? width/items : 100/items+'%';
},
update:function() {
var base = this, div_arr = base.options.autoheight;
if($(window).width() < 575 && $('.'+div_arr[0]).closest('.product-thumb').length) {
div_arr = [];
}
if(div_arr.length) {
for (i in div_arr) {
var maxheight = 0, $elem = base.$elem2.find('.'+div_arr[i]);
if($elem.css('display') !== 'none' || uni_touch_support) {
$elem.css('height', '');
$.each($elem, function() {
if($(this).height() > maxheight) {
maxheight = $(this).height();
}
});
if(maxheight > 0) $elem.height(maxheight);
}
}
}
base.$elem2.addClass('load-complete');
},
responsive:function() {
var base = this, lastWindowWidth = $(window).width();
base.resizer = () => {
if ($(window).width() != lastWindowWidth || uni_touch_support) {
if (base.options.type == 'grid') {
base.$elem2.children().css('width', base.items());
}
base.update();
}
};
$(window).resize(base.resizer);
},
reload:function() {
var base = this, div = base.$elem.parent(), modal = div.hasClass('modal-body') ? true : false, tab = div.hasClass('tab-pane') ? div.attr('id') : false;
if(modal) {
setTimeout(() => {
base.update();
}, 750);
}
if(tab) {
div.parent().prev().find('li a').on('shown.bs.tab', function(e) {
if($(this).attr('href') == '#'+tab) {
base.update();
}
});
}
}
};
$.fn.uniModules = function(options) {
return this.each(function() {
if ($(this).data('uni-modules-init') === true) {
return false;
}
$(this).data('uni-modules-init', true);
var module = Object.create(Modules);
module.init(options, this);
});
};
if(typeof(items_on_mobile) == 'undefined') items_on_mobile = 2;
$.fn.uniModules.options = {
type :'carousel',
items :{0:{items:items_on_mobile},700:{items:3},1050:{items:4},1400:{items:5}},
autoheight :[],
dots :true,
loop :false,
autoplay :false
};
var Timer = {
init:function(options, el) {
var base = this;
base.options = $.extend({}, $.fn.uniTimer.options, options);
base.days = 24*60*60, base.hours = 60*60, base.minutes = 60;
var date_arr = base.options.date.split('-'),
year = parseFloat(date_arr[0]),
month = parseFloat(date_arr[1])-1,
day = parseFloat(date_arr[2]);
base.$date = (new Date(year, month, day)).getTime();
base.$elem = $(el);
if(base.$date > (new Date()).getTime()) {
base.load();
}
},
load:function() {
var base = this, i = 4;
html = '';
for(i in base.options.texts){
html += '
';
html += '
';
if(!base.options.hideText) html += '
'+base.options.texts[i]+'
';
html += '
';
}
html += '
';
base.$elem.append(html);
base.digits = base.$elem.find('.uni-timer__digit');
base.count();
},
count:function() {
var base = this, left, d, h, m, s;
left = Math.floor((base.$date - (new Date()).getTime())/1000);
left = left > 0 ? left : 0;
d = Math.floor(left / base.days);
left -= d*base.days;
h = Math.floor(left / base.hours);
left -= h*base.hours;
m = Math.floor(left / base.minutes);
left -= m*base.minutes;
s = left;
base.switchDigit(base.digits.eq(0), d);
base.switchDigit(base.digits.eq(1), h);
base.switchDigit(base.digits.eq(2), m);
base.switchDigit(base.digits.eq(3), s);
if (d == 0) base.hideGroup(0);
if (h == 0) base.hideGroup(1);
setTimeout(() => {
base.count();
}, 1000);
},
switchDigit:function(position, number) {
if(position.data('digit') != number){
position.data('digit', number).text(number);
}
},
hideGroup:function(num) {
var base = this;
if(base.options.hideIsNull) {
base.$elem.find('.uni-timer__group.g-'+num).hide();
}
}
}
$.fn.uniTimer = function(options) {
return this.each(function() {
if ($(this).data("uni-timer-init") === true) {
return false;
}
$(this).data("uni-timer-init", true);
var timer = Object.create(Timer);
timer.init(options, this);
});
};
$.fn.uniTimer.options = {
date :'0000-00-00',
texts :['Дней','Часов','Минут','Секунд'],
hideText :false,
hideIsNull :false
};
})(jQuery);
var cart = {
'add': function(product_id, elem) {
var $elem = $(elem).closest('.product-thumb, .product-thumb-related'),
product_qty = $elem.find('.qty-switch__input').val(),
product_options = $elem.find('.option input[type=\'text\'], .option input[type=\'hidden\'], .option input:checked, .option select, .option textarea'),
data = 'product_id='+product_id+'&quantity='+(typeof(product_qty) != 'undefined' ? product_qty : 1);
if (product_options.length) {
data += '&'+product_options.serialize();
}
$.ajax({
url: $('base').attr('href')+'index.php?route=checkout/cart/add',
type: 'post',
data: data,
dataType: 'json',
success: function(json) {
$('.text-danger').remove();
if (json['redirect'] && (!$elem.find('.option').children().length || $elem.find('.option').css('display') == 'none')) {
window.location = json['redirect'];
return;
}
$('.form-group').removeClass('has-error');
if (json['error']) {
if (json['error']['option']) {
for (i in json['error']['option']) {
var elem = $('.option .input-option' + i.replace('_', '-')), elem2 = (elem.parent().hasClass('input-group')) ? elem.parent() : elem;
elem2.after(''+json['error']['option'][i]+'
');
$('.option .text-danger').delay(5000).fadeOut();
uniFlyAlert('danger', json['error']['option'][i])
}
}
}
if (json['success']) {
cart.uniCartUpd();
if(!$('#unicheckout').length) {
if(!uniJsVars.cart_popup_disable) {
uniModalWindow('modal-cart', '', uniJsVars.modal_cart.text_heading, $('header').find('.header-cart__dropdown').html());
if(uniJsVars.cart_popup_autohide) {
setTimeout(() => {
$('#modal-cart').modal('hide');
}, uniJsVars.cart_popup_autohide_time * 1000);
}
}
}
dataLayer.push({
'event': 'addToCart',
'ecommerce':{
'currencyCode':uniJsVars.currency.code,
'add':{
'products':[json['products']]
}
}
});
if (typeof(gtag) === 'function') {
gtag('event', 'add_to_cart', {'items': [json['products']]});
}
if(uniJsVars.cart_btn.metric_id && uniJsVars.cart_btn.metric_target) {
if (typeof(ym) === 'function') {
ym(uniJsVars.cart_btn.metric_id, 'reachGoal', uniJsVars.cart_btn.metric_target);
} else {
new Function('yaCounter'+uniJsVars.cart_btn.metric_id+'.reachGoal(\''+uniJsVars.cart_btn.metric_target+'\')')();
}
}
if(uniJsVars.cart_btn.analytic_category && uniJsVars.cart_btn.analytic_action) {
if (typeof(gtag) === 'function') {
gtag('event', uniJsVars.cart_btn.analytic_action, {'event_category': uniJsVars.cart_btn.analytic_category});
} else if (typeof(ga) === 'function') {
ga('send', 'event', uniJsVars.cart_btn.analytic_category, uniJsVars.cart_btn.analytic_action);
}
}
}
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
},
'update': function(key, quantity, product_id) {
$.ajax({
url: $('base').attr('href')+'index.php?route=checkout/cart/edit',
type: 'post',
data: 'quantity['+key+']='+quantity,
dataType: 'html',
beforeSend: function() {
if(!$('#unicheckout').length) {
$('.header-cart__wrapper, .checkout-cart__wrap').append('
');
}
},
success: function() {
cart.uniCartUpd();
if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
$('#content').load('index.php?route=checkout/cart #content > *');
}
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
},
'remove': function(key, product_id) {
$.ajax({
url: $('base').attr('href')+'index.php?route=checkout/cart/remove',
type: 'post',
data: 'key='+key,
dataType: 'json',
beforeSend: function() {
if(!$('#unicheckout').length) {
$('.header-cart__wrapper, .checkout-cart__wrap').append('
');
}
},
success: function(json) {
cart.uniCartUpd();
if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
$('#content').load('index.php?route=checkout/cart #content > *');
}
$('.product-thumb__add-to-cart, .product-page__add-to-cart').each(function(){
if(product_id == $(this).data('pid')) {
$(this).removeClass('in_cart');
$(this).children('i').attr('class', uniJsVars.cart_btn.icon);
$(this).children('span').text(uniJsVars.cart_btn.text);
}
});
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
},
'uniCartUpd': function() {
$.get('index.php?route=common/cart/info', (data) => {
$('.header-cart__dropdown').html($(data).find('.header-cart__dropdown').html());
$('.header-cart__total-items, .fly-menu__cart-total').html($(data).find('.header-cart__total-items').text());
$('#modal-cart').length && $('#modal-cart .modal-body').html($(data).find('.header-cart__dropdown').html());
});
typeof(uniDelPageCache) === 'function' && uniDelPageCache();
$('#unicheckout').length && uniCheckoutUpdate();
}
}
var voucher = {
'add': function() {
},
'remove': function(key) {
$.ajax({
url: $('base').attr('href')+'index.php?route=checkout/cart/remove',
type: 'post',
data: 'key=' + key,
dataType: 'json',
beforeSend: function() {
if(!$('#unicheckout').length) {
$('.header-cart__wrapper, .checkout-cart__wrap').append('
');
}
},
success: function(json) {
cart.uniCartUpd();
if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
window.location = 'index.php?route=checkout/cart';
} else {
$('#cart > ul').load('index.php?route=common/cart/info ul li');
}
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
}
}
var wishlist = {
'add': function(product_id) {
$.ajax({
url: $('base').attr('href')+'index.php?route=account/wishlist/add',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
if (json['redirect']) {
window.location = json['redirect'];
}
if (json['success']) {
if(json['success'].indexOf('account/login') !== -1) {
uniFlyAlert('warning', json['success']);
} else {
uniFlyAlert('success', json['success']);
}
let wishlist_total = (json['success'].indexOf('account/login') == -1) ? json['total'].replace(/\s+/g, '').match(/(\d+)/g) : 0;
wishlist.uniWishlistUpd(wishlist_total);
}
}
});
},
'remove': function(product_id) {
$.ajax({
url: 'index.php?route=extension/module/uni_new_data/wishlistRemove',
type: 'post',
data: 'product_id='+product_id,
dataType: 'json',
success: function(json) {
if (json['success']) {
uniFlyAlert('warning', json['success']);
wishlist.uniWishlistUpd(json['total']);
$('.product-thumb__wishlist, .product-page__wishlist-btn').each(function() {
let pid = Number($(this).attr('onclick').replace(/\D+/g,''));
if(product_id == pid) {
$(this).attr('onclick', $(this).attr('onclick').replace('wishlist.remove', 'wishlist.add')).attr('title', uniJsVars.wishlist_btn.text).removeClass('active');
}
});
}
}
});
},
'uniWishlistUpd': function(total){
$('.fly-block__wishlist-total, .fly-menu__wishlist-total, .top-menu__wishlist-total, .header-wishlist__total-items').text(total);
if (typeof(uniDelPageCache) === 'function') {
uniDelPageCache();
}
$.get('index.php?route=account/wishlist', (data) => {
$('.top-menu__wishlist').data('products', $(data).find('.top-menu__wishlist').data('products'));
});
}
}
var compare = {
'add': function(product_id) {
$.ajax({
url: 'index.php?route=product/compare/add',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
if (json['success']) {
uniFlyAlert('success', json['success']);
$('#compare-total').html(' '+json['total']);
let compare_total = json['total'].replace(/\s+/g, '').match(/(\d+)/g);
compare.uniCompareUpd(compare_total);
}
}
});
},
'remove': function(product_id) {
$.ajax({
url: 'index.php?route=extension/module/uni_new_data/compareRemove',
type: 'post',
data: 'product_id='+product_id,
dataType: 'json',
success: function(json) {
if (json['success']) {
uniFlyAlert('warning', json['success']);
compare.uniCompareUpd(json['total']);
$('.product-thumb__compare, .product-page__compare-btn').each(function() {
let pid = Number($(this).attr('onclick').replace(/\D+/g,''));
if(product_id == pid) {
$(this).attr('onclick', $(this).attr('onclick').replace('compare.remove', 'compare.add')).attr('title', uniJsVars.compare_btn.text).removeClass('active');
}
});
}
}
});
},
'uniCompareUpd': function(total){
$('.fly-block__compare-total, .fly-menu__compare-total, .top-menu__compare-total, .header-compare__total-items').text(total);
if (typeof(uniDelPageCache) === 'function') {
uniDelPageCache();
}
$.get('index.php?route=product/compare', (data) => {
$('.top-menu__compare').data('products', $(data).find('.top-menu__compare').data('products'));
});
}
}
$(document).on('click', '.agree', function(e) {
e.preventDefault();
var element = this;
$.ajax({
url: $(element).attr('href'),
type: 'get',
dataType: 'html',
success: function(data) {
uniModalWindow('modal-agree', 'lg', $(element).text(), data);
}
});
});
function getURLVar(key) {
var value = [];
var query = String(document.location).split('?');
if (query[1]) {
var part = query[1].split('&');
for (i = 0; i < part.length; i++) {
var data = part[i].split('=');
if (data[0] && data[1]) {
value[data[0]] = data[1];
}
}
if (value[key]) {
return value[key];
} else {
return '';
}
}
}
(function($) {
$.fn.autocomplete = function(option) {
return this.each(function() {
this.timer = null;
this.items = new Array();
$.extend(this, option);
$(this).attr('autocomplete', 'off');
$(this).on('focus', function() {
this.request();
});
$(this).on('blur', function() {
setTimeout(function(object) {
object.hide();
}, 200, this);
});
$(this).on('keydown', function(event) {
switch(event.keyCode) {
case 27: // escape
this.hide();
break;
default:
this.request();
break;
}
});
this.click = function(event) {
event.preventDefault();
value = $(event.target).parent().attr('data-value');
if (value && this.items[value]) {
this.select(this.items[value]);
}
}
this.show = function() {
var pos = $(this).position();
$(this).siblings('ul.dropdown-menu').css({
top: pos.top + $(this).outerHeight(),
left: pos.left
});
$(this).siblings('ul.dropdown-menu').show();
}
this.hide = function() {
$(this).siblings('ul.dropdown-menu').hide();
}
this.request = function() {
clearTimeout(this.timer);
this.timer = setTimeout(function(object) {
object.source($(object).val(), $.proxy(object.response, object));
}, 200, this);
}
this.response = function(json) {
html = '';
if (json.length) {
for (i = 0; i < json.length; i++) {
this.items[json[i]['value']] = json[i];
}
for (i = 0; i < json.length; i++) {
if (!json[i]['category']) {
html += '' + json[i]['label'] + ' ';
}
}
var category = new Array();
for (i = 0; i < json.length; i++) {
if (json[i]['category']) {
if (!category[json[i]['category']]) {
category[json[i]['category']] = new Array();
category[json[i]['category']]['name'] = json[i]['category'];
category[json[i]['category']]['item'] = new Array();
}
category[json[i]['category']]['item'].push(json[i]);
}
}
for (i in category) {
html += '';
for (j = 0; j < category[i]['item'].length; j++) {
html += ' ' + category[i]['item'][j]['label'] + ' ';
}
}
}
if (html) {
this.show();
} else {
this.hide();
}
$(this).siblings('ul.dropdown-menu').html(html);
}
$(this).after('');
$(this).siblings('ul.dropdown-menu').delegate('a', 'click', $.proxy(this.click, this));
});
}
})(window.jQuery);