', {
class: 'text line1',
// html: '* use ALT key with wheel for zome'
})
}).append($('
', {
class: 'text line2',
// html: '* can move the canvas with left click'
})))
}).appendTo(".tui-image-editor-canvas-container:first-child");
}
function plusFromTooltip(i) { /*test*/
var qtytooltipinput = i.parentElement.querySelector('input');
var obj = getObjectById(qtytooltipinput.dataset.id);
if (obj.qty > 0 && qtytooltipinput.valueAsNumber < parseInt(qtytooltipinput.max, 10)) {
if (/*isMobile &&*/ window.outerWidth < 768) {
if (availableTickets() - qtytooltipinput.valueAsNumber > 0 || parseInt(document.querySelector('.tui-image-editor-canvas-container .tooltip .tooltiptext.remaining .tooltipnum').innerText, 10) > 0) {
// i.parentElement.parentElement.querySelector('.mobile-tooltip-add-btn button').classList.remove('not-available');
qtytooltipinput.valueAsNumber++;
updateLeftTicketOnTooltip("minus");
}
}
else {
addSelectedToList(obj);
var userobj = userSelectedObjects.findIndex(object => object.id == obj.id);
qtytooltipinput.value = (userobj >= 0) ? userSelectedObjects[userobj].qty : qtytooltipinput.value++;
}
}
checkObjectSelectedLength();
}
function minusFromTooltip(i) {
var qtytooltipinput = i.parentElement.querySelector('input');
var obj = getObjectById(i.parentElement.querySelector('input').dataset.id);
var userobj = userSelectedObjects.findIndex(object => object.id == obj.id);
if (/*isMobile &&*/ window.outerWidth < 768) {
if (qtytooltipinput.valueAsNumber > 0) {
qtytooltipinput.valueAsNumber--;
updateLeftTicketOnTooltip("plus");
// if (qtytooltipinput.valueAsNumber == 0) {
// i.parentElement.parentElement.querySelector('.mobile-tooltip-add-btn button').classList.add('not-available');
// }
// else{
// i.parentElement.parentElement.querySelector('.mobile-tooltip-add-btn button').classList.remove('not-available');
// }
}
// if (qtytooltipinput.valueAsNumber == 0) {
// hideTooltip();
// }
} else {
if (userobj >= 0) {
qtytooltipinput.value = userSelectedObjects[userobj].qty - 1;
removeSelectedFromList(obj);
}
}
checkObjectSelectedLength();
}
function objClicked(e) {
var obj = e.target;
if (obj && obj.type && e.e) {
// if (obj.type != "group" && obj.qty && obj.qty > 0) {
// if (obj.qty > 1) {
// addInputToTooltip(obj);
// }
// // addSelectedToList(obj);
// }
if (obj.type != "group" && obj.qty >= 0 && obj.qtyDefault && obj.qtyDefault > 0) {
if (obj.qtyDefault > 1) {
addInputToTooltip(obj);
}
else { // obj.qtyDefault == 1
(obj.qty > 0) ? addSelectedToList(obj) : removeSelectedFromList(obj);
}
// if (obj.qty > 1) {
// addInputToTooltip(obj);
// }
// addSelectedToList(obj);
}
if (obj.type === "group") {
if (e.subTargets && e.subTargets[0]) {
var subObj = e.subTargets[0];
if (subObj.type == "Tag") {
if (subObj.qtyDefault && subObj.qtyDefault == 1) {
if (subObj.qty && subObj.qty > 0) {
addSelectedToList(subObj);
} else {
removeSelectedFromList(subObj);
}
} else {
if (subObj.qty && subObj.qty > 0) {
if (subObj.qty > 1) {
addInputToTooltip(subObj);
}
// addSelectedToList(subObj);
}
}
}
}
}
checkObjectSelectedLength();
canvas.discardActiveObject();
}
}
function addSelectedToList(obj) {
if (availableTickets() <= 0) {
cs.toast("מקסימום 10 כרטיסים להזמנה");
return false;
}
//userSelectedObjects.push(obj.id);
//(userSelectedObjects.findIndex(object => object.id == obj.id) >= 0) ? userSelectedObjects[userSelectedObjects.findIndex(object => object.id == obj.id)].qty++ : userSelectedObjects.push({ id: obj.id, qty: 1 }) ;
var ul = document.querySelector('.cart-preview .cart-not-empty .ul-list ul');
var objectIndex = userSelectedObjects.findIndex(object => object.id == obj.id);
var available_Tickets = (availableTickets() <= obj.qty) ? availableTickets() : obj.qty;
if (objectIndex >= 0) {
userSelectedObjects[objectIndex].qty++;
ul.querySelector('li[data-id="' + obj.id + '"]').querySelector('input[data-id="' + obj.id + '"]').valueAsNumber++;
} else {
userSelectedObjects.push({ id: obj.id, qty: 1, sku: obj.sku, price: obj.price });
var li = document.createElement("li");
var textspan = document.createElement("span");
var firstdiv = document.createElement("div");
var nameToDisplay = "ticket";
if (obj.fullname && obj.fullname.toString().length > 0) {
nameToDisplay = obj.fullname
} else if (obj.name && obj.name.toString().length > 0) {
nameToDisplay = obj.name;
}
// if (obj.type == "Tag") {
// nameToDisplay += " - " + obj._objects[1].text;
// }
firstdiv.className = "selected-name";
textspan.innerHTML = nameToDisplay;
var i = document.createElement("i");
i.className = "fas fa-times";
i.onclick = function () {
removeSelectedFromList(getObjectById(this.closest("li").dataset.id));
};
firstdiv.appendChild(textspan);
firstdiv.appendChild(i);
li.appendChild(firstdiv);
if (obj.qty > 1) {
var seconddiv = document.createElement("div");
seconddiv.className = "selected-qty";
var iminus = document.createElement("i");
iminus.className = "fas fa-minus-circle";
iminus.onclick = function () {
var iinput = this.parentElement.querySelector('input');
if (iinput.valueAsNumber > parseInt(iinput.min, 10)) {
removeSelectedFromList(getObjectById(this.closest("li").dataset.id));
}
};
seconddiv.appendChild(iminus);
var inputTag = document.createElement("input");
var inputTagId = obj.id + '-qty-input';
inputTag.setAttribute('id', inputTagId);
inputTag.setAttribute('type', "number");
inputTag.setAttribute('class', "form-control");
inputTag.setAttribute('name', inputTagId);
inputTag.setAttribute('data-id', obj.id);
inputTag.setAttribute('placeholder', "qty");
inputTag.setAttribute('min', 0);
inputTag.setAttribute('max', obj.qty);
inputTag.setAttribute('value', 1);
inputTag.setAttribute('data-lastvalue', 1);
inputTag.setAttribute('onkeydown', "return false");
//inputTag.setAttribute('onchange', "updateOrderQty(this)");
seconddiv.appendChild(inputTag);
var iplus = document.createElement("i");
iplus.className = "fas fa-plus-circle";
iplus.onclick = function () {
var iinput = this.parentElement.querySelector('input');
if (iinput.valueAsNumber < parseInt(iinput.max, 10)) {
addSelectedToList(getObjectById(this.closest("li").dataset.id));
}
};
seconddiv.appendChild(iplus);
li.appendChild(seconddiv);
}
li.setAttribute('data-id', obj.id);
ul.appendChild(li);
}
obj.qty--;
if (obj.sku) {
var tiketLI = $('.cc-price-table-as-grid .attr-grid-row.row[data-sku="' + obj.sku + '"]');
//$('.cc-price-table-as-grid .attr-grid-row.row[data-sku="'+ obj.sku +'"] .attr-grid-cell-qty').removeClass('hidden');
$(tiketLI).find('.attr-grid-cell-qty').removeClass('hidden');
if (!($(event.target).closest('.cc-price-table-as-grid').length > 0)) {
//$('.cc-price-table-as-grid .attr-grid-row.row[data-sku="'+ obj.sku +'"] .prod-btn-inline.prod-plus-qty').click();
$(tiketLI).find('.prod-btn-inline.prod-plus-qty').click();
//scrollToLi($('.cc-price-table-as-grid .attr-grid-row.row[data-sku="'+ obj.sku +'"]'));
scrollToLi($(tiketLI));
}
}
doAfterClick(obj, arguments.callee.name);
}
function removeSelectedFromList(obj) {
var ul = document.querySelector('.cart-not-empty .ul-list ul');
var objectIndex = userSelectedObjects.findIndex(object => object.id == obj.id);
if (!(objectIndex >= 0)) {
return false;
}
if (userSelectedObjects[objectIndex].qty > 1) {
userSelectedObjects[objectIndex].qty--;
ul.querySelector('li[data-id="' + obj.id + '"]').querySelector('input[data-id="' + obj.id + '"]').valueAsNumber--;
} else {
userSelectedObjects.splice(objectIndex, 1);
ul.removeChild(ul.querySelector('li[data-id="' + obj.id + '"]'));
checkObjectSelectedLength();
}
obj.qty++;
var tiketLI = $('.cc-price-table-as-grid .attr-grid-row.row[data-sku="' + obj.sku + '"]');
if (obj.sku && !($(event.target).closest('.cc-price-table-as-grid').length > 0)) {
$(tiketLI).find('.prod-btn-inline.prod-minus-qty').click();
}
doAfterClick(obj, arguments.callee.name);
}
function doAfterClick(obj, triggername) {
if (obj.type === "Tag") {
updateTagBackgroundColor(obj);
}
if (obj.type === "rect" || obj.type === "circle" || obj.type === "triangle" || obj.type === "icon") {
updateTypeBackgroundColor(obj);
}
updateQtyTooltip(obj);
checkObjectSelectedLength();
updatePreviewSum();
collectStats(triggername, obj.name, obj.qty, obj.qtyDefault, obj.sku, canvas.getZoom(), (canvas.getZoom() * 100) + "%", canvas.viewportTransform, canvas.transform, navigator.userAgent, new Date().getDate() + "/" + (new Date().getMonth() + 1) + "/" + new Date().getFullYear(), new Date().getHours() + ":" + new Date().getMinutes());
updateMobileTicketsCounter();
selectedPromotion(obj);
}
function checkObjectSelectedLength() {
var tabswrapper = document.querySelector('.details-rub.choose-items-container .tabs-wrapper');
var cartpreview = document.querySelector('.cart-preview ');
if (window.outerWidth >= 768) {
if (tabswrapper) {
tabswrapper.querySelector('.tab.active').classList.remove("active");
}
}
if (userSelectedObjects.length > 0) {
if (cartpreview) {
cartpreview.querySelector('.cart-empty').classList.add("hidden");
cartpreview.querySelector('.cart-not-empty').classList.remove("hidden");
}
if (window.outerWidth >= 768) {
if (tabswrapper) {
tabswrapper.querySelector('.tab.tab-cart').classList.add("active");
}
}
} else {
if (cartpreview) {
cartpreview.querySelector('.cart-not-empty').classList.add("hidden");
cartpreview.querySelector('.cart-empty').classList.remove("hidden");
}
if (window.outerWidth >= 768) {
if (tabswrapper) {
tabswrapper.querySelector('.tab.tab-tickets').classList.add("active");
}
}
}
}
function updateTagBackgroundColor(obj) {
var objectIndex = userSelectedObjects.findIndex(object => object.id == obj.id);
if (objectIndex >= 0) {
obj._objects[0].setFill(obj.colorSelected);
//obj._objects[0].setStroke(obj.colorSelectedInvertText);
obj._objects[1].setFill(obj.colorSelectedInvertText);
} else {
obj._objects[0].setFill(obj.colorAvailable);
//obj._objects[0].setStroke(obj.colorAvailableInvertText);
obj._objects[1].setFill(obj.colorAvailableInvertText);
}
canvas.renderAll();
}
function updateTypeBackgroundColor(obj) {
var objectIndex = userSelectedObjects.findIndex(object => object.id == obj.id);
if (objectIndex >= 0) {
obj.setFill(obj.colorSelected);
//obj._objects[0].setStroke(obj.colorSelectedInvertText);
} else {
obj.setFill(obj.colorAvailable);
//obj._objects[0].setStroke(obj.colorAvailableInvertText);
}
canvas.renderAll();
}
function updateQtyTooltip(obj) {
if (canvas && canvas.wrapperEl) {
if (canvas.wrapperEl.querySelector('.tooltip') && canvas.wrapperEl.querySelector('.tooltip').querySelector('.tooltipnum')) {
// canvas.wrapperEl.querySelector('.tooltip').querySelector('.tooltipnum').innerHTML = obj.qty + " / " + obj.qtyDefault;
var available_Tickets = (availableTickets() <= obj.qty) ? availableTickets() : obj.qty;
canvas.wrapperEl.querySelector('.tooltip').querySelector('.tooltipnum').innerHTML = available_Tickets;
}
}
}
function updatePreviewSum() {
if (canvas && canvas.wrapperEl) {
var sum = 0;
for (var i = 0; i < userSelectedObjects.length; i++) {
sum += (userSelectedObjects[i].price * userSelectedObjects[i].qty);
}
if (document.querySelector('.cart-preview') && document.querySelector('.cart-preview').querySelector('.sumdisplay')) {
document.querySelector('.cart-preview').querySelector('.sumdisplay').innerHTML = sum;
}
}
}
function mobileBtnCheckAvailability() {
var mobile_btn = document.querySelector('.tooltip .mobile-tooltip-add-btn button');
var obj_sku = mobile_btn.dataset.sku;
var mobile_input_val = document.querySelector('.tooltip .tooltipqty input').valueAsNumber;
var obj_i = userSelectedObjects.findIndex(object => object.sku == obj_sku);
var userSelectedObjectQty = (obj_i >= 0) ? userSelectedObjects[obj_i].qty : 0;
(mobile_input_val == userSelectedObjectQty) ? $(mobile_btn).addClass('not-available') : $(mobile_btn).removeClass('not-available');
}
function updateLeftTicketOnTooltip(oper) {
var lefttooltipnum = $('.tui-image-editor-canvas-container .tooltip .tooltiptext.remaining .tooltipnum');
switch (oper) {
case "plus":
lefttooltipnum.text(parseInt(lefttooltipnum.text()) + 1);
break;
case "minus":
lefttooltipnum.text(parseInt(lefttooltipnum.text()) - 1);
break;
}
mobileBtnCheckAvailability();
}
function manageTooltip(opt) {
var tooltip = document.querySelector('.tooltip');
if (tooltip && tooltip.style) {
if (opt.target && opt.target.type != "i-text") {
if (opt.target.type != "group" && (opt.target.qty > 0 || opt.target.qtyDefault > 0)) {
showTooltip(opt.e, opt.target, tooltip);
}
else if (opt.subTargets.length > 0 && opt.subTargets[0].type && opt.subTargets[0].type === "Tag" && (opt.subTargets[0].qty > 0 || opt.subTargets[0].qtyDefault > 0)) {
showTooltip(opt.e, opt.subTargets[0], tooltip);
}
else {
hideTooltip();
}
}
else {
hideTooltip();
}
}
}
function showTooltip(e, obj, tooltip) {
if (obj.qtyDefault == obj.qty && obj.qty == 1) {
tooltip.querySelector('.remaining').style.height = "0px";
tooltip.querySelector('.remaining').style.overflow = "hidden"
} else {
tooltip.querySelector('.remaining').style.height = "auto";
tooltip.querySelector('.remaining').style.overflow = "visible"
}
var available_Tickets = (availableTickets() <= obj.qty) ? availableTickets() : obj.qty;
tooltip.querySelector('.tooltipnum').innerHTML = available_Tickets;
tooltip.querySelector('.tooltipname').innerHTML = (obj.fullname && obj.fullname.toString().length > 0) ? obj.fullname : obj.name;
tooltip.querySelector('.tooltipprice').innerHTML = obj.price;
tooltip.querySelector('.mobile-tooltip-add-btn>button').dataset["sku"] = obj.sku;
var tooltipwidth = tooltip.offsetWidth;
if (window.outerWidth < 780) {
tooltip.style.left = "auto";
tooltip.style.right = "auto";
tooltipwidth = tooltip.offsetWidth;
if (obj.qtyDefault > 1) {
tooltipwidth = (tooltip.offsetWidth > 200) ? tooltip.offsetWidth : 200;
}
}
var objTOP = null;
var objLEFT = null;
var tooltipBottomY = tooltip.offsetHeight;
var tooltipBottomX = tooltipwidth / 2;
var canvasHeightDiff = (canvas.wrapperEl.offsetHeight / canvas.height);
var canvasWidthDiff = (canvas.wrapperEl.offsetWidth / canvas.width);
var scaleY = (canvas.lowerCanvasEl.getBoundingClientRect().height / canvas.wrapperEl.offsetHeight);
var scaleX = (canvas.lowerCanvasEl.getBoundingClientRect().width / canvas.wrapperEl.offsetWidth);
var canvasMoveY = canvas.lowerCanvasEl.getBoundingClientRect().y - canvas.wrapperEl.getBoundingClientRect().y;
var canvasMoveX = canvas.lowerCanvasEl.getBoundingClientRect().x - canvas.wrapperEl.getBoundingClientRect().x;
var MultiplyingAllVariablesTOP = canvasHeightDiff * scaleY;
var MultiplyingAllVariablesLEFT = canvasWidthDiff * scaleX;
var arrowMove = null;
if (window.outerWidth < 768) {
// mobile
tooltip.querySelector('.tooltiparrow').style.left = "50%";
tooltip.querySelector('.tooltiparrow').style.right = "auto";
var leftCalculation = null;
var objCalculationfromleft = null;
var objCalculationfromright = null;
var canvaswidth = canvas.wrapperEl.offsetWidth;
// initialize before update
if (obj.group) {
objLEFT = obj.group.getCenterPoint().x + obj.getCenterPoint().x;
leftCalculation = ((MultiplyingAllVariablesLEFT * objLEFT) + canvasMoveX) - tooltipBottomX;
objCalculationfromleft = ((MultiplyingAllVariablesLEFT * objLEFT) + canvasMoveX);
} else {
objLEFT = obj.oCoords.mt.x;
leftCalculation = ((MultiplyingAllVariablesLEFT * objLEFT) + canvasMoveX) - tooltipBottomX - 0;
objCalculationfromleft = ((MultiplyingAllVariablesLEFT * objLEFT) + canvasMoveX) - 0;
}
objCalculationfromright = canvas.wrapperEl.offsetWidth - objCalculationfromleft;
// check before update
// if ((leftCalculation + tooltipwidth) > canvas.wrapperEl.offsetWidth) {
// console.log(objCalculationfromright)
// }
// set top and left (arrow on center)
if (obj.group) {
objTOP = obj.group.getCenterPoint().y + obj.top;
objLEFT = obj.group.getCenterPoint().x + obj.getCenterPoint().x;
tooltip.style.top = ((MultiplyingAllVariablesTOP * objTOP) + canvasMoveY) - tooltipBottomY + "px";
tooltip.style.left = ((MultiplyingAllVariablesLEFT * objLEFT) + canvasMoveX) - tooltipBottomX + "px";
} else {
objTOP = obj.oCoords.mt.y;
objLEFT = obj.oCoords.mt.x;
tooltip.style.top = ((MultiplyingAllVariablesTOP * objTOP) + canvasMoveY) - tooltipBottomY - 5 + "px";
tooltip.style.left = ((MultiplyingAllVariablesLEFT * objLEFT) + canvasMoveX) - tooltipBottomX - 0 + "px";
}
// // check overflow
// if (tooltip.style.left.toFloat() < 15) {
// /*out of left*/
// if (tooltipBottomX - 15 > Math.abs(tooltip.style.left.toFloat())) {
// arrowMove = tooltip.style.left.toFloat() - 10;
// tooltip.style.left = "0px";
// tooltip.querySelector('.tooltiparrow').style.left = "calc(50% + " + arrowMove + 7.5 + "px)";
// } else {
// tooltip.style.left = "-5px";
// tooltip.querySelector('.tooltiparrow').style.left = "10px";
// }
// tooltip.style.right = "auto";
// tooltip.querySelector('.tooltiparrow').style.right = "auto";
// }
// check overflow
if (parseInt(tooltip.style.left, 10) < 0) {
/*out of left*/
arrowMove = tooltip.style.left;
tooltip.style.left = "0px";
var setarrowMoveleft = "calc(50% + " + arrowMove + ")";
tooltip.querySelector('.tooltiparrow').style.left = setarrowMoveleft;
// if (tooltipBottomX - 15 > Math.abs(tooltip.style.left.toFloat())) {
// arrowMove = tooltip.style.left.toFloat() - 10;
// tooltip.style.left = "0px";
// tooltip.querySelector('.tooltiparrow').style.left = "calc(50% + " + arrowMove + 7.5 + "px)";
// } else {
// tooltip.style.left = "-5px";
// tooltip.querySelector('.tooltiparrow').style.left = "10px";
// }
if (Math.abs(parseInt(arrowMove, 10)) + 15 > tooltipBottomX) {
tooltip.style.left = "-5px";
tooltip.querySelector('.tooltiparrow').style.left = "10px";
}
tooltip.style.right = "auto";
tooltip.querySelector('.tooltiparrow').style.right = "auto";
}
else if ((leftCalculation + tooltipwidth) > canvas.wrapperEl.offsetWidth) {
/*out of right*/
/* nedd more test */
// if (tooltipBottomX - 15 > (tooltip.getBoundingClientRect().right - 15) - (canvas.wrapperEl.offsetWidth) ) {
// arrowMove = (tooltip.getBoundingClientRect().right - 15) - (canvas.wrapperEl.offsetWidth) + 10;
// tooltip.style.right = "5px";
// tooltip.querySelector('.tooltiparrow').style.right = "calc(50% - "+ arrowMove +"px)";
// }
// else{
// tooltip.style.right = "5px";
// tooltip.querySelector('.tooltiparrow').style.right = "-15px";
// }
tooltip.style.left = "auto";
tooltip.style.right = "0px";
tooltip.querySelector('.tooltiparrow').style.left = "auto";
if (obj.group && objCalculationfromright > 7.5) {
objCalculationfromright -= 7.5;
}
if (!obj.group && objCalculationfromright < 0) {
objCalculationfromright = 0;
}
tooltip.querySelector('.tooltiparrow').style.right = objCalculationfromright + "px";
} else {
tooltip.querySelector('.tooltiparrow').style.left = "50%";
tooltip.querySelector('.tooltiparrow').style.right = "auto";
}
// overflow top fix
if (tooltip.getBoundingClientRect().bottom < tooltip.parentElement.getBoundingClientRect().top) {
tooltip.style.top = "-" + tooltip.getBoundingClientRect().height + "px";
}
} else {
// pc
// if (e.type.includes("mouse") && e.layerY && e.layerX) {
// tooltip.style.top = e.layerY - tooltip.offsetHeight - 15 + "px";
// tooltip.style.left = e.layerX - (tooltip.offsetWidth / 2) + "px";
// }
if (e.type.includes("mouse") && e.clientY && e.clientX) {
tooltip.style.top = e.clientY - tooltip.offsetHeight - 15 + "px";
tooltip.style.left = e.clientX - (tooltip.offsetWidth / 2) + "px";
$('.cc-price-table-as-grid .attr-grid-row.row').removeClass('hover');
if (obj.sku && obj.sku.length > 0) {
var lihover = $('.cc-price-table-as-grid .attr-grid-row.row[data-sku="' + obj.sku + '"]');
$(lihover).addClass('hover');
// scrollToLi($(lihover));
}
}
}
// TO TOUCHES
// if (e.type.includes("mouse") && e.layerY && e.layerX) {
// tooltip.style.top = e.layerY - tooltip.offsetHeight - 15 + "px";
// tooltip.style.left = e.layerX - (tooltip.offsetWidth / 2) + "px";
// }
// else if(e.touches && e.touches[0] && e.touches[0].clientY && e.touches[0].clientX){
// tooltip.style.top = e.touches[0].clientY - tooltip.parentElement.getBoundingClientRect().top - tooltip.offsetHeight - 15 + "px";
// tooltip.style.left = e.touches[0].clientX - tooltip.parentElement.getBoundingClientRect().left - (tooltip.offsetWidth / 2) + "px";
// }
// else if(e.changedTouches && e.changedTouches[0] && e.changedTouches[0].clientY && e.changedTouches[0].clientX){
// tooltip.style.top = e.changedTouches[0].clientY - tooltip.parentElement.getBoundingClientRect().top - tooltip.offsetHeight - 15 + "px";
// tooltip.style.left = e.changedTouches[0].clientX - tooltip.parentElement.getBoundingClientRect().left - (tooltip.offsetWidth / 2) + "px";
// }
// else{
// tooltip.style.top = (((((obj.group.getCenterPoint().y + obj.top) / canvas.height) * canvas.wrapperEl.offsetHeight)) - tooltip.offsetHeight) - 2 + "px";
// tooltip.style.left = (((((obj.group.getCenterPoint().x + obj.left) / canvas.width) * canvas.wrapperEl.offsetWidth))- (tooltip.offsetWidth / 2)) + 7 + "px";
// }
tooltip.style.transition = "opacity .2s";
tooltip.style.opacity = 1;
tooltip.style.zIndex = 5;
hideTooltipQtyInput();
}
function hideTooltip() {
var tooltip = document.querySelector('.tooltip');
if (tooltip) {
tooltip.style.top = "0px";
tooltip.style.left = "0px";
tooltip.style.transition = "none";
tooltip.style.opacity = 0;
tooltip.style.zIndex = -1;
hideTooltipQtyInput();
}
}
function hideTooltipQtyInput() {
var tooltip = document.querySelector('.tooltip');
if (tooltip.querySelector('.qtyinput').children.length > 0) {
var qtyinput = tooltip.querySelector('.qtyinput').children[0];
var tooltipqty = tooltip.querySelector('.tooltipqty');
tooltipqty.classList.add('hidden');
qtyinput.parentElement.removeChild(qtyinput);
tooltip.querySelector('.mobile-tooltip-add-btn button').classList.remove('not-available');
}
}
function addInputToTooltip(obj) {
var tooltip = document.querySelector('.tooltip');
var qtyinputClass = tooltip.querySelector('.qtyinput');
var qtyinput = null;
var userobj = userSelectedObjects.findIndex(object => object.id == obj.id);
// var mobile_btn = $(tooltip).find('.mobile-tooltip-add-btn button');
// (userobj >= 0) ? $(mobile_btn).removeClass('not-available') : $(mobile_btn).addClass('not-available');
if (qtyinputClass.children.length == 0) {
var tooltipqty = tooltip.querySelector('.tooltipqty');
var tooltipqtyinput = tooltipqty.querySelector('.qtyinput');
qtyinput = document.createElement("input");
//qtyinput.className = "form-control";
qtyinput.type = "number";
qtyinput.dataset.id = obj.id;
qtyinput.placeholder = "qty";
qtyinput.min = 0;
qtyinput.value = (userobj >= 0) ? userSelectedObjects[userobj].qty : 0;
//var available_Tickets = (availableTickets() <= obj.qty)? availableTickets() : obj.qty;
qtyinput.max = obj.qtyDefault;
//qtyinput.max = available_Tickets;
tooltipqtyinput.appendChild(qtyinput);
tooltipqty.classList.remove('hidden');
tooltip.querySelector('.mobile-tooltip-add-btn button').classList.add('not-available');
}
// else {
// qtyinput = qtyinputClass.querySelector('input');
// if (qtyinput.value < qtyinput.max) {
// }
// }
}
function HighlightSelectedObjects() {
if (canvas && canvas._objects && canvas._objects.length > 0) {
var shadow = { color: '#555', blur: 5, offsetX: 5, offsetY: 5, opacity: 1 }
var arr = null;
try {
arr = canvas._objects.flatMap(function mapper(obj) {
return (obj.type == 'group') ? obj._objects.flatMap(mapper) : obj;
});
}
catch (error) {
arr = canvas._objects.myflatMap(function mapper(obj) {
return (obj.type == 'group') ? obj._objects.myflatMap(mapper) : obj;
});
}
for (var i = 0; i < arr.length; i++) {
if (arr[i].qty > 0) {
(arr[i].type === "Tag") ? arr[i]._objects[0].setShadow(shadow) : arr[i].setShadow(shadow);
}
}
canvas.renderAll();
// var arr = [];
// for (var x = 0; x < canvas._objects.length; x++) {
// if (canvas._objects[x].type === 'group') {
// for (var y = 0; y < canvas._objects[x]._objects.length; y++) {
// if (canvas._objects[x]._objects[y].type === 'group') {
// for (var z = 0; z < canvas._objects[x]._objects[y]._objects.length; z++) {
// arr.push(canvas._objects[x]._objects[y]._objects[z]);
// }
// } else {
// arr.push(canvas._objects[x]._objects[y]);
// }
// }
// } else {
// arr.push(canvas._objects[x]);
// }
// }
// for (var i = 0; i < arr.length; i++) {
// if (arr[i].qty > 0) {
// if (arr[i].type !== "i-text" && arr[i].type !== "Tag") {
// if (arr[i].stroke)
// arr[i].OLDstroke = arr[i].stroke;
// if (arr[i].strokeWidth)
// arr[i].OLDstrokeWidth = arr[i].strokeWidth;
// arr[i].stroke = "#0000ff";
// arr[i].strokeWidth = 10;
// arr[i].strokeDashArray = [10, 5];
// } else if (arr[i].type === "Tag") {
// arr[i]._objects[0].stroke = "#0000ff";
// arr[i]._objects[0].strokeWidth = 2;
// arr[i]._objects[0].strokeDashArray = [10, 5];
// }
// } else if (arr[i].qtyDefault > 0 && arr[i].qty == 0) {
// if (arr[i].type !== "i-text" && arr[i].type !== "Tag" && arr[i].fill && arr[i].colorStowed) {
// arr[i].fill = arr[i].colorStowed
// } else if (arr[i].type === "Tag") {
// arr[i]._objects[0].fill = arr[i].colorStowed
// }
// }
// }
}
}
function objAddFromMobileTooltip(_this) { /*test*/
var this_obj = getObjectBySKU(_this.dataset.sku);
var tooltip = document.querySelector('.tooltip');
var qtyinputClass = tooltip.querySelector('.qtyinput');
var input_val = null;
if ($('.tooltip .qtyinput input').length > 0) {
input_val = qtyinputClass.querySelector('input').valueAsNumber;
}
if (qtyinputClass.children.length == 0 && this_obj.qty == 1 && this_obj.qtyDefault == 1) {
addSelectedToList(this_obj);
}
else {
var ul = document.querySelector('.cart-not-empty .ul-list ul');
var objectIndex = userSelectedObjects.findIndex(object => object.id == this_obj.id);
var objqtyincart = null;
if (objectIndex >= 0) {
objqtyincart = userSelectedObjects[objectIndex].qty;
}
if (input_val != null) {
if (objqtyincart) {
if (input_val > objqtyincart) {
for (var i = 0; i < input_val - objqtyincart; i++) {
addSelectedToList(this_obj);
}
}
else if (objqtyincart > input_val) {
for (var i = 0; i < objqtyincart - input_val; i++) {
removeSelectedFromList(this_obj);
}
}
}
else {
for (var i = 0; i < input_val; i++) {
addSelectedToList(this_obj);
}
}
}
}
hideTooltip();
checkObjectSelectedLength();
canvas.discardActiveObject();
}
function ungroupallchairs() {
if (canvas && canvas._objects && canvas._objects.length > 0) {
for (var i = 0; i < canvas._objects.length; i++) {
if (canvas._objects[i].type == "group") {
var items = canvas._objects[i]._objects;
canvas._objects[i]._restoreObjectsState();
canvas.remove(canvas._objects[i]);
for (var i = 0; i < items.length; i++) {
items[i].set({ objectCaching: false, renderOnAddRemove: false });
canvas.add(items[i]);
canvas.item(canvas.size() - 1).hasControls = true;
}
ungroupallchairs();
}
}
}
}
function getOpt(event) {
canvas.targets = [];
var this_target = canvas._searchPossibleTargets(canvas._objects, canvas.getPointer(event.changedTouches[0]));
var this_subTargets = canvas.targets;
var opt = { e: event, target: this_target, subTargets: this_subTargets };
return opt
}
function removejscssfile(filename, filetype) {
var targetelement = (filetype == "js") ? "script" : (filetype == "css") ? "link" : "none";
var targetattr = (filetype == "js") ? "src" : (filetype == "css") ? "href" : "none";
var allsuspects = document.getElementsByTagName(targetelement);
for (var i = allsuspects.length; i >= 0; i--) {
if (allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr).indexOf(filename) != -1)
allsuspects[i].parentNode.removeChild(allsuspects[i]);
}
}
function collectStats(triggername, objectname, objectqty, objectqtydefault, objectsku, canvaszoom, zoompercentage, canvasviewportTransform, canvastransform, useragent, date, time) {
var names = arguments.callee.toString().split("(")[1].split(")")[0].replace(/ /g, '').split(",");
var collectStatsObj = {};
for (var i = 0; i < arguments.length; i++) {
collectStatsObj[names[i]] = arguments[i];
}
// console.log(collectStatsObj)
}
function availableTickets() {
var maxTickets = 10;
return maxTickets - userSelectedObjects.map(a => a.qty).reduce((a, b) => a + b, 0);
}
function scrollToLi(lipick) {
var ulbase = $('.cc-price-table-as-grid');
var ullist = $('.cc-price-table-as-grid .attr-grid > div');
var lilist = $('.cc-price-table-as-grid .attr-grid > div > div');
var ullistheight = $(ullist).height();
var lilistheight = 0;
$(lilist).each(function () {
lilistheight += $(this).height();
})
if (lilistheight > ullistheight) {
$(ullist).scrollTop(0);
var diff = $(lipick).offset().top - $(ulbase).offset().top;
$(ullist).scrollTop(diff);
}
}
function updateMobileTicketsCounter() {
var counterSpan = $('#stadium-container .cart-preview .cart-not-empty .mobile-tickets-counter .mobile-tickets-counter-number');
if ($(counterSpan).length > 0) {
$(counterSpan).html(userSelectedObjects.map(a => a.qty).reduce((a, b) => a + b, 0));
}
}
function visibleCanvas() {
$('.stadium-display .details-rub.choose-items-container').css("visibility", "visible");
}
function selectedPromotion(obj) {
var tiketLI = $('.cc-price-table-as-grid .attr-grid-row.row[data-sku="' + obj.sku + '"]');
var objectIndex = userSelectedObjects.findIndex(object => object.sku == obj.sku);
(objectIndex >= 0) ? $(tiketLI).addClass('selected') : $(tiketLI).removeClass('selected');
$('.cc-price-table-as-grid .attr-grid > div').scrollTop(0);
}