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('' + locData[i].title + ' ');
}
}
}
} 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($('', {
value: 0,
text: ""
}));
}
$.each(tim, function (index, time) {
$select.append($(' ', {
value: time.Id,
text: time.SlotValue
}));
});
} else {
window.selectTimesavedSlots = null;
$select.append($(' ', {
value: 0,
text: "אין אספקה בתאריך זה"
}));
}
//$$(".order-time-preloader").hide();
//$$(".order-time-wrapper").show();
}, function () {
});
});
});
$$(document).on('change', "#selectTimeHoursSlot", function () {
var savedSlots = window.selectTimesavedSlots;
var value = parseInt($("#selectTimeHoursSlot").val());
window.selectedSlot = {};
window.selectedSlot.time = savedSlots.filter(function (r) { return parseInt(r.Id) === value })[0];
window.selectedSlot.date = Order.get.DeliveryDate;
console.log(value);
if (value > 0) {
Dom7(".btn-select-delivery-time").prop("disabled", false);
} else {
Dom7(".btn-select-delivery-time").prop("disabled", true);
}
});
$$(document).on('click', ".btn-select-delivery-time", function () {
if (window.selectedSlot && parseInt(window.selectedSlot.time.Id) > 0) {
if (parseInt(window.selectDeliveryTimeorderType) === 2) {
selectPickupLocation(window.selectDeliveryTimelocationId, window.selectDeliveryTimeorderType);
} else {
createDeliveryOrder(window.selectDeliveryLocationData);
}
}
});
}
var goSecSlide = function () {
addHase('signIn');
applyAdEvent(8);
if (valueCard.data.appConfig.AllowLoyaltyClub || valueCard.data.appConfig.ShowVoucherLogin) {
introSlider.slideTo(introSlider.slides.indexOf($$("#LoginPopup-slide")[0]));
if (valueCard.data.appConfig.MembersSiteOnly && IsMobile) {
$$(".welcome-banner .logo-wrapper img").attr("src", valueCard.data.appConfig.LogoImageUrl);
$$(".welcome-banner").css({
height: (window.innerHeight - $$(".delivery-type-window .dialog-inner").height() - 100) + "px"
});
$$(".delivery-type-window .dialog-inner").css({
height: $$(".delivery-type-window .dialog-inner").height() + 90 + "px"
});
}
} else {
mainView.router.navigate('/Store/', {
reloadCurrent: true,
ignoreCache: true
});
}
}
var memberLoginPanel = function (celphone) {
addHase('logIn');
//loadTemplateClass([], ".start-slides-wrapper", "MemberLoginPopup-tem");
introSlider.slideTo(introSlider.slides.indexOf($$("#MemberLoginPopup-slide")[0]))
document.getElementById('LoginCelPhone').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] : '');
});
if (celphone) {
$$(".login-celphone-number").val(celphone);
$$(".input-wrapper.cellphone-wrapper").hide();
$$(".btn-create-auth-code").hide();
}
$$(".btn-login-member").on('click', function () {
var formData = valueCard.form.convertToData('#LoginForm');
formData.CelPhone = formData.Phone_mask.replace(/\D/g, '');
if (formData.CelPhone.length < - 10 || formData.AuthCode.length == 0) {
Dom7("#CelPhone")[0].checkValidity();
Dom7("#AuthCode")[0].checkValidity();
loadingButton.hidePreloader();
return false;
}
vcapi.login(formData, function (data) {
Dom7("#CelPhone").val('');
Dom7("#AuthCode").val('');
data.isRegistered = true;
data.is_member = true;
User.saveUser(data);
vcapi.getMemberDetails({
UserSecretKey: User.getSecretKey(),
LocationID: Branch.get.LocationId || 0
},
function (data) {
fbq('track', 'MemberLogin', {
content_name: 'CardNumber: ' + valueCard.data.appConfig.MemberCard.CardNumber
});
if (window.dataLayer) {
dataLayer.push({
'event': 'MemberLogin',
'CardNumber': valueCard.data.appConfig.MemberCard.CardNumber
});
}
if (typeof gtag != "undefined") {
gtag('event', 'login', {
method: 'Valuecard', // or 'Email', 'Facebook', etc., depending on the login method used
user_id: valueCard.data.appConfig.MemberCard.CardNumber
});
}
$$(".user-welcome").removeClass("not-connected");
valueCard.data.appConfig.MemberCard = data;
mainView.router.navigate('/Store/', {
reloadCurrent: true,
force: true
});
});
}, function (xhr, msg) {
valueCard.notification.create({
text: msg,
closeTimeout: 7000,
closeButton: true
}).open();
});
});
$$(".btn-create-auth-code").on('click', function () {
var number = $$("#LoginCelPhone").val().replace(/\D/g, '');
vcapi.sendAuthCode({
CellPhone: number
}, function () {
valueCard.notification.create({
text: 'קוד הכניסה נשלח למספר שאותו הזנת',
closeTimeout: 7000,
closeButton: true
}).open();
}
, function (xhr, msg) {
valueCard.notification.create({
text: msg,
closeTimeout: 7000,
closeButton: true
}).open();
});
});
}
$$(document).on('click', ".btn-no-but-intrested", function () {
registerUser.open();
});
$$(document).on('click', ".btn-member-login", function () {
loginDialog.open();
});
$$(document).on('click', ".btn-voucher-login", function () {
voucherDialog.open();
});
$$(document).on('click', ".btn-login-back", function () {
var sliedId = $$(this).attr("data-to-slide");
introSlider.slideTo(introSlider.slides.indexOf($$(sliedId)[0]))
});
$$(document).on('click', ".btn-slide-tostart", function () {
introSlider.slideTo(0);
});
$$(document).on('click', ".btn-not-intrested", function () {
User.createGuest();
if (valueCard.data.appConfig.MembersSiteOnly) {
mainView.router.navigate('/Members/Main/', {
reloadCurrent: true,
force: true
});
}
if (Branch.get.PlaceId) {
mainView.router.navigate('/Store/', {
reloadCurrent: true,
force: true
});
}
});
$$(document).on('click', ".btn-back-to-address", function () {
$$(".select-address-form").show();
$$("#multiply-delivery-locations").hide();
});
var parseAddress = function (comp) {
var addressInfo = Order.get.DeliveryAddress;
for (var i = 0; i < comp.length; i++) {
var addressType = comp[i].types[0];
if (componentForm[addressType]) {
addressInfo[componentForm[addressType]] = comp[i].long_name;
}
}
Order.post.deliveryAddress(addressInfo);
}
var createDeliveryOrder = function (deliveryData) {
if (window.dataLayer) {
dataLayer.push({ ecommerce: null });
}
if (deliveryData.length && deliveryData.length > 1) {
valueCard.data.deliveryOptions = deliveryData;
var html = '';
$$(".select-address-form").hide();
$$("#multiply-delivery-locations").html(html).show();
setTimeout(function () {
$$(".btn-back-to-address").attr("tabindex", 0).focus();
}, 500);
} else {
if (deliveryData.length && deliveryData.length == 1) deliveryData = deliveryData[0];
if (valueCard.data.appConfig.DisableFutureOrdering) {
if (deliveryData.OpenTimeForOrdering > getCurrentTimeSecounds()) {
valueCard.dialog.alert('אנחנו סגורים כעת להזמנות. נפתח בעוד ' + getTimeLeftString(deliveryData.OpenTimeForOrdering));
} else if (deliveryData.ClosingTimeForOrdering < getCurrentTimeSecounds()) {
valueCard.dialog.alert('אנחנו סגורים כעת להזמנות');
}
}
if (deliveryData.OrderingSiteStatus === 0) {
valueCard.dialog.alert('אנחנו סגורים היום להזמנות');
}
var address = Order.get.DeliveryAddress;
Order.createNewOrder(User.generateSecretKey());
Order.post.type(1);
Order.post.minimumOrder(parseFloat(deliveryData.MinimumOrder).toFixed(2));
Order.post.DeliveryItemNum(deliveryData.DeliveryItemNum);
Order.post.DeliveryZoneId(deliveryData.DeliveryZoneId);
Order.post.IsExternalZone(deliveryData.IsExternalZone ? true : false);
Order.post.deliveryPrice(deliveryData.Price);
Order.post.DeliveryOrginalPrice(deliveryData.Price);
Order.post.deliveryAddress(address);
if (deliveryData.MinimumOrderForFreeDelivery.length) {
Order.post.MinimumOrderForFreeDelivery(deliveryData.MinimumOrderForFreeDelivery);
}
if (GAid.length && typeof (ga) != "undefined") {
ga('create', GAid, 'auto');
ga('send', 'pageview');
ga('require', 'ecommerce');
}
if (FBid.length) {
fbq('trackCustom', 'SelectBranch', {
type: 'Delivery',
branch_name: deliveryData.title,
branch_id: deliveryData.LocationID
});
}
if (typeof gtag != "undefined") {
gtag('event', 'SelectBranch', {
type: 'Delivery',
branch_name: deliveryData.title,
branch_id: deliveryData.LocationID
});
}
if (window.dataLayer) {
dataLayer.push({
'event': 'SelectBranch',
'type': 'Delivery',
'branch_name': deliveryData.title
});
}
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
if (window.selectedSlot) {
Order.post.OrderSlotData(window.selectedSlot);
} else {
// goSecSlide();
}
}
Branch.createBranch(
deliveryData.LocationID,
deliveryData.title,
deliveryData.VCDeliveries_PlaceID,
deliveryData.LocationToken,
deliveryData.LocationPOS,
deliveryData.Address,
deliveryData.OpenHours,
deliveryData.Phone,
deliveryData.EstimatedTime,
deliveryData.OpenTimeForOrdering,
deliveryData.ClosingTimeForOrdering,
deliveryData.OrderingSiteStatus,
deliveryData.KosherType
).then(function () {
if (User.isRegistered()) {
if (mainView.router.currentRoute.name == "DeliveryMain") {
mainView.router.refreshPage();
} else {
mainView.router.navigate('/Store/', {
reloadCurrent: true,
force: true
});
}
} else {
if (User.isRegistered()) {
mainView.router.navigate('/Store/', {
reloadCurrent: true,
force: true
});
} else {
goSecSlide();
}
}
});
}
}
$$(document).on('click', '#selectExtZone', function () {
if (valueCard.data.appConfig.externalZones.length && (parseInt(Dom7(".external-zones-wrapper select#selectExternalZone").val()) >= 1)) {
vcapi.checkDeliveryAddress({
ZoneId: Dom7(".external-zones-wrapper select#selectExternalZone").val()
}, function (deliveryData) {
var sel = document.getElementById("selectExternalZone");
var text = sel.options[sel.selectedIndex].text;
addressInfo = {
AddressStreet: $$("#streetAddress").val(),
AddressHouseNumber: "",
LatLng: "",
AddressCity: text
};
Order.post.deliveryAddress(addressInfo);
deliveryData.IsExternalZone = true;
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(deliveryData.LocationID, 1, deliveryData);
} else {
createDeliveryOrder(deliveryData);
}
//createDeliveryOrder(deliveryData);
}, function () {
});
return;
}
});
$$(document).on('click', '#selectPlace', function () {
if ($$("#streetAddress").val().length < 3) {
return;
}
if (valueCard.data.appConfig.externalZones.length && (parseInt(Dom7(".external-zones-wrapper select#selectExternalZone").val()) >= 1)) {
vcapi.checkDeliveryAddress({
ZoneId: Dom7(".external-zones-wrapper select#selectExternalZone").val()
}, function (deliveryData) {
var sel = document.getElementById("selectExternalZone");
var text = sel.options[sel.selectedIndex].text;
addressInfo = {
AddressStreet: $$("#streetAddress").val(),
AddressHouseNumber: "",
LatLng: "",
AddressCity: text
};
Order.post.deliveryAddress(addressInfo);
//createDeliveryOrder(deliveryData);
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(deliveryData[0].LocationID, 1, deliveryData);
} else {
createDeliveryOrder(deliveryData);
}
}, function () {
});
return;
}
var strAddress;
var addressInfo;
if (Order.get.DeliveryAddress) {
//save data for last try...
Order.DeliveryLastTry = JSON.parse(JSON.stringify(Order.get.DeliveryAddress));
Order.DeliveryLastTryAddressHouseNumber = Dom7("#HouseNumber").val();
addressInfo = Order.get.DeliveryAddress;
if (Dom7("#HouseNumber").length && Dom7("#HouseNumber").val().length > 0)
{
if (addressInfo.AddressHouseNumber != Dom7("#HouseNumber").val()) {
addressInfo.AddressHouseNumber = Dom7("#HouseNumber").val();
addressInfo.LatLng = '';
}
}
Order.post.deliveryAddress(addressInfo);
if (addressInfo.AddressCity) {
strAddress = (addressInfo.AddressStreet ? addressInfo.AddressStreet + ' ' + addressInfo.AddressHouseNumber : '') +
' ' + addressInfo.AddressCity +
', ישראל';
} else {
strAddress = $$("#streetAddress").val() + ', ישראל';
}
} else {
addressInfo = {};
addressInfo.addressInfo = {};
addressInfo.LatLng = '';
Order.post.deliveryAddress(addressInfo);
var houseNumberStr = '';
if (Dom7("#HouseNumber").length) { houseNumberStr = Dom7("#HouseNumber").val(); }
strAddress = $$("#streetAddress").val() + ' ' + houseNumberStr + ', ישראל';
}
if (addressInfo.LatLng.length > 5) {
vcapi.checkDeliveryAddress({
LatLng: addressInfo.LatLng,
PlaceId: ""
}, function (deliveryData) {
if (deliveryData.errorCode && deliveryData.errorCode == 404) {
$$(".delivery-not-avilable").attr("aria-label", valueCard.data.appConfig.OutOfRangeMessage).html(valueCard.data.appConfig.OutOfRangeMessage).show();
setTimeout(function (params) {
Dom7(".delivery-not-avilable").focus();
}, 100);
addressInfo = {};
addressInfo.addressInfo = {};
addressInfo.LatLng = '';
Order.post.deliveryAddress(addressInfo);
Dom7("#selectPlace").prop("disabled", true);
vcapi.addressesErrorsLog(strAddress.replace(', ישראל', ''));
} else {
addressInfo = Order.get.DeliveryAddress;
addressInfo.AddressCity = Order.DeliveryLastTry.AddressCity;
Order.post.deliveryAddress(addressInfo);
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(deliveryData[0].LocationID, 1, deliveryData);
} else {
createDeliveryOrder(deliveryData);
}
//createDeliveryOrder(deliveryData);
}
}, function () {
});
} else {
valueCard.request.get('https://maps.googleapis.com/maps/api/geocode/json?key=AIzaSyCRNt3JoOSfSEyfpmQDWMBdpJUET9pc3U0&language=he&address=' + strAddress, function (data) {
var result = JSON.parse(data).results[0];
addressInfo.LatLng = result.geometry.location.lat + "," + result.geometry.location.lng
parseAddress(result.address_components);
vcapi.checkDeliveryAddress({
LatLng: result.geometry.location.lat + "," + result.geometry.location.lng,
PlaceId: ""
}, function (deliveryData) {
if (deliveryData.errorCode && deliveryData.errorCode == 404) {
valueCard.request.get('https://maps.googleapis.com/maps/api/geocode/json?key=AIzaSyCRNt3JoOSfSEyfpmQDWMBdpJUET9pc3U0&language=he&address=' + Order.DeliveryLastTry.AddressCity, function (data) {
var CityResult = JSON.parse(data).results[0];
vcapi.checkDeliveryAddress({
LatLng: result.geometry.location.lat + "," + result.geometry.location.lng,
PlaceId: CityResult.place_id
}, function (deliveryData) {
if (deliveryData.errorCode && deliveryData.errorCode == 404) {
$$(".delivery-not-avilable").html(valueCard.data.appConfig.OutOfRangeMessage).show();
$$(".delivery-not-avilable").attr("aria-label", valueCard.data.appConfig.OutOfRangeMessage).html(valueCard.data.appConfig.OutOfRangeMessage).show();
setTimeout(function (params) {
Dom7(".delivery-not-avilable").focus();
}, 100);
addressInfo = {};
addressInfo.addressInfo = {};
addressInfo.LatLng = '';
Order.post.deliveryAddress(addressInfo);
Dom7("#selectPlace").prop("disabled", true);
vcapi.addressesErrorsLog(strAddress.replace(', ישראל', ''));
} else {
addressInfo = Order.get.DeliveryAddress;
addressInfo.AddressCity = Order.DeliveryLastTry.AddressCity;
Order.post.deliveryAddress(addressInfo);
//createDeliveryOrder(deliveryData);
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(deliveryData.LocationID, 1, deliveryData);
} else {
createDeliveryOrder(deliveryData);
}
}
}, function () {
});
});
} else {
//createDeliveryOrder(deliveryData);
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(deliveryData.LocationID, 1, deliveryData);
} else {
createDeliveryOrder(deliveryData);
}
}
}, function () {
});
});
}
});
function selectPickupBranchDropdown(locationId) {
if (window.dataLayer) {
dataLayer.push({ ecommerce: null });
}
var locationData = valueCard.data.appConfig.location.filter(function (l) { return l.LocationID == locationId })[0];
$$(".selected-branch-name").text(locationData.title);
$$(".selected-branch-address").text(locationData.Address);
$$(".hdn-location-id").val(locationId);
if (valueCard.data.appConfig.DisableFutureOrdering) {
if (locationData.OpenTimeForOrdering > getCurrentTimeSecounds()) {
$$(".selected-branch-closed").text('אנחנו סגורים כעת להזמנות. נפתח בעוד ' + getTimeLeftString(locationData.OpenTimeForOrdering)).show();
$$("#btnSelectLocation").show();
} else if (locationData.ClosingTimeForOrdering < getCurrentTimeSecounds()) {
$$(".selected-branch-closed").text('אנחנו סגורים כעת להזמנות').show();
$$("#btnSelectLocation").show();
} else {
$$("#btnSelectLocation").show();
$$(".selected-branch-closed").text("").hide();
}
} else {
$$("#btnSelectLocation").show();
}
if (locationData.OrderingSiteStatus === 0) {
$$(".selected-branch-closed").text('אנחנו סגורים היום להזמנות').show();
} else {
$$(".selected-branch-closed").text("").hide();
}
}
$$(document).on('change', '.select-branch', function () {
selectPickupBranchDropdown($$(this).val());
});
$$(document).on('change', '.external-zones-wrapper select#selectExternalZone', function () {
if ($$(this).val() != "0") {
Dom7("#selectPlace, #selectExtZone").prop("disabled", false);
} else {
Dom7("#selectPlace, #selectExtZone").prop("disabled", true);
}
});
function selectPickupLocation(locationId, orderType) {
if (GAid.length && typeof (ga) != "undefined") {
ga('create', GAid, 'auto');
ga('send', 'pageview');
ga('require', 'ecommerce');
}
var locationData = valueCard.data.appConfig.location.filter(function (l) { return l.LocationID == locationId })[0];
Order.createNewOrder(User.generateSecretKey());
Order.post.type(orderType);
Order.post.minimumOrder(parseFloat(locationData.MinimumOrder).toFixed(2));
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
if (window.selectedSlot) {
Order.post.OrderSlotData(window.selectedSlot);
} else {
goSecSlide();
}
}
if (FBid.length) {
fbq('trackCustom', 'SelectBranch', {
type: 'PickUp',
branch_name: locationData.title,
branch_id: locationId
});
}
if (window.dataLayer) {
dataLayer.push({
'event': 'SelectBranch',
'type': 'PickUp',
'branch_name': locationData.title
});
}
Branch.createBranch(
locationId,
locationData.title,
parseInt(locationData.VCTakeOrders_PlaceID),
locationData.LocationToken,
locationData.LocationPOS,
locationData.Address,
locationData.OpenHours,
locationData.Phone,
locationData.EstimatedTime,
locationData.OpenTimeForOrdering,
locationData.ClosingTimeForOrdering,
locationData.OrderingSiteStatus,
locationData.KosherType
).then(function () {
if (User.isRegistered() || orderType == 5) {
if (orderType == 5) {
User.createGuest();
}
mainView.router.navigate('/Store/', {
reloadCurrent: true,
force: true
});
} else {
goSecSlide();
}
});
}
$$(document).on('click', '#btnSelectLocation', function () {
event.preventDefault();
event.stopImmediatePropagation();
var locationId = $$(".hdn-location-id").val();
var orderType = $$(".hdn-order-type").val();
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(locationId, orderType);
} else {
selectPickupLocation(locationId, orderType);
}
});
$$(document).on('click', '.btn-select-branch-delivery', function () {
var locationId = $$(this).attr("data-loc-id");
var locationData = valueCard.data.deliveryOptions.filter(function (l) { return l.LocationID == locationId })[0];
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(locationId, 1, locationData);
} else {
createDeliveryOrder(locationData);
}
});
$$(document).on('click', '.btn-select-branch-pickup', function () {
var locationId = $$(this).attr("data-loc-id");
var orderType = $$(".hdn-order-type").val();
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
goSelectDeliveryTime(locationId, orderType);
} else {
selectPickupLocation(locationId, orderType);
}
valueCard.popup.close();
});
var config = valueCard.data.appConfig;
config.btnWrapperClass = '';
if (config.DeliveryLocationsAmount == 0 && valueCard.data.appConfig.PickupLocationsAmount == 0 && config.DisplayExternalZonesBtn && !config.DisplaySeatingOrderBtn) {
config.btnWrapperClass = 'wide';
}
if (config.DeliveryLocationsAmount == 0 && valueCard.data.appConfig.PickupLocationsAmount == 0 && !config.DisplayExternalZonesBtn && config.DisplaySeatingOrderBtn) {
config.btnWrapperClass = 'wide';
}
if (config.DeliveryLocationsAmount >= 1 && valueCard.data.appConfig.PickupLocationsAmount == 0 && !config.DisplayExternalZonesBtn && !config.DisplaySeatingOrderBtn) {
config.btnWrapperClass = 'wide';
}
if (config.DeliveryLocationsAmount == 0 && valueCard.data.appConfig.PickupLocationsAmount >= 1 && !config.DisplayExternalZonesBtn && !config.DisplaySeatingOrderBtn) {
config.btnWrapperClass = 'wide';
}
loadTemplateClass(config, ".delivery-type-window", "deliveryTypeWindow-tem");
window.introSlider = new Swiper('.start-intro-slide', {
speed: 1,
observer: true,
allowTouchMove: false,
keyboard: false,
on: {
observerUpdate: function () {
},
slideNextTransitionEnd: function (a, b) {
},
}
});
var Thtml = getTemplateHtml(valueCard.data.appConfig, "LoginPopup-tem");
introSlider.appendSlide(Thtml);
if (valueCard.data.appConfig.DeliveryTimeUpFront) {
var timepicker = getTemplateHtml(valueCard.data.appConfig, "SelectDeliveryTime-tem");
introSlider.appendSlide(timepicker);
}
//setTimeout(function () {
// $$(".login-popup-inner h1").attr("tabindex", -1).focus();
//}, 250);
$$(".page.DeliveryMain").removeClass("PaymentPage");
$$(".delivery-main-wrapper").addClass("delivery-type-page");
$$("#streetAddress").val('');
$$("#HouseNumber").val('').hide();
function initAutocomplete() {
autocomplete = new google.maps.places.Autocomplete(
document.getElementById('streetAddress'),
{
componentRestrictions: {
country: "il"
},
fields: ["address_components", "geometry", "place_id"]
, types: ['geocode']
}
);
//autocomplete.setComponentRestrictions({ 'country': ['il'] });
//autocomplete.setFields(['address_component', 'geometry', 'place_id']);
autocomplete.addListener('place_changed', function () {
var place = autocomplete.getPlace();
var deliveryAddress = {};
deliveryAddress.addressInfo = {};
console.log('place', place);
console.log('place.geometry', place.geometry);
console.log('streetAddress', Dom7("#streetAddress").val());
$(".address-error").hide();
$("#chkNoHouseNumber").prop("checked", false);
if (!place.geometry) {
if (valueCard.data.appConfig.externalZones.length) {
//var externalZones = valueCard.data.appConfig.externalZones;
//$$(".external-zones-wrapper span").html('חובה לבחור כתובת מתוך הרשימה או לבחור מאחד האזורים הבאים:');
//$$(".external-zones-wrapper select#selectExternalZone").append(' בחירת אזור ');
//for (var i = 0; i < externalZones.length; i++) {
// $$(".external-zones-wrapper select#selectExternalZone").append('' + externalZones[i].Title + ' ');
//}
//$$(".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('' + externalZones[i].Title + ' ');
}
$$(".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('' + externalZones[i].Title + ' ');
}
}
$$(".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 = '';
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.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 = '';
$$(".cart-item.discount-row").html(html);
resolve();
} else if (data.IsError) {
var html = '';
$$(".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 = '';
$$(".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: '' +
'',
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) +' ' +
'
' +
'' + getTranslate(72) +' ' +
'' + getTranslate(71) +' ' +
'
',
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) + ' ' +
'
' +
' הקלידו מספר שובר / קופון ' +
' ' +
'' + getTranslate(15) +' ' +
'
',
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 ? '
' : '') +
'
',
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) +' ' +
'
',
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, {});
});