/*global $, lang, wwwroot, swal, moment */
function modal_init() {
'use strict';
var mtitle = $('#ajax_modal h1').html();
$('#ajax_modal h1').hide();
$('#modal_title').html(mtitle);
$('#ajax_modal .datepicker').datepicker();
$('#ajax_modal .time-mask').mask("99:99");
$('#ajax_modal [data-toggle="tooltip"]').tooltip();
$('#ajax_modal .spz').mask("SS AAAAA");
}
function modal_loading() {
'use strict';
$('#modal_title').html('Čakajte prosím');
$('#ajax_modal').html('
');
}
if (typeof moment !== 'undefined') {
moment.updateLocale('sk');
}
function init() {
'use strict';
document.addEventListener('scroll', function (e) {
var distanceY = window.pageYOffset || document.documentElement.scrollTop,
shrinkOn1 = 50,
nav = document.getElementById("top-gun"),
body = document.querySelector("body");
if (nav && distanceY > shrinkOn1) {
nav.className = "fixed";
body.className = "Site fixed";
} else if (nav) {
nav.className = "";
body.className = "Site";
}
}, {
passive: true
});
}
window.onload = init();
$(document).ready(function () {
'use strict';
$('.spz').mask("SS AAAAA");
// Zmena typu osoby
$("input[name='customer[user_type]']:radio").change(function () {
var value = $(this).val();
if (value === "súkromná osoba") {
$("#company_data").hide();
} else {
$("#company_data").show();
}
});
// Zmena platca dph
$("input[name='customer[company_vat]']:radio").change(function () {
var value = $(this).val();
if (value === "áno") {
$("#dic_div").hide();
$("#ic_dph_div").show();
} else {
$("#dic_div").show();
$("#ic_dph_div").hide();
}
});
// Dorucenie na inu ako fakturacnu adresu
$("#other_address").change(function () {
var checked = $(this).prop('checked');
if (checked) {
$("#shipping_address").show();
} else {
$("#shipping_address").hide();
}
});
// Iná krajina - fakturacna adresa
$("#invoice_country").change(function () {
var value = $(this).val();
if (value === 'iná krajina') {
$("#invoice_country_other").show();
} else {
$("#invoice_country_other").hide();
}
});
// Iná krajina - dodacia adresa
$("#shipping_country").change(function () {
var value = $(this).val();
if (value === 'iná krajina') {
$("#shipping_country_other").show();
} else {
$("#shipping_country_other").hide();
}
});
$('.datepicker').datepicker();
$('.time-mask').mask("99:99");
$('[data-toggle="tooltip"]').tooltip();
$.cookieBar({
fixed: true,
bottom: true,
message: 'Používaním týchto stránok súhlasíte s používaním cookies, ktoré nám pomáhajú zabezpečiť lepšie služby.',
acceptText: 'Rozumiem',
zindex: 100,
append: true
});
$('.match_height').matchHeight();
/* ********************* */
$("a.fancybox").fancybox({
afterClose: function () {
setTimeout(function () {
if ($('#modal_wrap').css('display') === 'block' && !$('body').hasClass('modal-open')) {
$('body').addClass('modal-open');
}
}, 1500);
}
});
/* ********************* */
$("body").delegate("a.external", "click", function () {
$(this).attr('target', '_blank').attr('rel', 'noopener');
});
/* MODAL */
$("body").delegate("a.modal-link", "click", function () {
var link = $(this).attr('href');
$('#modal_wrap').modal({
backdrop: 'static',
keyboard: true
});
modal_loading();
$.ajax({
type: "GET",
url: link,
success: function (html) {
$('#ajax_modal').html(html);
modal_init();
}
});
return false;
});
/* AJAX LINK */
$("body").delegate("a.ajax-link", "click", function () {
var link = $(this).attr('href');
$('#loading').html('');
$.ajax({
type: "GET",
url: link,
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
if (selector === 'action' && content === 'refresh') {
setTimeout(function () {
location.reload();
}, 500);
} else {
$(selector).html(content);
}
});
}
});
return false;
});
/* AJAX FORM */
$("body").delegate("form.ajax", "submit", function () {
var form = $(this);
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize('input.ajax'),
dataType: 'json',
success: function (response) {
$.each(response, function (selector, html) {
if (selector === 'action' && html === 'refresh') {
setTimeout(function () {
location.reload();
}, 1000);
} else if (selector === 'remove') {
$.each(html, function (key, remove_id) {
$(remove_id).remove();
});
} else if (selector === 'action' && html === 'close') {
$('#modal_wrap, #modal_servis').modal('hide');
} else if (selector === 'redirect') {
window.location.replace(html);
} else {
$(selector).html(html);
}
});
modal_init();
}
});
return false;
});
/* /AJAX FORM */
/* ************************************************************* */
$("body").delegate("select.variant", "change", function () {
var $form = $(this).closest('form');
$.ajax({
type: "POST",
url: $form.attr('action'),
data: $form.serialize() + '&add[variants]=1',
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
$(selector).html(content);
});
}
});
});
/* ************************************************************* */
$("body").delegate("form.variants", "submit", function (e) {
e.preventDefault();
var form = $(this);
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(),
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
if (selector === 'redirect') {
window.location.replace(content);
} else {
$(selector).html(content);
}
});
}
});
});
/* ************************************************************* */
$("#cart").delegate("select.qty, input.shipping, input.payment", "change", function () {
var $form = $('#cart');
$.ajax({
type: "POST",
url: $form.attr('action'),
data: $form.serialize(),
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
if (selector === 'offer_servis' && content === 1) {
var link = wwwroot + 'servis?ref=nakupny-kosik';
$('#modal_servis').modal({
backdrop: 'static',
keyboard: true
});
$.ajax({
type: "GET",
url: link,
success: function (html) {
$('#ajax_modal_servis').html(html);
var mstitle = $('#ajax_modal_servis h1').html();
$('#ajax_modal_servis h1').hide();
$('#modal_servis_title').html(mstitle);
$('form#reservForm').addClass('ajax');
$("body").delegate("select#typ_servisu", "change", function () {
var data_string = 'typ_servisu=' + $(this).val();
$.ajax({
type: "POST",
url: wwwroot + 'servis/terms',
data: data_string,
dataType: 'json',
success: function (response) {
$('#free_terms').html(response.free_terms);
$('#druh_vozidla_select').html(response.druh_vozidla_select);
}
});
return false;
});
$('#modal_servis').on('hidden.bs.modal', function (e) {
$.ajax({
type: "GET",
url: wwwroot + 'nakupny-kosik?offer_servis=2',
});
});
}
});
} else {
$(selector).html(content);
}
});
}
});
});
/* ************************************************************* */
// RANGE SLIDERS
/* ************************************************************* */
var $range = $(".js-range-slider");
var $filters_form = $range.closest("form.filters");
var btnClass = 'animated tada';
var formUrl = $filters_form.attr('action');
var formData = $filters_form.serialize();
$range.ionRangeSlider({
postfix: " €",
onFinish: function (data) {
$('#price_from').html(data.from);
$('#price_to').html(data.to);
formData = $filters_form.serialize();
$filters_form.find('select, button').prop('disabled', true);
$.ajax({
type: "POST",
url: formUrl,
data: formData + '&range=1',
dataType: 'json',
success: function (response) {
$filters_form.find('select, button').prop('disabled', false);
window.history.pushState('page2', 'Title', response.url);
$.each(response, function (selector, content) {
$(selector).html(content);
});
$('#filters-btn').addClass(btnClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$(this).removeClass(btnClass);
});
}
});
}
});
let my_range = $range.data("ionRangeSlider");
/* ************************************************************* */
// FORM FILTERS (CATEGORY, SEARCH)
/* ************************************************************* */
$("body").delegate("form.filters select, form.filters input:checkbox", "change", function () {
var btnClass = 'animated tada',
$form = $(this).closest("form.filters"),
formData = $form.serialize();
$form.find('select, button').prop('disabled', true);
$.ajax({
type: "POST",
url: $form.attr('action'),
data: formData + '&range=0',
dataType: 'json',
success: function (response) {
$form.find('select, button').prop('disabled', false);
window.history.pushState('page2', 'Title', response.url);
$.each(response, function (selector, content) {
if (selector == 'range_slider') {
my_range.update({
min: content.min,
max: content.max,
from: content.from,
to: content.to
});
}
else {
$(selector).html(content);
}
});
$form.find('button').addClass(btnClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$(this).removeClass(btnClass);
});
$('[data-toggle="tooltip"]').tooltip();
}
});
});
/* ************************************************************* */
/*$("body").delegate("form.filters select", "change", function () {
var btnClass = 'animated tada',
form = $(this).closest("form"),
formData = form.serialize();
form.find('select').prop('disabled', true);
form.find('button').prop('disabled', true);
$.ajax({
type: "POST",
url: form.attr('action'),
data: formData,
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
$(selector).html(content);
});
form.find('button').addClass(btnClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$(this).removeClass(btnClass);
});
}
});
});*/
/*$("body").delegate("form.product-selector select", "change", function () {
formData = $filters_form.serialize();
$('form.product-selector select').prop('disabled', true);
$('form.product-selector button').prop('disabled', true);
$.ajax({
type: "POST",
url: formUrl,
data: formData,
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
$(selector).html(content);
});
$('#filters-btn').addClass(btnClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$(this).removeClass(btnClass);
});
}
});
});*/
/* ************************************************************* */
// HOME PAGE filter
var form_selector = '.home-filters';
$("body").delegate(form_selector + " select", "change", function () {
var btnClass = 'animated tada',
form = $(this).closest("form"),
formData = form.serialize();
form.find('select').prop('disabled', true);
form.find('button').prop('disabled', true);
$.ajax({
type: "POST",
url: wwwroot,
data: formData,
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
$(selector).html(content);
});
form.find('button').prop('disabled', false).addClass(btnClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$(this).removeClass(btnClass);
});
}
});
});
/* ************************************************************* */
$("body").delegate("form.cart", "submit", function () {
var form = $(this);
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(),
dataType: 'json',
success: function (response) {
$.each(response, function (selector, content) {
// presmerovanie na kosik
if (selector === 'location') {
window.location.href = wwwroot + content;
} else if (selector === 'alert') {
// zobrazenie medziokna
swal({
title: content.title,
html: content.text,
showCloseButton: true,
showConfirmButton: false,
width: 600,
animation: false,
customClass: 'animated fadeInDownBig'
}, function (isConfirm) {
if (!isConfirm) {
window.location.href = wwwroot + "nakupny-kosik";
}
});
$('[data-toggle="tooltip"]').tooltip();
} else {
// nastavenie html do zvoleneho prvku
$(selector).html(content);
}
});
}
});
return false;
});
/* *** */
$('.carousel-brands').slick({
slidesToShow: 7,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 2000,
arrows: true,
dots: false,
pauseOnHover: true,
pauseOnFocus: false,
prevArrow: '',
nextArrow: '',
responsive: [{
breakpoint: 768,
settings: {
slidesToShow: 3
}
}, {
breakpoint: 520,
settings: {
slidesToShow: 2
}
}]
});
/* *** */
});