$(function() { var basket = new ArtboxBasket({ 'cartSelector': '#cart' }); /** * Modal form submit code */ $(document) .on('beforeSubmit', '#feedback-form', function(e) { var f = this; var form = $(this); var formData = form.serialize(); $.ajax({ url: form.attr("action"), type: form.attr("method"), data: formData, success: function(data) { f.reset(); $('#feedback-modal') .modal('hide'); $('#success-modal') .modal('show'); }, error: function() { $('#feedback-modal') .modal('hide'); } }); }) .on('submit', '#feedback-form', function(e) { e.preventDefault(); }); /** * Contact form submitting */ $(document) .on('beforeSubmit', '#contact-form', function(e) { var f = this; var form = $(this); var formData = form.serialize(); $.ajax({ url: form.attr("action"), type: form.attr("method"), data: formData, success: function(data) { f.reset(); form.replaceWith(data.alert); }, error: function() { } }); }) .on('submit', '#contact-form', function(e) { e.preventDefault(); }); /** * Button UP code */ if ($('#back-to-top').length) { var scrollTrigger = 100, // px backToTop = function() { var scrollTop = $(window) .scrollTop(); if (scrollTop > scrollTrigger) { $('#back-to-top') .addClass('show'); } else { $('#back-to-top') .removeClass('show'); } }; backToTop(); $(window) .on('scroll', function() { backToTop(); }); $('#back-to-top') .on('click', function(e) { e.preventDefault(); $('html,body') .animate({ scrollTop: 0 }, 700); }); } $(document) .on('click', '.add-to-basket', function(e) { e.preventDefault(); var id = $(this) .data('id'); var xhr = basket.add(id, 1); xhr.done(function() { $.pjax.reload({ container: '#basket-modal', fragment: '#basket-modal', timeout: 5000 }); }); if ($('.alert-cart').length > 0) { } else { $('body') .prepend($("
Товар добавлен в корзину.
")); setTimeout(function() { $(".alert-cart") .addClass("active"); }, 100); setTimeout(function() { $(".alert-cart") .removeClass("active"); }, 3500); setTimeout(function() { $(".alert-cart") .remove(); }, 3600); } }); $(document) .on('click', '.remove-product-cart', function(e) { e.preventDefault(); var id = $(this) .parents('.product-row-basket') .data('id'); showLoader('#basket'); var xhr = basket.remove(id); xhr.done(function() { $.pjax.reload({ container: '#basket', fragment: '#basket', timeout: 5000 }); }) }); $(document) .on('change', '.increase-product-basket', function(e) { var id = $(this) .parents('.product-row-basket') .data('id'); showLoader('#basket'); showLoader('#basket-modal'); var xhr = basket.set(id, $(this) .val()); xhr.done(function() { if ($('#basket').length) { $.pjax.reload({ container: '#basket', fragment: '#basket', timeout: 5000 }); } $.pjax.reload({ container: '#basket-modal', fragment: '#basket-modal', timeout: 5000 }); }); }); $(document) .on('click', 'li.disabled a', function(e) { e.preventDefault(); }); $(document) .on('submit', '#fast-buy-form', function(e) { e.preventDefault(); }); $(document) .on('afterValidate', '#fast-buy-form', function(e, m, errors) { if (!errors.length) { var form = $(e.target); var action = form.attr('action'); $.post(action, form.serialize(), function(data) { if (data.success) { $('#oneclick-modal') .find('.modal-body') .text(data.msg); } }); } }.bind(this)); $(document) .on( 'click', '.wishlist-rm, .wishlist-add', function() { var button = $(this); $.ajax( { url: button.data('url'), type: "POST", data: { 'variant': button.data('variant'), 'product': button.data('product'), 'user': button.data('user') }, success: function(data) { button.replaceWith(data.button); new PNotify( { title: 'Info', text: data.message, type: 'info', styling: 'fontawesome' } ); } } ) } ); $(document) .on( 'click', '.wishlist-delete', function(e) { e.preventDefault(); var button = $(this); $.ajax( { url: button.data('url'), type: "POST", data: { 'product': button.data('product'), 'variant': button.data('variant'), 'user': button.data('user') }, success: function(data) { if (data.success) { $.pjax.reload({container: '#wishlist-products'}); new PNotify( { title: 'Info', text: data.message, type: 'info', styling: 'fontawesome' } ); } } } ); } ); $(document).on('click', '.sort-cat>a', function(e){ $(this).parent().toggleClass("active"); return false; }); $(document).on('click', '.sorter li a', function(e){ var sortclick = $(this).text(); parentsort = $(".sort-cat a span"); pstext = $(parentsort).text(); mainlink = $(".sort-cat a").attr('href'); newmainlink = $(this).attr('href'); $(parentsort).text(sortclick); $(".sort-cat>a").attr('href', newmainlink); $(this).text(pstext); $(this).attr('href', mainlink); $(".sort-cat>a").click(); $(location).attr('href',newmainlink); return false; }); // Price slider $('.price-inputs input') .keypress(function(key) { if (key.charCode < 48 || key.charCode > 57) { return false; } }); var priceSlider = $(".price_slider input"); var pricemin = priceSlider.data("pricemin"); var pricemax = priceSlider.data("pricemax"); var currentMin = priceSlider.data("currentmin"); var currentMax = priceSlider.data("currentmax"); $(".price-inputs #price-min") .val(currentMin); $(".price-inputs #price-max") .val(currentMax); $("#price_interval") .ionRangeSlider({ type: "double", min: pricemin, max: pricemax, from: currentMin, to: currentMax, onChange: function(data) { $(".price-inputs #price-min") .val(data.from); $(".price-inputs #price-max") .val(data.to); } }); var slider = $("#price_interval") .data("ionRangeSlider"); $(document) .on('change', '.price-inputs #price-min', function() { var newmin = $(this) .val(); currentmax = $(".price-inputs #price-max") .val(); if (newmin > currentmax) { newmin = currentmax; $('.price-inputs #price-min') .val(currentmax); } else if (newmin > pricemax) { newmin = pricemax; $('.price-inputs #price-min') .val(pricemax); } slider.update({from: newmin}); }); $(document) .on('change', '.price-inputs #price-max', function() { var newmax = $(this) .val(); currentmin = $(".price-inputs #price-min") .val(); if (newmax < currentmin) { newmax = currentmin; $('.price-inputs #price-max') .val(currentmin); } else if (newmax > pricemax) { newmax = pricemax; $('.price-inputs #price-max') .val(pricemax); } slider.update({to: newmax}); }); $(document) .on('click', '.price-apply', function() { var max = $('#price-max') .val(); var min = $('#price-min') .val(); console.log(max, min); var href = window.location.href; var question = href.indexOf('?'); if (question !== -1) { var queryString = href.substr(question); href = href.substr(0, question); } var count = 0; var pos = -1; while ((pos = href.indexOf('/', pos + 1)) !== -1) { count++; } if (count === 5) { window.location.href = href + '/price-' + min + '-' + max + queryString; } else { var result = href.match(/\/[^\/]*price-(\d+)-(\d+)$/); if (result) { window.location.href = href.replace(/(\/[^\/]*)price-\d+-\d+$/, '$1price-' + min + '-' + max) + queryString; } } }); // End of price slider $('.vcovers') .perfectScrollbar({wheelSpeed: 0.5}); }); function showLoader(container) { $(container) .prepend('
'); }