function formatToNumber(inp) { return +(String(inp).replace(/\s+/g, '').replace(',', '.')); } function formatToPrice(inp, currencySign) { var currencySign = currencySign || 'zł'; var formattedNumber = formatToNumber(inp).toFixed(2); if (currencySign == 'zł') { return formattedNumber + ' ' + currencySign; } else { return currencySign + ' ' + formattedNumber; } } function checkScroll() { var _scroll = $(window).scrollTop(); var _wheight = $(window).height(); var _menuheight = 0; // _wheight - $('header.header').outerHeight(); if( _scroll > _menuheight && $(window).width() > 767 ){ $('header.header').addClass("moved"); $('.to-top').addClass("moved"); } else { $('header.header').removeClass("moved"); $('.to-top').removeClass("moved"); } } function isOnScreen(elem) { var $elem = $(elem); var $window = $(window); var docViewTop = $window.scrollTop(); var docViewBottom = docViewTop + $window.height(); var elemTop = $elem.offset().top; var elemBottom = elemTop + $elem.height(); return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); } function recaptchaCallback() { $('.g-recaptcha').addClass('confirmed'); } $(function () { $(".lang-select .chevron").on("click", function(e){ e.preventDefault(); $(".lang-select .select").toggleClass("on"); }); $('.main-photo a.image, .more-photos a.image, .boxlight').lightbox(); $('.show-submenu').on("click", function(e){ e.preventDefault(); $(".submenu").toggleClass("on"); $(this).toggleClass("active"); setTimeout( function(){ $(".submenu a").on("click", function(e){ e.stopPropagation(); console.log("Stop pr"); }); $("body").on("click", function(e){ e.preventDefault(); $(".submenu").removeClass("on"); $(".show-submenu").removeClass("active"); $(this).unbind("click"); }); }, 100); }); $(".news-line .item").on("click", function(E){ E.preventDefault(); var link = $(this).attr("data-href"); top.location.href = link; }); $('.side-widget .call-form').click(function(e){ e.preventDefault(); if( $('.side-widget').hasClass("on") ) { } else { $('.side-widget form .thanks, .side-widget form .loading').hide(); $('.side-widget form .sender').show(); } $('.side-widget').toggleClass("on"); }); $('.section-flex .text[data-click]').click(function(){ var trg = $(this).attr("data-click"); $('#' + trg).addClass("on"); $('#popupForm .inner').click(function(e){ e.preventDefault(); e.stopPropagation(); }); $('#popupForm').click(function(e){ $('#popupForm').removeClass("on"); }); }); $('.check-control').click(function(e){ e.preventDefault(); if( $('#check-me').prop("checked") == true) { $('#check-me').prop("checked", false); } else { $('#check-me').prop("checked", "checked"); } }); $('.side-widget .btn-close').click(function(e){ e.preventDefault(); $('.side-widget').removeClass("on"); }); $('.contactForm').on('submit', function(evt){ evt.preventDefault(); $(this).find(".thanks").hide(); good = true; errorContent = ''; if ( $('.g-recaptcha').hasClass('confirmed') ) { } else { $('.g-recaptcha').addClass('error'); errorContent += ' • Zaznacz "Nie jestem robotem"
'; good = false; } if ( $('#check-me').prop("checked") ) { //good } else { good = false; errorContent += ' • Wymagane oświadczenie zapoznania się z Polityką Prywatności'; } if ( good ){ $.post( $(this).attr('action'), $(this).serialize(), (function(response){ if (response.indexOf('false') === -1) { $(this).find('input, textarea').val(''); $(this).find(".thanks").show(); } else { $.alert({ title: "Uups", content: "Niestety, wystąpił błąd. Spróbuj ponownie." }); } }).bind(this)); } else { $.alert({ title: "Uups", content: errorContent }); } }); $('#contactFormSend').on('submit', function(evt) { evt.preventDefault(); good = true; _this = $(this); if (good) { $(this).find("button").prop("disabled", "disabled").text("wysyłanie..."); var formData = new FormData($(this)[0]); $.ajax({ url: $(this).attr('action'), type: 'POST', data: formData, async: false, success: function (data) { //alert(data) _this.find('input, textarea').val(''); _this.find('p.ajaxInfo.ok').show(); _this.find("button").removeProp("disabled").hide(); }, error: function (data) { _this.find('p.ajaxInfo.error_send').show(); }, cache: false, contentType: false, processData: false }); } else { $(this).find('p.ajaxInfo.error').show(); } }); var startSlider = $('.slider').owlCarousel({ items: 1, autoplayHoverPause: false, autoplay: true, autoplayTimeout: 4000, smartSpeed: 1000, animateIn: "fadeIn", animateOut: "fadeOut", drag: false, mouseDrag: true, loop: true, nav: false, dots: true, navText: ['',''] }).addClass("owl-carousel"); var carouselGal = $('.carousel-gallery').owlCarousel({ items: 3, responsive: { 0: { items: 2, nav: false }, 800: { items: 3, nav: false }, 1200: { items: 4, nav: true } }, autoplayHoverPause: false, autoplay: false, autoplayTimeout: 3500, animateIn: "fadeIn", animateOut: "fadeOut", drag: false, margin: 20, mouseDrag: true, loop: false, dots: true, navText: ['',''] }).addClass("owl-carousel"); var carouselNews = $('.news-carousel').owlCarousel({ items: 2, responsive: { 0: { items: 1, nav: false }, 1200: { items: 2, nav: true } }, autoplayHoverPause: true, autoplay: false, autoplayTimeout: 3500, drag: true, margin: 20, mouseDrag: true, loop: false, dots: false, navText: ['',''] }).addClass("owl-carousel"); $('.slider-nav .nav-right').click(function() { carouselGal.trigger('next.owl.carousel'); }) $('.slider-nav .nav-left').click(function() { carouselGal.trigger('prev.owl.carousel'); }) $('.menucall').click(function(e){ e.preventDefault(); $(this).toggleClass("on"); $('.main-header nav').toggleClass("on"); $('body').toggleClass("blocked"); if( $(this).find(".fa-bars").length ) { $(".menucall .fa-bars").removeClass("fa-bars").addClass("fa-times"); } else { $(".menucall .fa-times").removeClass("fa-times").addClass("fa-bars"); } }); $(".to-top").click(function(e){ e.preventDefault(); $('body, html').animate({ scrollTop: 0 }, 1000); }); $(window).scroll(function(e){ checkScroll(); }); }); // init checkScroll(); /* SHOP */ var form = $('#zamowienieForm'); var tableDelivery = $('.tableDelivery'); var tablePayment = $('.tablePayment'); var invoiceSwitch = $('#zamowienieForm input[name="invoice"]'); var invoiceContent = $('.js--invoiceContent'); var copyToInvoice = $('.js--copyToInvoice'); var need_full_address = true; var full_address_fields = [form.find('[name="street"]'), form.find('[name="number"]'), form.find('[name="zipCode"]'), form.find('[name="town"]')]; var full_address_field_names = ['street', 'number', 'zipCode', 'town']; var payment_tables = {}; var summary_elems = { delivery: form.find('#order-summary-delivery'), payment: form.find('#order-summary-payment'), address: form.find('#order-summary-address'), invoice: form.find('#order-summary-invoice'), invoice_wrap: form.find('#order-summary-invoice-wrap') }; var getFormatted = (function() { var row_template = form.find('#order-summary-address .template'); var fieldNames = ['name', 'surname', 'street', 'town', 'number']; var fieldNamesCompany = ['company', 'nip', 'invoice_street', 'invoice_number', 'invoice_zipCode', 'invoice_town']; var delivery = function() { var shipping_input = form.find('[name="shipping_id"]:checked'); var table = shipping_input.closest('table'); var details_html = table.find('.tableDelivery--details label').eq(0).text(); var image_html = table.find('.tableDelivery--img img').html(); var point = table.find('.shipping-point-label'); if (point.length > 0 && point.text()) { details_html += '
' + point.text() + ''; } return details_html; }; var payment = function() { var payment_input = form.find('[name="payment_id"]:checked'); var table = payment_input.closest('table'); var details_html = table.find('.tablePayment--label').html(); var image_html = table.find('.tablePayment--img img').html(); return details_html.replace('(nie podano)'; var field_label = field.closest('.row').find('label').text(); var row = row_template.clone().removeClass('hidden'); row.find('.field-name').html(field_label); row.find('.field-value').html(field_value); html += row[0].outerHTML; }); return html; }; var invoice = function() { var html = ''; $(fieldNamesCompany).each(function(_ignore, field_name) { var field = form.find('[name="' + field_name + '"]'); var field_value = field.val().trim() || '(nie podano)'; var field_label = field.closest('.row').find('label').text(); var row = row_template.clone().removeClass('hidden'); row.find('.field-name').html(field_label); row.find('.field-value').html(field_value); html += row[0].outerHTML; }); return html; }; return { delivery: delivery, payment: payment, address: address, invoice: invoice }; }()); var updateSummaryInfo = function() { var has_invoice = form.find('input[name="invoice"]:checked').val() === 'true'; summary_elems.delivery.html(getFormatted.delivery()); summary_elems.payment.html(getFormatted.payment()); summary_elems.address.html(getFormatted.address()); if (has_invoice) { summary_elems.invoice_wrap.removeClass('hidden'); summary_elems.invoice.html(getFormatted.invoice()); } else { summary_elems.invoice_wrap.addClass('hidden'); summary_elems.invoice.html(''); } }; var validateDeliverySubservices = (function() { var validate_map = { inpost: 'inpost-point', pp: 'poczta-point', pwr: 'pwr-point', }; var subserviceValidate = function(type) { var $table = form.find('[name="' + validate_map[type] + '"]').closest('.tableDelivery'); var val; $table.find('.shipping-subservice-error').fadeOut(250); if (String(type).trim().length === 0) { return true; } if (!validate_map[type]) { return false; } val = form.find('[name="' + validate_map[type] + '"]').val(); if (String(val).trim().length < 1) { $("html, body").stop().animate({ scrollTop: $table.offset().top - 100 }, '500', 'swing', function() { $table.find('.shipping-subservice-error').fadeIn(250); }); return false; } return true; }; return subserviceValidate; }()); var needFullAddressUpdate = function() { if (need_full_address) { $(full_address_fields).each(function() { $(this).closest('.row').addClass('required'); }); } else { $(full_address_fields).each(function() { $(this).closest('.row').removeClass('required'); }); } }; var copyInvoice = function() { var dataToCopy = ['street', 'number', 'zipCode', 'town']; dataToCopy.forEach(function(item) { var name = $('[name="' + item + '"]'); var nameValue = name.val(); var invoiceName = $('[name="invoice_' + item + '"]'); invoiceName.val(nameValue); }); }; var updatePayments = function(payments) { var keys = Object.keys(payment_tables); var current_id_payment = form.find('[name="payment_id"]:checked').val(); keys.forEach(function(id_payment) { if (payments.indexOf(String(id_payment)) > -1) { payment_tables[id_payment].show(); } else { payment_tables[id_payment].hide(); } }); if (payments.indexOf(String(current_id_payment)) === -1) { payment_tables[payments[0]].find('[name="payment_id"]').prop('checked', true).trigger('change'); } }; var setupPaymentTables = function() { payment_tables = {}; form.find('[name="payment_id"]').each(function() { var id_payment = +$(this).val(); payment_tables[id_payment] = $(this).closest('.tablePayment'); }); }; var validateOrderDelivery = function(show_errors) { var checked_delivery_input = form.find('[name="shipping_id"]:checked'); var subservice = checked_delivery_input.data('service'); if (checked_delivery_input.length !== 1 || (String(subservice).length > 0 && !validateDeliverySubservices(subservice))) { if (show_errors) { checked_delivery_input.closest('table').addClass('error'); } return false; } return true; }; var validateOrderPayment = function(show_errors) { var checked_payment_input = form.find('[name="payment_id"]:checked'); var id_payment = String(checked_payment_input.val()); var checked_delivery_input = form.find('[name="shipping_id"]:checked'); var payments = String(checked_delivery_input.data('payments')).split(','); if (payments.indexOf(id_payment) === -1) { if (show_errors) { checked_payment_input.closest('table').addClass('error'); } return false; } return true; }; var validateOrderAddress = function(show_errors, dont_check_checkbox) { var i, obj; var good = true; var invoiceInput = form.find('input[name="invoice"]:checked').val(); var fieldNames = ['name', 'surname', 'street', 'town', 'number']; var fieldNamesCompany = ['company', 'nip', 'invoice_street', 'invoice_number', 'invoice_zipCode', 'invoice_town']; if (/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(form.find('[name="email"]').val()) == false) { good = false; if (show_errors) { form.find('[name="email"]').addClass('error'); } } if (dont_check_checkbox !== true) { if (form.find('[name="regulamin"]').prop('checked') === false) { good = false; if (show_errors) { form.find('[name="regulamin"]').addClass('error'); } } } if (form.find('[name="phone"]').val().replace(/[^\d+]/gi, '').length < 9) { good = false; if (show_errors) { form.find('[name="phone"]').addClass('error'); } } if (need_full_address && full_address_field_names.indexOf('zipCode') > -1) { if (/^[\d]{2}-[\d]{3}$/.test(form.find('[name="zipCode"]').val()) === false) { good = false; if (show_errors) { form.find('[name="zipCode"]').addClass('error'); } } } if ($('#r_invoice').prop('checked')) { fieldNames.push('company'); if (!validatenip(form.find('[name="nip"]').val())) { good = false; if (show_errors) { form.find('[name="nip"]').addClass('error'); } } } for (i = 0; i < fieldNames.length; i++) { obj = form.find('[name="' + fieldNames[i] + '"]'); if ((need_full_address && full_address_field_names.indexOf(fieldNames[i]) > -1) || full_address_field_names.indexOf(fieldNames[i]) === -1) { if (obj.val().length < 1) { good = false; if (show_errors) { obj.addClass('error'); } } } } if (invoiceInput == 'true') { for (i = 0; i < fieldNamesCompany.length; i++) { obj = form.find('[name="' + fieldNamesCompany[i] + '"]'); if (obj.val().length < 1) { good = false; if (show_errors) { obj.addClass('error'); } } } } if (good === false) { if (show_errors) { form.find('p.ajaxInfo.error_send').show(); } return false; } return true; }; var validateOrderFrom = function() { var address_validation; var delivery_validation; var payment_validation; form.find('.error').removeClass('error'); form.find('p.ajaxInfo').hide(); address_validation = validateOrderAddress(true); delivery_validation = validateOrderDelivery(true); payment_validation = validateOrderPayment(true); if (!address_validation || !delivery_validation || !payment_validation) { return false; } return true; }; var updateSumPrice = function() { var shipping_input = tableDelivery.find('input:checked'); var payment_input = tablePayment.find('input:checked'); var shipment_price = parseFloat(shipping_input.attr('rel')); var shipment_currency_sign = shipping_input.data('currency-sign'); var payment_fee = parseFloat(payment_input.data('fee')); var payment_multiplier = 1 + (payment_fee / 100); var orderWorth = parseFloat($('.orderWorth').val()); //var payment_value = (orderWorth + shipment_price) * (payment_fee / 100); var payment_value = payment_fee; //var ow = (orderWorth + shipment_price) * payment_multiplier; var ow = (orderWorth + shipment_price) + payment_fee; if (payment_fee > 0) { $('#paymentRow').removeClass('hidden'); } else { $('#paymentRow').addClass('hidden'); } $('#shippingRow .shippingPrice').text(formatToPrice(shipment_price, shipment_currency_sign)); //$('#paymentRow .paymentPrice').text(payment_fee + '%'); $('#paymentRow .paymentPrice').text(payment_fee + ' zł'); $('#paymentRow .paymentPriceValue').text(formatToPrice(payment_value, shipment_currency_sign)); $('.cena_sum').text(formatToPrice(ow, shipment_currency_sign)); }; var toggleOrderDiscount = function(show) { if (show) { $('#discountRow').show(); $('.orderWorth').val($('.orderWorth').data('discount')); } else { $('#discountRow').hide(); $('.orderWorth').val($('.orderWorth').data('normal')); } updateSumPrice(); }; if (form.length !== 1) { //return false; } $('[data-toggle="tooltip"]').tooltip(); $('#zamowienieForm input[name="shipping_id"]').on('change', function() { var closestTable = $(this).closest('table'); var shipmentPrice = parseFloat($(this).attr('rel')); tableDelivery.removeClass('is-active'); closestTable.addClass('is-active'); if (+$(this).data('full-address') === 0) { need_full_address = false; } else { need_full_address = true; } needFullAddressUpdate(); updatePayments(String($(this).data('payments')).split(',')); updateSumPrice(); }); $('#zamowienieForm input[name="payment_id"]').on('change', function(evt) { var fee = +$(this).data('fee'); var closestTable = $(this).closest('table'); tablePayment.removeClass('is-active'); closestTable.addClass('is-active'); updateSumPrice(); }); $('#zamowienieForm').on('submit', function(evt) { if (!validateOrderFrom()) { evt.preventDefault(); return false; } }); $(document).on('click tap', '.tableDelivery .input-toggle-on-click', function(evt) { var input; var closestTable = $(this).closest('table'); if (evt.target.tagName.toLowerCase() !== 'input' && evt.target.tagName.toLowerCase() !== 'label') { input = $(this).find('input[type="radio"]'); input.prop('checked', true).trigger('change'); } tableDelivery.removeClass('is-active'); closestTable.addClass('is-active'); }); $(document).on('click tap', '.tablePayment .input-toggle-on-click', function(evt) { var input; var closestTable = $(this).closest('table'); if (evt.target.tagName.toLowerCase() !== 'input' && evt.target.tagName.toLowerCase() !== 'label') { input = $(this).find('input[type="radio"]'); input.prop('checked', true).trigger('change'); } tablePayment.removeClass('is-active'); closestTable.addClass('is-active'); }); invoiceSwitch.change(function() { invoiceContent.slideToggle(250); copyInvoice(); if ($(this).val() === 'true') { toggleOrderDiscount(false); } else { toggleOrderDiscount(true); } }); copyToInvoice.change(function() { var dataToCopy = ['street', 'number', 'zipCode', 'town']; if (!$(this).is(':checked')) { return; } dataToCopy.forEach(function(item) { var name = $('[name="' + item + '"]'); var nameValue = name.val(); var invoiceName = $('[name="invoice_' + item + '"]'); invoiceName.val(nameValue); }); }); (function() { var $step_buttons = form.find('.goto-step'); var $step_1 = form.find('.step-1'); var $step_2 = form.find('.step-2'); var $step_3 = form.find('.step-3'); var steps = { 1: $step_1, 2: $step_2, 3: $step_3 }; var $next_step = $step_1.find('.goto-step-2'); var $prev_step = $step_1.find('.goto-step-1'); var validateStep_1 = function() { var delivery_validation; var payment_validation; form.find('.error').removeClass('error'); form.find('p.ajaxInfo').hide(); delivery_validation = validateOrderDelivery(true); payment_validation = validateOrderPayment(true); if (!delivery_validation || !payment_validation) { return false; } return true; }; $step_buttons.on('click tap', function() { var step = +$(this).data('step'); var update_active = false; if (!steps[step]) { return false; } if (step === 1) { update_active = true; } else if (step === 2) { if (validateStep_1()) { update_active = true; } } else if (step === 3) { if (validateOrderAddress(true, true)) { update_active = true; updateSummaryInfo(); } } if (update_active) { $step_1.removeClass('active'); $step_2.removeClass('active'); $step_3.removeClass('active'); steps[step].addClass('active'); $('html, body').animate({ scrollTop: steps[step].offset().top - $('.top-links').outerHeight() }, 500); } }); $next_step.on('click tap', function() { if (validateStep_1()) { $step_1.removeClass('active'); $step_2.addClass('active'); $('html, body').animate({ scrollTop: $step_2.offset().top - $('.top-links').outerHeight() }, 500); } }); $prev_step.on('click tap', function() { $step_1.addClass('active'); $step_2.removeClass('active'); $('html, body').animate({ scrollTop: $step_1.offset().top - $('.top-links').outerHeight() }, 500); }); $('.add-comment-toggle').on('click', function() { $('.order-comment').slideToggle(300); }); }()); setupPaymentTables(); $('#zamowienieForm input[name="shipping_id"]:checked').trigger('change'); // END OF SHOP