var placeSearch, autocomplete, btnScroll = false, checkbenifitsCounter = 0, checkbenifitsMs = 850, DeliveryUser = { orderId: 0, deliveryType: 'courier', selectedPromos: [], userBalance: 0 }, startCheckbenifitsCounter = function () { checkbenifitsCounter = 0; } Array.prototype.insert = function (index, item) { this.splice(index, 0, item); }; var isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/); var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; function isNumber(evt) { evt = (evt) ? evt : window.event; var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } return true; } function getCurrentTimeSecounds() { var d = new Date(); var h = d.getHours() * 3600; var m = (d.getMinutes() / 60) * 3600; return h + m; } function convertSecondsToTime(seconds) { const hours = Math.floor(seconds / 3600); const remainingSeconds = seconds % 3600; const minutes = Math.floor(remainingSeconds / 60); const formattedHours = String(hours).padStart(2, '0'); const formattedMinutes = String(minutes).padStart(2, '0'); return `${formattedHours}:${formattedMinutes}`; } function removeURLParameter(url, parameter) { //prefer to use l.search if you have a location/link object var urlparts = url.split('?'); if (urlparts.length >= 2) { var prefix = encodeURIComponent(parameter) + '='; var pars = urlparts[1].split(/[&;]/g); //reverse iteration as may be destructive for (var i = pars.length; i-- > 0;) { //idiom for string.startsWith if (pars[i].lastIndexOf(prefix, 0) !== -1) { pars.splice(i, 1); } } return urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : ''); } return url; } function getTimeLeftString(open) { var minleft = (open - getCurrentTimeSecounds()) / 60; if (minleft > 60) { var h = Math.floor(minleft / 60); var m = minleft % 60; if (h === 1) { return 'שעה ו ' + m + ' דקות'; } else if (m > 0) { return h + ' שעות ו' + m + ' דקות'; } else { return h + ' שעות '; } } else if (minleft === 60) { return 'שעה'; } else { return minleft + ' דקות'; } } var loadingButton = { init: function (btn) { var text = Dom7(btn).text(); Dom7(btn).addClass("loading-button").html("" + text + ""); Dom7(btn).on('click', function () { Dom7(this).addClass('loading'); Dom7(this).attr('disabled', 'disabled'); }); }, showPreloader: function (btn) { Dom7(btn).addClass('loading'); }, hidePreloader: function (btn) { if (btn) { Dom7(btn).removeClass('loading'); Dom7(this).attr('disabled', ''); } else { Dom7('.loading-button').removeAttr("disabled"); Dom7('.loading-button').removeClass('loading'); } } } var prasePrice = function (number) { if (parseFloat(number) % 1 != 0) { return parseFloat(number).toFixed(1); } else { return parseFloat(number); } } var showOrder = function (orderId) { //Dom7(".view-order-show").removeClass('show'); Dom7(".view-order-show[data-order-id='" + orderId + "']").toggleClass('show'); } var scr = (function (Framework7, $$, vcapi) { mainView = valueCard.views.create('.view-main'); // , { // dynamicNavbar: true, // swipeBackPage: false, // preloadPreviousPage: false, // stackPages: false // } mainView.router.routes = window.routes; Template7.templates = []; $$(document).once('page:afterin', '.page[data-name="Start"]', function (e) { applyAdEvent(1); $$(document).on('keydown', '.btn-select-provider', function (e) { const keyDown = e.key !== undefined ? e.key : e.keyCode; if ((keyDown === 'Enter' || keyDown === 13) || (['Spacebar', ' '].indexOf(keyDown) >= 0 || keyDown === 32)) { if ($$(this).attr("data-provider-type") == 1) { $$("#streetAddress").focus(); } else if ($$(this).attr("data-provider-type") == 2 || $$(this).attr("data-provider-type") == 5) { $$("#selectBranch").focus(); if ($$(this).attr("data-provider-type") == 2) { } } else if ($$(this).attr("data-provider-type") == 3) { $$("#selectBranch").focus(); } else if ($$(this).attr("data-provider-type") == 4) { $$("#selectExternalZone").focus(); } } }); $$(document).on('click', '.btn-select-provider', function () { $$('.btn-select-provider.active').removeClass('active'); $$(this).addClass('active'); $$("select#selectBranch").html(''); if ($$(this).attr("data-provider-type") == 1) { $$("#SelectDeliviryType-takeout-wrapper").hide(); $$("#SelectDeliviryType-courier-wrapper").show(); $$("#SelectDeliviryType-externalZones-wrapper").hide(); } else if ($$(this).attr("data-provider-type") == 2 || $$(this).attr("data-provider-type") == 5) { $$("#SelectDeliviryType-takeout-wrapper").show(); $$("#SelectDeliviryType-courier-wrapper").hide(); $$("#SelectDeliviryType-externalZones-wrapper").hide(); $$(".hdn-order-type").val($$(this).attr("data-provider-type")); if ($$(this).attr("data-provider-type") == 2) { applyAdEvent(3); } if ($$(this).attr("data-provider-type") == 5) { $$("#btnSelectLocation").show(); } } else if ($$(this).attr("data-provider-type") == 3) { $$("#SelectDeliviryType-takeout-wrapper").show(); $$("#SelectDeliviryType-courier-wrapper").hide(); $$("#SelectDeliviryType-externalZones-wrapper").hide(); $$(".hdn-order-type").val(3); } else if ($$(this).attr("data-provider-type") == 4) { $$("#SelectDeliviryType-takeout-wrapper").hide(); $$("#SelectDeliviryType-courier-wrapper").hide(); $$("#SelectDeliviryType-externalZones-wrapper").show(); $$(".external-zones-wrapper select#selectExternalZone").on('change', function () { if ($$(this).val() != "0") { Dom7("#selectPlace").prop("disabled", false); } else { Dom7("#selectPlace").prop("disabled", true); } }); } var locData = valueCard.data.appConfig.location.filter(function (l) { return parseInt(l.VCTakeOrders_PlaceID) > 0; }); function selectedBrnachInfo(location, providerType) { $$(".delivery-type-window select#selectBranch").hide(); $$(".hdn-location-id").val(location.LocationID); $$(".selected-branch-name").text(location.title); $$(".selected-branch-address").text(location.Address); if (providerType != 5) { if (valueCard.data.appConfig.DisableFutureOrdering) { if (location.OpenTimeForOrdering > getCurrentTimeSecounds()) { $$(".selected-branch-closed").text('אנחנו סגורים כעת להזמנות. נפתח בעוד ' + getTimeLeftString(location.OpenTimeForOrdering)).show(); $$("#btnSelectLocation").show(); } else if (location.ClosingTimeForOrdering < getCurrentTimeSecounds()) { $$(".selected-branch-closed").text('אנחנו סגורים כעת להזמנות').show(); $$("#btnSelectLocation").show(); } else { $$("#btnSelectLocation").show(); $$(".selected-branch-closed").text("").hide(); } } else { if (location.OrderingSiteStatus === 0) { $$(".selected-branch-closed").text('אנחנו סגורים היום להזמנות').show(); } else { $$(".selected-branch-closed").text("").hide(); } $$("#btnSelectLocation").show(); } } else { $$(".selected-branch-closed").text("").hide(); } $$("#selectMobilePickupBranch").addClass("active"); } if (locData.length >= 2) { if (IsMobile && locData.length < 6) { var html = ''; if (!window.selectPickUpBranch) { window.selectPickUpBranch = valueCard.popup.create({ content: html, swipeToClose: false, // Events on: { open: function (popup) { }, opened: function (popup) { var orderType = $$(".hdn-order-type").val(); var orderTypeText = orderType == 2 ? 'איסוף עצמי' : 'ישיבה במקום'; $$(".popup-select-pickup-branch .navbar-inner div.title").text('בחירת סניף ל' + orderTypeText); } } }); } $$(".delivery-type-window select#selectBranch").hide(); $$(".delivery-type-window #selectMobilePickupBranch").addClass("active").show().on('click', function () { selectPickUpBranch.open(); }); } else { if (locData.length > 5) { $$("#selectBranch").hide(); if (IsMobile) { $$(".delivery-type-window #selectMobilePickupBranch").show(); var autocompleteDropdownAll = valueCard.autocomplete.create({ openerEl: '#selectMobilePickupBranch', valueProperty: 'title', // textProperty: 'title', // pageTitle: 'title', // popupCloseLinkText: 'סגירה', // searchbarPlaceholder: 'שם סניף', // closeOnSelect: true, // autoFocus: true, requestSourceOnOpen: true, openIn: 'popup', source: function (query, render) { var results = []; if (query.length === 0) { render(locData); return; } // Find matched items for (var i = 0; i < locData.length; i++) { if (locData[i].title.toLowerCase().toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(locData[i]); } // Render items by passing array with result items render(results); }, on: { open: function (open) { }, change: function (value) { selectedBrnachInfo(value[0], parseInt($$(".btn-select-provider.active").attr("data-provider-type"))); } } }); } else { $$("#autocomplete-dropdown-all").show(); var autocompleteDropdownAll = valueCard.autocomplete.create({ inputEl: '#autocomplete-dropdown-all', typeahead: true, valueProperty: 'title', //object's "value" property name textProperty: 'title', //object's "text" property name openIn: 'dropdown', dropdownContainerEl: '.delivery-type-window .dialog-inner', source: function (query, render) { var results = []; if (query.length === 0) { render(locData); return; } // Find matched items for (var i = 0; i < locData.length; i++) { if (locData[i].title.toLowerCase().toLowerCase().indexOf(query.toLowerCase()) >= 0) results.push(locData[i]); } // Render items by passing array with result items render(results); }, on: { open: function (open) { var newPos = open.inputEl.getBoundingClientRect(); Dom7(open.$dropdownEl[0]).css({ "left": "100px", "width": newPos.width + "px", "top": (newPos.top + newPos.height) - 1 + "px" }); }, change: function (value) { selectedBrnachInfo(value[0], parseInt($$(".btn-select-provider.active").attr("data-provider-type"))); } } }); } } else { $$("#autocomplete-dropdown-all").hide(); $$(".delivery-type-window select#selectBranch").append(''); for (var i = 0; i < locData.length; i++) { $$(".delivery-type-window select#selectBranch").append(''); } } } } else if (locData.length === 1) { selectedBrnachInfo(locData[0], parseInt($$(this).attr("data-provider-type"))); Dom7(".btn-select-provider.active").attr("data-provider-type") } else { $$(".delivery-type-window select#selectBranch").hide(); } }); }); $$(document).on('page:afterin', '.page[data-name="HtmlPage"]', function () { $$(".page.HtmlPage a").each(function (params) { $$(this).addClass("link external").attr("target", "_blank"); }); }); $$(document).on('page:afterin', '.page[data-name="Start"]', function (e) { setTimeout(function () { $$(".main-splash-screen").addClass("splash-screen-hide"); $$(".view.view-main").removeClass("hide-on-load"); $$(".view.view-main").removeClass("blur"); setTimeout(function () { introSlider.update(); Dom7(".main-splash-screen").remove(); }, 750); }, 450); var sHash; var inPage = window.location.href.indexOf('/Start/') >= 0; if (inPage) { sHash = window.location.href.substr(0, window.location.href.indexOf('/Start/')); } else { sHash = window.location.href; } var addHase = function (position) { var currentPage = window.location.href.substring(window.location.href.lastIndexOf('/') + 1); if (position != currentPage) { window.history.pushState('forward', null, sHash + '/Start/' + position); } } $$(window).on('hashchange', function (event) { if (inPage) { var page = event.newURL.substring(event.newURL.lastIndexOf('/') + 1); var currentPage = event.oldURL.substring(event.oldURL.lastIndexOf('/') + 1); if (currentPage != page) { switch (page) { case 'selectType': introSlider.slideTo(0); break; case 'signUp': openSignUpPanel(); break; case 'logIn': memberLoginPanel(); break; case 'signIn': goSecSlide(); break; case 'selectDeliveryTime': goSelectDeliveryTime(window.selectDeliveryTimelocationId, window.selectDeliveryTimeorderType, window.selectDeliveryLocationData); break; default: } } } }); var openSignUpPanel = function () { addHase('signUp'); //loadTemplateClass([], ".start-slides-wrapper", "memberSignUp-tem"); introSlider.slideTo(introSlider.slides.indexOf($$("#memberSignUp-con")[0])); document.getElementById('CelPhone').addEventListener('input', function (e) { var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/); e.target.value = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : ''); }); var ds = new Date(); valueCard.calendar.create({ inputEl: '.calendar-birth', locale: 'he-IL', routableModals: false, closeOnSelect: true, url: '/Delivery/', dateFormat: 'dd/mm/yyyy', firstDay: 7, maxDate: Date.now(), //ds.setDate(ds.getDate() - 900), header: true }); valueCard.calendar.create({ inputEl: '.calendar-ann', routableModals: false, locale: 'he-IL', closeOnSelect: true, firstDay: 7, url: '/Delivery/', dateFormat: 'dd/mm/yyyy', maxDate: Date.now(), header: true }); loadingButton.init(Dom7(".btn-signup-member")); $$(".btn-signup-member").on('click', function () { if (validateForm('#SignupForm')) { loadingButton.hidePreloader(); return; } var formData = valueCard.form.convertToData('#SignupForm'); formData.CellPhone = formData.Phone_mask.replace(/\D/g, ''); if (formData.CellPhone.length < - 10) { Dom7("#CelPhone")[0].checkValidity(); Dom7("#AuthCode")[0].checkValidity(); loadingButton.hidePreloader(); return false; } vcapi.signup(formData, function (data) { if (FBid.length) { fbq('track', 'CompleteRegistration', { content_name: formData.FirstName + ' ' + formData.LastName }); } if (window.dataLayer) { dataLayer.push({ 'event': 'CompleteRegistration', 'name': formData.FirstName + ' ' + formData.LastName }); } if (typeof gtag != "undefined") { gtag('event', 'CompleteRegistration', { "items": [{ "name": formData.FirstName + ' ' + formData.LastName }] }); } memberLoginPanel(formData.CellPhone); }, function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); }); }); } var goSelectDeliveryTime = function (locationId, orderType, locationData = null) { addHase('selectDeliveryTime'); window.selectDeliveryTimelocationId = locationId; window.selectDeliveryTimeorderType = orderType; window.selectDeliveryLocationData = locationData; introSlider.slideTo(introSlider.slides.indexOf($$("#SelectDeliveryTime-slide")[0])); function formatDate(date) { var f = date.split("/"); return [f[1], f[0], f[2]].join('/'); } var today = new Date(); var OrderDate; var selectTimesavedSlots; vcapi.getDisabledDates({ LocationID: window.selectDeliveryTimelocationId, OrderType: window.selectDeliveryTimeorderType, DeliveryZoneId: Order.get.DeliveryZoneId ? Order.get.DeliveryZoneId : 0 }, function (res) { var desArr = []; for (var d = 0; d < res.length; d++) { var s = new Date(formatDate(res[d])) desArr.push(s); } var calOptions = { inputEl: '.calendar-default', locale: 'he-IL', closeOnSelect: true, formatValue: function (val) { var selectedDate = val.toLocaleString("en-IL", { year: 'numeric', month: '2-digit', day: '2-digit' }).split(",")[0]; return val.toLocaleString("he-IL", { weekday: 'long', month: 'long', day: 'numeric' }); }, firstDay: 7, routableModals: false, url: '/Payment', disabled: desArr, minDate: today.setDate(today.getDate() - 1), maxDate: today.setDate(today.getDate() + 30) }; //var timeOptions = { // inputEl: '.calendar-time-default', // locale: 'he-IL', // toolbarCloseText: 'בחירה', // targetX: 150, // targetY: 350, // toolbar: true, // mousewheel: true, // rotateEffect: true, // closeOnSelect: true, // url: '/Start/selectDeliveryTime', // on: { // change: function (picker, value, displayValue) { // var tim = selectTimePicker.savedSlots; // var selectedVal = parseInt(value[0]); // window.selectedSlot = {}; // window.selectedSlot.time = selectTimePicker.savedSlots.filter(function (r) { return parseInt(r.Id) === selectedVal })[0]; // window.selectedSlot.date = Order.get.DeliveryDate; // if (window.selectedSlot) { // if (parseInt(window.selectedSlot.time.Id) > 0) { // Dom7(".btn-select-delivery-time").prop("disabled", false); // } else { // Dom7(".btn-select-delivery-time").prop("disabled", true); // } // } // } // }, // formatValue: function (values, displayValues) { // return displayValues[0]; // }, // cols: [ // { // textAlign: 'center' // }] //}; //if (IsMobile) { // calOptions.backdrop = true; // timeOptions.backdrop = true; // timeOptions.toolbar = true; // timeOptions.routableModals = false; //} OrderDate = valueCard.calendar.create(calOptions); //selectTimePicker = valueCard.picker.create(timeOptions); //selectTimePicker.on('opened', function (ds) { // var top = Dom7(".calendar-time-default").offset().top - 200; // if (top < 0) top = 0; // Dom7(".picker-popover").css({ // 'top': top + 'px', // 'left': Dom7(".calendar-time-default").offset().left + 'px', // 'position': 'fixed' // }); //}); //if (!IsMobile) { // $$(document).on('click', ".picker-item.picker-item-selected", function () { // selectTimePicker.close(); // }); //} OrderDate.on('opened', function () { var top = Dom7(".calendar-default").offset().top - 320; if (top < 0) top = 0; Dom7(".calendar-popover").css({ 'top': top + 'px', 'position': 'fixed' }); //setTimeout(function () { // valueCard.tooltip.create({ // targetEl: '.calendar-day-disabled', // text: "לא זמין" // }); //}, 50); }); OrderDate.on('close', function (calendar, value) { $$(".tooltip.tooltip-in").remove(); }); OrderDate.on('change', function (calendar, value) { var selectedDate = formattedNumber((value[0].getMonth() + 1)) + '/' + formattedNumber(value[0].getDate()) + '/' + value[0].getFullYear(); $$(".order-time-preloader").show(); $$(".order-time-wrapper").show(); $$(".calendar-time-default").val(''); //selectTimePicker.displayValue = ""; //selectTimePicker.value = ""; Order.post.DeliveryDate(selectedDate); vcapi.getHoursSlots({ LocationID: window.selectDeliveryTimelocationId, OrderType: window.selectDeliveryTimeorderType, SelectedDate: selectedDate, DeliveryZoneId: Order.get.DeliveryZoneId ? Order.get.DeliveryZoneId : 0 }, function (tim) { var $select = $("#selectTimeHoursSlot"); $select.empty(); Dom7(".btn-select-delivery-time").prop("disabled", true); if (tim) { window.selectTimesavedSlots = tim; if (window.selectTimesavedSlots.length == 1 && window.selectTimesavedSlots[0].Id === 0) { } else { $select.append($(''); //for (var i = 0; i < externalZones.length; i++) { // $$(".external-zones-wrapper select#selectExternalZone").append(''); //} //$$(".external-zones-wrapper").show(); } else { $$(".address-error").text('חובה לבחור כתובת מתוך הרשימה').show(); } return false; } else { if (valueCard.data.appConfig.externalZones.length) { Dom7(".external-zones-wrapper select#selectExternalZone").val(null); if (!valueCard.data.appConfig.DisplayExternalZonesBtn) { $$(".external-zones-wrapper").hide(); } } } deliveryAddress.LatLng = place.geometry.location.lat() + "," + place.geometry.location.lng(); for (var i = 0; i < place.address_components.length; i++) { var addressType = place.address_components[i].types[0]; if (componentForm[addressType]) { deliveryAddress[componentForm[addressType]] = place.address_components[i].long_name; if (deliveryAddress.AddressHouseNumber) { Dom7("#selectPlace").prop("disabled", false); $$("#HouseHide").hide(); } else { $$("#HouseNumber").show().focus(); Dom7("#selectPlace").prop("disabled", true); $$("#HouseNumber").on('keydown, keyup', function () { $$(".delivery-not-avilable").text('').hide(); if ($$(this).val().length > 0 || $("#chkNoHouseNumber").is(":checked")) { Dom7("#selectPlace").prop("disabled", false); $("#NoHouseNumber").hide(); } else { Dom7("#selectPlace").prop("disabled", true); } }); } } } if (!deliveryAddress.AddressHouseNumber || !deliveryAddress.AddressStreet) { $$("#NoHouseNumber").show(); } if (!deliveryAddress.AddressStreet) { $$(".address-error").text('לא נמצא שם רחוב').show(); } else { $$(".address-error").text('').hide(); } if (deliveryAddress.AddressHouseNumber) { $$("#NoHouseNumber").hide(); } Order.post.deliveryAddress(deliveryAddress); }); } if (valueCard.data.appConfig.MembersSiteOnly) { introSlider.removeAllSlides(); setTimeout(function () { goSecSlide(); }, 500); return; } else { addHase('selectType'); } vcapi.getExternalZones(function (externalZones) { valueCard.data.appConfig.externalZones = externalZones; if (valueCard.data.appConfig.externalZones.length && valueCard.data.appConfig.DisplayExternalZonesBtn) { var externalZones = valueCard.data.appConfig.externalZones; $$(".external-zones-wrapper span").html('חובה לבחור כתובת מתוך הרשימה או לבחור מאחד האזורים הבאים:'); $$(".external-zones-wrapper select#selectExternalZone").html(''); $$(".external-zones-wrapper select#selectExternalZone").append(''); for (var i = 0; i < externalZones.length; i++) { $$(".external-zones-wrapper select#selectExternalZone").append(''); } $$(".external-zones-wrapper").show(); } }, function () { }); vcapi.getLocations(function (data) { valueCard.data.appConfig.location = data; if (valueCard.data.appConfig.DisableDeliveryAndPickup) { selectPickupLocation(valueCard.data.appConfig.location[0].LocationID, 2); } else { loadTemplateClass(valueCard.data.appConfig, ".SelectDeliviryType-con", "SelectDeliviryType-courier-tem"); } var deliveries_branches = valueCard.data.appConfig.location.filter(function (loc) { return loc.VCDeliveries_PlaceID > 0 }); if (deliveries_branches.length) { //$$($$('.btn-select-provider')[0]).trigger('click'); $$("#streetAddress").on('focus', function () { //$$("#selectPlace").hide(); $$("#HouseNumber").val('').hide(); $$(".delivery-not-avilable").text('').hide(); if (valueCard.data.appConfig.externalZones.length >= 1 && !valueCard.data.appConfig.DisplayExternalZonesBtn) { Order.get.DeliveryAddress = null; $$(".external-zones-wrapper").hide(); Dom7("#selectPlace").prop("disabled", true); } if (!window.clickOnEventAd2) { applyAdEvent(2); window.clickOnEventAd2 = true; } }); $$('#chkNoHouseNumber').on('change', function (e) { $(".address-error").hide().text(''); if ($(this).is(":checked")) { Dom7("#selectPlace").prop("disabled", false); } else { Dom7("#selectPlace").prop("disabled", true); } }); $$("#streetAddress").on('blur', function () { var thisVal = $$(this).val(); setTimeout(function () { if (thisVal.length && !Order.get.DeliveryAddress) { if (valueCard.data.appConfig.externalZones.length && !valueCard.data.appConfig.DisplayExternalZonesBtn) { var externalZones = valueCard.data.appConfig.externalZones; $$(".external-zones-wrapper span").html('חובה לבחור כתובת מתוך הרשימה או לבחור מאחד האזורים הבאים:'); if ($$(".external-zones-wrapper select#selectExternalZone option").length == 0) { $$(".external-zones-wrapper select#selectExternalZone").append(''); for (var i = 0; i < externalZones.length; i++) { $$(".external-zones-wrapper select#selectExternalZone").append(''); } } $$(".external-zones-wrapper").show(); } else { $$(".address-error").text('חובה לבחור כתובת מתוך הרשימה').show(); } } else { // $$(".address-error").text('').hide(); } }, 500); }); initAutocomplete(); } else { $$(".btn-select-provider[data-provider-type='2']").trigger('click'); $$("#SelectDeliviryType-takeout-wrapper").show(); $$("#SelectDeliviryType-courier-wrapper").hide(); applyAdEvent(3); } }, function () { }); $('#streetAddress, #HouseNumber, #chkNoHouseNumber').on('keyup mouseup', function (e) { if (e.which == 9) { e.preventDefault(); } }); $$('#streetAddress').on('keypress', function (event) { if (event.which == '13') { event.preventDefault(); } }); if (IsMobile) { //$$(".welcome-banner").css({ // height: (window.innerHeight - $$(".delivery-type-window .dialog-inner").height()) + "px" //}); //$$(".delivery-type-window .dialog-inner").css({ // height: $$(".delivery-type-window .dialog-inner").height() + "px" //}); $$(".welcome-banner .logo-wrapper img").attr("src", valueCard.data.appConfig.LogoImageUrl); $$(".welcome-banner").css({ height: (window.innerHeight - $$(".delivery-type-window .dialog-inner").height() - 5) + "px" }); $$(".delivery-type-window .dialog-inner").css({ height: $$(".delivery-type-window .dialog-inner").height() + 5 + "px" }); } }); $$(document).once('page:afterin', '.page[data-name="Store"]', function (e) { //for (var i = 0; i < valueCard.data.dishesCategories.length; i++) { // valueCard.data.dishesCategories[i].image = valueCard.data.dishesCategories[i].image.replace(/ /g, '%20').replace(/'/g, '%27'); //} //loadTemplateClass(valueCard.data.dishesCategories, ".select-category-con", "selectCategory-tem"); $$(document).on('click', '.benifit-cat', function (e) { e.preventDefault(); if (!User.isRegistered()) { if (valueCard.data.appConfig.ShowVoucherLogin && valueCard.data.appConfig.AllowLoyaltyClub) { signInDialog.open(); } else if (valueCard.data.appConfig.ShowVoucherLogin && !valueCard.data.appConfig.AllowLoyaltyClub) { voucherDialog.open(); } else { loginDialog.open(); } return; } }); $$(document).on('click', '.dishes-category a', function () { $$(".dishes-category a").removeClass('active'); $$(this).addClass('active'); }); $$(document).on('click', '.pick-category', function () { $$(".benifit-cat").removeClass("active"); var catId = $$(this).attr("data-cat-id"); scrollToCat(catId); applyAdEvent(5, catId); Dom7(".search-wrapper input").val('').trigger('change'); }); $$(document).on('click', '.btn-show-group-list', function (e) { e.preventDefault(); event.stopPropagation(); $$(this).toggleClass("show"); $$(this).parents('.group-content').find(".group-dish-list").toggleClass('show'); if ($$(this).parents('.group-content').find(".group-dish-list").hasClass("show")) { $$(this).parents('.group-content').find(".group-dish-list").find("button").show(); } else { $$(this).parents('.group-content').find(".group-dish-list").find("button").hide(); } }); $$(document).on('searchbar:search', function () { $$(".dish-list-cat-name.scroll-title").text("תוצאות חיפוש"); $$(".pick-category").removeClass("active"); Dom7(window)[0].scroll({ top: 0, left: 0, behavior: 'smooth' }); if (valueCard.searchbar.get(".search-wrapper").value.length == 0) { Dom7(Dom7(".pick-category.dish-cat")[0]).addClass("active"); $$(".dish-list-cat-name.scroll-title").text(Dom7(Dom7(".pick-category.dish-cat")[0]).find("p").text()); } }); if (IsMobile) { $$(document).on("click", ".dishes-footer-mobile", function () { valueCard.popup.create({ el: "#cart-view", swipeToClose: true, swipeHandler: ".cart-header-title", cssClass: "actions-modal actions-modal", on: { open: function () { Dom7(".actions-modal.modal-in").attr("aria-label", "עגלת הקניות וסיכום הזמנה"); } } }).open(); }); } }); $$(document).on('page:afterin', '.page[data-name="Store"]', function (e) { if (User.isGuest() && valueCard.data.appConfig.DisableNonMembers) { Branch.removeBranch().then(function () { mainView.router.navigate({ name: "Start" }); }); return; } valueCard.dialog.close(); applyAdEvent(4); applyAdEvent(10); for (var i = 0; i < valueCard.data.dishesCategories.length; i++) { valueCard.data.dishesCategories[i].image = valueCard.data.dishesCategories[i].image.replace(/ /g, '%20').replace(/'/g, '%27'); } loadTemplateClass(valueCard.data.dishesCategories, ".select-category-con", "selectCategory-tem"); if (mainView.router.currentRoute.query.catId) { scrollToCat(mainView.router.currentRoute.query.catId); } else { Dom7(Dom7(".pick-category.dish-cat")[0]).addClass('active'); $$(".dish-list-cat-name.scroll-title").text(Dom7(Dom7(".pick-category.dish-cat")[0]).find("p").text()); } $$(".benifit-cat").removeClass('active'); if (IsMobile) { if (!window.CatSlider) { setTimeout(function () { window.CatSlider = valueCard.swiper.create(".dishes-category-wrapper", { slidesPerView: 'auto', centeredSlides: true, centeredSlidesBounds: true, freeModeMomentumBounce: false, spaceBetween: 10 }); }, 300); $$(".page.DishCategory").css({ 'padding-top': ($$("#selectCategory-con").height() + 40) + 'px' }); } var cats = valueCard.data.dishesCategories.map(function (d) { if (!d.hide_from_list) return d.id; }).filter(function (id) { return id !== undefined; }); $$(".view.view-main").scroll(function () { if (mainView.router.currentRoute.name == "Store") { var scrollPos = 0; var topOffstWithCat = $$(".dishes-category-wrapper").offset().top + $$(".dishes-category-wrapper").height() + 25; if (Math.abs(Dom7(".top-img-banner").height() - Dom7(".navbar").height()) <= Math.abs(Dom7(".top-img-banner").offset().top)) { $$(".dishes-category-wrapper").addClass("sticky"); } else { $$(".dishes-category-wrapper").removeClass("sticky"); } for (var i = 0; i < cats.length; i++) { var thisCat = cats[i]; if (thisCat) { var catDishesElement = Dom7(".page-current .dishes-items-wrapper li[data-cat-id='" + thisCat + "']"); if ((catDishesElement.offset().top - topOffstWithCat) <= scrollPos && (catDishesElement.offset().top + catDishesElement.height() > topOffstWithCat)) { var selectedCat = $$(catDishesElement).attr("data-cat-id"); var slideIndex = $$("#selectCategory-con .dish-cat-item").indexOf($$("div.dish-cat-item.cat-" + selectedCat + "")[0]); var currLink = Dom7(".dishes-category .pick-category.dish-cat[data-cat-id='" + selectedCat + "']"); $$('.dishes-category.select-category-con a:not(.benifit-cat):not([data-cat-id="' + selectedCat + '"])').removeClass("active"); console.log('slideIndex', slideIndex); console.log('CatSlider.activeIndex', CatSlider.activeIndex); if (CatSlider.activeIndex != slideIndex) { CatSlider.slideTo(slideIndex); currLink.addClass("active"); } if (!$$(".dish-search").hasClass("input-with-value")) { var titleName = $$(".page-current .dishes-items-wrapper li[data-cat-id='" + thisCat + "'] .dish-list-cat-name").text(); $$(".dishes-category-wrapper .cat-title-header h1").text(titleName); } } else { //$$('.dishes-category.select-category-con a:not(.benifit-cat)').removeClass("active"); } } } // $$('.dishes-category.select-category-con a.dish-cat:not(.benifit-cat)').each(function () { // var currLink = $$(this); // var catId = currLink.attr("data-cat-id"); // if (catId && ($$(".page.DishCategory:not(.BenefitsPage).page-current").length)) { // var slideIndex = $$("#selectCategory-con .dish-cat-item").indexOf($$("div.dish-cat-item.cat-" + catId + "")[0]); // var refElement = Dom7(".page-current .dishes-items-wrapper li[data-cat-id='" + catId + "']"); // if ((refElement.offset().top - topOffstWithCat) <= scrollPos) { // $$('.dishes-category.select-category-con a:not(.benifit-cat)').removeClass("active"); // if (CatSlider.activeIndex != slideIndex) { // CatSlider.slideTo(slideIndex); // } // currLink.addClass("active"); // if (!$$(".dish-search").hasClass("input-with-value")) { // var titleName = $$(".page-current .dishes-items-wrapper li[data-cat-id='" + catId + "'] .dish-list-cat-name").text(); // $$(".dishes-category-wrapper .cat-title-header h1").text(titleName); // } // } // else { // currLink.removeClass("active"); // } // } //}); } }); } else { Dom7(window).scroll(function (event) { var scrollPos = 15; $$('.dishes-category.select-category-con a.dish-cat:not(.benifit-cat)').each(function () { var currLink = $$(this); var catId = currLink.attr("data-cat-id"); if (catId && ($$(".page.DishCategory:not(.BenefitsPage).page-current").length)) { var refElement = Dom7(".page-current .dishes-items-wrapper li[data-cat-id='" + catId + "']"); if (refElement.offset().top <= scrollPos) { $$('.dishes-category.select-category-con a:not(.benifit-cat)').removeClass("active"); currLink.addClass("active"); if (!$$(".dish-search").hasClass("input-with-value")) { var titleName = $$(".page-current .dishes-items-wrapper li[data-cat-id='" + catId + "'] .dish-list-cat-name").text(); $$(".page-current .dish-list-cat-name.scroll-title").text(titleName); } } else { currLink.removeClass("active"); } } }); }); } if (!IsMobile) { jQuery('.cart-view, .dishes-category-wrapper').theiaStickySidebar({ additionalMarginTop: 20, additionalMarginBottom: 100, containerSelector: '.DeliveryMain.page-current .delivery-main-wrapper', innerWrapperSelector: '.DeliveryMain.page-current .StickySidebar-inner' }); } loadCart.load(); valueCard.dialog.close(); //Get Order Extras vcapi.getOrderExtras(function (res) { if (!res.error) { if (res.order_extras.length) { //extras_arr[d].list_id = extra_lists[c].id; var extrasItem = res.order_extras[0]; var extrasItemExtras = extrasItem["extra-lists"]; valueCard.data.orderExtrasItem = extrasItem; for (var c = 0; c < extrasItemExtras.length; c++) { var extras_arr = extrasItemExtras[c].extras; for (var d = 0; d < extras_arr.length; d++) { extras_arr[d].random_id = Math.random().toString(36).substr(2, 9); extras_arr[d].list_id = extrasItemExtras[c].id; extras_arr[d].title = extras_arr[d].title.replace(/"/g, "''"); extras_arr[d].allow_multiply_extras = extrasItemExtras[c].allow_multiply_extras; extras_arr[d].price = prasePrice(extrasItemExtras[c].extras[d].price); } } if (!valueCard.data.orderExtrasLists || valueCard.data.orderExtrasLists.length == 0) { valueCard.data.orderExtrasLists = extrasItemExtras; } Cart.getCartItem(valueCard.data.orderExtrasItem.external_id).then(function (extras_item) { if (extras_item) { var selected = extras_item.extra_lists; for (var i = 0; i < valueCard.data.orderExtrasLists.length; i++) { if (selected.length) { var selected_arr = selected.filter(function (d) { return d.id == valueCard.data.orderExtrasLists[i].id })[0]; if (selected_arr && selected_arr.items) { valueCard.data.orderExtrasLists[i].selected = selected_arr.items; valueCard.data.orderExtrasLists[i].totalExtrasPrice = selected_arr.total_extras_price; } } } } }); } } }); setTimeout(function () { var cats = valueCard.data.dishesCategories.map(function (d) { return d.id }); for (var i = 0; i < cats.length; i++) { applyAdEvent(5, cats[i]); } if (Order.get.ActivateItemId && !valueCard.ActivateItemEventInt) { Cart.getCartItemNum().then(function (items) { if (Order.get.ActivateItemId) { items.push(Order.get.ActivateItemId); } var cartItems = items.join(","); applyAdEvent(9, null, Order.get.ActivateItemId, null, cartItems); valueCard.ActivateItemEventInt = true; }); } //if (window.navigateToPayment) { // window.navigateToPayment = false; // mainView.router.navigate('/Payment/', { // reloadCurrent: true, // force: true // }); //} }, 550); }); $$(document).on('page:afterin', '.page[data-name="BenefitsPage"]', function (e) { Dom7(window)[0].scroll({ top: 0, left: 0, behavior: 'smooth' }); $$(".dish-cat").removeClass('active'); $$(".pick-category.dish-cat").on('click', function () { if (mainView.router.currentRoute.name == "BenefitsPage") { // var catId = $$(this).attr("data-cat-id"); // mainView.router.navigate('/Store/?catId=' + catId, { // pushState : true , // reloadCurrent: true, // force: true // }); // mainView.router.navigate({ // name: "Store", // query: { // catId: catId // }, // }, // { // pushState : true // }); } }); var checkIfPromoIsUsed = function () { if (Order.get.SelectedPromos && Order.get.SelectedPromos.length) { for (var i = 0; i < valueCard.Binefits.length; i++) { var btn = $$(".btn-promo-action[data-promo-id='" + valueCard.Binefits[i].PromoID + "']"); if (Order.get.SelectedPromos.indexOf(valueCard.Binefits[i].PromoID) >= 0) { btn.text("ביטול מימוש"); btn.attr("data-action", "remove"); } else { btn.text("מימוש הטבה"); btn.attr("data-action", "use"); } } } else { var btn = $$(".btn-promo-action"); btn.text("מימוש הטבה"); btn.attr("data-action", "use"); } $$(".btn-points-action").each(function () { var thisBtn = $$(this); var promoId = thisBtn.attr("data-promo-id"); var items = valueCard.PurchasePoint.filter(function (p) { return parseInt(p.PromoID) == parseInt(promoId) })[0].Items; items = items.split(","); var dishesItems = valueCard.data.dishis.filter(function (d) { return items.indexOf(d.external_id) > -1; }); if (dishesItems.length <= 0) { thisBtn.prop('disabled', true); } else { thisBtn.prop('disabled', false); } }); $$(".btn-promo-action").each(function () { var thisBtn = $$(this); var promoId = thisBtn.attr("data-promo-id"); var promoTypeId = thisBtn.attr("data-promo-type-id"); var item = valueCard.Binefits.filter(function (p) { return parseInt(p.PromoID) == parseInt(promoId) })[0]; if (promoTypeId == 3) { var items = valueCard.Binefits.filter(function (p) { return parseInt(p.PromoID) == parseInt(promoId) })[0].Items; items = items.split(","); var dishesItems = valueCard.data.dishis.filter(function (d) { return items.indexOf(d.external_id) > -1; }); if (dishesItems.length > 0 || ((Order.get.DeliveryItemNum) && items.indexOf(Order.get.DeliveryItemNum) > -1) || ((Order.get.ActivateItemId) && items.indexOf(Order.get.ActivateItemId) > -1) ) { if (item.IsUsed == 1) { thisBtn.prop('disabled', true); } else { thisBtn.prop('disabled', false); } } else { thisBtn.prop('disabled', true); } } else { if (item.IsUsed == 1) { thisBtn.prop('disabled', true); } else { thisBtn.prop('disabled', false); } } }); }; $$(".btn-points-action").on('click', function () { var promoId = $$(this).attr("data-promo-id"); var promo = valueCard.PurchasePoint.filter(function (p) { return p.PromoID == promoId })[0]; if (parseInt(valueCard.data.appConfig.MemberCard.Points.replace(",", "")) < parseInt(promo.PointsToDeduct)) { valueCard.dialog.create({ text: '
' + '
' + '

אין לך מספיק נקודות בחשבון לניצול ההטבה

' + '

בחשבון שלך יש ' + parseInt(valueCard.data.appConfig.MemberCard.Points) + ' נקודות, בכל קנייה שלך אתה צובר נקודות בהתאם לסכום הקנייה.

' + '

המשך קנייה נעימה!

' + '' + '
', cssClass: 'no-points-window', on: { open: function () { valueCard.popover.close(); $$(".btn-no-logout, .close-dialog").on('click', function () { valueCard.dialog.close(); }); } } }).open(); return; } var items = valueCard.PurchasePoint.filter(function (p) { return parseInt(p.PromoID) == parseInt(promoId) })[0].Items; items = items.split(","); if (items.length > 0) { Cart.getCart().then(function (cartItems) { var cartItems = cartItems; var dishesItems = valueCard.data.dishis.filter(function (d) { return items.indexOf(d.external_id) > -1; }); if (dishesItems.length > 1) { valueCard.dialog.create({ cssClass: 'promo-dishes', text: '
', on: { open: function () { var data = {}; data.list = dishesItems; var cartitemsArr = cartItems.map(function (m) { return m.external_id }); for (var i = 0; i < data.list.length; i++) { if (cartitemsArr.indexOf(data.list[i].external_id) >= 0) { data.list[i].promoInCart = true; } else { data.list[i].promoInCart = false; } } loadTemplateClass(data, ".dishesFromBefits-con", "DishesList-tem"); $$(".activiate-promo").on('click', function () { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); valueCard.dialog.close(); }); $$(".add-dish-to-cart").text('הוספה ומימוש ' + promo.PointsToDeduct + ' ' + promo.PointsTerm); $$(".add-dish-to-cart").attr({ 'data-promoid': promo.PromoID, 'data-points-to-deduct': promo.PointsToDeduct, 'data-points-term': promo.PointsTerm }); $$(".add-dish-to-cart").on('click', function () { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); }); $$(".close-dialog").on('click', function () { valueCard.dialog.close(); }); }, close: function () { } } }).open(); } else if (dishesItems.length == 1) { promo.checkIfPromoIsUsed = checkIfPromoIsUsed; addDishFunction(dishesItems[0].dish_id, promo); } else { // openPurchaseWindow(promoId); } }); } }); $$(".btn-promo-action").on('click', function () { var promoId = $$(this).attr("data-promo-id"); var action = $$(this).attr("data-action"); window.StoredPromo = promoId; if (action == 'use') { //Order.post.addSelectedPromo(promoId); vcapi.getPromoItems(promoId, function (items) { var items = items; if (items.length > 0) { Cart.getCart().then(function (cartItems) { var cartItems = cartItems; // var dishesItems = valueCard.data.dishis.filter(function (d) { // var cartitemsArr = cartItems.map(function (m) { return m.external_id }) // return items.includes(d.external_id) && cartitemsArr.indexOf(d.external_id) < 0; // }); var dishesItems = valueCard.data.dishis.filter(function (d) { return items.includes(d.external_id); }); if (dishesItems.length && dishesItems.length > 1) { valueCard.dialog.create({ cssClass: 'promo-dishes', text: '
', on: { open: function () { var data = {}; data.list = dishesItems; var cartitemsArr = cartItems.map(function (m) { return m.external_id }); for (var i = 0; i < data.list.length; i++) { if (cartitemsArr.indexOf(data.list[i].external_id) >= 0) { data.list[i].promoInCart = true; } else { data.list[i].promoInCart = false; } if (data.list[i].price == 0) { data.list[i].btnText = "בחירת מרכיבים"; } else { data.list[i].btnText = "הוספה לסל"; } } loadTemplateClass(data, ".dishesFromBefits-con", "DishesList-tem"); $$(".activiate-promo").on('click', function () { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); valueCard.dialog.close(); }); $$(".add-dish-to-cart").on('click', function () { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); }); $$(".close-dialog").on('click', function () { valueCard.dialog.close(); }); }, close: function () { } } }).open(); } else if (dishesItems.length && dishesItems.length == 1) { var dishId = dishesItems[0].dish_id; addDishFunction(dishId); $$(".DishWindow-con .btn-add-dish").on('click', function () { Order.post.addSelectedPromo(window.StoredPromo); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); window.StoredPromo = 0; }); if (dishesItems.length === 1) { Dom7('.single-promo-activate[data-dish-id="' + dishesItems[0].dish_id + '"][data-promo-id="' + promoId + '"]').remove(); if (cartItems.length && cartItems.filter(function (i) { return i.dish_id == dishesItems[0].dish_id }).length) { if (Order.get.SelectedPromos.indexOf(promoId) < 0) { var activateButton = $$(''); $$(activateButton).insertBefore($$(".DishWindow-con .btn-add-dish")); activateButton.on('click', function () { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); if (IsMobile) { valueCard.actions.close(); } else { valueCard.dialog.close(); } }); } } } } else { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); } }); } else { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); } }, function (x) { Order.post.addSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); }); } else { Order.post.removeSelectedPromo(promoId); loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); } loadCart.printOutTotal.printBenifits(); checkIfPromoIsUsed(); }); checkIfPromoIsUsed(); }); $$(document).on("keydown", '.page[data-name="Payment"] .input-invalid:not(required)', function () { Dom7(".input-invalid:not(required)").val() == 0 && Dom7(".input-invalid:not(required)").removeClass("input-invalid") }); $$(document).on('page:init', '.page[data-name="Payment"]', function (e) { if (!User.isRegistered()) { window.localStorage.removeItem("f7form-order-sum"); } $$(".btn-member-login").on('click', function () { loginDialog.open(); }); $$(".btn-sign-up-window").on('click', function () { registerUser.open(); }); $$(".btn-voucher-login").on('click', function () { voucherDialog.open(); }); }); $$(document).on('page:afterin', '.page[data-name="Payment"]', function (e) { Dom7(".input-invalid:not(required)").on('keyup,mouseup', function (params) { if (Dom7(this).val() == 0) Dom7(this).removeClass("input-invalid"); }); if (FBid.length) { fbq('track', 'InitiateCheckout', { content_name: 'Checkout' }); } if (typeof gtag != "undefined") { gtag('event', 'begin_checkout', { currency: 'ILS', }); } if (window.dataLayer) { dataLayer.push({ 'event': 'checkout' }); } if (GAid.length && typeof (ga) != "undefined") { ga("ec:setAction", "checkout", { "step": 1 }); ga("send", "pageview"); } var deliveryZoneID = 0; if (Order.type.isDelivery()) { deliveryZoneID = Order.get.DeliveryZoneId; } Cart.getCartItemNum().then(function (items) { if (Order.get.ActivateItemId) { items.push(Order.get.ActivateItemId); } var cartItems = items.join(","); Cart.getCartPrice().then(function (cartPrice) { applyAdEvent(7, null, null, deliveryZoneID, cartItems, cartPrice); }); }); if (Order.type.isDelivery()) valueCard.form.fillFromData('#order-sum', Order.get.DeliveryAddress); Dom7(".page.Payment section .input-wrapper input.input-invalid").removeClass("input-invalid"); if (User.isRegistered()) { var storeForm = valueCard.form.getFormData('#order-sum'); var memberData = {}; if (storeForm) { memberData.Name = (storeForm.Name && storeForm.Name.length) ? storeForm.Name : valueCard.data.appConfig.MemberCard.FirstName + " " + valueCard.data.appConfig.MemberCard.LastName; memberData.Phone = (storeForm.Phone && storeForm.Phone.length) ? storeForm.Phone : "0" + valueCard.data.appConfig.MemberCard.CelPhone; memberData.RecName = (storeForm.RecName && storeForm.RecName.length) ? storeForm.RecName : valueCard.data.appConfig.MemberCard.FirstName + " " + valueCard.data.appConfig.MemberCard.LastName; //memberData.RecPhone = (storeForm.RecPhone && storeForm.RecPhone.length) ? storeForm.RecPhone : "0" + valueCard.data.appConfig.MemberCard.CelPhone; memberData.Email = (storeForm.Email && storeForm.Email.length) ? storeForm.Email :valueCard.data.appConfig.MemberCard.Email; memberData.AddressFloor = storeForm.AddressFloor? storeForm.AddressFloor : ''; memberData.AddressEntrence = storeForm.AddressEntrence ? storeForm.AddressEntrence : ''; memberData.AddressApt = storeForm.AddressApt ? storeForm.AddressApt : ''; memberData.NumberDiners = storeForm.NumberDiners ? storeForm.NumberDiners : '' ; } else { memberData.Name = valueCard.data.appConfig.MemberCard.FirstName + " " + valueCard.data.appConfig.MemberCard.LastName; memberData.Phone = "0" + valueCard.data.appConfig.MemberCard.CelPhone; memberData.RecName = valueCard.data.appConfig.MemberCard.FirstName + " " + valueCard.data.appConfig.MemberCard.LastName; //memberData.RecPhone = "0" + valueCard.data.appConfig.MemberCard.CelPhone; memberData.Email = valueCard.data.appConfig.MemberCard.Email; } valueCard.form.fillFromData('#order-sum', memberData); } else { valueCard.form.removeFormData('#order-sum') } if (valueCard.data.appConfig.LinkToTerms.length > 2) { $$(".site-takanon-wrapper").show(); $$(".site-takanon").attr('href', valueCard.data.appConfig.LinkToTerms); } if (!valueCard.data.appConfig.ShowNumGuests) { $$(".num-of-guest").hide(); } if (IsMobile) { Dom7("#mobileCart").html(Dom7(".cart-view").html()); var isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/); var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; //if (iOS || isSafari) { // Dom7(".view").scrollTop(400, 450); //} else { // Dom7(".view")[0].scroll({ // top: 0, // left: 0, // behavior: 'smooth' // }); //} } function formatDate(date) { var f = date.split("/"); return [f[1], f[0], f[2]].join('/'); } var today = new Date(); var OrderDate; var timePicker; vcapi.getDisabledDates({ LocationID: Branch.get.LocationId, OrderType: Order.get.Type, DeliveryZoneId: Order.get.DeliveryZoneId ? Order.get.DeliveryZoneId : 0 }, function (res) { var desArr = []; for (var d = 0; d < res.length; d++) { var s = new Date(formatDate(res[d])) desArr.push(s); } var calOptions = { inputEl: '.calendar-default', locale: 'he-IL', closeOnSelect: true, formatValue: function (val) { var selectedDate = val.toLocaleString("en-IL", { year: 'numeric', month: '2-digit', day: '2-digit' }).split(",")[0]; return val.toLocaleString("he-IL", { weekday: 'long', month: 'long', day: 'numeric' }); }, firstDay: 7, routableModals: false, url: '/Payment', disabled: desArr, minDate: today.setDate(today.getDate() - 1), maxDate: today.setDate(today.getDate() + 30) }; var timeOptions = { inputEl: '.calendar-time-default', locale: 'he-IL', toolbarCloseText: 'בחירה', targetX: 150, targetY: 350, toolbar: true, mousewheel: true, rotateEffect: true, closeOnSelect: true, on: { change: function (picker, value, displayValue) { $$("[name='hdn-selected-hour-slot']").val(value[0]); } }, formatValue: function (values, displayValues) { return displayValues[0]; }, cols: [ { textAlign: 'center' }] }; if (IsMobile) { calOptions.backdrop = true; timeOptions.backdrop = true; timeOptions.toolbar = true; timeOptions.routableModals = false; timeOptions.url = '/Payment'; } OrderDate = valueCard.calendar.create(calOptions); timePicker = valueCard.picker.create(timeOptions); timePicker.on('opened', function (ds) { var top = Dom7(".calendar-time-default").offset().top - 200; if (top < 0) top = 0; Dom7(".picker-popover").css({ 'top': top + 'px', 'left': Dom7(".calendar-time-default").offset().left + 'px', 'position': 'fixed' }); }); if (!IsMobile) { $$(document).on('click', ".picker-item.picker-item-selected", function () { timePicker.close(); }); } OrderDate.on('opened', function () { var top = Dom7(".calendar-default").offset().top - 320; if (top < 0) top = 0; Dom7(".calendar-popover").css({ 'top': top + 'px', 'position': 'fixed' }); //setTimeout(function () { // valueCard.tooltip.create({ // targetEl: '.calendar-day-disabled', // text: "לא זמין" // }); //}, 50); }); OrderDate.on('close', function (calendar, value) { $$(".tooltip.tooltip-in").remove(); }); OrderDate.on('change', function (calendar, value) { console.log(value); var selectedDate = formattedNumber((value[0].getMonth() + 1)) + '/' + formattedNumber(value[0].getDate()) + '/' + value[0].getFullYear(); //value.toLocaleString("en-US", { year: 'numeric', month: '2-digit', day: '2-digit' }).split(",")[0]; $$(".order-time-preloader").show(); if (typeof (Sentry) != "undefined") { Sentry.addBreadcrumb({ category: "date value", message: "value is :" + value.toString(), level: Sentry.Severity.Info }); } if (typeof (Sentry) != "undefined") { Sentry.addBreadcrumb({ category: "selectedDate", message: "selectedDate is :" + selectedDate, level: Sentry.Severity.Info }); } $$("[name='DeliveryPickupDate']").val(selectedDate); $$(".order-time-wrapper").show(); $$(".calendar-time-default").val(''); timePicker.displayValue = ""; timePicker.value = ""; vcapi.getHoursSlots({ LocationID: Branch.get.LocationId, OrderType: Order.get.Type, SelectedDate: selectedDate, DeliveryZoneId: Order.get.DeliveryZoneId ? Order.get.DeliveryZoneId : 0 }, function (tim) { if (typeof (Sentry) != "undefined") { Sentry.addBreadcrumb({ category: "vcapi.getHoursSlots", message: "vcapi.getHoursSlots is :" + JSON.stringify(tim), level: Sentry.Severity.Info }); } if (tim) { timePicker.cols[0] = { textAlign: 'center', values: tim.map(function (f) { return f.Id }), displayValues: tim.map(function (f) { return f.SlotValue }), }; } else { timePicker.cols[0] = { textAlign: 'center', values: [0], displayValues: ["אין אספקה בתאריך זה"] }; } $$(".order-time-preloader").hide(); $$(".order-time-wrapper").show(); }, function () { }); }); }); loadingButton.init(".payment-method-actions button.btn-pay-with-credit"); loadingButton.init(".payment-method-actions button.btn-pay-with-cash"); loadingButton.init(".payment-method-actions button.btn-pay-with-giftcard"); $$(".btn-approve-cart").removeClass('loading'); $$("#sendToMe").on('change', function () { if ($(this).is(":checked")) { Dom7(".bx-sending-to").hide(); } else { Dom7(".bx-sending-to").show(); } }); $$(".self-tip-input").on('keyup', function () { var amount = $$(this).val(); Dom7('[name="Tip"]').prop('checked', false); if (amount.length === 0) { $$("[name='Tip'][value='0']").prop('checked', true); Order.post.tip( 0, 0, 0 ); } else { Order.post.tip(parseFloat(amount), 2); } loadCart.printOutTotal.printTips(); }); if (Order.get.Tip) { if (Order.get.Tip.type === 1) { $$("[name='Tip'][value='" + Order.get.Tip.amount + "']").prop('checked', true); } else if (Order.get.Tip.type === 2) { $$(".self-tip-input").val(Order.get.Tip.amount); } else if (Order.get.Tip.type === 0) { $$("[name='Tip'][value='0']").prop('checked', true); } } $$("[name='Tip']").on('change', function () { $$(".self-tip-input").val(''); Order.post.tip(parseFloat($$(this).val()).toFixed(), 1); loadCart.printOutTotal.printTips(); }); $$(document).on('change', '#order-sum input:not(.skip-restart), #order-sum textarea', function () { resetPaymentButtons(false); }); if (User.isRegistered() || User.isVoucher()) { var discount = 0; if (Order.get.Discount) { discount = Order.get.Discount; } Cart.getTotalPrice(false, discount).then(function (price) { if (parseFloat(price) == 0) { $$(".payment-method-actions button").hide(); $$(".btn-pay-with-vc").show(); $$(".payment-section-header").text("סיום הזמנה"); } else { $$(".payment-method-actions button").show(); $$(".btn-pay-with-vc").hide(); $$(".payment-section-header").text("תשלום"); } }); } // INFORCE PAYMENT var EnforceStartWindowFn = function (formData, commitFn) { window.EnforceStartWindow = valueCard.dialog.create({ text: '
' + '
' + '

רק לוודא שזה באמת אתם...

' + '

בחרו באחת מהדרכים הבאות לקבלת קוד אימות

' + '
' + '' + '
', cssClass: 'login-window enforce-confirm', on: { open: function () { resetPaymentButtons(false); } } }); EnforceStartWindow.OrderId = formData.OrderId; EnforceStartWindow.commitOrder = commitFn; } var EnforceAuthWindow = valueCard.dialog.create({ text: '
' + '
' + '

רק לוודא שזה באמת אתם...

' + '

הזינו את קוד האימות שנשלח אליכם

' + '' + 'חזרה
' + '' + '
', cssClass: 'login-window enforce-confirm', on: { open: function () { $$("#AuthCode").val(''); } } }); $$(document).on('click', ".btn-send-enforce-confirm", function () { EnforceStartWindow.Iden = $$('[name="EnforceConfirm"]:checked').val(); if (EnforceStartWindow.Iden.length) { vcapi.sendPaymentConfirmationAuthCode({ orderId: EnforceStartWindow.OrderId, identifyier: EnforceStartWindow.Iden }, function () { EnforceStartWindow.close(); EnforceAuthWindow.open(); }, function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); }); } }); $$(document).on('click', ".btn-back-auth", function () { EnforceStartWindow.open(); EnforceAuthWindow.close(); }); $$(document).on('click', ".btn-send-enforce-auth", function () { vcapi.authPaymentConfirmation({ orderId: EnforceStartWindow.OrderId, identifyier: EnforceStartWindow.Iden, authCode: $$("#AuthCode").val() }, function () { EnforceStartWindow.commitOrder(); EnforceAuthWindow.close(); }, function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); }); }); /// END INFORCE PAYMET function escapeHtml(html) { return html .replace(//g, ">") } var isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/); var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; $$(".payment-method-actions button").on('click', function () { var payWindow = IsMobile ? ".view" : window; $(".payment-method-actions button").prop('disabled', false); $$(".pelecard-frame").attr("src", ''); if (Dom7(".DeliveryPickupDate").val() < 2) { valueCard.dialog.alert("לא נבחר זמן אספקה"); if (iOS || isSafari) { Dom7(payWindow).scrollTop(400, 450); } else { Dom7(payWindow)[0].scroll({ top: 400, left: 0, behavior: 'smooth' }); } loadingButton.hidePreloader(); return; } if (/^\s+$/i.test(Dom7("[name='Name']").val())) { valueCard.dialog.alert("שם הוא שדה חובה"); loadingButton.hidePreloader(); return; } if (!valueCard.data.appConfig.DisableFutureOrdering) { if ($$("[name='hdn-selected-hour-slot']").val() == "0") { valueCard.dialog.alert("אין שעות אספקה בתאריך שנבחר"); if (iOS || isSafari) { Dom7(payWindow).scrollTop(400, 450); } else { Dom7(payWindow)[0].scroll({ top: 400, left: 0, behavior: 'smooth' }); } loadingButton.hidePreloader(); return; } if (Dom7(".DeliveryPickupTime").val() < 2) { valueCard.dialog.alert("לא נבחר שעת אספקה"); if (iOS || isSafari) { Dom7(payWindow).scrollTop(400, 450); } else { Dom7(payWindow)[0].scroll({ top: 400, left: 0, behavior: 'smooth' }); } loadingButton.hidePreloader(); return; } } if (validateForm('#order-sum')) { if (iOS || isSafari) { Dom7(payWindow).scrollTop(450, 450); } else { Dom7(payWindow)[0].scroll({ top: 450, left: 0, behavior: 'smooth' }); } loadingButton.hidePreloader(); return; } var paymentType = parseInt($$(this).attr("data-pay-type")); $(this).prop('disabled', true); Cart.getCartPrice().then(function (totalcartprice) { if (FBid.length) { fbq('track', 'AddPaymentInfo', { value: totalcartprice, currency: 'ILS' }); } if (typeof gtag != "undefined") { gtag('event', 'begin_checkout', { currency: 'ILS', value: totalcartprice, }); } if (window.dataLayer) { dataLayer.push({ 'event': 'checkoutOption', 'ecommerce': { 'checkout_option': { 'actionField': { 'step': 2 } } } }); } if (GAid.length && typeof (ga) != "undefined") { ga("ec:setAction", "checkout_option", { "step": 2 }); ga('send', 'event', 'Checkout', 'Option'); } if (parseFloat(totalcartprice) >= parseFloat(Order.get.MinimumOrder)) { $$(".payment-method-actions button").removeClass("active"); $$(this).addClass('active'); $$("[data-pay-type-win]").hide(); Cart.buildCart().then(function (cartItems) { if (cartItems && cartItems.length === 0) { valuecard.dialog.alert("אין מוצרים בסל"); return; } var orderData = []; for (var c = 0; c < cartItems.length; c++) { var item = cartItems[c]; var special_comment = ' '; //variants var variantListArr = []; if (item.variant_lists && item.variant_lists.length) { for (var b = 0; b < item.variant_lists.length; b++) { if (item.variant_lists[b].selectedId) { variantListArr.push({ id: item.variant_lists[b].id, variants: item.variant_lists[b].selectedId }); special_comment += ' ' + item.variant_lists[b].title + ': ' + item.variant_lists[b].selectedTitle + ' | '; } } } var extrasListArr = []; //send arr if (item.extra_lists && item.extra_lists.length) { for (var i = 0; i < item.extra_lists.length; i++) { extrasListObj = {}; extrasListObj.id = item.extra_lists[i].id; extrasListObj.total_extras_price = item.extra_lists[i].total_extras_price ? item.extra_lists[i].total_extras_price : 0; extrasListObj.extras = [] for (var d = 0; d < item.extra_lists[i].items.length; d++) { extrasListObj.extras.push({ id: item.extra_lists[i].items[d].id, price: item.extra_lists[i].items[d].price, finalPrice: item.extra_lists[i].items[d].finalPrice }); } special_comment += ' ' + item.extra_lists[i].title + ': '; for (var p = 0; p < item.extra_lists[i].print_items.length; p++) { special_comment += item.extra_lists[i].print_items[p].title + " x" + item.extra_lists[i].print_items[p].qty; if (p == (item.extra_lists[i].print_items.length - 1)) special_comment += ' | '; else special_comment += ', '; } extrasListArr.push(extrasListObj); } } if (item.extras && item.extras.length) { special_comment += 'תוספות: ' + item.extras.map(function (m) { return m.title }).join(", "); } if (item.dish_comment.length) { var finalString = ''; if (special_comment.length > 3) finalString += 'הערה: '; special_comment = finalString + item.dish_comment + ' | ' + special_comment; } item.special_comment = special_comment; //insert in php api format. orderData.push({ 'dish_id': item.dish_id, 'orginal_dish_price': item.price, 'quantity': item.quantity, 'comment': item.comment, 'special_comment': item.special_comment, 'user_dish_comment': item.dish_comment, 'extras': item.extras && item.extras.length ? item.extras.map(function (m) { return m.id }).join(",") : null, 'extras_array': item.extras && item.extras.length ? item.extras.map(function (m) { return { id: m.id, price: m.price, external_id: m.external_id } }) : null, 'variants': null, 'variants_lists': variantListArr ? variantListArr : null, 'extras_lists': extrasListArr ? extrasListArr : null }); } if (Order.get.ActivateItemId) { cartItems.push({ dish_id: Order.get.ActivateItemId, title: 'הצטרפות/חידוש מועדון', price: Order.get.ActivatePrice, quantity: 1, dish_total: Order.get.ActivatePrice, total_price_unit: Order.get.ActivatePrice, category: '' }); } var formData = valueCard.form.convertToData('#order-sum'); formData.CartJson = escapeHtml(JSON.stringify(cartItems)); formData.OrderJson = escapeHtml(JSON.stringify(orderData)); formData.DeliveryPickupDate = $$('[name="DeliveryPickupDate"]').val(); formData.DeliveryPickupTime = $$('[name="DeliveryPickupTime"]').val(); formData.SlotId = valueCard.data.appConfig.DisableFutureOrdering ? 0 : formData["hdn-selected-hour-slot"]; if (valueCard.data.appConfig.DeliveryTimeUpFront && Order.get.OrderSlotData) { formData.SlotId = Order.get.OrderSlotData.time.Id; formData.DeliveryPickupTime = Order.get.OrderSlotData.time.SlotValue; formData.DeliveryPickupDate = Order.get.OrderSlotData.date; } if (Order.type.isDelivery()) { formData.DeliveryZoneId = parseFloat(Order.get.DeliveryZoneId); } var promoIds; var balance = Order.get.UsedBalnace; if ((Order.get.SelectedPromos && Order.get.SelectedPromos.length) || balance >= 1) { if (Order.get.SelectedPromos && Order.get.SelectedPromos.length) { promoIds = Order.get.SelectedPromos.join(","); } } Cart.calculateBenefits(promoIds, balance).then(function (benefitsData) { Cart.getTotalPrice(false, benefitsData.Discount).then(function (price) { formData.UserSecretKey = User.isGuest() ? "-1" : User.getSecretKey(); formData.OrderId = Order.get.Id; formData.OrderType = Order.get.Type; formData.OrderStatus = 0; formData.VCQueryID = benefitsData.TransactionId ? benefitsData.TransactionId : 0; formData.Amount = price; formData.LocationToken = Branch.get.LocationToken; formData.PaymentType = paymentType; formData.tipType = Order.get.Tip ? Order.get.Tip.type : 0; formData.tipAmount = Order.get.Tip ? Order.get.Tip.amount : 0; formData.TipTotalAmount = Order.get.Tip ? Order.get.Tip.totalAmount : 0; formData.Notes = Dom7('[name="Notes"]').val(); formData.ConfigKey = ConfigKey; formData.DeliveryZoneId = Order.get.DeliveryZoneId || 0; formData.GuestMarcommApproval = (formData.GuestMarcommApproval && formData.GuestMarcommApproval.includes('1')) ? 1 : 0; if (valueCard.data.appConfig.DisableFutureOrdering) { var d = new Date(); formData.DeliveryPickupDate = formattedNumber((d.getMonth() + 1)) + '/' + formattedNumber(d.getDate()) + '/' + d.getFullYear(); formData["hdn-selected-hour-slot"] = 0; } if (DeliveryUser.addressInfo && DeliveryUser.addressInfo.LatLng) { formData.AddressGeoLocation = DeliveryUser.addressInfo.LatLng; } if (Order.get.Tip && Order.get.Tip.amount > 0) { var tipChar = Order.get.Tip.type === 1 ? '%' : '₪'; formData.Notes += "| טיפ:" + Order.get.Tip.amount + tipChar; } formData.Notes = escapeHtml(formData.Notes); Order.FinalAmount = price; if (typeof (Sentry) != "undefined") { Sentry.addBreadcrumb({ category: "vcapi.commitOrder", message: "vcapi.commitOrder is :" + JSON.stringify(formData), level: Sentry.Severity.Info }); } if (formData.NumberDiners.length > 2) { if (parseInt(formData.NumberDiners) > 999) { formData.NumberDiners = "999"; } } var commitOrder = function () { vcapi.commitOrder(formData, function (res) { if (res.IsError) { if (res.RefreshMenu) { valueCard.dialog.alert(res.Messeage, function (params) { window.revreshVcRoute = true; Order.get.DishesVersion = ''; Order.getDishes().then(function (res) { Cart.buildCart().then(function (cartItems) { Cart.removeAllItems(); Cart.addDuplicateToCart(cartItems).then(function (s) { location.reload(); }); }); }); }); } return; } if (res.EnforcePaymentConfirmation) { EnforceStartWindowFn(formData, commitOrder); EnforceStartWindow.open(); return; } var offsetTopDiv = 0; if (paymentType === 1) { $$(".pelecard-frame").attr("src", res); offsetTopDiv = $$(".pelecard-frame")[0].offsetTop; } if (paymentType === 2) { $$(".pelecard-frame").attr("src", res); offsetTopDiv = $$(".cash-payment")[0].offsetTop; loadingButton.init(Dom7(".btn-submit-cash-order")); } if (paymentType === 3) { pelecard = $$(".cash-payment")[0].offsetTop; var data = {} data.OrderID = Order.get.Id; data.PaymentType = 3; data.UserSecretKey = User.isGuest() ? "-1" : User.getSecretKey();; vcapi.submitOrder(data, function (res) { var resOrderData = res; if (!resOrderData.error) { orderComplete('ההזמנה התקבלה בהצלחה'); } else { valueCard.dialog.alert('קרתה תקלה בקליטת ההזמנה. פנה לשרות הלקוחות לקבלת עזרה'); resetPaymentButtons(false); } }, function (xhr, msg) { valueCard.dialog.alert(msg); resetPaymentButtons(false); }); } if (paymentType === 4) { var AmountLeft = res.AmountLeft; loadTemplateClass(data, "#GiftcardPymentInner", "CheckGiftcardBalance-tem"); $$(".btn-check-balance").on('click', function () { var gc_number = $$("#giftCardPayment").val(); vcapi.checkGiftCardBalance(gc_number, Branch.get.LocationPOS, function (data) { if (parseFloat(data.balance) > 0) { data.inputValue = parseFloat(data.balance) > parseFloat(AmountLeft) ? AmountLeft : parseFloat(data.balance); data.AmountLeft = AmountLeft; loadTemplateClass(data, "#GiftcardPymentInner", "GiftCardPayment-tem"); } else { valueCard.dialog.alert("לא נמצאו יתרות בכרטיס שהוזן"); } Dom7("[name='giftcardAmount']").on('keyup', function (evt) { if (parseFloat($$(this).val()) > parseFloat(AmountLeft)) { if (parseFloat($$(this).val()) >= parseFloat(AmountLeft)) { $$(this).val(AmountLeft); } } else { if (parseFloat($$(this).val()) >= parseFloat($$(this).attr("data-max-balance"))) { $$(this).val($$(this).attr("data-max-balance")); } } }); loadingButton.init(Dom7(".btn-gift-cardamount")); $$(".btn-gift-cardamount").on('click', function () { vcapi.payWithGiftCard({ OrderID: Order.get.Id, CardNumber: gc_number, Amount: Dom7("[name='giftcardAmount']").val() }, function (data) { if (data.error) { valueCard.dialog.alert('קרתה תקלה בקליטת ההזמנה. פנה לשרות הלקוחות לקבלת עזרה'); resetPaymentButtons(false); return; } else if (data.amount_left == 0) { orderComplete('ההזמנה התקבלה בהצלחה'); } else if (data.amount_left >= 1) { resetPaymentButtons(false); getOrderPayments(Order.FinalAmount); } } ); }); }); }); } $$("[data-pay-type-win='" + paymentType + "']").show(); if (paymentType === 1) { offsetTopDiv = $$(".pelecard-frame")[0].offsetTop; } else if (paymentType === 2) { offsetTopDiv = $$(".cash-payment")[0].offsetTop; } else if (paymentType === 4) { offsetTopDiv = $$(".giftcard-payment")[0].offsetTop; } if (iOS || isSafari) { Dom7(payWindow).scrollTop(offsetTopDiv, 450); } else { Dom7(payWindow)[0].scroll({ top: offsetTopDiv, left: 0, behavior: 'smooth' }); } }, function (xhr, data) { valueCard.dialog.alert(data); loadingButton.hidePreloader(); resetPaymentButtons(false); return; }); } commitOrder(); }); }); }); } else { valueCard.dialog.alert("מינימום הזמנה הוא ₪" + parseFloat(Order.get.MinimumOrder).toFixed(2) + ""); loadingButton.hidePreloader(); resetPaymentButtons(false); return; } }); }); $$(".btn-submit-cash-order").on('click', function () { var data = {}; data.OrderID = Order.get.Id; data.UserSecretKey = User.isGuest() ? "-1" : User.getSecretKey(); data.Amount = Order.FinalAmount; data.PaymentType = 2; vcapi.submitOrder(data, function (res) { var resOrderData = res; if (!resOrderData.error) { orderComplete('ההזמנה התקבלה בהצלחה'); } else { valueCard.dialog.alert('קרתה תקלה בקליטת ההזמנה. פנה לשרות הלקוחות לקבלת עזרה'); resetPaymentButtons(false); } }, function (xhr, msg) { valueCard.dialog.alert(msg); resetPaymentButtons(false); }); }); $$(".chk-add-extra").on('change', function () { var parent_index = $$(this).parents("[data-extra-list-index]").attr("data-extra-list-index"); // var this_extra = $$(this).parents(".extra-check-wrapper").find(".hdn-extra"); var this_extra = $$(this); var thisExtraList = valueCard.data.orderExtrasLists[parent_index]; var slectedItems = thisExtraList.selected; var limit = parseInt(thisExtraList.limit); var extra_included = parseInt(thisExtraList.extra_included); if (!thisExtraList.totalExtrasPrice) thisExtraList.totalExtrasPrice = 0; if (!slectedItems) slectedItems = thisExtraList.selected = []; if ($$(this).is(":checked")) { if (limit > 0 && slectedItems.length == limit) { $$(this).prop("checked", false); valueCard.notification.create({ text: 'ניתן לבחור רק ' + limit + ' פריטים', closeTimeout: 7000, closeButton: true }).open(); return; } thisExtraList.selected.push({ id: $$(this).val(), title: $$(this).attr("data-extra-title"), price: $$(this).attr("data-extra-price"), is_note: $$(this).attr("data-is-note"), external_id: $$(this).attr("data-external-id") }); if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); if (thisExtraList.totalExtrasPrice > 0) { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").removeClass("extra-included-in-price"); } else { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").addClass("extra-included-in-price"); } } else { thisExtraList.totalExtrasPrice += parseFloat($$(this).attr("data-extra-price")); } } else { var removeIndex = slectedItems.map(function (item) { return parseInt(item.id); }).indexOf(parseInt($$(this_extra).val())); slectedItems.splice(removeIndex, 1); if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); } else { thisExtraList.totalExtrasPrice -= parseFloat($$(this).attr("data-extra-price")); } } var selectedExtras = thisExtraList.selected.filter(function (e) { return parseInt(e.id) == parseInt($$(this_extra).val()) }).length; $$(this).parents(".extra-check-wrapper").find(".extra-qty-number").text(selectedExtras); if (selectedExtras > 0) { $$(this).parents(".extra-check-wrapper").find("label").addClass('selected-extra'); } else { $$(this).parents(".extra-check-wrapper").find("label").removeClass('selected-extra'); } var calculateTotal = function () { var extrasArr = valueCard.data.orderExtrasLists.map(function (d) { return prasePrice(isNaN(d.totalExtrasPrice) ? 0 : d.totalExtrasPrice) }); if (extrasArr.length) { if (typeof (extrasArr[0]) != "undefined") { return (prasePrice(parseFloat(extrasArr.reduce(function (a, b) { return parseFloat(a) + parseFloat(b);; })))); } else { return 0; } } else { return 0; } }; var item = { is_orders_extras: true, item_id: valueCard.data.orderExtrasItem.id, id: valueCard.data.orderExtrasItem.id, dish_id: valueCard.data.orderExtrasItem.id, external_id: valueCard.data.orderExtrasItem.external_id, title: valueCard.data.orderExtrasItem.title, category: 'תוספות להזמנה', dish_total: prasePrice(calculateTotal()), price: prasePrice(calculateTotal()), variant_lists: [], extra_lists: valueCard.data.orderExtrasLists }; Cart.removeItem(valueCard.data.orderExtrasItem.id).then(function () { Cart.addToCart(item).then(function (itemId) { loadCart.load(); }); }); loadCart.printOutTotal.printTotal(); }); $$(".btn-add-extra-qty, .btn-remove-extra-qty").on("click", function () { var parent_index = $$(this).parents("[data-extra-list-index]").attr("data-extra-list-index"); var this_extra = $$(this).parents(".extra-check-wrapper").find(".hdn-extra");; var thisExtraList = valueCard.data.orderExtrasLists[parent_index]; var slectedItems = thisExtraList.selected; var limit = parseInt(thisExtraList.limit); var extra_included = parseInt(thisExtraList.extra_included); if (!thisExtraList.totalExtrasPrice) thisExtraList.totalExtrasPrice = 0; if (!slectedItems) slectedItems = thisExtraList.selected = []; if ($$(this).hasClass("btn-add-extra-qty")) { if (limit > 0 && slectedItems.length == limit) { $$(this).prop("checked", false); valueCard.notification.create({ text: 'ניתן לבחור רק ' + limit + ' פריטים', closeTimeout: 7000, closeButton: true }).open(); return; } thisExtraList.selected.push({ id: $$(this_extra).val(), title: $$(this_extra).attr("data-extra-title"), price: $$(this_extra).attr("data-extra-price"), finalPrice: $$(this_extra).attr("data-extra-price"), is_note: $$(this_extra).attr("data-is-note"), external_id: $$(this_extra).attr("data-external-id") }); if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); if (thisExtraList.totalExtrasPrice > 0) { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").removeClass("extra-included-in-price"); } else { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").addClass("extra-included-in-price"); } } else { thisExtraList.totalExtrasPrice += parseFloat($$(this_extra).attr("data-extra-price")); } } else { var thisSelecetd = slectedItems.filter(function (d) { return d.id == this_extra[0].value }); if (thisSelecetd.length > 0 && slectedItems.length > 0) { var removeIndex = slectedItems.map(function (item) { return parseInt(item.id); }).indexOf(parseInt($$(this_extra).val())); if (removeIndex >= 0) { slectedItems.splice(removeIndex, 1); } if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); if (thisExtraList.totalExtrasPrice > 0) { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").removeClass("extra-included-in-price"); } else { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").addClass("extra-included-in-price"); } } else { thisExtraList.totalExtrasPrice -= parseFloat($$(this_extra).attr("data-extra-price")); } } } var selectedExtras = thisExtraList.selected.filter(function (e) { return parseInt(e.id) == parseInt($$(this_extra).val()) }).length; $$(this).parents(".extra-check-wrapper").find(".extra-qty-number").text(selectedExtras); if (selectedExtras > 0) { $$(this).parents(".extra-check-wrapper").find("label").addClass('selected-extra'); } else { $$(this).parents(".extra-check-wrapper").find("label").removeClass('selected-extra'); } var calculateTotal = function () { var extrasArr = valueCard.data.orderExtrasLists.map(function (d) { return prasePrice(isNaN(d.totalExtrasPrice) ? 0 : d.totalExtrasPrice) }); if (extrasArr.length) { if (typeof (extrasArr[0]) != "undefined") { return (prasePrice(parseFloat(extrasArr.reduce(function (a, b) { return parseFloat(a) + parseFloat(b); })))); } else { return 0; } } else { return 0; } } var item = { is_orders_extras: true, item_id: valueCard.data.orderExtrasItem.id, id: valueCard.data.orderExtrasItem.id, dish_id: valueCard.data.orderExtrasItem.id, external_id: valueCard.data.orderExtrasItem.external_id, title: valueCard.data.orderExtrasItem.title, category: 'תוספות להזמנה', dish_total: prasePrice(calculateTotal()), price: prasePrice(calculateTotal()), variant_lists: [], extra_lists: valueCard.data.orderExtrasLists }; Cart.removeItem(valueCard.data.orderExtrasItem.id).then(function () { Cart.addToCart(item).then(function (itemId) { loadCart.load(); }); }); loadCart.printOutTotal.printTotal(); }); if (valueCard.data.orderExtrasLists && valueCard.data.orderExtrasLists.length) { for (var i = 0; i < valueCard.data.orderExtrasLists.length; i++) { var selected = valueCard.data.orderExtrasLists[i].selected; if (selected && selected.length) { for (var s = 0; s < selected.length; s++) { $$("[value='" + selected[s].id + "']").parents(".extra-check-wrapper").find("label").addClass('selected-extra'); $$(".extra-qty-number[value='" + selected[s].id + "']").text(selected.filter(x => x.id === selected[s].id).length); } } } } loadCart.printOutTotal.printTotal(); setTimeout(function () { resetPaymentButtons(false); }, 950); }); $$(document).on('page:afterin', '.page[data-name="MemberBenefits"]', function () { $$(".BenifiteCard").on('click', function () { var promoId = $$(this).attr("data-points-promo-id"); valueCard.dialog.create({ cssClass: 'points-window BenefitPage', text: '
', on: { open: function () { var data = valueCard.MembersBinifits.filter(function (r) { return parseInt(r.PromoID) === parseInt(promoId) })[0]; data.isPointProduct = false; data.LinkToImage = data.LinkToLargeImage; loadTemplateClass(data, ".SelectDeliviryType-con", "PointsWindow-tem"); $$(".btn-open-promo-info").on('click', function () { valueCard.dialog.alert(mainView.router.currentRoute.context().Description, "תנאי ההטבה"); }); } } }).open(); }); }); $$(document).on('page:afterin', '.page[data-name="PurchasePoint"]', function () { $$(".BenifiteCard").on('click', function () { var promoId = $$(this).attr("data-points-promo-id"); valueCard.dialog.create({ cssClass: 'points-window BenefitPage', text: '
', on: { open: function () { var data = valueCard.PurchasePoint.filter(function (r) { return parseInt(r.PromoID) === parseInt(promoId) })[0]; data.isPointProduct = true; data.ImageURL = data.LinkToLargeImage.length ? data.LinkToLargeImage : data.LinkToImage; var PointsBalance = data.PointsBalance; data.underBudget = parseInt(data.PointsToDeduct.replace(",", "")) > parseInt(PointsBalance.replace(",", "")); loadTemplateClass(data, ".SelectDeliviryType-con", "PointsWindow-tem"); window.pointsSwiper = valueCard.swiper.create('.swiper-container', { speed: 700, allowTouchMove: false }); window.pointsSwiper = valueCard.swiper.get('.swiper-benifit'); $$(".action-wrapper .go-next").on('click', function () { loadingButton.init(Dom7(".buy-prod.ok")); if ($$(this).hasClass("buy-prod") || $$(this).hasClass("under-budget")) { var pId = $$(this).attr("data-promo-id"); vcapi.purchasesByPoints({ UserSecretKey: User.getSecretKey(), PromoId: pId }, function (data) { pointsSwiper.slideNext(); vcapi.getPurchasesByPoints({ UserSecretKey: User.getSecretKey() }, function (data) { valueCard.PurchasePoints = data; }, function (data) { }); }, function (xhr, errorMessage) { valueCard.notification.create({ text: errorMessage, closeTimeout: 3000, }).open(); }); } else { pointsSwiper.slideNext(); } }); $$(".btn-open-promo-info").on('click', function () { valueCard.dialog.alert(mainView.router.currentRoute.context().Description, "תנאי ההטבה"); }); $$(".action-wrapper .go-back").on('click', function () { pointsSwiper.slidePrev(); }); if (pointsSwiper) { pointsSwiper.on('slideChangeTransitionStart', function () { if (pointsSwiper.activeIndex == 2) { $$(".actions-modal").addClass("won-promo"); mainView.router.refreshPage(); } }); } } } }).open(); }); $$(".btn-refresh-points").on('click', function () { vcapi.getMemberDetails({ UserSecretKey: User.getSecretKey(), LocationID: 0 }, function (data) { valueCard.data.appConfig.MemberCard = data; $$(".user-points .user-points-amount").text(data.Points); $$(".inp-PointsBalance").text(data.Points); }); }); }); $$(document).once('page:afterin', '.page[data-name="OrdersHistory"]', function (e) { $$(document).on('click', '.restore-order', function () { var orderId = $$(this).attr("data-order-id"); Cart.getCart().then(function (cartItems) { if (cartItems.length) { valueCard.dialog.create({ text: '
' + '


' + '

שמנו לב שיש מוצרים בסל, האם לרוקן את הסל ולשכפל את ההזמנה שנבחרה?

' + '
' + '' + '' + '
', cssClass: 'logout-window restart-dialog', on: { open: function () { valueCard.popover.close(); $$(".btn-yes-logout").on('click', function () { valueCard.dialog.close(); Order.duplicateOrder(orderId); }); $$(".btn-no-logout, .close-dialog").on('click', function () { valueCard.dialog.close(); }); } } }).open(); } else { Order.duplicateOrder(orderId); } }); }); }); $$(document).on('page:afterin', '.page[data-name="ContactUs"]', function (e) { $$(".btn-send-form").on('click', function () { if (validateForm('#contact-form')) { return; } var formData = valueCard.form.convertToData("#contact-form"); formData.UserSecretKey = User.isRegistered() ? User.getSecretKey() : "-1"; vcapi.contactUsForm(formData, function (res) { valueCard.dialog.alert(res); Dom7('[name="Subject"]').val(''); Dom7('[name="Body"]').val(''); if (!User.isRegistered()) { Dom7('[name="Name"]').val(''); Dom7('[name="Phone"]').val(''); Dom7('[name="Email"]').val(''); } }, function (err) { valueCard.dialog.alert(err); }); }); }); $$(document).on('page:afterin', '.page[data-name="Branches"]', function (e) { }); $$(document).on('page:afterin', '*', function (e) { if (mainView.router.currentRoute.name != "Store" && mainView.router.currentRoute.name != "Start") { $$(".btn-go-to-main").show(); } else { $$(".btn-go-to-main").hide(); } setTimeout(function () { // Dom7(".btn-open-side-menu").attr("tabIndex", -1).focus(); }, 100); if (!IsMobile) { Dom7("#cart-view").insertAfter(Dom7(".page.page-current")); } if (IsMobile) { Dom7(".dishes-footer-mobile").insertAfter(Dom7(".page.page-current")); Dom7(".dishes-footer-mobile").attr("tabindex", 0); } }); $$(document).on("dialog:open", function () { $$(".body-inner").addClass("blur-wrapper"); }); $$(document).on("dialog:close", function () { $$(".body-inner").removeClass("blur-wrapper"); }); var closeMobileSearch = function () { if (valueCard.searchbar.get(".search-wrapper")) { if (valueCard.searchbar.get(".search-wrapper").enabled) { valueCard.searchbar.get(".search-wrapper").clear(); $$("body").removeClass("search-mode"); } } } var getOrderPayments = function (finalPrice) { finalPrice = finalPrice || 0; vcapi.getOrderPayments({ OrderId: Order.get.Id }, function (data) { if (data.length) { loadTemplateClass(data, ".order-payments-list", "orderPaymentsList-tem"); var totalPaid = data.map(function (ro) { return parseFloat(ro.Amount) }).reduce(function (a, b) { return a + b; }); $$(".btn-pay-with-cash").hide(); $$(".get-sum-order-txt").text(prasePrice(finalPrice - totalPaid)); } else { $$(".get-sum-order-txt").text(prasePrice(finalPrice)); } }, function (data) { $$(".get-sum-order-txt").text(prasePrice(finalPrice)); }); }; var checkActivityTime = function (event) { if (event) event.preventDefault(); if (window.restartActivity && window.restartActivity.opened) return false; if (mainView.router.currentRoute.name == "Start") return false; var lastActiveTime = new Date(Order.get.LastActiveTime); var now = new Date(); var diff = Math.abs(now - lastActiveTime); var minutes = Math.floor((diff / 1000) / 60); if (minutes > 180) { valueCard.actions.close(); if (window.restartActivity) window.restartActivity.open(); } } var scrollToCat = function (catid) { if (IsMobile) { var searchElementHeight = $$(".dishes-category-wrapper").offset().top + $$(".dishes-category-wrapper").height() + 20; var topHeight = findPos(Dom7(".page.page-current .dishes-items-wrapper li[data-cat-id='" + catid + "']")[0]); if (iOS || isSafari) { Dom7(".view.view-main").scrollTop(topHeight - searchElementHeight, 450); } else { Dom7(".view.view-main")[0].scroll({ top: topHeight - searchElementHeight, left: 0, behavior: 'smooth' }); } } else { var searchElementHeight = 0; // Dom7(".search-wrapper").height() + Dom7(".search-wrapper").offset().top; var topHeight = findPos(Dom7(".page.page-current .dishes-items-wrapper li[data-cat-id='" + catid + "']")[0]); var isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/); var iOS = /iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; if (iOS) { Dom7(window).scrollTop(topHeight - searchElementHeight, 450); } else { Dom7(window)[0].scroll({ top: topHeight - searchElementHeight, left: 0, behavior: 'smooth' }); } } Dom7(".page li[data-cat-id='" + catid + "']").attr("tabindex", 0); setTimeout(function () { Dom7(".page li[data-cat-id='" + catid + "'] .cat-title-header").focus(); }, 100); } var cleanOrder = function () { Order.post.UsedBalnace(0); Order.post.discount(0); Order.post.transactionId(0); Order.post.transactionMsg(""); Order.post.deliveryAddress(null); Order.post.type(0); valueCard.data.orderExtrasLists = []; Order.cleanOrder().then(function () { Cart.removeAllItems().then(function () { if (User.isVoucher()) { User.resetUser(); } if (Dom7("body").hasClass("is-call-center")) { User.resetUser(); } Branch.removeBranch().then(function () { location.reload(); valueCard.dialog.close(); }); }); }); } var loadCart = { setItemCounter: function (cartData) { var fArr = []; for (var i = 0; i < cartData.length; i++) { if (fArr[cartData[i].dish_id]) { fArr[cartData[i].dish_id]["qty"] += cartData[i].quantity; } else { fArr[cartData[i].dish_id] = { id: cartData[i].dish_id, qty: cartData[i].quantity }; } } var dishIds = Object.keys(fArr); $$(".item-cart-counter").remove(); $$(".pick-dish.item-content").removeClass("dish-in-cart"); for (var f = 0; f < dishIds.length; f++) { if (IsMobile) { $$(".pick-dish.item-content[data-dish-id='" + fArr[dishIds[f]].id + "']").addClass("dish-in-cart").append("x" + fArr[dishIds[f]].qty + ""); } else { $$(".pick-dish.item-content[data-dish-id='" + fArr[dishIds[f]].id + "']").addClass("dish-in-cart"); $$("button.add-dish-to-cart[data-dish-id='" + fArr[dishIds[f]].id + "']").append("x" + fArr[dishIds[f]].qty + ""); } } }, setCapactiy: function () { Cart.buildCart().then(function (cartItems) { if (cartItems.length === 0 && !Order.get.ActivateType) { $$(".cart-list").hide(); $$("#DeliveryType-con").hide(); $$(".cart-footer").hide(); $$(".balance-wrapper").hide(); $$(".btn-approve-cart").prop('disabled', true); $$(".empty-cart").show(); loadingButton.init(".btn-approve-cart"); } else { if (User.isRegistered() && valueCard.data.appConfig.MemberCard) { if (parseFloat(valueCard.data.appConfig.MemberCard.Balance) > 0) { $$(".balance-wrapper").show(); } } $$(".cart-list").show(); $$("#DeliveryType-con").show(); $$(".cart-footer").show(); $$(".btn-approve-cart").prop('disabled', false); $$(".empty-cart").hide(); } loadCart.setItemCounter(cartItems); }); }, setDeliveryDiv: function (price) { $$(".delivery-amount-row").remove(); if (Order.type.isDelivery()) { var html = '
' + '
דמי משלוח
' + '
' + parseFloat(Order.get.DeliveryPrice) + '
' + '
'; Dom7(".cart-item.cart-total-amount").each(function () { $$(this).prepend($$(html)); }); } }, funcs: function () { $$(document).on('click', '.btn-remove-item', function () { var item_id = $$(this).attr("data-item-id"); Cart.removeItem(item_id).then(function () { $$(".cart-item.discount-row").remove(); $$('[data-item-id="' + item_id + '"]').parents(".cart-item").remove(); loadCart.printOutTotal.printBenifits(); loadCart.setCapactiy(); }); }); $$(document).on('click', '.btn-remove-membership-payment', function () { valueCard.dialog.create({ text: '
' + '

האם אתם בטוחים שברצונכם לצאת?

' + '
' + '' + '' + '
', cssClass: 'logout-window', on: { open: function () { valueCard.popover.close(); $$(".btn-yes-logout").on('click', function () { Order.post.ActivateItem(null, null, null); Order.post.UsedBalnace(0); Order.post.discount(0); Order.post.transactionId(0); Order.post.transactionMsg(""); User.resetUser(); location.reload(); }); $$(".btn-no-logout, .close-dialog").on('click', function () { valueCard.dialog.close(); }); } } }).open(); }); $$(document).on('click', ".btn-add-qty.cart", function () { var itemId = $$(this).attr("data-item-id"); Cart.addQty(itemId, 1).then(function () { loadCart.load(); }); }); $$(document).on('click', ".btn-remove-qty.cart", function () { var itemId = $$(this).attr("data-item-id"); Cart.addQty(itemId, -1).then(function () { loadCart.load(); }); }); $$(document).on('click', ".btn-edit-dish-cart", function () { var itemId = $$(this).attr("data-item-id"); Cart.getCartItem(itemId).then(function (item) { addDishFunction(item.dish_id, false, item); }); }); loadingButton.init(".btn-approve-cart"); $$(document).on('click', '.btn-approve-cart', function () { loadingButton.init(".btn-approve-cart"); loadingButton.showPreloader(".btn-approve-cart"); var goToPaymentPage = function () { if (IsMobile) valueCard.actions.close(); mainView.router.navigate('/Payment/'); } Cart.getCartPrice().then(function (price) { if (price < Order.get.MinimumOrder) { loadingButton.hidePreloader(".btn-approve-cart"); valueCard.dialog.alert("מינימום הזמנה הוא ₪" + Order.get.MinimumOrder + ""); return; } else { var showBenfitsWindow = function () { if (IsMobile) valueCard.actions.close(); valueCard.dialog.create({ text: '
' + '

מגיע לך הטבות מיוחדות!

' + '

אתם מוזמנים לבחור הטבה מתוך מבחר ההטבות המוצעות לכם בקנייה זו

' + '
' + '

הטבה מיוחדת!

הטבה מדהימה במיוחד בשבילך!

' + '

הטבה מיוחדת!

הטבה מדהימה במיוחד בשבילך!

' + '

הטבה מיוחדת!

הטבה מדהימה במיוחד בשבילך!

' + '
' + '
' + ' ' + ' ' + '
', cssClass: 'before-paybenifits-alert', on: { open: function () { loadingButton.hidePreloader(".btn-approve-cart"); $$(".btn-go-to-benifits").on('click', function () { valueCard.dialog.close(); mainView.router.navigate({ name: "BenefitsPage" }, { reloadCurrent: true, ignoreCache: true, }); }); $$(".btn-go-to-pay").on('click', function () { valueCard.dialog.close(); goToPaymentPage(); }); $$(".close-dialog").on('click', function () { valueCard.dialog.close(); }); } } }).open(); } if (!Order.get.SelectedPromos) Order.get.SelectedPromos = []; if (User.isRegistered()) { if (valueCard.Binefits) { var promos = valueCard.Binefits.map(function (m) { if (m.IsUsed != 1) { return m.PromoID } }); var promosToShow = 0; if (promos.length) { for (var i = 0; i < promos.length; i++) { if (promos[i] && Order.get.SelectedPromos.indexOf(promos[i]) < 0) { showBenfitsWindow(); promosToShow += 1; break; } } } if (promosToShow === 0) { goToPaymentPage(); } } else { vcapi.getBinefits({ UserSecretKey: User.getSecretKey(), PromoCategoryID: 0, LocationId: Branch.get.LocationId }, function (resData) { var promos = resData.map(function (m) { if (m.IsUsed != 1) { return m.PromoID } }); var promosToShow = 0; if (promos.length) { var promosToShow = 0; for (var i = 0; i < promos.length; i++) { if (promos[i] && Order.get.SelectedPromos.indexOf(promos[i]) < 0) { showBenfitsWindow(); promosToShow += 1; break; } } } if (promosToShow === 0) { goToPaymentPage(); } }, function () { }); } } else { goToPaymentPage(); } } }); }); $$(document).on('click', '.restart-order', function () { valueCard.actions.close(); valueCard.dialog.create({ text: '
' + '

איפוס הזמנה

' + '

בלחיצה על כפתור זה ההזמנה תמחק ותעביר אותך לתהליך רכישה חדש

' + '
' + '' + '' + '
', cssClass: 'logout-window restart-dialog', on: { open: function () { valueCard.popover.close(); $$(".btn-yes-logout").on('click', function () { cleanOrder(); //loadCart.load(); //Branch.removeBranch().then(function () { // //mainView.router.navigate({ name: "Start" }); // location.reload(); //}); //valueCard.dialog.close(); }); $$(".btn-no-logout, .close-dialog").on('click', function () { valueCard.dialog.close(); }); } } }).open(); }); $$(document).on('click', '.btn-update-balance', function () { if ($$('[name="balance_value"]').val().length >= 1) { Order.post.UsedBalnace($$('[name="balance_value"]').val()); loadCart.printOutTotal.printBenifits(); } else { loadingButton.hidePreloader(); } }); $$(document).on('click', '.btn-show-branch-dialog', function () { var dialogHtml = '

' + Branch.get.Address + '

טלפון: ' + Branch.get.Phone + '

' + Branch.get.OpenHours + '

'; if (Branch.get.KosherType.length) { dialogHtml += '

כשרות: ' + Branch.get.KosherType + '

'; } if (Branch.get.EstimatedTime) { if (valueCard.data.appConfig.DisableDeliveryAndPickup) { dialogHtml += '

' + Branch.get.EstimatedTime + '

'; } else { dialogHtml += '

זמן ממוצע: ' + Branch.get.EstimatedTime + '

'; } } valueCard.dialog.create({ title: 'סניף ' + Branch.get.Name, content: dialogHtml, cssClass: 'branch-info-dialog', buttons: [{ text: 'סגור' }] }).open(); setTimeout(function () { $$(".dialog-button").attr("role", "button"); $$(".dialog-button").attr("aria-label", "סגור"); $$(".dialog-button").attr("tabindex", 0); $$(".dialog-button").focus(); }, 100); }); //$$(document).on('change', '[name="balance_value"]', function () { // DeliveryUser.userBalance = $$('[name="balance_value"]').val(); //}); $$(document).on('input', '[name="balance_value"]', function () { $$(this).val($$(this).val().replace(/[^0-9]/g, '')); //var cartTotal = parseFloat(Dom7(".cart-total-price").text()); //if (parseFloat(this.value) > cartTotal) { // this.value = cartTotal; //} }); loadCart.funcsLoded = true; }, load: function () { var deliveryText; checkMemberActiveFee(); if (valueCard.data.appConfig.DeliveryTimeUpFront && Order.get.OrderSlotData) { var data = { LocationId: Branch.get.LocationId, OrderType: Order.get.Type, RequestedDate: Order.get.OrderSlotData.date, DeliveryZoneId: Order.get.DeliveryZoneId || 0, Hour: Order.get.OrderSlotData.time.FromHour } vcapi.validOrderTimeSlot(data, function (res) { if (!res) { window.restartOrderDueToTime.open(); } }, function () { alert("x"); }); } if (Order.type.isPickup() || Order.type.isSeating()) { if (valueCard.data.appConfig.DisableDeliveryAndPickup) { deliveryText = "" + "" + Branch.get.Name + ""; if (Branch.get.EstimatedTime && Branch.get.EstimatedTime != "0") { deliveryText += '' + Branch.get.EstimatedTime + ''; } } else { if (Order.type.isSeating()) { deliveryText = "" + "סניף " + Branch.get.Name + ""; } else { deliveryText = "" + "" + getTranslate(3) + " מסניף " + Branch.get.Name + ""; } if (Branch.get.EstimatedTime && Branch.get.EstimatedTime != "0") { deliveryText += 'זמן ממוצע: ' + Branch.get.EstimatedTime + ''; } } if (valueCard.data.appConfig.DeliveryTimeUpFront && Order.get.OrderSlotData) { let date = new Date(Order.get.OrderSlotData.date); var time = convertSecondsToTime(Order.get.OrderSlotData.time.FromHour); let options = { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' }; let formattedDate = new Intl.DateTimeFormat('he-IL', options).format(date); deliveryText += 'תאריך: ' + formattedDate + ', בשעה ' + time + ''; } deliveryText += ''; } if (Order.type.isDelivery()) { if (!Order.get.DeliveryAddress) { cleanOrder(); } deliveryText = " משלוח מסניף " + Branch.get.Name + " לכתובת " + (Order.get.DeliveryAddress.AddressStreet ? Order.get.DeliveryAddress.AddressStreet : '') + " " + Order.get.DeliveryAddress.AddressHouseNumber + ", " + Order.get.DeliveryAddress.AddressCity; if (Order.get.IsExternalZone) { deliveryText = " משלוח מסניף " + Branch.get.Name + " ל" + Order.get.DeliveryAddress.AddressCity; } if (Branch.get.EstimatedTime && Branch.get.EstimatedTime != "0") { deliveryText += 'זמן ממוצע למשלוח: ' + Branch.get.EstimatedTime + ''; } if (valueCard.data.appConfig.DeliveryTimeUpFront && Order.get.OrderSlotData) { let date = new Date(Order.get.OrderSlotData.date); var time = convertSecondsToTime(Order.get.OrderSlotData.time.FromHour); let options = { weekday: 'short', day: 'numeric', month: 'short', year: 'numeric' }; let formattedDate = new Intl.DateTimeFormat('he-IL', options).format(date); deliveryText += 'תאריך: ' + formattedDate + ', בשעה ' + time + ''; } deliveryText += ''; } if (Order.type.isMenu()) { $$(".cart-delivery-text").html(''); $$(".cart-wrapper, .user-welcome, .dishes-footer-mobile").hide(); } else { $$(".cart-delivery-text").html(deliveryText); $$(".cart-wrapper, .user-welcome, .dishes-footer-mobile").show(); } if (!User.isRegistered()) { valueCard.form.removeFormData('#order-sum') } Cart.buildCart().then(function (cartData) { var cartList = {}; cartList.list = cartData; cartList.ActivateItem = Order.get.ActivateItemId ? true : false; if (cartList.ActivateItem) { cartList.ActivateType = Order.get.ActivateType; cartList.ActivatePrice = Order.get.ActivatePrice; } loadTemplateClass(cartList, ".cart-list-con", "cart-list-tem"); loadCart.setCapactiy(); loadCart.printOutTotal.printBenifits(); if (!loadCart.funcsLoded) loadCart.funcs(); }); if (User.isRegistered()) { if (valueCard.data.appConfig.MemberCard) { if (parseFloat(valueCard.data.appConfig.MemberCard.Balance) > 0) { $$(".cart-wrapper .balance-wrapper").show(); $$(".cart-wrapper .balance-wrapper .balncae-header h1 span").text(valueCard.data.appConfig.MemberCard.Balance); loadingButton.init(".btn-update-balance"); } if (parseFloat(valueCard.data.appConfig.MemberCard.Points) > 0) { $$(".cart-points-sticky").addClass('has-points'); var points = parseInt(valueCard.data.appConfig.MemberCard.Points.replace(",", "")); $$(".cart-points-sticky b").text(points); } } } if (!IsMobile) $$("#cart-view").show(); }, printOutTotal: { inBenifits: function () { var promise = new Promise(function (resolve, reject) { if (window.settt) clearInterval(window.settt); startCheckbenifitsCounter(); $$(".cart-item.discount-row").remove(); var promoIds; var balance = Order.get.UsedBalnace || 0; // if ((Order.get.SelectedPromos) || balance >= 1) { if (Order.get.SelectedPromos && Order.get.SelectedPromos.length) { promoIds = Order.get.SelectedPromos.join(","); } $$($$('
מחשב הטבות...
')).insertBefore(".cart-item.cart-total-amount"); window.settt = setInterval(function () { checkbenifitsCounter += 1; if (checkbenifitsCounter == (checkbenifitsMs)) { checkbenifitsCounter = 0; clearInterval(window.settt); Cart.calculateBenefits(promoIds, balance).then(function (data) { Order.post.transactionId(data.TransactionId); Order.post.transactionMsg(data.printMesseage); Order.post.discount(data.Discount); if (data.givenPointsRedemption) { if (data.givenPointsRedemption.length && valueCard.data.appConfig.MemberCard.Balance) { var amount = parseFloat(valueCard.data.appConfig.MemberCard.Balance.replace(",","")) - parseFloat(data.givenPointsRedemption.replace(",","")); $$(".spn-cash-back-amount").text(amount.toFixed(2)); } } if (Order.get.UsedBalnace) { $$('[name="balance_value"]').val(Order.get.UsedBalnace); } Cart.getCartPrice().then(function (cartPrice) { var totalPrice = parseFloat(cartPrice); // if ((promoIds && promoIds.length) || balance >= 1) { if (data.Discount > 0) { var GivenPromos = data.GivenPromoIDs.split(";"); var strPromos = ''; for (var i = 0; i < GivenPromos.length; i++) { var discountAmountStr = ''; var discountAmount = GivenPromos[i].split("|")[2]; if (discountAmount && parseFloat(discountAmount) > 0) { discountAmountStr = ": " + discountAmount + "-"; } if (GivenPromos[i].indexOf("|") > -1) strPromos += GivenPromos[i].split("|")[1] + discountAmountStr + "
"; } if (parseFloat(data.givenPointsRedemption) > 0) { strPromos += "תקציב שמומש בחשבון זה: " + data.givenPointsRedemption; } var cartDiscountTotal = "סך הנחות מועדון"; if (User.isVoucher()) { cartDiscountTotal = "סך הנחות שובר"; } var html = '
' + '
' + cartDiscountTotal + '
' + strPromos + '
' + '
' + '
- ' + parseFloat(data.Discount).toFixed(2) + '
' + '
'; $$(".cart-item.discount-row").html(html); resolve(); } else if (data.IsError) { var html = '
' + '
' + data.Message + '
' + '
'; $$(".cart-item.discount-row").html(html); resolve(); } else { $$(".cart-item.discount-row").remove(); resolve(); } //} else { // $$(".cart-item.discount-row").remove(); // resolve(); //} }); }); } }, 1); //} else { // resolve(); //} }); return promise; }, inTip: function () { var promise = new Promise(function (resolve, reject) { var discount = Order.get.Discount; Cart.getTotalPrice(true, discount).then(function (price) { var tipAmount = 0; var deliveryPrice = 0; if (Order.type.isDelivery()) deliveryPrice = Order.get.DeliveryPrice; if (Order.get.Tip) { $$(".tip-amount-row").remove(); if (parseInt(Order.get.Tip.amount) > 0) { // remove join amount var ActivatePrice = 0; //if (Order.get.ActivatePrice) { // ActivatePrice = parseFloat(Order.get.ActivatePrice); //} if (Order.get.Tip.type === 1) { tipAmount = parseFloat((Order.get.Tip.amount / 100) * (price - parseFloat(deliveryPrice) - ActivatePrice)); } else if (Order.get.Tip.type === 2) { tipAmount = Order.get.Tip.amount; } Order.post.tip( Order.get.Tip.amount, Order.get.Tip.type, tipAmount ); var tipChar = Order.get.Tip.type === 1 ? Order.get.Tip.amount + '%' : ''; var html = '
' + '
' + '' + tipChar +' טיפ
' + '
' + parseFloat(tipAmount).toFixed(1) + '
' + '
'; $$(".cart-item.cart-total-amount").each(function () { $$(this).prepend($$(html)); }); resetPaymentButtons(false); resolve(); } else { resolve(); } } else { Order.post.tip( 0, 0, 0 ); resolve(); } }); }); return promise; }, //print out starting from benifits printBenifits: function () { var balance = Order.get.UsedBalnace; if (User.isRegistered() // && ((Order.get.SelectedPromos) || (Order.get.UsedBalnace && balance.length)) ) { loadCart.printOutTotal.inBenifits().then(function () { loadCart.printOutTotal.inTip().then(function () { loadCart.printOutTotal.printTotal(); }); }); } else { loadCart.printOutTotal.inTip().then(function () { loadCart.printOutTotal.printTotal(); }); } }, //print out starting from tips printTips: function () { loadCart.printOutTotal.inTip().then(function () { loadCart.printOutTotal.printTotal(); }); }, printTotal: function () { var discount = 0; if (User.isRegistered() || User.isVoucher()) { if (Order.get.Discount) { discount = Order.get.Discount; } } Cart.getTotalPrice(false, discount).then(function (price) { loadCart.setDeliveryDiv(price); $$(".cart-total-price").html("" + price); resetPaymentButtons(false); getOrderPayments(price); if (parseFloat(price) == 0) { $$(".payment-method-actions button").hide(); $$(".btn-pay-with-vc").show(); $$(".no-payment-needed-text").show(); $$(".payment-needed-text").hide(); $$(".payment-section-header").text("סיום הזמנה"); } else { $$(".payment-method-actions button").show(); $$(".btn-pay-with-vc").hide(); $$(".no-payment-needed-text").hide(); $$(".payment-needed-text").show(); $$(".payment-section-header").text("תשלום"); } Cart.getCart().then(function (items) { var total = 0; if (items && items.length) { total = items.map(function (ite) { return ite.quantity; }).reduce(function (a, b) { return a + b; }); $$(".input-wrapper.payment-method-actions").show(); } else { $$(".input-wrapper.payment-method-actions").hide(); } $$(".dishes-footer-inner .cart-total").html(total); }); }); } } }; window.addDishFunction = function (dishId, pointsPurches, editDishObj) { var dishData = valueCard.data.dishis.filter(function (s) { return s.id == dishId; })[0]; var isPizza = dishData.is_pizza_builder; valueCard.data.dialogDishItem = JSON.parse(JSON.stringify(dishData)); valueCard.data.dialogDishItem.extra_lists = valueCard.data.dialogDishItem["extra-lists"]; var calculateTotal = function () { var extrasArr = valueCard.data.dialogDishItem.extra_lists.map(function (d) { return prasePrice(isNaN(d.totalExtrasPrice) ? 0 : d.totalExtrasPrice) }); if (extrasArr.length) { if (typeof (extrasArr[0]) != "undefined") { return (prasePrice(parseFloat(extrasArr.reduce(function (a, b) { return a + b; })) + parseFloat(valueCard.data.dialogdishPrice))) * valueCard.data.dialogDishItem.quantity; } else { return valueCard.data.dialogdishPrice * valueCard.data.dialogDishItem.quantity; } } else { return valueCard.data.dialogdishPrice * valueCard.data.dialogDishItem.quantity; } } var optionsDialog; var addItemToCart = function () { var ext_id = valueCard.data.dialogDishItem.external_id == "0" || valueCard.data.dialogDishItem.external_id == "" ? valueCard.data.dialogDishItem.dish_id : valueCard.data.dialogDishItem.external_id; Cart.getCartItemNum().then(function (items) { if (Order.get.ActivateItemId) { items.push(Order.get.ActivateItemId); } var cartItems = items.join(","); Cart.getCartPrice().then(function (cartPrice) { applyAdEvent(6, null, ext_id, true, cartItems, cartPrice); }); }); Cart.addToCart(valueCard.data.dialogDishItem).then(function (itemId) { loadCart.load(); closeMobileSearch(); if (FBid.length) { fbq('track', 'AddToCart', { content_name: valueCard.data.dialogDishItem.title, content_category: valueCard.data.dialogDishItem.category, content_ids: [ext_id], content_type: 'product', value: valueCard.data.dialogDishItem.dish_total, currency: 'ILS' }); } if (GAid.length && typeof (ga) != "undefined") { ga("ec:addProduct", { "id": valueCard.data.dialogDishItem.external_id, "name": valueCard.data.dialogDishItem.title, "price": valueCard.data.dialogDishItem.dish_total, "category": valueCard.data.dialogDishItem.category, "quantity": valueCard.data.dialogDishItem.quantity }); ga("ec:setAction", "add"); ga("send", "event", "Product view", "click", "addToCart"); ga('ecommerce:send'); } if (typeof gtag != "undefined") { gtag('event', 'add_to_cart', { "items": [{ "item_name": valueCard.data.dialogDishItem.title, "item_id": valueCard.data.dialogDishItem.external_id, "quantity": valueCard.data.dialogDishItem.quantity, "price": valueCard.data.dialogDishItem.dish_total }] }); } if (window.dataLayer) { dataLayer.push({ 'event': 'addToCart', 'ecommerce': { 'currencyCode': 'NIS', 'add': { // 'add' actionFieldObject measures. 'products': [{ // adding a product to a shopping cart. 'name': valueCard.data.dialogDishItem.title, 'id': valueCard.data.dialogDishItem.external_id, 'price': valueCard.data.dialogDishItem.dish_total, 'category': valueCard.data.dialogDishItem.category, 'quantity': valueCard.data.dialogDishItem.quantity }] } } }); } valueCard.notification.create({ text: 'הפריט נוסף לסל', closeTimeout: 3500, closeButton: true }).open(); loadCart.printOutTotal.printBenifits(); if (IsMobile) valueCard.actions.close(); else valueCard.dialog.close(); }); }; var validateRequiredElemnts = function () { var selected = 0; var err_str = ''; var returnElem; if (valueCard.data.dialogDishItem.variant_lists) { var req_variants = valueCard.data.dialogDishItem.variant_lists.filter(function (itm) { return itm.is_required && !itm.selectedId; });; if (req_variants && req_variants.length) { err_str += 'חובה לבחור '; for (var i = 0; i < req_variants.length; i++) { if (i > 0) err_str += ', '; err_str += req_variants[i].title; selected = + 1; if (!returnElem) { returnElem = Dom7('[name="dish_variant_' + req_variants[i].id + '"]')[0]; $$(returnElem).attr("aria-label", err_str) } } } } if (valueCard.data.dialogDishItem.extra_lists) { for (var i = 0; i < valueCard.data.dialogDishItem.extra_lists.length; i++) { var el = valueCard.data.dialogDishItem.extra_lists[i]; if (el.minimum_required > 0) { if (!el.selected || (el.selected && el.selected.length < el.minimum_required)) { if (selected > 0) err_str += '
'; err_str += 'חובה לבחור לפחות '; err_str += el.minimum_required + ' מתוך ' + el.title; selected = + 1; if (!returnElem) { if (parseInt(el.allow_multiply_extras) == 1) { returnElem = Dom7(Dom7('[data-list-id="' + el.id + '"]')[0]).parent(".extra-check-wrapper").find(".btn-add-extra-qty"); } else { returnElem = Dom7('[data-list-id="' + el.id + '"]')[0]; } $(returnElem).attr("aria-label", err_str) } } } } } if (selected > 0) { if (IsMobile) { valueCard.dialog.alert(err_str); } else { valueCard.notification.create({ text: err_str, closeTimeout: 6500, closeButton: true }).open(); setTimeout(function () { $$(returnElem).attr("tabindex", 0); $$(returnElem).focus(); }, 500); } return true; } else { return false; } }; var calculateExtraIncluded = function (extra_included, parent_index) { var arr = valueCard.data.dialogDishItem.extra_lists[parent_index].selected.map(function (d) { return parseFloat(d.price) }).sort(function (a, b) { return b - a; }).slice(extra_included); if (arr.length) { return arr.reduce(function (a, b) { return a + b }); } else { return 0; } } var dialogOptions = { cssClass: 'dish-window', closeByBackdropClick: true, on: { open: function () { $$(".dish-window.modal-in").attr("aria-label", valueCard.data.dialogDishItem.title + '. ' + valueCard.data.dialogDishItem.ingredients + '. מחיר: ' + valueCard.data.dialogDishItem.price + ' שקל ' ); setTimeout(function () { $$(".btn-close-window").focus(); }, 100); valueCard.data.dialogDishItem.quantity = editDishObj ? editDishObj.quantity : 1; valueCard.data.dialogdishPrice = parseFloat(valueCard.data.dialogDishItem.price); valueCard.data.dialogDishItem.extra_lists = valueCard.data.dialogDishItem["extra-lists"]; if (FBid.length) { fbq('track', 'ViewContent', { content_name: valueCard.data.dialogDishItem.title, content_category: valueCard.data.dialogDishItem.category, content_ids: [valueCard.data.dialogDishItem.external_id], content_type: 'product', value: valueCard.data.dialogdishPrice, currency: 'ILS' }); } if (typeof gtag != "undefined") { gtag('event', 'view_item', { items: [ { item_name: valueCard.data.dialogDishItem.title, item_id: valueCard.data.dialogDishItem.external_id, price: valueCard.data.dialogdishPrice, item_category: valueCard.data.dialogDishItem.category, }, ] }); } if (GAid.length && typeof (ga) != "undefined") { ga('ec:addImpression', { 'id': valueCard.data.dialogDishItem.external_id, 'name': valueCard.data.dialogDishItem.title, 'type': 'view', 'category': valueCard.data.dialogDishItem.category }); ga('ecommerce:addImpression', { 'id': valueCard.data.dialogDishItem.external_id, 'name': valueCard.data.dialogDishItem.title, 'type': 'view', 'category': valueCard.data.dialogDishItem.category }); ga('ecommerce:send'); } if (window.dataLayer) { dataLayer.push({ 'ecommerce': { 'detail': { 'actionField': { 'list': valueCard.data.dialogDishItem.category }, 'products': [{ 'name': valueCard.data.dialogDishItem.title, 'id': valueCard.data.dialogDishItem.external_id, 'price': valueCard.data.dialogdishPrice, 'category': valueCard.data.dialogDishItem.category, }] } } }); } if (valueCard.data.dialogDishItem["variant-lists"].length) { valueCard.data.dialogDishItem.variant_lists = valueCard.data.dialogDishItem["variant-lists"]; var variantList_arr = valueCard.data.dialogDishItem.variant_lists; for (var v = 0; v < variantList_arr.length; v++) { var variantItems_arr = variantList_arr[v].variants; for (var vs = 0; vs < variantItems_arr.length; vs++) { variantItems_arr[vs].variant_list_id = variantList_arr[v].id; } variantList_arr[v].variants = variantItems_arr.sort(function (a, b) { if (parseInt(a.order) < parseInt(b.order)) { return -1; } if (parseInt(a.order) > parseInt(b.order)) { return 1; } return 0; }); } valueCard.data.dialogDishItem.variant_lists = variantList_arr.sort(function (a, b) { if (parseInt(a.order) < parseInt(b.order)) { return -1; } if (parseInt(a.order) > parseInt(b.order)) { return 1; } return 0; }); } if (valueCard.data.dialogDishItem.extra_lists.length) { var extra_lists = valueCard.data.dialogDishItem.extra_lists; extra_lists = extra_lists.sort(function (a, b) { if (parseInt(a.order_no) < parseInt(b.order_no)) { return -1; } if (parseInt(a.order_no) > parseInt(b.order_no)) { return 1; } return 0; }); for (var c = 0; c < extra_lists.length; c++) { var extras_arr = extra_lists[c].extras; var list_id = extra_lists[c].id; for (var d = 0; d < extras_arr.length; d++) { extras_arr[d].allow_multiply_extras = extra_lists[c].allow_multiply_extras; extras_arr[d].random_id = Math.random().toString(36).substr(2, 9); extras_arr[d].list_id = extra_lists[c].id; extras_arr[d].price = prasePrice(extra_lists[c].extras[d].price); } extra_lists[c].extras = extras_arr.sort(function (a, b) { if (parseInt(a.order) < parseInt(b.order)) { return -1; } if (parseInt(a.order) > parseInt(b.order)) { return 1; } return 0; }); if (extra_lists[c].is_pizza_extras) { var pizzaExtras = extra_lists[c].pizza_extras; pizzaExtras.forEach((topping) => { topping.extras.forEach((extra) => { extra.list_id = list_id; }); }); } } } if (isPizza) { loadTemplateClass(valueCard.data.dialogDishItem, ".DishWindow-con", "DishPizzaWindow-tem"); } else { loadTemplateClass(valueCard.data.dialogDishItem, ".DishWindow-con", "DishWindow-tem"); } $$(".DishWindow-con .dish-inner a").each(function (params) { $$(this).addClass("link external").attr("target", "_blank"); }); if (!editDishObj) { $$(".dialog-dish-price").text("₪" + prasePrice(valueCard.data.dialogdishPrice)); } else { $$(".dialog-dish-price").text("₪" + prasePrice(editDishObj.dish_total)); $$(".dish-comment-input").val(editDishObj.dish_comment); $$(".btn-add-dish").text('עדכון מוצר'); // fill edit extras list checkboxes if (editDishObj.extra_lists && editDishObj.extra_lists.length) { for (var el = 0; el < editDishObj.extra_lists.length; el++) { var list = editDishObj.extra_lists[el]; for (var it = 0; it < list.items.length; it++) { var chk_item = list.items[it]; var dishExtraListItem = valueCard.data.dialogDishItem.extra_lists.filter(function (li) { return parseInt(li.id) == parseInt(list.id) })[0]; if (dishExtraListItem.is_pizza_extras) { $$(".chk-extra-position[value='" + chk_item.id + "']").prop("checked", true).addClass("selected"); $$(".chk-extra-position[value='" + chk_item.id + "']").parents(".pizza-extra-main").addClass('active'); var disExtraItem; for (var pt = 0; pt < dishExtraListItem.pizza_extras.length; pt++) { var findExtra = dishExtraListItem.pizza_extras[pt].extras.filter(function (p) { return parseInt(p.id) == parseInt(chk_item.id) })[0]; if (findExtra) { disExtraItem = findExtra; $(".pizza-builder-robot .pizza-extras").append(" "); break; } } } else { $$(".chk-add-extra[data-list-id='" + list.id + "'][value='" + chk_item.id + "']").prop("checked", true); var disExtraItem = dishExtraListItem.extras.filter(function (ex) { return parseInt(ex.id) == parseInt(chk_item.id) })[0]; } if (dishExtraListItem.selected) { } else { dishExtraListItem.selected = []; } disExtraItem.is_note = disExtraItem.external_id == "0" || disExtraItem.external_id == "" ? "1" : "0"; dishExtraListItem.selected.push(disExtraItem); var extra_included = parseInt(dishExtraListItem.extra_included); if (extra_included) { dishExtraListItem.totalExtrasPrice = calculateExtraIncluded(extra_included, el); if (dishExtraListItem.selected.length > extra_included) { $$("[data-list-id='" + list.id + "'][value='" + chk_item.id + "']").parents(".extra-list-wrapper").removeClass("extra-included-in-price"); } else { $$("[data-list-id='" + list.id + "'][value='" + chk_item.id + "']").parents(".extra-list-wrapper").addClass("extra-included-in-price"); } } else { valueCard.data.dialogdishPrice += parseFloat(disExtraItem.price); } // fill edit multiply extras list inputs //if (chk_item.qty > 1) { $$(".extra-qty-number[data-list-id='" + list.id + "'][value='" + chk_item.id + "']").text(chk_item.qty); //} if (chk_item.qty >= 1) { $$("[data-list-id='" + list.id + "'][value='" + chk_item.id + "']").parents(".extra-check-wrapper").find("label").addClass('selected-extra'); } else { $$("[data-list-id='" + list.id + "'][value='" + chk_item.id + "']").parents(".extra-check-wrapper").find("label").removeClass('selected-extra'); } } } } // fill edit extras checkboxes if (editDishObj.extras && editDishObj.extras.length) { for (var ex = 0; ex < editDishObj.extras.length; ex++) { var chk = editDishObj.extras[ex]; $$(".chk-add-signal-extra[value='" + chk.id + "']").prop("checked", true); var disExtraItem = valueCard.data.dialogDishItem.extras.filter(function (f) { return parseInt(f.id) == parseInt(chk.id) })[0]; disExtraItem.selected = true; valueCard.data.dialogdishPrice += parseFloat(disExtraItem.price); } } // fill edit variant_lists checkboxes if (editDishObj.variant_lists && editDishObj.variant_lists.length) { for (var vl = 0; vl < editDishObj.variant_lists.length; vl++) { var list = editDishObj.variant_lists[vl]; $$("div[data-varient-list-id='" + list.id + "'] input[value='" + list.selectedId + "']").prop('checked', true); var selected = valueCard.data.dialogDishItem.variant_lists.filter(function (vr) { return parseInt(vr.id) == parseInt(list.id); })[0]; selected.selectedId = list.selectedId; selected.selectedTitle = list.selectedTitle; } } } $$(".btn-close-window").on('click', function () { if (IsMobile) { valueCard.actions.close(); } else { valueCard.dialog.close(); } }); if (pointsPurches) { $$(".btn-add-dish").text('הוספה ומימוש ' + pointsPurches.PointsToDeduct + ' ' + pointsPurches.PointsTerm); } var addQty = function (num) { if ((valueCard.data.dialogDishItem.quantity + num) < 1 || (valueCard.data.dialogDishItem.quantity + num) > 99) return; valueCard.data.dialogDishItem.quantity += num; $$(".dish-window-footer .qty-number").text(valueCard.data.dialogDishItem.quantity); $$(".dialog-dish-price").text("₪" + (prasePrice(calculateTotal()))); } if (valueCard.data.dialogDishItem.qty_available) { Cart.getItemById(valueCard.data.dialogDishItem.id).then(function (item) { if (item) { if (item.quantity && !editDishObj) { valueCard.data.dialogDishItem.qty_available -= item.quantity; } if (valueCard.data.dialogDishItem.qty_available < 1) { $$("#DishWindow-con .qty-number").text("0"); $$("#DishWindow-con .btn-add-dish").prop("disabled", "disabled"); } } }); } else { valueCard.data.dialogDishItem.qty_available = 100; } $$(".dish-window .btn-add-qty").on('click', function () { var qty_available = valueCard.data.dialogDishItem.qty_available; if (valueCard.data.dialogDishItem.quantity < parseInt(qty_available)) { addQty(1); } }); $$(".dish-window .btn-remove-qty").on('click', function () { addQty(-1); }); $$(".chk-add-signal-extra").on('change', function () { var selectedId = $$(this).val(); var selectedExtra = valueCard.data.dialogDishItem.extras.filter(function (r) { return parseInt(r.id) == parseInt(selectedId) })[0]; if ($$(this).is(":checked")) { selectedExtra.selected = true; valueCard.data.dialogdishPrice += parseFloat($$(this).attr("data-extra-price")) } else { selectedExtra.selected = false; valueCard.data.dialogdishPrice -= parseFloat($$(this).attr("data-extra-price")) } $$(".dialog-dish-price").text("₪" + prasePrice(calculateTotal())); }); function addCheckedExtra(element, parent_index, thisExtraList, slectedItems, limit, extra_included) { //if (limit == 1 && slectedItems.length == limit) { // removeCheckedExtra(element.parents('.extra-list-wrapper').find("input:checked"), parent_index, thisExtraList, slectedItems, limit, extra_included); // element.parents('.extra-list-wrapper').find("input:checked").prop("checked", false); // element.prop("checked", true); //} else if (limit > 0 && slectedItems.length == limit) { element.prop("checked", false); valueCard.notification.create({ text: 'ניתן לבחור רק ' + limit + ' פריטים', closeTimeout: 7000, closeButton: true }).open(); return; } var extraObj = { id: element.val(), title: element.attr("data-extra-title"), price: element.attr("data-extra-price"), is_note: element.attr("data-is-note"), external_id: element.attr("data-external-id"), } if (element.attr("data-pizza-extra-type")) { extraObj.pizza_extra_type = element.attr("data-pizza-extra-type"); } thisExtraList.selected.push(extraObj); if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); if (thisExtraList.totalExtrasPrice > 0) { element.parents("[data-extra-list-index] .extra-list-wrapper").removeClass("extra-included-in-price"); } else { element.parents("[data-extra-list-index] .extra-list-wrapper").addClass("extra-included-in-price"); } } else { valueCard.data.dialogdishPrice += parseFloat(element.attr("data-extra-price")) } $$(".dialog-dish-price").text("₪" + (prasePrice(calculateTotal()))); return true; } function removeCheckedExtra(element, parent_index, thisExtraList, slectedItems, limit, extra_included) { var removeIndex = slectedItems.map(function (item) { return parseInt(item.id); }).indexOf(parseInt(element.val())); slectedItems.splice(removeIndex, 1); if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); if (thisExtraList.totalExtrasPrice > 0) { element.parents("[data-extra-list-index] .extra-list-wrapper").removeClass("extra-included-in-price"); } else { element.parents("[data-extra-list-index] .extra-list-wrapper").addClass("extra-included-in-price"); } } else { if (valueCard.data.dialogdishPrice <= 0) { valueCard.data.dialogdishPrice = 0; } else { valueCard.data.dialogdishPrice -= parseFloat(element.attr("data-extra-price")) } } $$(".dialog-dish-price").text("₪" + (prasePrice(calculateTotal()))); } $$(".chk-add-extra").on('change', function () { var parent_index = $$(this).parents("[data-extra-list-index]").attr("data-extra-list-index"); var thisExtraList = valueCard.data.dialogDishItem.extra_lists[parent_index]; var slectedItems = thisExtraList.selected; var limit = parseInt(thisExtraList.limit); var extra_included = parseInt(thisExtraList.extra_included); if (!thisExtraList.totalExtrasPrice) thisExtraList.totalExtrasPrice = 0; if (!slectedItems) slectedItems = thisExtraList.selected = []; if ($$(this).is(":checked")) { addCheckedExtra($$(this), parent_index, thisExtraList, slectedItems, limit, extra_included); } else { removeCheckedExtra($$(this), parent_index, thisExtraList, slectedItems, limit, extra_included); } }); $$(".dish-window .chk-extra-position").on('click', function () { var parent_index = $$(this).parents("[data-extra-list-index]").attr("data-extra-list-index"); var thisExtraList = valueCard.data.dialogDishItem.extra_lists[parent_index]; var slectedItems = thisExtraList.selected; var limit = parseInt(thisExtraList.limit); var extra_included = parseInt(thisExtraList.extra_included); if (!thisExtraList.totalExtrasPrice) thisExtraList.totalExtrasPrice = 0; if (!slectedItems) slectedItems = thisExtraList.selected = []; //var removeIndex = slectedItems.map(function (item) { return parseInt(item.pizza_extra_type); }).indexOf(parseInt($$(this).attr("data-pizza-extra-type"))); //if (removeIndex >= 0) slectedItems.splice(removeIndex, 1); $(".pizza-builder-robot .pizza-extras [data-ext-type-id='" + $$(this).attr("data-pizza-extra-type") + "']").remove(); var inp = $$(this); if (inp.is(".selected")) { //see if it has the selected class inp.prop("checked", false).removeClass("selected"); $$(this).parents('.pizza-extra-main').removeClass("active"); removeCheckedExtra($$(this), parent_index, thisExtraList, slectedItems, limit, extra_included); $(".pizza-builder-robot .pizza-extras [data-ext-id='" + $$(this).val() + "']").remove(); return; } else { $$("[data-extra-list-index='" + parent_index + "'] [data-pizza-extra-type='" + $$(this).attr("data-pizza-extra-type") + "']") if ($$("[data-extra-list-index='" + parent_index + "'] .selected[data-pizza-extra-type='" + $$(this).attr("data-pizza-extra-type") + "']").length) { removeCheckedExtra($$("[data-extra-list-index='" + parent_index + "'] .selected[data-pizza-extra-type='" + $$(this).attr("data-pizza-extra-type") + "']"), parent_index, thisExtraList, slectedItems, limit, extra_included); } if (addCheckedExtra($$(this), parent_index, thisExtraList, slectedItems, limit, extra_included)) { $("input:radio[name='" + inp.prop("name") + "'].selected").removeClass("selected"); inp.addClass("selected"); $$(this).parents('.pizza-extra-main').addClass("active"); $(".pizza-builder-robot .pizza-extras").append(" "); } } }); $$(".btn-add-extra-qty, .btn-remove-extra-qty").on("click", function () { var parent_index = $$(this).parents("[data-extra-list-index]").attr("data-extra-list-index"); var this_extra = $$(this).parents(".extra-check-wrapper").find(".hdn-extra");; var thisExtraList = valueCard.data.dialogDishItem.extra_lists[parent_index]; var slectedItems = thisExtraList.selected; var limit = parseInt(thisExtraList.limit); var extra_included = parseInt(thisExtraList.extra_included); if (!thisExtraList.totalExtrasPrice) thisExtraList.totalExtrasPrice = 0; if (!slectedItems) slectedItems = thisExtraList.selected = []; if ($$(this).hasClass("btn-add-extra-qty")) { if (limit > 0 && slectedItems.length == limit) { $$(this).prop("checked", false); valueCard.notification.create({ text: 'ניתן לבחור רק ' + limit + ' פריטים', closeTimeout: 7000, closeButton: true }).open(); return; } thisExtraList.selected.push({ id: $$(this_extra).val(), title: $$(this_extra).attr("data-extra-title"), price: $$(this_extra).attr("data-extra-price"), is_note: $$(this_extra).attr("data-is-note"), external_id: $$(this_extra).attr("data-external-id"), }); if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); if (thisExtraList.totalExtrasPrice > 0) { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").removeClass("extra-included-in-price"); } else { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").addClass("extra-included-in-price"); } } else { valueCard.data.dialogdishPrice += parseFloat($$(this_extra).attr("data-extra-price")) } } else { var thisSelecetd = slectedItems.filter(function (d) { return d.id == this_extra[0].value }); if (thisSelecetd.length > 0 && slectedItems.length > 0) { var removeIndex = slectedItems.map(function (item) { return parseInt(item.id); }).indexOf(parseInt($$(this_extra).val())); if (removeIndex >= 0) { slectedItems.splice(removeIndex, 1); } if (extra_included) { thisExtraList.totalExtrasPrice = calculateExtraIncluded(extra_included, parent_index); if (thisExtraList.totalExtrasPrice > 0) { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").removeClass("extra-included-in-price"); } else { $$(this).parents("[data-extra-list-index] .extra-list-wrapper").addClass("extra-included-in-price"); } } else { if (valueCard.data.dialogdishPrice <= 0) { valueCard.data.dialogdishPrice = 0; } else { valueCard.data.dialogdishPrice -= parseFloat($$(this_extra).attr("data-extra-price")) } } } } var selectedExtras = thisExtraList.selected.filter(function (e) { return parseInt(e.id) == parseInt($$(this_extra).val()) }).length; $$(this).parents(".extra-check-wrapper").find(".extra-qty-number").text(selectedExtras); if (selectedExtras > 0) { $$(this).parents(".extra-check-wrapper").find("label").addClass('selected-extra'); } else { $$(this).parents(".extra-check-wrapper").find("label").removeClass('selected-extra'); } $$(".dialog-dish-price").text("₪" + (prasePrice(calculateTotal()))); }); $$('.varient-item input.rdb-variant-dish').on('change', function () { var parent_index = $$(this).parents("[data-varient-list-index]").attr("data-varient-list-index"); var varId = parseInt($$(this).val()); var selected = valueCard.data.dialogDishItem.variant_lists[parent_index].variants.filter(function (r) { return parseInt(r.id) == varId; })[0]; valueCard.data.dialogDishItem.variant_lists[parent_index].selectedId = selected.id; valueCard.data.dialogDishItem.variant_lists[parent_index].selectedTitle = selected.title; }); $$(".btn-add-dish").on('click', function () { if (validateRequiredElemnts()) return; if (calculateTotal() == 0) return; if (pointsPurches) { vcapi.purchasesByPoints({ UserSecretKey: User.getSecretKey(), PromoId: pointsPurches.PromoId || pointsPurches.PromoID }, function (data) { vcapi.getPurchasesByPoints({ UserSecretKey : User.getSecretKey(), LocationId: Branch.get.LocationId }, function (data) { valueCard.PurchasePoints = data; valueCard.data.dialogDishItem.dish_comment = $$(".dish-comment-input").val(); valueCard.data.dialogDishItem.dish_total = (calculateTotal() / valueCard.data.dialogDishItem.quantity).toFixed(2); Order.post.addSelectedPointsPromoIDs(pointsPurches.PromoID); Order.post.addSelectedPromo(pointsPurches.PromoID); pointsPurches.checkIfPromoIsUsed(); vcapi.getMemberDetails({ UserSecretKey: User.getSecretKey(), LocationID: Branch.get.LocationId || 0 }, function (data) { valueCard.data.appConfig.MemberCard = data; $$(".user-points .user-points-amount").text(data.Points); $$(".inp-PointsBalance").text(data.Points); }); addItemToCart(); }, function (data) { }); }, function (xhr, errorMessage) { }); } else { valueCard.data.dialogDishItem.dish_comment = $$(".dish-comment-input").val(); valueCard.data.dialogDishItem.dish_total = (calculateTotal() / valueCard.data.dialogDishItem.quantity).toFixed(2); if (!editDishObj) { addItemToCart(); } else { Cart.editCartItem(valueCard.data.dialogDishItem, editDishObj.item_id).then(function (itemId) { loadCart.load(); valueCard.notification.create({ text: 'הפריט עודכן לסל', closeTimeout: 3500, closeButton: true }).open(); loadCart.printOutTotal.printBenifits(); if (IsMobile) valueCard.actions.close(); else valueCard.dialog.close(); }); } } }); Dom7(".dish-window").css({ height: Dom7("#DishWindow-con").height() + "px", opacity: 1 }); Dom7(".dish-window .dish-inner").css({ height: Dom7(".dialog.dish-window").height() - (Dom7("#DishWindow-con .dish-window-footer").height()) + "px" }); if (IsMobile) { if (!isPizza) { Dom7(".dish-window .dish-inner").css({ height: (Dom7(".dish-window").height() - 40) + "px" }); } else { Dom7(".dish-window .scroll-area").css({ height: (Dom7(".dish-window").height() - 280) + "px" }); $$(".btn-quarter-mobile").on('click', function (e) { e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); //var parent_index = $$(this).parents("[data-extra-list-index]").attr("data-extra-list-index"); //var thisExtraList = valueCard.data.dialogDishItem.extra_lists[parent_index]; //var limit = parseInt(thisExtraList.limit); //var slectedItems = thisExtraList.selected; //if (limit > 0 && slectedItems.length == limit) { // $$(this).prop("checked", false); // valueCard.notification.create({ // text: 'ניתן לבחור רק ' + limit + ' פריטים', // closeTimeout: 7000, // closeButton: true // }).open(); // return; //} valueCard.dialog.pizzaExtraSelector = $$(this).parent(); valueCard.dialog.create({ text: '
' + valueCard.dialog.pizzaExtraSelector.html() + '
' + '
נא לבחור אחד מהרבעים למעלה' + '
', cssClass: 'quarter-selector-window', on: { opened: function () { Dom7(".quarter-selector-window .chk-extra-position").each(function () { Dom7(this).attr("id", "").attr("name", "extra_window") }); $$(".quarter-selector-window .chk-extra-position").on('click', function () { var thisVal = Dom7(this).val(); valueCard.dialog.pizzaExtraSelectorVal = thisVal; $$(".extra-title").text(Dom7(this).attr("data-tippy-content")); }); $(".btn-ok").on('click', function () { if (valueCard.dialog.pizzaExtraSelector) { $$(".DishWindow-con.pizza-builder .chk-extra-position[value='" + valueCard.dialog.pizzaExtraSelectorVal + "']").trigger('click').prop('checked', true); } valueCard.dialog.close(); }); $(".btn-cancel").on('click', function () { valueCard.dialog.close(); }); if (valueCard.dialog.pizzaExtraSelector.find(":checked").length) { Dom7(".quarter-selector-window .chk-extra-position[value='" + valueCard.dialog.pizzaExtraSelector.find(":checked").val() + "']").trigger('click').prop('checked', true);; } } } }).open(); }); } //$$(".dish-inner").on('scroll', function () { // if (($$(".dish-inner").offset().top - 30) <= $$("#DishWindow-con").offset().top) { // $$(".dish-inner").addClass("close-action-drag"); // } else { // $$(".dish-inner").removeClass("close-action-drag"); // } //}); } }, opened: function () { if (editDishObj && parseFloat(valueCard.data.dialogDishItem.price) == 0) { valueCard.data.dialogdishPrice = parseFloat(editDishObj.dish_total / editDishObj.quantity); } tippy('[data-tippy-content]'); }, close: function () { Dom7(".dish-window").css({ opacity: 0 }); valueCard.data.dialogDishItem = []; valueCard.data.dialogdishPrice = 0; // if (window.promoDishList) window.promoDishList.open(); } } }; if (isPizza) { dialogOptions.cssClass = 'dish-window pizza-builder'; } if (IsMobile) { dialogOptions.content = '
'; dialogOptions.swipeToClose = true; dialogOptions.swipeHandler = ".close-action-drag"; dialogOptions.swipeHandler = ".close-action-drag"; optionsDialog = valueCard.popup.create(dialogOptions); optionsDialog.on('open', function (params) { var picWidth = Dom7("div#DishWindow-con .dish-main-img .dish-image").width(); var newSize = calculateAspectRatioFit(400, 270, picWidth, 500); $$("div#DishWindow-con .dish-main-img .dish-image").css({ "height": newSize.height + 'px' }); }) } else { dialogOptions.text = '
'; optionsDialog = valueCard.dialog.create(dialogOptions); } if (valueCard.data.dialogDishItem.is_group) { optionsDialog.open(); } else { if (valueCard.data.dialogDishItem["extras"].length || valueCard.data.dialogDishItem["extra-lists"].length || valueCard.data.dialogDishItem["variants"].length || valueCard.data.dialogDishItem["variant-lists"].length || (valueCard.data.dialogDishItem["comments"] && valueCard.data.dialogDishItem["comments"].length) || editDishObj ) { window.promoDishList = valueCard.dialog.get('.promo-dishes'); if (promoDishList) { promoDishList.close(); } optionsDialog.open(); } else { if (pointsPurches) { optionsDialog.open(); } else { window.promoDishList = valueCard.dialog.get('.promo-dishes'); if (promoDishList) { promoDishList.close(); } optionsDialog.open(); // addItemToCart(); } } } }; $$(document).on('keyup', function (e) { if (Dom7(".dialog.dish-window.modal-in").length) { if (e.key === "Escape") { valueCard.dialog.close(); } } }); $$(document).on('click', '.add-dish-to-cart', function (e) { e.preventDefault(); event.stopPropagation(); var thisBtn = $$(this); var points = false; if (thisBtn.attr('data-points-to-deduct')) { points = { PromoId: thisBtn.attr('data-promoid'), PointsToDeduct: thisBtn.attr('data-points-to-deduct'), PointsTerm: thisBtn.attr('data-points-term') } } var dishId = $$(this).attr("data-dish-id"); addDishFunction(dishId, points); }); $$(document).on('page:afterin', function (e) { handellHiddenBtn(); buildButtonsMenu(); $$(".branch-address").text(Branch.get.Address); $$(".branch-name").text(Branch.get.Name ? 'סניף ' + Branch.get.Name : '').attr("tabindex", 0).attr("aria-label", Branch.get.Name ? ' הקש לפרטי סניף ' + Branch.get.Name : ''); $$(".branch-phone").attr("href", "tel:" + Branch.get.Phone).addClass("link external").text(Branch.get.Phone); if (Branch.get.OpenHours && Branch.get.OpenHours.length) { $$(".open-hours-time").text(Branch.get.OpenHours).show(); $$(".branch-hours").show(); } else { $$(".branch-hours").hide(); // $$(".branch-address").removeClass("branch-address"); } if (Dom7(mainView.router.currentPageEl).hasClass("hide-cat-menu")) { $$(".dishes-category-wrapper, .dishes-footer-mobile").hide(); } else { $$(".dishes-category-wrapper").show(); if (Order.type.isMenu()) { $$(".dishes-footer-mobile").hide(); $$(".btn-mobile-exit-menu").show(); } else { $$(".dishes-footer-mobile").show(); $$(".btn-mobile-exit-menu").hide(); } } if (Dom7(mainView.router.currentPageEl).hasClass("hide-cart")) { $$("#cart-view").hide(); } else { if (!IsMobile) $$("#cart-view").show(); } $(window).scrollTop(0); var userName; if (User.isRegistered()) { userName = valueCard.data.appConfig.MemberCard.FirstName; $$(".user-points-lable").text(getTranslate(19)); if (parseFloat(valueCard.data.appConfig.MemberCard.Points) > 0) { $$(".user-points").show(); var points = parseInt(valueCard.data.appConfig.MemberCard.Points.replace(",", "")); $$(".user-points .user-points-amount").text(points); } if (parseFloat(valueCard.data.appConfig.MemberCard.Balance) > 0) { $$(".user-balance").show(); $$(".user-balance .user-points-amount").text(valueCard.data.appConfig.MemberCard.Balance); } $$(".call-center-user-info").show(); } else { $$(".call-center-user-info").hide(); userName = 'אורח'; } var today = new Date(); var curHr = today.getHours(); if (curHr >= 5 && curHr < 12) { $$(".time-greetings").text(getTranslate(44) + ','); } else if (curHr >= 12 && curHr < 17) { $$(".time-greetings").text(getTranslate(45) + ','); } else { $$(".time-greetings").text(getTranslate(46) + ','); } if (User.isVoucher()) { $$(".user-welcome").addClass("is-voucher").attr("aria-label", "אזור אישי"); } else { $$(".user-welcome .user-name .user-first-name, .loged-user-name").text(userName).attr("aria-label", "אזור אישי");; } $$(".body-inner, body").attr('data-vc-route', mainView.router.currentRoute.name.toLowerCase() + "-page"); }); $$(document).on('click', '.btn-search-mobile', function (e) { $$("body").toggleClass("search-mode"); $$(".dish-search").focus(); }); $$(document).on('keypress', 'input,select', function (e) { if (e.which == 13) { e.preventDefault(); var $next = $$('[tabIndex="' + (+this.tabIndex + 1) + '"]'); if (!$next.length) { $next = $$('[tabIndex="1"]'); } $next.focus(); } }); $$(document).on('click', '.panel-right a, .btn-logout', function (e) { valueCard.panel.close(); }); $$(document).on('click', '.panel-right a, .btn-logout', function (e) { valueCard.panel.close(); }); $$(document).on('keydown', 'div[role="button"], span[role="button"], [role="button"]', function (e) { const keyDown = e.key !== undefined ? e.key : e.keyCode; if ((keyDown === 'Enter' || keyDown === 13) || (['Spacebar', ' '].indexOf(keyDown) >= 0 || keyDown === 32)) { // (prevent default so the page doesn't scroll when pressing space) e.preventDefault(); $$(this).click(); } }); $$(document).on('keydown', '.close-action-drag', function (e) { const keyDown = e.key !== undefined ? e.key : e.keyCode; if ((keyDown === 'Enter' || keyDown === 13) || (['Spacebar', ' '].indexOf(keyDown) >= 0 || keyDown === 32)) { e.preventDefault(); valueCard.actions.close(); } }); $$(document).on('click', '.btn-show-dish-comment', function (e) { var data = $$(this).attr("aria-label"); valueCard.dialog.alert(data); }); Dom7(document).on('dialog:open', function (e) { /* window.dialogTrap = focusTrap.createFocusTrap(".dialog.modal-in");*/ setTimeout(function () { /* window.dialogTrap.activate();*/ }, 150); Dom7(".dialog.modal-in").attr("role", "dialog"); Dom7(".dialog.modal-in").attr("aria-modal", true); Dom7(".close-dialog").attr("role", "button"); Dom7(".close-dialog").attr("tabindex", 0); Dom7(".close-dialog").attr("aria-label", "סגירת חלון"); if (Dom7(".dialog.modal-in").hasClass("dialog-preloader")) { $$(".preloader-inner").attr("tabindex", 0); $$(".preloader-inner").attr("aria-label", Dom7(".dialog-title").text()); setTimeout(function () { $$(".preloader-inner").focus(); }, 500); } if (Dom7(".dialog.modal-in").hasClass("dialog-buttons-1")) { $$(".dialog-text").attr("tabindex", 0); $$(".dialog-text").attr("aria-label", Dom7(".dialog-text").text()); $$(".dialog-button").attr("tabindex", 0); $$(".dialog-button").attr("role", "button"); setTimeout(function () { $$(".dialog-text").focus(); }, 500); } setTimeout(function () { $$(".dialog-title").attr("tabindex", -1); $$(".close-dialog").focus(); }, 500); }); Dom7(document).on('dialog:close', function (e) { // dialogTrap.deactivate(); }); Dom7(document).on('popup:open', function (e) { //window.dialogTrap = focusTrap.createFocusTrap(".actions-modal.modal-in"); //setTimeout(function () { // window.dialogTrap.activate(); //}, 150); Dom7(".actions-modal.modal-in").attr("role", "dialog"); Dom7(".actions-modal.modal-in").attr("aria-modal", true); setTimeout(function () { Dom7(".close-dragger").attr("role", "button"); Dom7(".close-dragger").attr("aria-label", "סגירת חלון הקש רווח לסגירה"); setTimeout(function () { Dom7(".close-dragger").attr("tabindex", 0); $$(".close-dragger").focus(); }, 1350); }, 250); }); Dom7(document).on('popup:close', function (e) { // dialogTrap.deactivate(); }); Dom7(document).on('sheet:open', function (e) { Dom7(".sheet-modal.modal-in").attr("role", "dialog"); Dom7(".sheet-modal.modal-in").attr("aria-modal", true); //window.popOverTrap = focusTrap.createFocusTrap(".sheet-modal.modal-in"); //setTimeout(function () { // window.popOverTrap.activate(); //}, 150); if (Dom7(".calendar.modal-in").hasClass("calendar-sheet")) { Dom7(".sheet-modal.modal-in").attr("aria-label", "בחירת תאריך"); $$(".calendar-day-today").focus(); $$(".calendar-day-disabled").each(function () { $$(this).attr("aria-disabled", true); }); } $$(".sheet-close").attr('href', "#"); }); Dom7(document).on('sheet:close', function (e) { // popOverTrap.deactivate(); }); $$(document).on("popover:open", function () { if (Dom7(".popover.modal-in").hasClass("calendar-popover") || Dom7(".popover.modal-in").hasClass("picker-popover")) { window.popOverTrap = focusTrap.createFocusTrap(".popover.modal-in"); setTimeout(function () { window.popOverTrap.activate(); if (Dom7(".popover.modal-in").hasClass("calendar-popover")) { $$(".calendar-month-current .calendar-day-today").focus(); $$(".calendar-day-disabled").each(function () { $$(this).attr("aria-disabled", true); }); } if (Dom7(".popover.modal-in").hasClass("picker-popover")) { $$(".picker-item-selected").each(function () { $$(this).attr("aria-disabled", true); }); Dom7(".picker-item").on('keydown', function (e) { const keyDown = e.key !== undefined ? e.key : e.keyCode; if (keyDown === 'Tab' || keyDown === 9) { setTimeout(function name(params) { var value = Dom7(".picker-item:focus-visible").attr("data-picker-value"); valueCard.picker.get().setValue([value], 100); }, 150); } }); valueCard.picker.get().setValue(["12596"], 10); } }, 150); } }); $$(document).on('popover:close', function (e) { popOverTrap.deactivate(); }); Dom7(document).on('notification:open', function (e) { // if (dialogTrap) dialogTrap.deactivate(); Dom7(".notification.modal-in").attr("role", "alertdialog"); Dom7(".notification.modal-in").attr("aria-modal", true); Dom7(".notification.modal-in").attr("aria-labelledby", "notification-text"); Dom7(".notification-close-button").attr("tabindex", 0); setTimeout(function () { $$(".notification-text").attr("tabindex", 0); $$(".notification-close-button").focus(); }, 500); }); Dom7(document).on('notification:closed', function (e) { if (valueCard.dialog.get() && valueCard.dialog.get().opened) { /* window.dialogTrap = focusTrap.createFocusTrap(".dialog.modal-in");*/ setTimeout(function (params) { // window.dialogTrap.activate(); }, 280); } }); $$(document).on('panel:close', function (e) { // panelTrap.deactivate(); }); $$(document).on('panel:open', function (e) { //window.panelTrap = focusTrap.createFocusTrap(".panel"); //window.panelTrap.activate(); setTimeout(function () { $$(".panel-close").focus(); }, 100); var data = valueCard.data.appConfig; data.isMember = User.isRegistered(); data.isVoucher = User.isVoucher(); if (data.isMember || data.isVoucher) { var memberData = {}; var today = new Date(); var curHr = today.getHours(); if (curHr >= 5 && curHr < 12) { memberData.greeting = getTranslate(44) + ','; } else if (curHr >= 12 && curHr < 17) { memberData.greeting = getTranslate(45) + ','; } else { memberData.greeting = getTranslate(46) + ','; } if (User.isVoucher()) { memberData.userFIrstName = 'אורח'; } else { memberData.userFIrstName = valueCard.data.appConfig.MemberCard.FirstName; } if (parseFloat(valueCard.data.appConfig.MemberCard.Points) > 0) { var points = parseInt(valueCard.data.appConfig.MemberCard.Points.replace(",", "")); memberData.userPoints = points; } if (parseFloat(valueCard.data.appConfig.MemberCard.Balance) > 0) { memberData.userBalance = valueCard.data.appConfig.MemberCard.Balance; } if (valueCard.data.appConfig.LinkToTerms.length > 2) { $$(".site-takanon-wrapper").show(); $$(".site-takanon").attr('href', valueCard.data.appConfig.LinkToTerms); } loadTemplateClass(memberData, ".member-section-panel-inner", "tplMemberSectionPanel"); loadTemplateClass(data, ".right-panel-member-menu", "tplRrightPanelMemberMenu"); } else { loadTemplateClass({}, ".member-section-panel-inner", "tplMemberSectionPanel"); } vcapi.GetPages(function (data) { var list = {}; if (User.isRegistered()) { list = data.filter(function (p) { return !p.HideIfRegistered}); } if (!User.isRegistered()) { list = data.filter(function (p) { return !p.ShowForMembersOnly }); } list = list.filter(function (p) { return !p.HideFromMenu }); valueCard.data.appPages = list; if (valueCard.data.appConfig.LinkToTerms.length > 2) { valueCard.data.appPages.LinkToTerms = valueCard.data.appConfig.LinkToTerms; } loadTemplateClass(valueCard.data.appPages, ".side-nav-buttons", "tplSiseNavMenu"); }); }); $$(document).on('click', '.btn-show-cart-benifit', function () { var promoIndex = $$(this).attr("data-benifite-index"); valueCard.dialog.create({ cssClass: 'points-window BenefitPage', text: '
', on: { open: function () { Dom7(".dialog-backdrop").addClass("benifits-dialog-back"); var data = valueCard.Binefits[promoIndex]; loadTemplateClass(data, ".BenefitWindow-con", "BenefitWindow-tem"); }, close: function () { Dom7(".dialog-backdrop").removeClass("benifits-dialog-back"); } } }).open(); }); window.addEventListener('message', function (e) { if (e.origin != "https://www.valuecard.co.il") { return; } if (e.data) { if (typeof (e.data) != "object") { var resOrderData = JSON.parse(e.data); console.log(resOrderData); if (resOrderData.error == "false") { orderComplete(resOrderData.response_text); } else { if (resOrderData.response_text) { valueCard.dialog.alert(resOrderData.response_text); } resetPaymentButtons(false); } } } }); //document.addEventListener("touchstart", checkActivityTime, true); //document.addEventListener("mousemove", checkActivityTime, true); function handellHiddenBtn() { $$(".user-welcome").attr("tabindex", 0); if (User.isRegistered()) { $$(".user-welcome").removeClass('not-connected'); $$(".show-members").show(); $$(".show-guest").hide(); $$(".hide-member").hide(); } else if (User.isGuest()) { $$(".user-welcome").addClass('not-connected').attr("aria-label", "התחברות");; $$(".show-members").hide(); $$(".show-guest").show(); } else { $$(".user-welcome").addClass('not-connected'); $$(".show-voucher").show(); $$(".show-members:not(.show-voucher)").hide(); $$(".show-guest").hide(); } } function formattedNumber(number) { return ("0" + number).slice(-2); } function getTimeInt(strTime) { return new Date(new Date().toDateString() + ' ' + strTime).getTime(); } function handelCalender() { var fillYear = function (elem) { var myselect = elem[0], startYear = new Date().getFullYear() - 100, count = 100; (function (select, val, count) { do { val++; count--; select.add(new Option(val, val), null); } while (count); })(myselect, startYear, count); } $$("[fill-data='select-year']").each(function () { if ($$(this).find('option').length == 1) fillYear($$(this)); }); $$("[fill-data='select-day']").each(function () { if ($$(this).find('option').length == 1) { var thisSelect = $$(this)[0]; var count = 31, val = 0; do { val++; count--; thisSelect.add(new Option(val, formattedNumber(val)), null); } while (count); } }); $$("[fill-data='select-month']").each(function () { if ($$(this).find('option').length == 1) { var thisSelect = $$(this)[0]; var count = 12, val = 0; do { val++; count--; thisSelect.add(new Option(val, formattedNumber(val)), null); } while (count); } }); } function getTimeArray(starttime) { var x = 15; //minutes interval var times = []; // time array var tt = starttime; // start time var ap = ['AM', 'PM']; // AM-PM //loop to increment the time and push results in array for (var i = 0; tt < 24 * 60; i++) { var hh = Math.floor(tt / 60); // getting hours of day in 0-24 format var mm = (tt % 60); // getting minutes of the hour in 0-55 format times[i] = ("" + ((hh == 12) ? 12 : hh % 12)).slice(-2) + ':' + ("0" + mm).slice(-2) + ' ' + ap[Math.floor(hh / 12)]; // pushing data in array in [00:00 - 12:00 AM/PM format] tt = tt + x; } return times; } function loadTemplate(data, containerId, templateId) { var template = Template7.templates[templateId]; if (!template) { var templateHtml = document.getElementById(templateId).innerHTML; template = Template7.compile(templateHtml); Template7.templates[templateId] = template; } if (document.getElementById(containerId) == null) return; document.getElementById(containerId).innerHTML = template(data); } function getTemplateHtml(data, templateId) { var template = Template7.templates[templateId]; if (!template) { var templateHtml = document.getElementById(templateId).innerHTML; template = Template7.compile(templateHtml); Template7.templates[templateId] = template; } return template(data); } function loadTemplateClass(data, containerClass, templateId) { var template = Template7.templates[templateId]; if (!template) { var templateHtml = document.getElementById(templateId).innerHTML; template = Template7.compile(templateHtml); Template7.templates[templateId] = template; } //if (document.getElementById(containerId) == null) return; Dom7(containerClass).html(template(data)); } function orderComplete(text) { if (FBid.length) { fbq('track', 'Purchase', { currency: "ILS", value: parseFloat(Dom7(".cart-total-price").text()).toFixed(2) }); } var removeAndClean = function () { Cart.removeAllItems().then(function () { DeliveryUser.deliveryType = ''; loadCart.load(); Order.cleanOrder().then(function () { Branch.removeBranch().then(function () { if (!User.isRegistered()) { valueCard.form.removeFormData('#order-sum') } valueCard.dialog.create({ text: '
' + '
' + '

' + text + '

' + '

תודה שקנית אצלנו!

' + '
' + '' + '
', cssClass: 'logout-window restart-dialog', on: { open: function () { Order.post.deliveryAddress(null); Order.post.type(0); valueCard.data.orderExtrasLists = []; $$(".btn-restart-order").on('click', function () { Branch.removeBranch().then(function () { cleanOrder(); }); }); }, close: function () { cleanOrder(); loadCart.load(); Branch.removeBranch().then(function () { location.reload(); }); valueCard.dialog.close(); } } }).open(); }); }); }); } if (window.dataLayer || typeof gtag != "undefined") { var prodcts = []; var ga_prodcts = []; Cart.getCart().then(function (it) { for (var i = 0; i < it.length; i++) { prodcts.push({ // List of productFieldObjects. 'name': it[i].title, // Name or ID is required. 'id': it[i].external_id, 'price': it[i].dish_total, 'category': it[i].category, 'quantity': it[i].quantity, 'coupon': '' // Optional fields may be omitted or set to empty string. }); ga_prodcts.push({ // List of productFieldObjects. 'item_name': it[i].title, // Name or ID is required. 'item_id': it[i].external_id, 'price': it[i].dish_total, 'item_category': it[i].category, 'quantity': it[i].quantity, 'coupon': '' // Optional fields may be omitted or set to empty string. }); } Cart.getTotalPrice().then(function (d) { dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. dataLayer.push({ 'ecommerce': { 'purchase': { 'actionField': { 'id': Order.get.Id, // Transaction ID. Required for purchases and refunds. 'affiliation': 'Online Store', 'revenue': d, // Total transaction value (incl. tax and shipping) 'shipping': Order.get.DeliveryPrice || 0 }, 'products': prodcts } } }); if (typeof gtag != "undefined") { gtag('event', 'purchase', { transaction_id: Order.get.Id, currency: 'ILS', shipping: Order.get.DeliveryPrice || 0, value: parseFloat(Dom7(".cart-total-price").text()).toFixed(2), items: ga_prodcts }); } }); }); } if (GAid.length && typeof (ga) != "undefined") { Cart.getTotalPrice().then(function (d) { ga('ecommerce:addTransaction', { 'id': Order.get.Id, // Transaction ID. Required. 'revenue': d, // Grand Total. 'shipping': Order.get.DeliveryPrice || 0 // Shipping. }); Cart.getCart().then(function (it) { for (var i = 0; i < it.length; i++) { ga('ecommerce:addItem', { 'id': Order.get.Id, // Transaction ID. Required. 'name': it[i].title, // Product name. Required. 'sku': it[i].external_id, // SKU/code. 'category': it[i].category, // Category or variation. 'price': it[i].dish_total, // Unit price. 'quantity': it[i].quantity // Quantity. }); } ga('ecommerce:send'); removeAndClean(); }); }); // ga("send", "pageview"); } else { removeAndClean(); } } /** * Conserve aspect ratio of the orignal region. Useful when shrinking/enlarging * elements to fit into a certain area. * * @param {Number} srcWidth Source area width * @param {Number} srcHeight Source area height * @param {Number} maxWidth Fittable area maximum available width * @param {Number} maxHeight Fittable area maximum available height * @return {Object} { width, height } */ window.calculateAspectRatioFit = function (srcWidth, srcHeight, maxWidth, maxHeight) { var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight); return { width: srcWidth * ratio, height: srcHeight * ratio }; } var componentForm = { street_number: 'AddressHouseNumber', route: 'AddressStreet', locality: 'AddressCity', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; function findPos(obj) { var curtop = 0; if (obj && obj.offsetParent) { do { curtop += obj.offsetTop; } while (obj = obj.offsetParent); return [curtop]; } } var setNavBarHeight = function() { var fromTop = 0; if ($$("body").hasClass("hide-banner-margin")) { fromTop = 70; var aspectR = calculateAspectRatioFit(1900, 320, window.innerWidth, 1000); $$(".body-inner .navbar-bg").css({ 'height': aspectR.height + 'px' }); $$(".body-inner .navbar").css({ 'height': (aspectR.height + 70)+ 'px' }); } else { var aspectR = calculateAspectRatioFit(1900, 320, window.innerWidth, 1000); $$(".body-inner .navbar").css({ 'height': aspectR.height + 'px' }); } } function onLoad() { $$(window).on('hashchange', function (event) { if (window.location.hash != "#modal") { valueCard.dialog.close(); } if (window.location.hash != "#panel") { valueCard.panel.close(); } }); $$(window).on('scroll', function () { if ($$(".page.DishCategory:not(.BenefitsPage).page-current").length) { if (($$(".page.DishCategory:not(.BenefitsPage).page-current").offset().top <= 0) && ($$(".page.DishCategory:not(.BenefitsPage).page-current")).length) { var catHeaderWidth = $$(".page-current .dishes-items-wrapper")[0].clientWidth + 10; $$(".DishCategory:not(.BenefitsPage).page-current .cat-title-header.show-scroll").css({ width: catHeaderWidth + "px" }).addClass('sticky'); } else { $$(".cat-title-header.show-scroll").removeClass('sticky'); } } }); $$(document).on('click', '.user-welcome:not(.not-connected)', function () { // valueCard.panel.open(); mainView.router.navigate('/Members/Main/', { reloadCurrent: true, force: true }); }); $$(document).on('click', '.user-welcome.not-connected', function () { valueCard.panel.close(); if (valueCard.data.appConfig.ShowVoucherLogin && valueCard.data.appConfig.AllowLoyaltyClub) { signInDialog.open(); } else if (valueCard.data.appConfig.ShowVoucherLogin && !valueCard.data.appConfig.AllowLoyaltyClub) { voucherDialog.open(); }else { loginDialog.open(); } }); $$(document).on('click', '.btn-logout', function () { valueCard.dialog.create({ text: '
' + '

' + getTranslate(87) +'

' + '
' + '' + '' + '
', cssClass: 'logout-window', on: { open: function () { valueCard.popover.close(); $$(".btn-yes-logout").on('click', function () { //mainView.router.navigate('/Logout/'); cleanOrder(); User.resetUser(); location.reload(); valueCard.dialog.close(); }); $$(".btn-no-logout, .close-dialog").on('click', function () { valueCard.dialog.close(); }); } } }).open(); }); $$(document).on('click', '.close-dialog', function () { valueCard.dialog.close(); }); $$(document).on('click', '.btn-send-login', function () { if (window.typeAuthCode.type == "Cell") { window.typeAuthCode.CelPhone = $$("#LoginPhone").val(); } else { window.typeAuthCode.Email = $$("#LoginEmail").val(); } sendAuthCodeSms(); }); $$(document).on('click', '.btn-create-auth', function () { sendAuthCodeSms(); }); $$('.panel-left').on('panel:open', function () { handellHiddenBtn(); buildButtonsMenu(); }); window.registerUser = valueCard.dialog.create({ text: '
' + '
' + '
', cssClass: 'signin-window', on: { open: function () { $$(".dialog.modal-in").attr("aria-label", 'הרשמה למועדון שלנו'); var getLocations = function (fn, er) { if (valueCard.data.appConfig.MembersSiteOnly) { return vcapi.getBranches(fn, er); } else { return vcapi.getLocations(fn, er); } } getLocations(function (data) { loadTemplate(data, "memberSignUp-con", "memberSignUp-tem"); //document.getElementById('CelPhone').addEventListener('input', function (e) { // var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/); // e.target.value = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : ''); //}); const cellInput = document.querySelector(".sign-up-login"); window.vcIti = window.vcIti = window.intlTelInput(cellInput, { initialCountry: "il", hiddenInput: () => ({ phone: "full_phone", country: "country_code" }), preferredCountries: ["il", "us", "ca"], onlyCountries: ["al", "ad", "at", "by", "be", "ba", "bg", "hr", "cz", "dk", "ee", "fo", "fi", "fr", "de", "gi", "gr", "va", "hu", "is", "ie", "it", "lv", "li", "lt", "lu", "mk", "mt", "md", "mc", "me", "nl", "no", "pl", "pt", "ro", "ru", "sm", "rs", "sk", "si", "es", "se", "ch", "ua", "gb", "il", "us", "ca"], loadUtils: () => import("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/25.3.1/build/js/utils.min.js"), // for formatting/placeholders etc geoIpLookup: function (callback) { $.get('https://ipinfo.io', function () { }, "jsonp").always(function (resp) { var countryCode = (resp && resp.country) ? resp.country : "il"; callback(countryCode) }) } }); $$(".btn-signup-member").text(getTranslate(34)); handelCalender(); loadingButton.init(Dom7(".btn-signup-member")); $$("#AnniversaryDate").on('change', function () { $$(".btn-clear-field").remove(); if ($$(this).val().length) { $$(this).parent().append(""); } }); $$(document).on('click', ".btn-clear-field", function () { $$(this).remove(); $$("#AnniversaryDate").val(''); }); $$(".btn-signup-member").on('click', function () { if (validateForm('#SignupForm')) { loadingButton.hidePreloader(); return; } var formData = valueCard.form.convertToData('#SignupForm'); if (formData.BirthDateDay == "0" || formData.BirthDateMonth == "0" || formData.BirthDateYear == "0") { valueCard.notification.create({ text: getTranslate(83), closeTimeout: 3500, closeButton: true }).open(); loadingButton.hidePreloader(); return; } var countryData = vcIti.getSelectedCountryData(); formData.CountryCode = countryData.dialCode; formData.CellPhone = formData.Phone_mask.replace(/\D/g, ''); formData.BirthDate = formData.BirthDateDay + "/" + formData.BirthDateMonth + "/" + formData.BirthDateYear; if (formData.AnniversaryDateMonth != "0" || formData.AnniversaryDateDay != "0" || formData.AnniversaryDateYear != "0") { formData.AnniversaryDate = formData.AnniversaryDateDay + "/" + formData.AnniversaryDateMonth + "/" + formData.AnniversaryDateYear; } if (formData.CellPhone.length < - 10) { Dom7("#CelPhone")[0].checkValidity(); Dom7("#AuthCode")[0].checkValidity(); loadingButton.hidePreloader(); return false; } window.typeAuthCode.CelPhone = formData.Phone_mask; formData.MessageAccept = formData.MessageAccept.length ? 1 : 0; vcapi.signup(formData, function (data) { window.typeAuthCode.type = "Cell"; window.registerUser.close(); window.typeAuthCode.open(); }, function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); }); }); }, function () { }); valueCard.popover.close(); } } }); window.signInDialog = valueCard.dialog.create({ text: '
' + '', cssClass: 'login-window sign-in-dialog-window', on: { open: function () { $$(".dialog.modal-in").attr("aria-label", getTranslate(22)); window.signInDialog.openSession = true; valueCard.popover.close(); if (valueCard.data.appConfig.ShowVoucherLogin) { $$(".btn-voucher-login").show(); } $$(".sign-in-with-cell").on('click', function () { signInDialog.close(); loginDialog.open(); }); $$(".btn-sign-up-window").on('click', function () { signInDialog.close(); registerUser.open(); }); $$(".btn-voucher-login").on('click', function () { signInDialog.close(); voucherDialog.open(); }); } } }); window.voucherDialog = valueCard.dialog.create({ text: '
' + '

' + getTranslate(17) + '

' + '
' + '' + '' + '' + '
', cssClass: 'login-window voucher-window', on: { open: function () { $$(".dialog.modal-in").attr("aria-label", 'התחברות עם שובר / קופון'); valueCard.popover.close(); $$("#LoginVoucher").val(''); $$(".btn-send-voucher").on('click', function () { var number = $$("#LoginVoucher").val(); grecaptcha.ready(function () { grecaptcha.execute('6Le7PIckAAAAANJxZUqlo1Qi9vwiF72mspX3iUUl', { action: 'submit' }).then(function (token) { vcapi.cardLogin({ CardNumber: number, gToken: token }, function (res) { res.isRegistered = true; res.is_member = true; res.is_voucher = true; User.saveUser(res); vcapi.getMemberDetails({ UserSecretKey: User.getSecretKey(), LocationID: Branch.get.LocationId || 0 }, function (data) { window.voucherDialog.close(); valueCard.data.appConfig.MemberCard = data; $$(".user-welcome").removeClass("not-connected"); if (mainView.router.currentRoute.name != "Store" && mainView.router.currentRoute.name != "Payment") { mainView.router.navigate('/Store/', { reloadCurrent: true, force: true }); } else { if (mainView.router.currentRoute.name == "Payment") { loadCart.printOutTotal.printBenifits(); } mainView.router.init(); setTimeout(function () { if (IsMobile) { Dom7("#mobileCart").html(Dom7(".cart-view").html()); } }, 950); } }); }, function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 3000, }).open(); }); }); }); }); } } }); window.loginDialog = valueCard.dialog.create({ text: '
' + '

' + getTranslate(22) +'

' + (valueCard.data.appConfig.AllowRegistraion ? '

' + getTranslate(36) + '

' : '') + '
' + (valueCard.data.appConfig.Id == 1020 ? '
', cssClass: 'login-window', on: { open: function () { valueCard.popover.close(); $$(".dialog.modal-in").attr("aria-label", getTranslate(22)); $$("#LoginEmail, #LoginPhone").val(''); loadingButton.init(Dom7(".btn-send-login")); if (valueCard.data.appConfig.Id != 1020) { window.typeAuthCode.type = "Cell"; document.getElementById('LoginPhone').addEventListener('input', function (e) { var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/); e.target.value = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : ''); }); } else { window.typeAuthCode.type = "Email"; } $$(".btn-no-logout, .close-dialog").on('click', function () { valueCard.dialog.close(); }); $$(".btn-sign-in").on('click', function () { window.loginDialog.close(); registerUser.open(); }); $$(".btn-login-with-mail").on('click', function () { $$(".login-label-text").text(getTranslate(28)); $$(".btn-login-with-cell, #LoginEmail").show(); $$(this).hide(); $$("#LoginPhone").hide(); window.typeAuthCode.type = "Email"; }); $$(".btn-login-with-cell").on('click', function () { $$(".login-label-text").text(getTranslate(27)); $$(".btn-login-with-mail, #LoginPhone").show(); $$(this).hide(); $$("#LoginEmail").hide(); window.typeAuthCode.type = "Cell"; }); } } }); var loginUserData = function (data) { data.isRegistered = true; data.is_member = true; User.saveUser(data); vcapi.getMemberDetails({ UserSecretKey: User.getSecretKey(), LocationID: Branch.get.LocationId || 0 }, function (data) { window.typeAuthCode.close(); valueCard.data.appConfig.MemberCard = data; checkMemberActiveFee(); $$(".user-welcome").removeClass("not-connected"); if (mainView.router.currentRoute.name != "Store" && mainView.router.currentRoute.name != "Payment") { if (valueCard.data.appConfig.MembersSiteOnly) { mainView.router.navigate('/Members/Main/', { reloadCurrent: true, force: true }); } else { mainView.router.navigate('/Store/', { reloadCurrent: true, force: true }); } } else { if (mainView.router.currentRoute.name == "Payment") { loadCart.printOutTotal.printBenifits(); if (IsMobile) { Dom7("#mobileCart").html(Dom7(".cart-view").html()); } } mainView.router.init(); } }); } var sendAuthCodeSms = function () { var recp; var msg; if (window.typeAuthCode.type == "Cell") { recp = window.typeAuthCode.CelPhone.replace(/\D/g, ''); msg = getTranslate(39); } else { msg = getTranslate(40); recp = window.typeAuthCode.Email; } vcapi.sendAuthCode({ CellPhone: recp }, function (data) { if (data.IsCallCenter) { if (!data.IsError) { loginUserData(data.MembersParams); loadingButton.hidePreloader(); window.loginDialog.close(); } else { loadingButton.hidePreloader(); valueCard.notification.create({ text: data.Errmsg, closeTimeout: 7000, closeButton: true }).open(); } } else { window.loginDialog.close(); typeAuthCode.open(); valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); //loadingButton.hidePreloader(); } } , function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); }); } window.typeAuthCode = valueCard.dialog.create({ text: '
' + '

' + getTranslate(22) +'

' + '
' + '

' + '' + '' + '' + getTranslate(43) +'' + '' + '
', cssClass: 'login-window auth-window', on: { open: function () { $$(".dialog.modal-in").attr("aria-label", getTranslate(22)); var recp; var msg; if (window.typeAuthCode.type == "Cell") { recp = window.typeAuthCode.CelPhone.replace(/\D/g, ''); msg = getTranslate(39); } else { msg = getTranslate(40); recp = window.typeAuthCode.Email; } $$("p.send-to-text").text(msg) valueCard.popover.close(); loadingButton.hidePreloader(); loadingButton.init(Dom7(".btn-send-auth")); $$(".btn-send-auth").on('click', function () { // if (dialogTrap) dialogTrap.deactivate(); vcapi.login({ CelPhone: recp, AuthCode: $$("#AuthCode").val() }, function (data) { loginUserData(data); }, function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); }); }); } } }); window.restartActivity = valueCard.dialog.create({ text: '
' + '


' + '

שמנו לב שעבר זמן רב מתחילת ההזמנה האם ברצונך להתחיל מחדש?

' + '
' + '' + '' + '
', cssClass: 'logout-window restart-dialog', on: { open: function () { valueCard.popover.close(); $$(".btn-yes-logout").on('click', function () { cleanOrder(); //Branch.removeBranch().then(function () { // location.reload(); // valueCard.dialog.close(); // //mainView.router.navigate({ name: "Start" }); //}); }); $$(".btn-no-logout, .close-dialog").on('click', function () { valueCard.dialog.close(); Order.post.LastActiveTime(); }); } } }); window.restartOrderDueToTime = valueCard.dialog.create({ text: '
' + '


' + '

הזמן שנבחר להזמנה חלפה. חזרו להתחלה לבחירת תאריך חדש

' + '
' + '' + '
', cssClass: 'logout-window restart-dialog', on: { open: function () { valueCard.popover.close(); $$(".btn-yes-logout").on('click', function () { cleanOrder(); }); } } }); Branch.getBranch().then(function (branch) { if (SiteClosed) { valueCard.dialog.create({ text: "

" + WelcomeMessage + "



", cssClass: 'site-closed-window' }).open(); $$("#bm").remove(); $$(".center-logo").remove(); $$(".main-splash-screen").css("background", "#e6e6e6") return; } if (User.isRegistered()) { vcapi.getMemberDetails({ UserSecretKey: User.getSecretKey(), LocationID: Branch.get.LocationId || 0 }, function (data) { valueCard.data.appConfig.MemberCard = data; checkMemberActiveFee(); if (location.hash.indexOf("/Members/") < 0) { if (valueCard.data.appConfig.MembersSiteOnly) { mainView.router.navigate({ name: "MembersMain" }); } } }, function () { User.resetUser(); }); } var UrlQuery = valueCard.utils.parseUrlQuery(location.href); if (UrlQuery.key && UrlQuery.key.length) { vcapi.login({ MobileSecretkey: UrlQuery.key }, function (data) { data.isRegistered = true; data.is_member = true; User.saveUser(data); window.history.replaceState({}, document.title, removeURLParameter(location.href, "key")); vcapi.getMemberDetails({ UserSecretKey: User.getSecretKey(), LocationID: Branch.get.LocationId || 0 }, function (data) { window.typeAuthCode.close(); valueCard.data.appConfig.MemberCard = data; checkMemberActiveFee(); $$(".user-welcome").removeClass("not-connected"); if (mainView.router.currentRoute.name != "Store") { mainView.router.navigate('/Store/', { reloadCurrent: true, force: true }); } else { mainView.router.init(); } }); }, function (xhr, msg) { valueCard.notification.create({ text: msg, closeTimeout: 7000, closeButton: true }).open(); }); } if (location.hash.indexOf("/Members/") >= 0) { if (User.isRegistered()) { vcapi.getMemberDetails({ UserSecretKey: User.getSecretKey(), LocationID: Branch.get.LocationId || 0 }, function (data) { valueCard.data.appConfig.MemberCard = data; checkMemberActiveFee(); mainView.router.navigate(location.hash.replace("#", ""), { reloadCurrent: true, force: true }); setTimeout(function () { Dom7(".main-splash-screen").addClass("splash-screen-hide"); Dom7(".view.view-main").removeClass("hide-on-load"); Dom7(".view.view-main").removeClass("blur"); Dom7(".main-splash-screen").remove(); }, 450); }, function () { mainView.router.navigate({ name: "MembersMain" }); }); } else { mainView.router.navigate({ name: "Start" }); } } else if (location.hash.indexOf("Content") >= 0) { mainView.router.navigate(location.hash.replace("#", ""), { reloadCurrent: true, force: true }); } else { if (typeof (branch.PlaceId) == "undefined") { Branch.removeBranch().then(function () { if (User.isRegistered() && valueCard.data.appConfig.MembersSiteOnly) { mainView.router.navigate({ name: "MembersMain" }); } else { mainView.router.navigate({ name: "Start" }); } }); return; } if (User.isGuest() && valueCard.data.appConfig.DisableNonMembers) { Branch.removeBranch().then(function () { mainView.router.navigate({ name: "Start" }); }); return; } $$(".branch-name").text('סניף ' + branch.Name); $$(".branch-address").text(branch.Address); $$(".branch-phone").text(branch.Phone).attr("href", "tel:" + Branch.get.Phone).addClass("link external"); $$(".open-hours-time").text(Branch.get.OpenHours); Cart.getCart().then(function (cart) { $$(".main-splash-screen").addClass("splash-screen-hide"); $$(".view.view-main").removeClass("hide-on-load"); $$(".view.view-main").removeClass("blur"); Dom7(".main-splash-screen").remove(); if (location.hash.indexOf("/Payment/")) { window.navigateToPayment = true; } if (cart.length == 0) { mainView.router.navigate('/Store/', { reloadCurrent: true, force: true }); } else { mainView.router.navigate('/Store/', { reloadCurrent: true, force: true }); } }) } }, function () { cleanOrder(); }); handellHiddenBtn(); } var buildButtonsMenu = function () { var data = valueCard.data.appConfig; if (data.ContactMail.length > 2) { $$(".lnk-contact-us").attr("href", "mailto:" + data.ContactMail); } else { $$(".lnk-contact-us").hide(); } }; var validateForm = function (formElement) { var errors = []; Dom7(formElement + " input, " + formElement + " textarea").each(function () { Dom7(this)[0].checkValidity(); if (Dom7(this)[0].hasAttribute("min-length")) { if (Dom7(Dom7(this)[0]).val().length > 0 && parseInt(Dom7(Dom7(this)[0]).attr("min-length")) > Dom7(Dom7(this)[0]).val().length) { Dom7(Dom7(this)[0]).addClass("input-invalid"); }; } if (Dom7(this).hasClass("input-invalid")) errors.push(this); }); return errors.length > 0; } var checkMemberActiveFee = function () { var memberInfo = valueCard.data.appConfig.MemberCard; if (memberInfo) { if (memberInfo.CardStatus == "3") { Order.post.ActivateItem( 1, memberInfo.ActivationItemNum, memberInfo.ActivationFee ); } if (memberInfo.CardStatus == "4") { Order.post.ActivateItem( 2, memberInfo.RenewalItemNum, memberInfo.RenewalFee ); } } }; var loadAppConfig = function (minimuOption) { return new Promise(function (resolve, reject) { vcapi.configuration(siteName, function (data) { valueCard.data.appConfig = data; if (valueCard.data.appConfig.MembersSiteOnly) $$("body").addClass('members-site') $$(".customer-name").text(valueCard.data.appConfig.CustomerName); $$(".customer-img").attr('src', valueCard.data.appConfig.LogoImageUrl); checkWhenClosing(); buildButtonsMenu(); resolve(); }, function (xhr, status) { valueCard.dialog.alert("לא נמצאה תקשורת. נא לוודאות שהנך מחובר/ת לרשת"); return; }); }); }; var resetPaymentButtons = function (disable) { $$(".pelecard-frame, .cash-payment, .giftcard-payment").hide(); if (valueCard.data.appConfig.LinkToTerms.length > 2 && !Dom7("#ApproveTerms").is(":checked")) { Dom7(".payment-method-actions button").prop('disabled', true); } else { if (disable) { Dom7(".payment-method-actions button").prop('disabled', true); } else { Dom7(".payment-method-actions button").prop('disabled', false); } } } var applyAdEvent = function (eventId, catId, itemID, deliveryZoneID, cartItems, cartTotal) { var apiData = { EventId: eventId, UserSecretKey: User.isRegistered() ? User.getSecretKey() : "-1" } if (catId) apiData.CategoryID = catId; if (itemID) apiData.ItemID = itemID; if (deliveryZoneID) { if (Order.type.isDelivery()) { apiData.DeliveryZoneID = Order.get.DeliveryZoneId; } } if (cartItems) apiData.CartItems = cartItems; if (cartTotal) apiData.CartTotal = cartTotal; if (Branch && Branch.get.LocationId) { apiData.LocationID = Branch.get.LocationId; } vcapi.applyAddsEvent(apiData, function (res) { var data = res; if (!res.isError) { if (eventId === 4) { $(".event-site-enter").remove(); for (var i = 0; i < res.length; i++) { var div = $$("
"); div.addClass("event-site-enter"); var htmlWithLinks = data[i].TextMessege + data[i].Html; var patt = /<\s*a[^>]*>(.*?)/g while (match = patt.exec(htmlWithLinks)) { var url = match[0].replace(">", " class='link external' target='_blank'>"); htmlWithLinks = htmlWithLinks.replace(match[0], url) } div.html("
" + htmlWithLinks + "
"); $$(".page.DishCategory .page-content").prepend(div); } } else if (eventId === 5) { for (var i = 0; i < res.length; i++) { var div = $$("
"); div.addClass("event-site-enter"); var htmlWithLinks = data[i].TextMessege + data[i].Html; var patt = /<\s*a[^>]*>(.*?)/g while (match = patt.exec(htmlWithLinks)) { var url = match[0].replace(">", " class='link external' target='_blank'>"); htmlWithLinks = htmlWithLinks.replace(match[0], url) } div.html("
" + htmlWithLinks + "
"); $$('[data-cat-id="' + catId + '"] .category-event-section').html(div[0].outerHTML); } } else { var data = res[0]; setTimeout(function () { var UpsaleDishesHtml = ''; var onlyText = data.Html.length == 0; var htmlWithLinks = data.Html; var patt = /<\s*a[^>]*>(.*?)/g while (match = patt.exec(htmlWithLinks)) { var url = match[0].replace(">", " class='link external'>"); htmlWithLinks = htmlWithLinks.replace(match[0], url) } var options = { text: data.TextMessege + htmlWithLinks, cssClass: 'ad-popup-window' + (onlyText ? ' text-ad-dialog' : '') }; options.on = { open: function () { //Dom7(".ad-popup-window .dialog-inner").css({ // "width": Dom7(".ad-popup-window .dialog-text").width() + "px", // "height": Dom7(".ad-popup-window .dialog-text").height() + 10 + "px" //}); var resizeWindow = function () { Dom7(".ad-popup-window .dialog-inner").css({ "width": Dom7(".ad-popup-window .dialog-text").width() + 20 + "px", "height": Dom7(".ad-popup-window .dialog-text").height() + (IsMobile ? 30 : 10) + "px" }); Dom7(".ad-popup-window").css({ "width": Dom7(".ad-popup-window .dialog-text").width() + 20 + "px", "opacity": 1 }); if ((Dom7(".ad-popup-window .dialog-text").height() + Dom7(".dialog-buttons").height() + 10) > Dom7(".ad-popup-window").height()) { Dom7(".ad-popup-window").css({ "width": Dom7(".ad-popup-window .dialog-text").width() + 35 + "px" }); } if (IsMobile) { if (Dom7(".dialog.modal-in").hasClass("ad-popup-window")) { if (Dom7(".dialog.modal-in .dishes-items-wrapper")[0].clientHeight > (window.innerHeight - 100)) { Dom7(".ad-popup-window .dialog-inner").css({ "height": window.innerHeight - 120 + "px" }); } } } } var resizeInterval = setInterval(resizeWindow, 200); setTimeout(function () { clearInterval(resizeInterval); }, 6000); //setTimeout(function () { // resizeWindow(); //}, 800); //setTimeout(function () { // resizeWindow(); //}, 1050); //setTimeout(function () { // resizeWindow(); //}, 1800); //setTimeout(function () { // Dom7({ // "width": Dom7(".ad-popup-window .dialog-text").width() + 20 + "px", // "height": Dom7(".ad-popup-window .dialog-text").height() + 10 + "px" // }); // Dom7(".ad-popup-window").css({ // "width": Dom7(".ad-popup-window .dialog-text").width() + 20 + "px", // "opacity": 1 // }); //}, 1350); } }; if (data.BlockSite == 0) { options.buttons = [ { text: data.CloseButtonText, onClick: function () { valueCard.dialog.close(); } } ] } else if (parseInt(data.BlockSite) == 1) { Branch.SiteClosedForToday = true; Branch.SiteClosedMesseage = data.Html; } if (data.UpSaleItems.length) { Cart.getCart().then(function (items) { var itemsInCart = items.map(function (it) { return it.external_id; }); var cleandArra = data.UpSaleItems.map(function (f) { return f.replace(/'/g, ''); }); var UpsaleDishes = valueCard.data.dishis.filter(function (item) { item.btnText = "פרטים"; return cleandArra.indexOf(item.external_id) >= 0 && itemsInCart.indexOf(item.external_id) < 0; }); if (UpsaleDishes.length) { UpsaleDishesHtml = '
    '; options.text = options.text + UpsaleDishesHtml; options.on = { open: function () { var data = {}; data.list = UpsaleDishes; loadTemplateClass(data, ".dishesFromBefits-con", "DishesList-tem"); $$(".add-dish-to-cart").on('click', function () { valueCard.dialog.close(); }); if (IsMobile) { if (Dom7(".dialog.modal-in").hasClass("ad-popup-window")) { if (Dom7(".dialog.modal-in .dishes-items-wrapper")[0].clientHeight > (window.innerHeight - 100)) { Dom7(".ad-popup-window .dialog-inner").css({ "height": window.innerHeight - 120 + "px" }); } } } else { setTimeout(function () { Dom7(".ad-popup-window .dialog-inner").css({ "height": Dom7(".ad-popup-window .dialog-text").height() + (IsMobile ? 35 : 30) + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "788px" : "600px"), "opacity": 1 }); Dom7(".ad-popup-window").css({ "width": Dom7(".ad-popup-window .dialog-text").width() + 40 + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "800px" : "600px"), "opacity": 1 }); }, 1000); setTimeout(function () { Dom7(".ad-popup-window .dialog-inner").css({ "height": Dom7(".ad-popup-window .dialog-text").height() + (IsMobile ? 35 : 30) + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "788px" : "600px"), "opacity": 1 }); Dom7(".ad-popup-window").css({ "width": Dom7(".ad-popup-window .dialog-text").width() + 40 + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "800px" : "600px"), "opacity": 1 }); }, 1200); setTimeout(function () { Dom7(".ad-popup-window .dialog-inner").css({ "height": Dom7(".ad-popup-window .dialog-text").height() + (IsMobile ? 35 : 30) + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "788px" : "600px"), "opacity": 1 }); Dom7(".ad-popup-window").css({ "width": Dom7(".ad-popup-window .dialog-text").width() + 40 + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "800px" : "600px"), "opacity": 1 }); }, 1500); setTimeout(function () { Dom7(".ad-popup-window .dialog-inner").css({ "height": Dom7(".ad-popup-window .dialog-text").height() + (IsMobile ? 35 : 30) + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "788px" : "600px"), "opacity": 1 }); Dom7(".ad-popup-window").css({ "width": Dom7(".ad-popup-window .dialog-text").width() + 40 + "px", "min-width": IsMobile ? "95%" : (UpsaleDishes.length > 2 ? "800px" : "600px"), "opacity": 1 }); }, 1700); } } }; valueCard.dialog.create(options).open(); } }); } else { valueCard.dialog.create(options).open(); } }, data.Delay); } } }); } var refreshBranchOpenTime = function () { if (Order.type.isPickup() || Order.type.isSeating()) { vcapi.getLocations(function (data) { var branch = data.filter(function (l) { return l.LocationID == Branch.get.LocationId })[0]; if (branch) { Branch.post.openTimeForOrdering(branch.OpenTimeForOrdering); Branch.post.closingTimeForOrdering(branch.ClosingTimeForOrdering); } }, function () { }); } if (Order.type.isDelivery()) { vcapi.checkDeliveryAddress({ ZoneId: Order.get.DeliveryZoneId }, function (data) { Branch.post.openTimeForOrdering(data.OpenTimeForOrdering); Branch.post.closingTimeForOrdering(data.ClosingTimeForOrdering); }, function () { }); } } var checkWhenClosing = function () { var checkHours = setInterval(function () { var txt = ''; if (valueCard.data.appConfig.DisableFutureOrdering) { if (Branch.get.ClosingTimeForOrdering) { var msLeft = (Branch.get.ClosingTimeForOrdering - getCurrentTimeSecounds()); if (msLeft < 1800) { if (msLeft > 0) { txt = 'האתר יסגר להזמנות בעוד ' + getTimeLeftString(Branch.get.ClosingTimeForOrdering); } else { txt = 'האתר סגור כעת להזמנות'; Branch.SiteClosedForToday = true; $$(".payment-section").remove(); refreshBranchOpenTime(); } } } if (Branch.get.OpenTimeForOrdering) { if (getCurrentTimeSecounds() < Branch.get.OpenTimeForOrdering) { txt = ' סגורים כעת להזמנות. נפתח בעוד ' + getTimeLeftString(Branch.get.OpenTimeForOrdering); Branch.SiteClosedForToday = true; } else { if (Branch.SiteClosedForToday) { $$(".close-site-alert").remove(); mainView.router.init(); Branch.SiteClosedForToday = false; refreshBranchOpenTime(); } } } if (Branch.get.ClosingTimeForOrdering === 0 & Branch.get.OpenTimeForOrdering === 0) { txt = 'האתר סגור כעת להזמנות'; Branch.SiteClosedForToday = true; $$(".payment-section").remove(); // refreshBranchOpenTime(); } } if (Branch.get.BranchIsClosed) { txt = 'האתר סגור היום להזמנות'; Branch.SiteClosedForToday = true; $$(".payment-section").remove(); } if ($$(".close-site-alert").length && txt.length) { $$(".close-site-alert").text(txt); } else { if (txt.length && !Order.type.isMenu()) { $$("body").append("
    " + txt + "
    "); } } }, 1500); } if (!IsMobile) { $$(window).on('resize', setNavBarHeight); setNavBarHeight(); } loadAppConfig().then(function () { setTimeout(function () { // $$(".main-splash-screen").addClass("splash-screen-hide"); // $$(".view.view-main").removeClass("hide-on-load"); // $$(".view.view-main").removeClass("blur"); valueCard.params.dialog.buttonOk = getTranslate(71); valueCard.params.dialog.buttonCancel = getTranslate(72); onLoad(); }, 800); }); }); // app_loader.js : var app={initialize:function(){scr(Framework7,Dom7,vcapi)}},valueCard=new Framework7({id:"dd.dd.dd",theme:"aurora",touch:{fastClicks:!0,fastClicksDistanceThreshold:5,fastClicksDelayBetweenClicks:0},view:{pushState:!0,pushStateSeparator:"#",options:{transition:"f7-circle"}},pushState:!0,dialog:{title:" ",buttonOk:"אישור",buttonCancel:"ביטול",closeByBackdropClick:!1,preloaderTitle:"אנא המתן...
    המערכת טוענת את הנתונים<\/span>"},smartSelect:{popupCloseLinkText:"סגור",closeOnSelect:!0,scrollToSelectedItem:!0}}) // valueCardApi.js : var req={};(function(){"use strict";var endpoints={base:"api/",delivery:"https://ordering.valuecard.co.il/api/"},urls,vcapi;endpoints.baseHandlers=endpoints.base+"Handlers/";endpoints.MembersWebApp=endpoints.base+"";endpoints.Delivery=endpoints.delivery+"";endpoints.configuration=endpoints.MembersWebApp+"Configuration.ashx";endpoints.login=endpoints.MembersWebApp+"Login.ashx";endpoints.getMemberDetails=endpoints.MembersWebApp+"MemberDetails.ashx";endpoints.benefits=endpoints.MembersWebApp+"Benefits.ashx";endpoints.sendAuthCode=endpoints.MembersWebApp+"SendAuthCode.ashx";endpoints.purchasesByPoints=endpoints.MembersWebApp+"PurchasesByPoints.ashx";endpoints.getPurchasesByPoints=endpoints.MembersWebApp+"GetPurchaseByPoints.ashx";endpoints.getTransactions=endpoints.MembersWebApp+"GetTransactions.ashx";endpoints.getBinefits=endpoints.MembersWebApp+"Benefits.ashx";endpoints.calculateCartBenefits=endpoints.MembersWebApp+"CalculateCartBenefits.ashx";endpoints.calculateCartBenefits=endpoints.MembersWebApp+"CalculateCartBenefits.ashx";endpoints.locations=endpoints.MembersWebApp+"GetLocations.ashx";endpoints.cardLogin=endpoints.MembersWebApp+"CardLogin.ashx";endpoints.commitOrder=endpoints.MembersWebApp+"CommitOrder.ashx";endpoints.submitOrder=endpoints.MembersWebApp+"SubmitOrder.ashx";endpoints.checkDeliveryAddress=endpoints.MembersWebApp+"CheckDeliveryAddress.ashx";endpoints.memberSignup=endpoints.MembersWebApp+"MemberSignup.ashx";endpoints.getPromoItems=endpoints.MembersWebApp+"GetPromoItems.ashx";endpoints.getDisabledDates=endpoints.MembersWebApp+"GetDisabledDates.ashx";endpoints.getHoursSlots=endpoints.MembersWebApp+"GetHoursSlots.ashx";endpoints.GetOrdersHistory=endpoints.MembersWebApp+"GetOrdersHistory.ashx";endpoints.ApplyAddsEvent=endpoints.MembersWebApp+"ApplyAddsEvent.ashx";endpoints.checkGiftCardBalance=endpoints.MembersWebApp+"CheckGiftCardBalance.ashx";endpoints.payWithGiftCard=endpoints.MembersWebApp+"PayWithGiftCard.ashx";endpoints.getOrderPayments=endpoints.MembersWebApp+"GetOrderPayments.ashx";endpoints.addressesErrorsLog=endpoints.MembersWebApp+"AddressesErrorsLog.ashx";endpoints.getPages=endpoints.MembersWebApp+"GetPages.ashx";endpoints.contactUsForm=endpoints.MembersWebApp+"ContactUsForm.ashx";endpoints.sendPaymentConfirmationAuthCode=endpoints.MembersWebApp+"SendPaymentConfirmationAuthCode.ashx";endpoints.authPaymentConfirmation=endpoints.MembersWebApp+"AuthPaymentConfirmation.ashx";endpoints.getExternalZones=endpoints.MembersWebApp+"GetExternalZones.ashx";endpoints.getLocationsCategories=endpoints.MembersWebApp+"GetLocationsCategories.ashx";endpoints.getBranches=endpoints.MembersWebApp+"GetBranches.ashx";endpoints.getBenefitsByKey=endpoints.MembersWebApp+"GetBenefitsByKey.ashx";endpoints.validOrderTimeSlot=endpoints.MembersWebApp+"ValidOrderTimeSlot.ashx";endpoints.getPromotionsSubcategories=endpoints.MembersWebApp+"GetPromotionsSubcategories.ashx";endpoints.districts=endpoints.locations+":id/districts/";endpoints.places=endpoints.Delivery+"places/";endpoints.place=endpoints.Delivery+"place/";endpoints.placesByLocation=endpoints.places+"location/locationId/districtId/";endpoints.dishes=endpoints.Delivery+"dishes/";endpoints.dishesCategories=endpoints.dishes+"categories/place/:id/";endpoints.dishesByCategory=endpoints.dishes+"category/:id/";endpoints.dish=endpoints.Delivery+"dishes/show/:id/";endpoints.debitPayment=endpoints.pelecard+"DebitRegularType";endpoints.orders=endpoints.Delivery+"orders";endpoints.searchDish=endpoints.Delivery+"places/:placeId/dishes";endpoints.getOrderExtras=endpoints.Delivery+"places/order_extras/:placeId";endpoints.checkVersion=endpoints.Delivery+"version/:placeId";urls=["","",""];req=function(path,data,method,success,error,retry,async){retry=retry||0;data=data||{};data.ConfigKey=ConfigKey||"";var options={url:urls[retry%urls.length]+path,data:data,dataType:"json",type:method,success:success,async:async||!0,error:function(xhr){if(retry!=0&&retry=5&&curHr<12?getTranslate(44)+",":curHr>=12&&curHr<17?getTranslate(45)+",":getTranslate(46)+",",setTimeout(function(){Dom7(".main-splash-screen").addClass("splash-screen-hide");Dom7(".view.view-main").removeClass("hide-on-load");Dom7(".view.view-main").removeClass("blur")},450),data=valueCard.data.appConfig,data.greetingText=greetingText,data}})}},{name:"PurchasePoint",path:"/Members/PurchasePoint/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){vcapi.getPromotionsSubcategories({UserSecretKey:User.getSecretKey()},function(resCat){resCat.length>1?resolve({templateUrl:"./templates/Members/PurchasePointCategories.html?p=d"},{context:function(){var data={};return data.list=resCat,data.PointsBalance=valueCard.data.appConfig.MemberCard.Points,data}}):vcapi.getPurchasesByPoints({UserSecretKey:User.getSecretKey(),LocationId:Branch.get.LocationId},function(res){resolve({templateUrl:"./templates/Members/PurchasePoint.html?p=d"},{context:function(){valueCard.PurchasePoint=res;var data={};return data.list=res,data.PointsBalance=data.list[0].PointsBalance,data}})})})}},{name:"PurchasePoint",path:"/Members/PurchasePoint/:id",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){vcapi.getPurchasesByPoints({UserSecretKey:User.getSecretKey(),LocationId:Branch.get.LocationId,SubcategoryId:routeTo.params.id},function(res){resolve({templateUrl:"./templates/Members/PurchasePoint.html?p=d"},{context:function(){valueCard.PurchasePoint=res;var data={};return data.list=res,data.PointsBalance=data.list[0].PointsBalance,data}})})}},{name:"MemberBenefits",path:"/Members/MemberBenefits/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){valueCard.dialog.preloader(getTranslate(91));vcapi.getBenefitsByKey(User.getSecretKey(),function(res){resolve({templateUrl:"./templates/Members/MemberBenefits.html?p=adasdAD"},{context:function(){var data={};return valueCard.MembersBinifits=res,data.list=res,valueCard.dialog.close(),data}})},function(){valueCard.dialog.close()})}},{name:"MemberDetails",path:"/Members/MemberDetails/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){valueCard.dialog.preloader("טוען ");vcapi.getMemberDetails({UserSecretKey:User.getSecretKey(),LocationID:Branch.get.LocationId||0},function(res){resolve({templateUrl:"./templates/Members/MemberDetails.html?p=s"},{context:function(){return valueCard.dialog.close(),valueCard.data.appConfig.MemberCard=res,res}})},function(a){valueCard.dialog.close();alert(a)})}},{name:"Logout",path:"/Logout/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){resolve({templateUrl:"./templates/Home.html"},{context:function(){User.resetUser();location.reload()}})}},{name:"Start",path:"/Start/",history:!1,options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){resolve({templateUrl:"./templates/Start.html?p=a"},{context:function(){return{}}})}},{name:"Branches",path:"/Members/Branches/",history:!1,options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){var data={};vcapi.getBranches(function(list){data.list=list;resolve({templateUrl:"./templates/Members/Branches.html?p=bfdd"},{context:function(){return data}})})}},{name:"Store",path:"/Store/",options:{transition:"f7-fade",pushState:!0},async:function(routeTo,routeFrom,resolve){if(!Branch.get.LocationId){mainView.router.navigate("/Start/");return}if(routeTo.name==routeFrom.name&&!window.revreshVcRoute)return routeTo.query.catId&&history.pushState("","?catId",location.href.replace(location.href.split("/")[location.href.split("/").length-1],"")+"?catId="+routeTo.query.catId),!1;valueCard.dialog.preloader("טוען פריטים");Order.getDishes().then(function(res){window.revreshVcRoute=!1;resolve({templateUrl:"./templates/Delivery/Dishes.html?p=4"},{context:function(){return valueCard.dialog.close(),res}})},function(rej){valueCard.dialog.alert(rej)})}},{name:"BenefitsPage",path:"/BenefitsPage/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve,reject){routeFrom.name!=routeTo.name&&(valueCard.dialog.preloader(getTranslate(91)),vcapi.getBinefits({UserSecretKey:User.getSecretKey(),PromoCategoryID:0,LocationId:Branch.get.LocationId},function(res){valueCard.Binefits=res;var data={};data.list=res;res.length==0&&(data.errorMsg="לא נמצאו הטבות");vcapi.getPurchasesByPoints({UserSecretKey:User.getSecretKey(),LocationId:Branch.get.LocationId},function(res){valueCard.PurchasePoint=res;data.pointslist=res;resolve({templateUrl:"./templates/Members/BenefitsPage.html?p=s"},{context:function(){return Dom7(".page.BenefitsPage .dish-list-cat-name").show(),valueCard.dialog.close(),data}})},function(){});reject({templateUrl:"./templates/Members/BenefitsPage.html?p=s"},{context:function(){var data={};return valueCard.dialog.close(),data.errorMsg="לא נמצאו הטבות",Dom7(".page.BenefitsPage .dish-list-cat-name").hide(),data}})}))}},{name:"Payment",path:"/Payment/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){resolve({templateUrl:"./templates/Delivery/Payment.html?p=5d1"},{context:function(){var returnData=valueCard.data.appConfig;return returnData.showCCButton=!1,returnData.showCashButton=!1,returnData.showPayByVC=!1,returnData.isDelivery=!1,returnData.cashBtnTxt=getTranslate(12),(Order.type.isPickup()||Order.type.isSeating())&&(returnData.TAPay_OnPremise&&(returnData.showCashButton=!0,returnData.cashBtnTxt=getTranslate(11)),returnData.TAPay_CreditCard&&(returnData.showCCButton=!0)),Order.type.isDelivery()&&(returnData.isDelivery=!0,returnData.DeliveryPay_Cash&&(returnData.showCashButton=!0),returnData.DeliveryPay_CreditCard&&(returnData.showCCButton=!0)),(User.isRegistered()||User.isVoucher())&&Cart.getCartPrice().then(function(cartPrice){var totalPrice=parseFloat(cartPrice);totalPrice-Order.get.Discount==0&&(returnData.showPayByVC=!0)}),valueCard.data.orderExtrasLists&&valueCard.data.orderExtrasLists.length&&(returnData.orderExtrasLists=valueCard.data.orderExtrasLists,returnData.hasOrdersExtras=!0),User.isRegistered()||window.localStorage.removeItem("f7form-order-sum"),returnData.showPaymentText=returnData.showCCButton==!0&&returnData.showCashButton==!0,returnData}})}},{name:"Content",path:"/Content/:id",options:{transition:"f7-fade",pushState:!0},async:function(routeTo,routeFrom,resolve){vcapi.GetPages(function(data){var list={},content;User.isRegistered()&&(list=data.filter(function(p){return!p.HideIfRegistered}));User.isRegistered()||(list=data.filter(function(p){return!p.ShowForMembersOnly}));valueCard.data.appPages=list;content=valueCard.data.appPages.filter(function(p){return p.Id==routeTo.params.id})[0];resolve({templateUrl:"./templates/Delivery/HtmlPage.html"},{context:function(){return Dom7(".main-splash-screen").addClass("splash-screen-hide"),Dom7(".view.view-main").removeClass("hide-on-load"),Dom7(".view.view-main").removeClass("blur"),content}})})}},{name:"PunchCards",path:"/Members/PunchCards/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){vcapi.getBinefits({UserSecretKey:User.getSecretKey(),PromoCategoryID:10,LocationId:0},function(data){valueCard.punchBinefits=data;resolve({templateUrl:"./templates/Members/PunchCards.html?p=0"},{context:function(){var returnData={},i,counter,punchList,c,d,b,punchedClass,punchedicon;for(returnData.list=data,i=0;i<\/i>":"",returnData.list[i].punchHtml+=" "+punchedicon+" "+punchList[b].punceIndex+"<\/span>"}return returnData}})})}},{name:"Transactions",path:"/Transactions/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){vcapi.getTransactions({UserSecretKey:User.getSecretKey()},function(res){resolve({templateUrl:"./templates/Members/Transactions.html"},{context:function(){var data={};return res.length==0&&(data.errorMsg=getTranslate(86)),data.list=res,data}})},function(res){resolve({templateUrl:"./templates/Members/Transactions.html"},{context:function(){var data={};return data.list=res,data}})})}},{name:"ContactUs",path:"/ContactUs/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){resolve({templateUrl:"./templates/Delivery/ContactUs.html?p=23"},{context:function(){var data={};return User.isRegistered()&&(data.Name=valueCard.data.appConfig.MemberCard.FirstName+" "+valueCard.data.appConfig.MemberCard.LastName,data.Phone="0"+valueCard.data.appConfig.MemberCard.CelPhone,data.Email=valueCard.data.appConfig.MemberCard.Email),data}})}},{name:"OrdersHistory",path:"/OrdersHistory/",options:{transition:"f7-fade"},async:function(routeTo,routeFrom,resolve){valueCard.dialog.preloader("טוען ");vcapi.getOrdersHistory({UserSecretKey:User.getSecretKey()},function(res){resolve({templateUrl:"./templates/Members/OrdersHistory.html"},{context:function(){for(var b,extralists,c,extralistsitem,data={},a=0;a 0 }).length) { return true; } } return false; } var cart_item = items.filter(function (c) { return c.dish_id == item.dish_id }); for (var i = 0; i < cart_item.length; i++) { var thisItem = cart_item[i]; if (thisItem) { if (!checkhasExtras(thisItem) && !checkhasExtras(item)) { thisItem.quantity += item.quantity; window.last_added_item_id = thisItem.item_id; localforage.setItem(lsKeyName, items); return; } } } item.item_id = item.item_id || Cart.randomCartItemId(); window.last_added_item_id = item.item_id; item.quantity = item.quantity || 1; if (typeof (index) == "undefined") { items.push(item); } else { items.insert(index, item); } localforage.setItem(lsKeyName, items); }); return promise; }, calculateExtraIncluded: function (extra_included, select_arr) { var arr = select_arr.map(function (d) { return parseFloat(d.price) }).sort(function (a, b) { return b - a; }).slice(extra_included); if (arr.length) { return arr.reduce(function (a, b) { return a + b }); } else { return 0; } }, calculateTotalItem: function (item) { var extrasArr = item.extra_lists.map(function (d) { return prasePrice(isNaN(d.totalExtrasPrice) ? 0 : d.totalExtrasPrice) }); if (extrasArr.length) { if (typeof (extrasArr[0]) != "undefined") { return (prasePrice(parseFloat(extrasArr.reduce(function (a, b) { return a + b; })) + parseFloat(item.price))) * item.quantity; } else { return item.price * item.quantity; } } else { return item.total_price_unit * item.quantity; } }, addDuplicateToCart: function (items) { var promise = new Promise(function (resolve, reject) { var itmes_new = []; for (var i = 0; i < items.length; i++) { console.log('item:', items[i]); var history_item = items[i]; var item_from_db = valueCard.data.dishis.filter(function (d) { return parseInt(d.id) === parseInt(history_item.dish_id) })[0]; var item = JSON.parse(JSON.stringify(item_from_db)); item.extra_lists = item["extra-lists"]; item.dish_comment = history_item.dish_comment; item.item_id = Cart.randomCartItemId(); item.quantity = history_item.quantity || 1; //item.dish_total = history_item.dish_total; item.special_comment = history_item.special_comment; if (item.extra_lists.length && (history_item.extra_lists && history_item.extra_lists.length)) { for (var ex = 0; ex < item.extra_lists.length; ex++) { var hasExtrasSelected = history_item.extra_lists.filter(function (el) { return el.id === item.extra_lists[ex].id; })[0]; if (hasExtrasSelected) { item.extra_lists[ex].selected = history_item.extra_lists.filter(function (el) { return el.id === item.extra_lists[ex].id; })[0].items; var extra_included = parseInt(item.extra_lists[ex].extra_included); if (extra_included) { item.extra_lists[ex].totalExtrasPrice = Cart.calculateExtraIncluded(extra_included, item.extra_lists[ex].selected); } else { item.price = prasePrice(item.price + item.extra_lists[ex].selected.map(function (p) { return parseFloat(p.price) }).reduce(function (a, b) { return a + b; })); } } } }; item.dish_total = Cart.calculateTotalItem(item); if (item["variant-lists"].length) { item.variant_lists = item["variant-lists"]; for (var va = 0; va < item.variant_lists.length; va++) { var his_var = history_item.variant_lists.filter(function (el) { return el.id === item.variant_lists[va].id; })[0]; item.variant_lists[va].selectedId = his_var.selectedId; item.variant_lists[va].selectedTitle = his_var.selectedTitle; item.variant_lists[va].variants = his_var.variants; } } if ((item.extras && item.extras.length) && (history_item.extras && history_item.extras.length)) { for (var e = 0; e < item.extras.length; e++) { item.extras[e].selected = history_item.extras.map(function (r) { return r.selected ? true : false; })[e] || false; } } itmes_new.push(item); } localforage.setItem(lsKeyName, itmes_new).then(function () { resolve(); }); }); return promise; }, editCartItem: function (item, oldItem) { var old_item = oldItem; var item = item; var promise = new Promise(function (resolve, reject) { Cart.removeItem(old_item).then(function (item_index) { Cart.addToCart(item, item_index).then(function (itemId) { console.log('edit:', itemId); resolve(); }); }); }); return promise; }, getCart: function () { var promise = new Promise(function (resolve, reject) { localforage.getItem(lsKeyName, function (err, value) { // resolve(value); var items = []; ////check first if dish is still for sale //if (value && valueCard.data.dishis) { // for (var i = 0; i < value.length; i++) { // var dishServerItem = valueCard.data.dishis.filter(function (dish) { return dish.id == value[i].dish_id })[0]; // if (!dishServerItem) { // Cart.removeItem(value[i].dish_id); // continue; // } // if (dishServerItem.out_of_sale || dishServerItem.out_of_stock) { // Cart.removeItem(value[i].dish_id); // continue; // } // items.push(value[i]); // } //} //check if dish is sched items = value.filter(function (f) { if (f.is_orders_extras) { return true; } var dish = Cart.getDishById(f)[0]; if (!dish) { return false; } if (dish.dish_schedule && dish.dish_schedule.length) { if (valueCard.data.appConfig.DeliveryTimeUpFront && Order.get.OrderSlotData) { /*TODO*/ } var Time = function (timeString) { var t = timeString.split(":"); this.hour = parseInt(t[0]); this.minutes = parseInt(t[1]); this.isBiggerThan = function (other) { return (this.hour > other.hour) || (this.hour === other.hour) && (this.minutes > other.minutes); }; } var timeIsBetween = function (start, end, check) { return (start.hour <= end.hour) ? check.isBiggerThan(start) && !check.isBiggerThan(end) : (check.isBiggerThan(start) && check.isBiggerThan(end)) || (!check.isBiggerThan(start) && !check.isBiggerThan(end)); } function parseTime(i) { if (i < 10) { i = "0" + i; } return i; } var today = new Date(); var todaySched = dish.dish_schedule.filter(function (t) { return parseInt(t.day) == parseInt(today.getDay() + 1) || parseInt(t.day) == 0 }); if (todaySched.length) { for (var i = 0; i < todaySched.length; i++) { var timeTo = todaySched[i]["time_to"] == "00:00:00" ? "23:59:59" : todaySched[i]["time_to"]; var openTime = new Time(todaySched[i]["time_from"]); var closeTime = new Time(timeTo); var checkTime = new Time(parseTime(today.getHours()) + ":" + parseTime(today.getMinutes())); if (timeIsBetween(openTime, closeTime, checkTime)) { if (valueCard.data.dishis) { return true; } } else { continue; } } } else { return false; } } else { if (valueCard.data.dishis) { if (Cart.getDishById(f).length) { return true; } } } }); resolve(items); }); }); return promise; }, getDishById: function (dish) { if (valueCard.data.dishis) { return valueCard.data.dishis.filter(function (d) { return parseInt(d.id) === parseInt(dish.dish_id); }); } else { return dish; } }, getCartPrice: function () { var pricePromise = new Promise(function (resolve, reject) { Cart.buildCart().then(function (cartItems) { var totalPrice = 0; for (var i = 0; i < cartItems.length; i++) { var item = cartItems[i]; totalPrice += parseFloat(item.dish_total); } if (Order.get.ActivateItemId) { totalPrice += Order.get.ActivatePrice; } resolve(parseFloat(totalPrice)); }); }); return pricePromise; }, getTotalPrice: function (noTip, discountAmount) { var pricePromise = new Promise(function (resolve, reject) { Cart.getCartPrice().then(function (cartPrice) { var totalPrice = parseFloat(cartPrice); if (Order.type.isDelivery()) { if (Order.get.MinimumOrderForFreeDelivery) { if ((totalPrice - discountAmount) >= Order.get.MinimumOrderForFreeDelivery) { Order.post.deliveryPrice(0); } else { Order.post.deliveryPrice(Order.get.DeliveryOrginalPrice); } } totalPrice += parseFloat(Order.get.DeliveryPrice); } if (discountAmount) { totalPrice -= parseFloat(discountAmount); } //if (Order.get.ActivateItemId) { // totalPrice += parseFloat(Order.get.ActivatePrice); //} if (!noTip && Order.get.Tip) { if (Order.get.Tip.amount > 0) { totalPrice += Order.get.Tip.totalAmount; } } resolve(totalPrice.toFixed(2)); }); }); return pricePromise; }, addQty: function (dishId, up) { var promise = new Promise(function (resolve, reject) { Cart.getCart().then(function (cartItems) { var items = cartItems; var item = items.filter(function (c) { return c.item_id == dishId })[0]; var qty_available = item.qty_available || 100; if (((item.quantity + up) < 1 || (item.quantity + up) > 99) || (up == 1 && (item.quantity >= qty_available))) return; item.quantity += up; localforage.setItem(lsKeyName, items); resolve(items); }); }); return promise; }, writeDishComment: function (dishId, comment) { var promise = new Promise(function (resolve, reject) { Cart.getCart().then(function (cartItems) { var items = cartItems; var item = items.filter(function (c) { return c.item_id == dishId })[0]; item.dish_comment = comment; localforage.setItem(lsKeyName, items); resolve(items); }); }); return promise; }, randomCartItemId: function () { return 'c_' + Math.random().toString(36).substr(2, 9); }, buildCart: function () { var pricePromise = new Promise(function (resolve, reject) { Cart.getCart().then(function (cartItems) { var cart = []; //console.log('buildCart', cartItems); if (!cartItems) { console.error('buildCart is null', cartItems); } if (cartItems && cartItems.length) { for (var i = 0; i < cartItems.length; i++) { var item_from_db = valueCard.data.dishis.filter(function (d) { return parseInt(d.id) === parseInt(cartItems[i].id) })[0]; if (item_from_db) { if (item_from_db.out_of_sale || item_from_db.out_of_stock) { Cart.removeItem(cartItems[i].item_id); continue; } } var item = {}; item.item_id = cartItems[i].item_id; item.dish_id = cartItems[i].id; item.title = cartItems[i].title; item.price = cartItems[i].price; item.total_price_unit = parseFloat(cartItems[i].dish_total) || parseFloat(cartItems[i].price); item.dish_total = parseFloat(cartItems[i].dish_total * cartItems[i].quantity) || parseFloat(cartItems[i].price * cartItems[i].quantity); item.category = cartItems[i].category; item.quantity = cartItems[i].quantity; item.dish_comment = cartItems[i].dish_comment || ""; //item.comment = cartItems[i].dish_comment ? "הערה: " + cartItems[i].dish_comment + " | " : ""; item.is_orders_extras = cartItems[i].is_orders_extras || false; item.external_id = cartItems[i].external_id || cartItems[i].id; item.disable_qty = cartItems[i].disable_qty; if (parseFloat(item.dish_total) % 1 != 0) { item.dish_total = parseFloat(item.dish_total).toFixed(1); } else { item.dish_total = parseFloat(item.dish_total); } var buildCommentNoteStr = ""; //variant_lists var variant_lists = cartItems[i].variant_lists; if (variant_lists && variant_lists.length) { item.variant_lists = []; for (var c = 0; c < variant_lists.length; c++) { if (variant_lists[c].external_id === 0) { buildCommentNoteStr += ' ' + variant_lists[c].title + ': ' + variant_lists[c].selectedTitle + ' | '; //buildCommentNoteCounter += 1; } item.variant_lists[c] = variant_lists[c]; } } //extras var extras_arr = cartItems[i].extras; if (extras_arr) { var extras = cartItems[i].extras.filter(function (r) { return r.selected }); //cartItems[i].extra_lists; if (extras.length) { item.extras = extras; for (var x = 0; x < extras.length; x++) { // if (extras[x].is_note == "1") { if (extras[x].external_id == "" || extras[x].external_id == "0") { buildCommentNoteStr += ' תוספת: ' + extras[x].title + ' | '; } } } } //extra_lists var extra_lists = cartItems[i].extra_lists.filter(function (r) { return r.selected }); //cartItems[i].extra_lists; if (extra_lists.length) { item.extra_lists = []; var ext_count = 0; for (var c = 0; c < extra_lists.length; c++) { var selected_extras = extra_lists[c].selected; if (selected_extras && selected_extras.length) { item.extra_lists[ext_count] = { id: extra_lists[c].id, title: extra_lists[c].title, total_extras_price: extra_lists[c].totalExtrasPrice || 0, is_orders_extras: cartItems[i].is_orders_extras || false, items: [] }; // sort by price var sortedSelectedExtra = selected_extras.sort(function (a, b) { return parseFloat(b.price) - parseFloat(a.price) }); for (var e = 0; e < sortedSelectedExtra.length; e++) { item.extra_lists[ext_count].items.push({ id: selected_extras[e].id, external_id: selected_extras[e].external_id ? selected_extras[e].external_id : selected_extras[e].id, title: selected_extras[e].title, is_note: selected_extras[e].is_note, price: selected_extras[e].price, finalPrice: e >= parseInt(extra_lists[c].extra_included ? extra_lists[c].extra_included : 0) ? selected_extras[e].price : 0, qty: selected_extras.filter(function (f) { return f.id == selected_extras[e].id }).length }); } //this for cart display only var resArr = []; //item.extra_lists[ext_count].items.filter(function (item) { // var i = resArr.findIndex(x => x.id == item.id); // if (i <= -1) { // resArr.push({ id: item.id, title: item.title, qty: item.qty }); // } // return null; //}); item.extra_lists[ext_count].items.forEach(function (item) { if (resArr.filter(function (i) { return i.id == item.id }).length == 0) { resArr.push({ id: item.id, is_note: item.is_note, title: item.title, qty: item.qty }); } }); var extraCommentNote = ''; var buildCommentNoteCounter = 0; for (var p = 0; p < resArr.length; p++) { if (resArr[p].is_note == "1") { buildCommentNoteCounter += 1; extraCommentNote += resArr[p].title + (resArr[p].qty > 1 ? " x" + resArr[p].qty : ""); if (p == (resArr.length - 1)) extraCommentNote += ' | '; else extraCommentNote += ', '; } } item.extra_lists[ext_count].print_items = resArr; if (buildCommentNoteCounter > 0) { if (ext_count > 0) buildCommentNoteStr += " | "; buildCommentNoteStr += " " + extra_lists[ext_count].title + ": " + extraCommentNote; } ext_count = ext_count + 1; } } } if (cartItems[i].dish_comment) { var finalString = ''; if (buildCommentNoteStr.length > 3) finalString += 'הערה: '; buildCommentNoteStr = finalString + cartItems[i].dish_comment + (buildCommentNoteStr.length > 0 ? ' | ' + buildCommentNoteStr : ''); } item.comment = buildCommentNoteStr; cart.push(item); } } var lastActiveTime = new Date(Order.get.LastActiveTime); var now = new Date(); var diff = Math.abs(now - lastActiveTime); var minutes = Math.floor((diff / 1000) / 60); if (minutes > 180) { valueCard.actions.close(); if (!Dom7(".restart-dialog").hasClass("modal-in")) { window.restartActivity.open(); } } else { Order.post.LastActiveTime(); } // move orders extras to end of list if (valueCard.data.orderExtrasItem) { var order_extras_item = cart.filter(function (f) { return f.item_id == valueCard.data.orderExtrasItem.external_id })[0]; if (order_extras_item) { cart.push(cart.splice(cart.indexOf(order_extras_item), 1)[0]); } } resolve(cart); }); }); return pricePromise; }, removeItem: function (item_id) { var removePromise = new Promise(function (resolve, reject) { Cart.getCart().then(function (cartItems) { var item_index = cartItems.map(function (t) { return t.item_id }).indexOf(item_id); if (item_index >= 0) { cartItems.splice(item_index, 1); localforage.setItem(lsKeyName, cartItems); } resolve(item_index); }); }); return removePromise; }, removeAllItems: function () { var removePromise = new Promise(function (resolvecart, reject) { localforage.setItem("cartItems_v12_" + ConfigKey, []).then(function () { resolvecart(); }); }); return removePromise; }, calculateBenefits: function (promoIds, CouponNum) { var promise = new Promise(function (resolve, reject) { if (!User.isRegistered()) { resolve({ Discount: 0 }); return; } var SequentialNum = 0; var JsonItems = { "Trans": [ { "TransId": 0, "OrderNum": Order.get.Id, "NumberOfClients": 1, "OrderType": 1, "ClientNum": 1, "TransItems": [] } ] } var totalWithAddons = 0; if (Order.type.isDelivery()) { var extItemNum = Order.get.DeliveryItemNum && Order.get.DeliveryItemNum.length ? Order.get.DeliveryItemNum : "90909090" JsonItems.Trans[0]["TransItems"].push({ "ExtItemNum": extItemNum, "SequentialNum": SequentialNum, "Amount": "1", "ItemPrice": Order.get.DeliveryPrice, "Total": Order.get.DeliveryPrice, "BusinessCode": "0", "OriginalPrice": Order.get.DeliveryPrice, "Discount": "0", "PromotionCode": "0", "Color": "0", "Size": "0", "GroupName": "0", "Familly": "", "AllowDiscount": "1", "ParentItem": "0", "ItemName": "Delivery Price" }); totalWithAddons += parseFloat(Order.get.DeliveryPrice); SequentialNum += 1; } if (Order.get.ActivateItemId) { JsonItems.Trans[0]["TransItems"].push({ "ExtItemNum": Order.get.ActivateItemId, "SequentialNum": SequentialNum, "Amount": "1", "ItemPrice": Order.get.ActivatePrice, "Total": Order.get.ActivatePrice, "BusinessCode": "0", "OriginalPrice": Order.get.ActivatePrice, "Discount": "0", "PromotionCode": "0", "Color": "0", "Size": "0", "GroupName": "0", "Familly": "", "AllowDiscount": "1", "ParentItem": "0", "ItemName": Order.get.ActivateType === 2 ? "Renew Membership" : "Activate Membership" }); totalWithAddons += parseFloat(Order.get.ActivatePrice); SequentialNum += 1; } Cart.getCart().then(function (cartItems) { for (var i = 0; i < cartItems.length; i++) { JsonItems.Trans[0]["TransItems"].push({ "ExtItemNum": cartItems[i].external_id, "SequentialNum": SequentialNum, "Amount": cartItems[i].quantity || 1, "ItemPrice": cartItems[i].price, "Total": cartItems[i].quantity * cartItems[i].price, "BusinessCode": "0", "OriginalPrice": cartItems[i].price, "Discount": "0", "PromotionCode": "0", "Color": "0", "Size": "0", "GroupName": cartItems[i].category || "", "Familly": "", "AllowDiscount": "1", "ParentItem": "0", "ItemName": cartItems[i].title }); SequentialNum += 1; if (cartItems[i].extra_lists.length) { for (var b = 0; b < cartItems[i].extra_lists.length; b++) { if (cartItems[i].extra_lists[b].selected && cartItems[i].extra_lists[b].selected.length) { var selectedList = cartItems[i].extra_lists[b].selected.sort(function (a, b) { return parseFloat(b.price) - parseFloat(a.price); }); var extra_included = parseInt(cartItems[i].extra_lists[b].extra_included); for (var s = 0; s < selectedList.length; s++) { var extra_price; if (extra_included && (s < extra_included)) { extra_price = "0"; } else { extra_price = selectedList[s].price; } JsonItems.Trans[0]["TransItems"].push({ "ExtItemNum": selectedList[s].external_id, "SequentialNum": SequentialNum, "Amount": "1", "ItemPrice": extra_price, "Total": extra_price, "BusinessCode": "0", "OriginalPrice": selectedList[s].price, "Discount": "0", "PromotionCode": "0", "Color": "0", "Size": "0", "GroupName": "0", "Familly": "", "AllowDiscount": "1", "ParentItem": "0", "ItemName": selectedList[s].title }); SequentialNum += 1; } } } } } Cart.getCartPrice().then(function (cartPrice) { var totalPrice = parseFloat(cartPrice); var pointsPromoIDs; if (Order.get.SelectedPointsPromoIDs && Order.get.SelectedPointsPromoIDs.length) { pointsPromoIDs = Order.get.SelectedPointsPromoIDs.join(","); } var deliveryPrice = 0; if (Order.type.isDelivery()) { deliveryPrice = parseFloat(Order.get.DeliveryPrice); } vcapi.calculateCartBenefits({ POSId: Branch.get.LocationPOS, RequestedPromoIDs: promoIds || '', RequestedPointsPromoIDs: pointsPromoIDs || '', CouponNum: CouponNum ? CouponNum : -1, JsonItems: JSON.stringify(JsonItems), CardNumber: valueCard.data.appConfig.MemberCard.CelPhone.length ? valueCard.data.appConfig.MemberCard.CelPhone : valueCard.data.appConfig.MemberCard.CardNumber, TransactionSum: totalPrice + parseFloat(deliveryPrice) }, function (d) { if (d.GivenPromoIDs && d.GivenPromoIDs.length) { var givnpromos = d.GivenPromoIDs.split(";"); for (var i = 0; i < givnpromos.length; i++) { var promoIds = givnpromos[i].split("|")[0]; if (promoIds.length) { Order.post.addSelectedPromo(promoIds); } } } resolve(d); }, function (d) { resolve(d); }); }); }); }); return promise; }, getItemById: function (id) { id = parseInt(id); var promise = new Promise(function (resolve, reject) { Dom7(".payment-method-actions button").prop('disabled', true); Cart.getCart().then(function (cartItems) { var items = cartItems; var item = items.filter(function (c) { return parseInt(c.id) == id })[0]; resolve(item); }); }); return promise; }, getCartItem: function (itemId) { var promise = new Promise(function (resolve, reject) { Dom7(".payment-method-actions button").prop('disabled', true); Cart.buildCart().then(function (cartItems) { var items = cartItems; var item = items.filter(function (c) { return c.item_id == itemId })[0]; resolve(item); }); }); return promise; }, getCartItemNum: function (itemId) { var promise = new Promise(function (resolve, reject) { Cart.getCart().then(function (items) { resolve(items.map(function (d) { return d.external_id })); }); }); return promise; } }; localforage.getItem(lsKeyName, function (err, value) { if (typeof (Sentry) != "undefined") { Sentry.addBreadcrumb({ category: "Cart Class", message: "User getItem from " + lsKeyName + " and is :" + value, level: Sentry.Severity.Info }); } if (!value) { localforage.setItem(lsKeyName, []); } }); //Cart.getCart().then(function (cart) { // if (!cart) { // localforage.setItem(lsKeyName, []); // } //}); // order.js : const lsOrderKeyName = "orderInfo_v11_" + ConfigKey; const TYPE_DELIVERY = 1; const TYPE_PICKUP = 2; const TYPE_SEATING = 3; const TYPE_MENU = 5; class cOrder { constructor(Id, DeliveryPrice, Type, MinimumOrder, DeliveryAddress, tip, transactionId, transactionMsg, selectedPromos, discount, deliveryItemNum, DeliveryZoneId, LastActiveTime, UsedBalnace, SelectedPointsPromoIDs, ActivateType, ActivateItemId, ActivatePrice, MinimumOrderForFreeDelivery, DeliveryOrginalPrice, DishesVersion, StoredDishes, IsExternalZone, DeliveryDate, OrderSlotData) { this.Id = Id; this.DeliveryPrice = DeliveryPrice; this.Type = Type; this.MinimumOrder = MinimumOrder; this.DeliveryAddress = DeliveryAddress; this.Tip = tip; this.TransactionId = transactionId; this.TransactionMsg = transactionMsg; this.SelectedPromos = selectedPromos; this.Discount = discount; this.DeliveryItemNum = deliveryItemNum; this.DeliveryZoneId = DeliveryZoneId; this.LastActiveTime = LastActiveTime; this.UsedBalnace = UsedBalnace; this.SelectedPointsPromoIDs = SelectedPointsPromoIDs; this.ActivateType = ActivateType; this.ActivateItemId = ActivateItemId; this.ActivatePrice = ActivatePrice; this.MinimumOrderForFreeDelivery = MinimumOrderForFreeDelivery; this.DeliveryOrginalPrice = DeliveryOrginalPrice; this.DishesVersion = DishesVersion; this.StoredDishes = StoredDishes; this.IsExternalZone = IsExternalZone; this.DeliveryDate = DeliveryDate; this.OrderSlotData = OrderSlotData; } save() { localforage.setItem(lsOrderKeyName, this); } } var Order = { get: function () { return ""; }, post: { type: function (type) { Order["get"].Type = type; Order["get"].save(); }, deliveryPrice: function (price) { Order["get"].DeliveryPrice = price; Order["get"].save(); }, deliveryAddress: function (address) { Order["get"].DeliveryAddress = address; Order["get"].save(); }, minimumOrder: function (price) { Order["get"].MinimumOrder = price; Order["get"].save(); }, tip: function (amount, type, total) { Order["get"].Tip = { amount: amount, type: type, totalAmount: total }; Order["get"].save(); }, transactionId: function (id) { Order["get"].TransactionId = id; Order["get"].save(); }, transactionMsg: function (msg) { Order["get"].TransactionMsg = msg; Order["get"].save(); }, addSelectedPromo: function (promoid) { if (typeof(Order["get"].SelectedPromos) == "undefined") { Order["get"].SelectedPromos = []; } if (Order["get"].SelectedPromos.indexOf(promoid) < 0) { Order["get"].SelectedPromos.push(promoid); Order["get"].save(); } }, addSelectedPointsPromoIDs: function (promoid) { if (typeof (Order["get"].SelectedPointsPromoIDs) == "undefined") { Order["get"].SelectedPointsPromoIDs = []; } if (Order["get"].SelectedPointsPromoIDs.indexOf(promoid) < 0) { Order["get"].SelectedPointsPromoIDs.push(promoid); Order["get"].save(); } }, removeSelectedPromo: function (promoid) { Order["get"].SelectedPromos = Order.get.SelectedPromos.filter(function (val) { return val !== promoid }); Order["get"].save(); }, discount: function (discount) { Order["get"].Discount = discount; Order["get"].save(); }, DeliveryItemNum: function (DeliveryItemNum) { Order["get"].DeliveryItemNum = DeliveryItemNum; Order["get"].save(); }, DeliveryZoneId: function (id) { Order["get"].DeliveryZoneId = id; Order["get"].save(); }, LastActiveTime: function() { Order["get"].LastActiveTime = Date(); Order["get"].save(); }, UsedBalnace: function (balnace) { Order["get"].UsedBalnace = balnace; Order["get"].save(); }, ActivateItem: function (type, id, price) { Order["get"].ActivateType = type; Order["get"].ActivateItemId = id; Order["get"].ActivatePrice = price; Order["get"].save(); }, MinimumOrderForFreeDelivery: function (price) { Order["get"].MinimumOrderForFreeDelivery = prasePrice(price); Order["get"].save(); }, DeliveryOrginalPrice: function (price) { Order["get"].DeliveryOrginalPrice = prasePrice(price); Order["get"].save(); }, DishesVersion: function (DishesVersion) { Order["get"].DishesVersion = DishesVersion; Order["get"].save(); }, StoredDishes: function (d) { Order["get"].StoredDishes = d; Order["get"].save(); }, IsExternalZone: function (d) { Order["get"].IsExternalZone = d; Order["get"].save(); }, DeliveryDate: function (d) { Order["get"].DeliveryDate = d; Order["get"].save(); }, OrderSlotData: function (d) { Order["get"].OrderSlotData = d; Order["get"].save(); }, }, type: { isDelivery: function () { return Order.get.Type == TYPE_DELIVERY; }, isPickup: function () { return Order.get.Type == TYPE_PICKUP; }, isSeating: function () { return Order.get.Type == TYPE_SEATING; }, isMenu: function () { return Order.get.Type == TYPE_MENU; }, }, cleanOrder: function () { var removePromise = new Promise(function (resolve, reject) { localforage.setItem(lsOrderKeyName, {}); resolve(); }); return removePromise; }, duplicateOrder: function (orderId) { this.cleanOrder(); var order = valueCard.orderHistory.filter(function (o) { return o.OrderId == orderId; })[0]; var orderCartItems = JSON.parse(order.CartJson); Branch.removeBranch(); Cart.removeAllItems(); Order.createNewOrder(User.generateSecretKey()); if (parseInt(order.OrderType) === 1) { Order.post.type(1); return; } if (parseInt(order.OrderType) === 2) { Order.post.type(2); Order.post.minimumOrder(parseFloat(order.MinumumPickUpOrder).toFixed(2)); if (order.tipAmount) { Order.post.tip(parseFloat(order.tipAmount).toFixed(), 1); } Branch.createBranch( order.LocationId, order.LocationTitle, order.PlaceId, order.LocationToken, order.LocationPOS, order.LocationAddress, order.LocationOpenHours, order.LocationPhone, order.OpenTimeForOrdering, order.ClosingTimeForOrdering, order.OrderingSiteStatus ).then(function () { Order.getDishes().then(function (res) { Cart.addDuplicateToCart(orderCartItems).then(function () { console.log(res); }); }); }); } }, getDishesRes: function () { var promise = new Promise(function (resolve, reject) { vcapi.checkVersion(function (d) { if (!d.version) { vcapi.searchDish('', function (res) { Order.post.DishesVersion(res.version); Order.post.StoredDishes(res); resolve(res); }, function () { reject('התפריט לא זמין כרגע ויחזור לפעילות בקרוב'); }); } else if (d.version && d.version != Order.get.DishesVersion) { vcapi.searchDish('', function (res) { Order.post.DishesVersion(res.version); Order.post.StoredDishes(res); resolve(res); }, function () { reject('התפריט לא זמין כרגע ויחזור לפעילות בקרוב'); }); } else { var res = Order.get.StoredDishes; resolve(res); } }); }); return promise; }, getDishesList: function () { var promise = new Promise(function (resolve, reject) { Order.getDishesRes().then(function (res) { var searchResultsIndexes = 0; var data = {}; data.list = res.dishes.filter(function (li) { return li.category_id > 1 });; data.groups = res.groups; vcapi.getDishesCategories(Branch.get.PlaceId, function (catData) { if (catData.error) { valueCard.dialog.close(); valueCard.dialog.alert("שגיאה בקבלת קטגוריות"); Order.cleanOrder(); Cart.removeAllItems(); Branch.removeBranch().then(function () { mainView.router.navigate({ name: "Start" }); }); } valueCard.data.dishesCategories = catData.categories.filter(function (li) { return li.id > 1 }); data.categories = catData.categories.filter(function (li) { return li.id > 1 }); if (!valueCard.data.dishis) valueCard.data.dishis = []; var searchResults = []; var groupDishes = []; for (var cd = 0; cd < valueCard.data.dishesCategories.length; cd++) { var categoryItem = valueCard.data.dishesCategories[cd]; var categoryIntItem = {}; categoryIntItem.id = categoryItem.id; categoryIntItem.image = categoryItem.image.replace(/ /g, '%20').replace(/'/g, '%27'); categoryIntItem.order = categoryItem.order; categoryIntItem.title = categoryItem.title; categoryIntItem.dishes = []; categoryIntItem.groups = []; var groups_arr = res.groups.filter(function (f) { return f.category_id == categoryItem.id; }); var groups = groups_arr.sort(function (a, b) { if (parseInt(a.order) < parseInt(b.order)) { return -1; } if (parseInt(a.order) > parseInt(b.order)) { return 1; } return 0; }); if (groups.length) { for (var b = 0; b < groups.length; b++) { groups[b].dish_index = searchResultsIndexes; groups[b].title = groups[b].name; groups[b].ingredients = groups[b].description; groups[b].btnText = "בחירת אפשרויות"; groups[b].id = 3243423333; groups[b].hide = false; groups[b].dish_id = 3243423333; groups[b].external_id = "3243423333"; groups[b].is_group = true; groups[b].picture = groups[b].picture.replace(/ /g, '%20').replace(/'/g, '%27'); groups[b].group_dishes = groups[b].dishes.filter(function (dish) { if (Order.type.isDelivery()) { return dish.out_of_stock === false && dish.hide_in_delivery === false; } if (Order.type.isPickup() || Order.type.isSeating()) { return dish.out_of_stock === false && dish.hide_in_pickup === false; } if (Order.type.isMenu()) { return dish.out_of_stock === false && dish.hide_in_pickup === false; } }); var abcOrder = groups[b].group_dishes.sort(function (a, b) { if (parseInt(a.order) < parseInt(b.order)) { return -1; } if (parseInt(a.order) > parseInt(b.order)) { return 1; } return 0; }); for (var i = 0; i < abcOrder.length; i++) { var gd = abcOrder[i]; gd.dish_id = gd.id; gd.price = parseFloat(gd.price).toFixed(0); gd.external_id = gd.external_id ? gd.external_id : gd.id; if (gd.price == 0) { gd.btnText = "בחירת מרכיבים"; } else { gd.btnText = "הוספה לסל"; } if (Order.type.isMenu()) { gd.btnText = "פרטים"; } gd.store_layout = valueCard.data.appConfig.ShowGridLayout ? 'grid' : 'list'; groupDishes.push(gd); abcOrder[i] = gd; } if (groups[b].group_dishes.length) { groups[b].hide = false; } else { groups[b].hide = true; } searchResultsIndexes += 1; } categoryIntItem.groups = categoryIntItem.groups.concat(groups) categoryIntItem.groups.concat(groups); } var list_arr = res.dishes.filter(function (f) { if (Order.type.isDelivery()) { return f.category_id == categoryItem.id && f.out_of_stock === false && f.hide_in_delivery === false; } if (Order.type.isPickup() || Order.type.isSeating()) { return f.category_id == categoryItem.id && f.out_of_stock === false && f.hide_in_pickup === false; } if (Order.type.isMenu()) { return f.category_id == categoryItem.id && f.out_of_stock === false && f.hide_in_pickup === false; } }); var list_arr = Order.removeUnSchedDish(list_arr); var list = list_arr.sort(function (a, b) { if (parseInt(a.order) < parseInt(b.order)) { return -1; } if (parseInt(a.order) > parseInt(b.order)) { return 1; } return 0; }); list.store_layout = valueCard.data.appConfig.ShowGridLayout ? 'grid' : 'list'; if (list.length) { for (var b = 0; b < list.length; b++) { list[b].dish_index = searchResultsIndexes; if (list[b].price == 0) { list[b].btnText = "בחירת מרכיבים"; } else { list[b].btnText = "הוספה לסל"; } if (Order.type.isMenu()) { list[b].btnText = "פרטים"; } list[b].store_layout = valueCard.data.appConfig.ShowGridLayout ? 'grid' : 'list'; searchResultsIndexes += 1; } categoryIntItem.store_layout = valueCard.data.appConfig.ShowGridLayout ? 'grid' : 'list'; categoryIntItem.dishes = categoryIntItem.dishes.concat(list); } if (list.length || groups.length) { searchResults.push(categoryIntItem); } if (!categoryIntItem.dishes.length && !categoryIntItem.groups.length ) { var catIndex = valueCard.data.dishesCategories.map(function (item) { return item.id; }).indexOf(categoryIntItem.id); valueCard.data.dishesCategories[catIndex].hide_from_list = true; } } res.dishes = res.dishes.filter(function (f) { if (Order.type.isDelivery()) { return f.out_of_stock === false && f.hide_in_delivery === false; } if (Order.type.isPickup() || Order.type.isSeating()) { return f.out_of_stock === false && f.hide_in_pickup === false; } if (Order.type.isMenu()) { return f.out_of_stock === false && f.hide_in_pickup === false; } }); res.dishes = Order.removeUnSchedDish(res.dishes); for (var i = 0; i < res.dishes.length; i++) { res.dishes[i].dish_id = res.dishes[i].id; res.dishes[i].price = parseFloat(res.dishes[i].price); res.dishes[i].external_id = res.dishes[i].external_id ? res.dishes[i].external_id : res.dishes[i].id; res.dishes[i].image = res.dishes[i].image.replace(/ /g, '%20').replace(/'/g, '%27'); } valueCard.data.dishis = res.dishes.concat(res.groups); valueCard.data.dishis = valueCard.data.dishis.concat(groupDishes); var returnData = {}; returnData.list = searchResults; valueCard.StroredDishes = returnData; resolve(returnData); }); }); }); return promise; }, getDishes: function () { var promise = new Promise(function (resolve, reject) { resolve(Order.getDishesList()); }); return promise; }, createNewOrder: function (id) { this.post.LastActiveTime(); Order["get"] = new cOrder(); Order["get"].Id = id; Order["get"].save(); }, getOrder: function () { var promise = new Promise(function (resolve, reject) { localforage.getItem(lsOrderKeyName, function (err, value) { Order["get"] = new cOrder(); Object.assign(Order["get"], value); Order["get"].save(); resolve(value); }); }); return promise; }, removeUnSchedDish: function (dishes) { function convertSecondsToTime(seconds) { const hours = Math.floor(seconds / 3600); const remainingSeconds = seconds % 3600; const minutes = Math.floor(remainingSeconds / 60); const formattedHours = String(hours).padStart(2, '0'); const formattedMinutes = String(minutes).padStart(2, '0'); return `${formattedHours}:${formattedMinutes}`; } return dishes.filter(function (f) { if (f.dish_schedule.length) { var Time = function (timeString) { var t = timeString.split(":"); this.hour = parseInt(t[0]); this.minutes = parseInt(t[1]); this.isBiggerThan = function (other) { return (this.hour > other.hour) || (this.hour === other.hour) && (this.minutes >= other.minutes); }; } var timeIsBetween = function (start, end, check) { return (start.hour <= end.hour) ? check.isBiggerThan(start) && !check.isBiggerThan(end) : (check.isBiggerThan(start) && check.isBiggerThan(end)) || (!check.isBiggerThan(start) && !check.isBiggerThan(end)); } function parseTime(i) { if (i < 10) { i = "0" + i; } return i; } function getDayNumber(dateString) { const date = new Date(dateString); const dayNumber = date.getDay(); return dayNumber; } var orderDate = 0; if (valueCard.data.appConfig.DeliveryTimeUpFront && Order.get.OrderSlotData) { var date = Order.get.OrderSlotData.date; orderDate = getDayNumber(date) + 1; } else { var today = new Date(); orderDate = today.getDay() + 1; } var todaySched = f.dish_schedule.filter(function (t) { return parseInt(t.day) == parseInt(orderDate) || parseInt(t.day) == 0 }); if (todaySched.length) { for (var i = 0; i < todaySched.length; i++) { var timeTo = todaySched[i]["time_to"] == "00:00:00" ? "23:59:59" : todaySched[i]["time_to"]; var openTime = new Time(todaySched[i]["time_from"]); var closeTime = new Time(timeTo); var checkTime = new Time("00:00"); if (valueCard.data.appConfig.DeliveryTimeUpFront && Order.get.OrderSlotData) { checkTime = new Time(convertSecondsToTime(Order.get.OrderSlotData.time.FromHour)); } else { checkTime = new Time(parseTime(today.getHours()) + ":" + parseTime(today.getMinutes())); } if (timeIsBetween(openTime, closeTime, checkTime)) { return true; } else { continue; } } } else { return false; } } else { return true; } }); } }; Order.getOrder().then(function (order) { if (!order) { localforage.setItem(lsOrderKeyName, {}); } }); window.Order = Order; // branch.js : const lsBranchKeyName = "BranchInfo_v12_" + ConfigKey; class cBranch { constructor(LocationId, Name, PlaceId, LocationToken, LocationPOS, Address, OpenHours, Phone, EstimatedTime, OpenTimeForOrdering, ClosingTimeForOrdering, BranchIsClosed) { this.LocationId = LocationId; this.Name = Name; this.PlaceId = PlaceId; this.LocationToken = LocationToken; this.LocationPOS = LocationPOS; this.Address = Address; this.OpenHours = OpenHours; this.Phone = Phone; this.EstimatedTime = EstimatedTime; this.OpenTimeForOrdering = OpenTimeForOrdering; this.ClosingTimeForOrdering = ClosingTimeForOrdering; this.BranchIsClosed = BranchIsClosed; } save() { localforage.setItem(lsBranchKeyName, this); } } var Branch = { get: function () { return {}; }, post: { openTimeForOrdering: function (time) { Branch["get"].OpenTimeForOrdering = time; Branch["get"].save(); }, closingTimeForOrdering: function (time) { Branch["get"].ClosingTimeForOrdering = time; Branch["get"].save(); }, branchIsClosed: function (bol) { Branch["get"].BranchIsClosed = bol; Branch["get"].save(); }, type: function (type) { Branch["get"].Type = type; Branch["get"].save(); }, }, createBranch: function (LocationId, Name, PlaceId, LocationToken, LocationPOS, Address, OpenHours, Phone, EstimatedTime, OpenTimeForOrdering, ClosingTimeForOrdering, OrderingSiteStatus, KosherType) { var promise = new Promise(function (resolve, reject) { Branch["get"] = new cBranch(); Branch["get"].LocationId = LocationId; Branch["get"].Name = Name; Branch["get"].PlaceId = PlaceId; Branch["get"].LocationToken = LocationToken; Branch["get"].LocationPOS = LocationPOS; Branch["get"].Address = Address; Branch["get"].OpenHours = OpenHours; Branch["get"].Phone = Phone; Branch["get"].EstimatedTime = EstimatedTime; Branch["get"].OpenTimeForOrdering = OpenTimeForOrdering; Branch["get"].ClosingTimeForOrdering = ClosingTimeForOrdering; Branch["get"].BranchIsClosed = OrderingSiteStatus == 0 ? true : false; Branch["get"].KosherType = KosherType; Branch["get"].save(); resolve(Branch["get"]); }); return promise; }, removeBranch: function () { var removePromise = new Promise(function (resolve, reject) { Branch["get"] = {}; localforage.setItem(lsBranchKeyName, {}); resolve(); }); return removePromise; }, getBranch: function () { var promise = new Promise(function (resolve, reject) { localforage.getItem(lsBranchKeyName, function (err, value) { var storedBranch = value; if (value && Object.keys(value).length) { var LocationId = parseInt(storedBranch.LocationId); if (Order.type.isDelivery()) { vcapi.checkDeliveryAddress({ ZoneId: Order.get.DeliveryZoneId },function (location) { Branch.createBranch( location.LocationID, location.title, location.VCDeliveries_PlaceID, location.LocationToken, location.LocationPOS, location.Address, location.OpenHours, location.Phone, location.EstimatedTime, location.OpenTimeForOrdering, location.ClosingTimeForOrdering, location.OrderingSiteStatus, location.KosherType ).then(function (branch) { resolve(branch); }); }, function (x, e) { if (x == 404) { reject(); } else { resolve(storedBranch); } }); } else { vcapi.getLocations(function (locations) { var location = locations.filter(function (loc) { return parseInt(loc.LocationID) === parseInt(LocationId); })[0] if (location) { Branch.createBranch( location.LocationID, location.title, location.VCTakeOrders_PlaceID, location.LocationToken, location.LocationPOS, location.Address, location.OpenHours, location.Phone, location.EstimatedTime, location.OpenTimeForOrdering, location.ClosingTimeForOrdering, location.OrderingSiteStatus, location.KosherType ).then(function (branch) { resolve(branch); }); } else { resolve(storedBranch); } }, function () { resolve(storedBranch); }); } } else { resolve(value); } }); }); return promise; } }; window.Branch = Branch; Branch.getBranch().then(function (branch) { if (!branch) { localforage.setItem(lsBranchKeyName, {}); } }, function () { localforage.setItem(lsBranchKeyName, {}); });