{"version":3,"sources":["shop.js","checkout.js","shopping.cart.js","product.js","product.category.js","utils.js","frontline.store.overview.js","customer.settings.js","shop.category.menu.js"],"names":["refreshShoppingCart","$","document","ready","modalMessage","originalelpos","headerHeight","productsHeight","ajaxPath","modalParentElementInDOM","updateInputWithAmountOfProduct","action","element","amountInput","parent","amount","trim","val","isNaN","newAmount","updateInputWithAmountBeforeAddingToShoppingCart","hidePurchaseOptions","productArticle","span","css","addClass","removeClass","show","hide","hidePurchaseOptionsMobile","parents","isInteger","n","addToShoppingCart","productId","parentWrapper","mobileView","ajax","type","url","data","product_id","done","response","success","undefined","status","toUpperCase","length","hasClass","setTimeout","alert","error_message","setShoppingCartPlacement","windowpos","shoppingCart","offset","top","window","scrollTop","stop","animate","margin-top","search","searchText","search_text","refresh_shopping_cart","html","info_message","closeOpenProduct","width","SUB_DOMAIN","on","event","productArticleDivParent","this","height","find","specialProduct","attr","extraProductAutoPopup","prev","click","input","children","location","pathname","reload","productContainer","closest","sumAndDeleteWrapper","editAmountWrapper","withoutPrompt","confirm","href","replace","keyup","e","key","which","searchInput","jQuery","hover","each","newHref","addAnchorsToMenuIfSmallScreen","y","hash","indexOf","scrollToCompensateForHeader","actionBeforeRefresh","remove","replaceWith","sum","product_count","is","lastProduct","scroll","consumingLocation","shoppingCartSmall","products","getProductsFromShoppingCart","ajaxPathSetConsumingLocation","consuming_location","error","modalTitle","modalAlertType","parseJSON","responseText","errors","displayInfoMessageModal","ajaxLocked","ajaxPathCheckCheckoutIfDeliveryTimeMatchesProductionTime","ajaxPathGetRestaurantTables","format","max","close","container","value","selectYears","activateDatepicker","dateNow","maxDate","Date","pickadate","setSeconds","setMilliseconds","timeNow","getTime","maxDays","selectElement","selectMonths","min","onSet","context","validateSelectedDeliveryTimeAgainstProductsInShoppingCart","selectedDay","parentRow","setHours","deliveryMethod","frontlineStoreId","validation","days","Math","round","select","change","selectedTime","selected_day","selected_time","delivery_method","frontline_store_id","dataType","modalButtonText","always","whenContactPersonPickerChanges","option","text","timeRow","employeeId","prop","fetchAvailableDaysAndTimesWhenSelectingAStore","lastTimePointRow","last","index","session_value","sessionValue","totalPriceOnShoppingCartHtml","daysFromNow","updateTimeOfTextBox","a","textbox_array_id","isAdmin","delivery","storeSyncCode","newZipCodePostValue","newZipCode","originalZipCode","array_id","days_from_now","sync_code","new_zip_code","next","appendHtml","arrayId","append","getGetParameterByName","name","RegExp","exec","results","getRestaurantTableSelector","onChange_delivery_days_from_now","decodeURIComponent","timeSelect","empty","validateCheckoutForm","displaySelectConsumingLocationModal","content","modal","ajaxPathEditConsumingLocation","ajaxPathGetProductModal","ajaxPathSaveProductModalContent","ajaxPathGetProductCategorySelectListAndRemoveButtonHtml","formData","FormData","processData","contentType","prependBeforeId","message","prependToAlert","itemName","product_category_type","ajaxPathUpdateProductCategoryList","displayAlertMessage","headerText","removeInputs","after","HTMLMessage","prepend","removeAlertMessage","productCategoryType","productCategoryName","productCategoryDescription","productCategoryListOrder","productCategoryId","ajaxPathSaveProductCategoryContent","refreshProductCategoryList","product_category_id","post","refreshProductCategoryListSearch","getAlertHtml","title","titleHtml","getAlertTable","prependTo","appendAfterId","appendTo","insertAfter","insertAfterId","parentElementInDOM","buttonText","alertType","modalClass","glyphicon","switching","sortTable","table","columnToSort","sortMethod","rows","shouldSwitch","switchcount","dir","getElementsByTagName","arguments","subtractFromRowsLength","xValue","i","yValue","dateParts","x","innerHTML","toLowerCase","split","shoppingCartElement","insertBefore","push","ajaxPathGetFrontlineStoreInfo","refreshFrontlineStoreListItems","displayDeactivated","ajaxPathDisplaySearchResult","search_string","toggle","arrow","getFrontlineStoreInfo","currentStoreStatus","ajaxPathSetFrontlineStoreAvailability","current_frontline_store_status","changeAvailability","ajaxPathSaveGeneralShopLayoutSettings","ajaxPathSaveColorsToFile","ajaxPathSetPreviewSession","ajaxPathUnsetPreviewSession","ajaxPathDeleteColors","ajaxPathSaveFonts","ajaxPathDeleteFonts","inputValue","ajaxLock","settingType","font","customerSettingsId","deleteFonts","setPreviewSession","win","open","unsetPreviewSession","focus","deleteColors","spectrum","delete_colors","popover","showInitial","showInput","locale","fontselect","saveFonts","color","saveColors","saveCustomerSettingsInput","saveGeneralShopLayoutSettings","fileData","files","formGroup","checked","updateScrollPos","navbarHeight","scrollWindow","scrollContent","subScrollWindow","clicked","clickX","menuWrapper","scrollElement","scrollLeft","get","right","scrollWidth","outerWidth","scrollToElement","offsetLeft","adjustFixedWidth","parentWidth","sub","arrowInButton","direction","cursorType","buttonElement","ua","navigator","userAgent","test","isIE","showScrollButtons","left","pageX","categoryMenu","menuOffsetTop","adjustFixedHeight","menuHeight","toggleFixed","removeFixed","hideScrollButtons","subScrollContent","showScrollWithInternetExplorer","scrollToActive","scrollToId","pos"],"mappings":"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","file":"../main-d64212b9de.min.js","sourcesContent":["var refreshShoppingCart = function (actionBeforeRefresh) {\r\n}\r\nvar closeOpenProduct = function (parentWrapper) {\r\n}\r\n\r\n$(document).ready(function () {\r\n\r\n var ajaxPath = '/includes/shoppingCart/ajax/ajax.php';\r\n var ajaxPathSetConsumingLocation = '/action/shop/set-consuming-location';\r\n var WIDTH_SM = 768;\r\n var modalParentElementInDOM = $('div#main-container');\r\n var modalTitle = '';\r\n var modalMessage = '';\r\n var modalButtonText = 'Lukk';\r\n var modalAlertType = '';\r\n\r\n closeOpenProduct = function (parentWrapper) {\r\n var mobileView = ($(window).width() <= 768 && SUB_DOMAIN == 'isushi');\r\n if (mobileView) {\r\n hidePurchaseOptionsMobile(parentWrapper);\r\n } else {\r\n hidePurchaseOptions(parentWrapper);\r\n }\r\n };\r\n\r\n // Display option to purchase product\r\n $(document).on('click', 'span.glyphicon-plus-sign', function (event) {\r\n //Fix gap/height issues on mobile when picture disappears:\r\n var productArticleDivParent = $(this).parents('div.product_article');\r\n productArticleDivParent.css(\"min-height\", productArticleDivParent.height());\r\n\r\n // Get parent wrapper (wraps both image and info for this product)\r\n var productArticle = $(this).parents('article');\r\n\r\n // Show description\r\n $('p.description span.hidden-normal', productArticle).removeClass('hidden');\r\n\r\n // Hide image and display purchase options\r\n $('img', productArticle).css('height', '0px');\r\n\r\n //If the class \"product_article_hide_picture\" is added, the config \"hide default pictures\" is active\r\n // -> Remove position: absolute from the info_wrapper to make space for other info about the product\r\n if ($('div#products_wrapper div.product_article_hide_picture'). length > 0) {\r\n $(this).parents('div.product_info_wrapper').css('position', '');\r\n }\r\n\r\n // Hide direct order button\r\n $(productArticle).find('button.add_product_simple').hide();\r\n //$('button.add_product_simple').hide();\r\n\r\n // Switch plus sign with minus sign\r\n switchFromPlusToMinus($(this));\r\n\r\n // Display purchase option\r\n $('div.purchase_product_wrapper', productArticle).show();\r\n });\r\n\r\n // Display option to purchase product in mobile view\r\n $(document).on('click', 'div#products_wrapper div.product_article_mobile:not(.open)', function () {\r\n $(this).addClass('open');\r\n\r\n // Get parent wrapper (wraps both image and info for this product)\r\n var productArticle = $('article', this);\r\n\r\n // Show description\r\n $('p.description span.hidden-normal', productArticle).removeClass('hidden');\r\n\r\n // Display image and display purchase options\r\n $('img', productArticle).css('display', 'block');\r\n\r\n // Switch plus sign with minus sign\r\n switchFromArrowToMinus($('span.glyphicon-chevron-right', this));\r\n\r\n // Display description\r\n $('p.description', productArticle).show();\r\n\r\n // Display purchase option\r\n $('div.purchase_product_wrapper', productArticle).show();\r\n });\r\n\r\n // Hide option to purchase product and display image\r\n $(document).on('click', 'div#products_wrapper span.glyphicon-minus-sign', function () {\r\n\r\n // Get parent wrapper (wraps both image and info for this product)\r\n var productArticle = $(this).parents('article');\r\n\r\n //If the class \"product_article_hide_picture\" is added, the config \"hide default pictures\" is active\r\n // -> Add position: absolute to the info_wrapper to place it back again after removing it\r\n if ($('div#products_wrapper div.product_article_hide_picture'). length > 0) {\r\n $(this).parents('div.product_info_wrapper').css('position', 'absolute');\r\n }\r\n\r\n hidePurchaseOptions(productArticle);\r\n });\r\n\r\n // Hide option to purchase product and display image\r\n $(document).on('click', 'div.product_article_mobile span.glyphicon-minus-sign', function () {\r\n // Get parent wrapper (wraps both image and info for this product)\r\n var productArticle = $(this).parents('article');\r\n hidePurchaseOptionsMobile(productArticle);\r\n });\r\n\r\n // Add product to shopping cart\r\n $(document).on('click', 'button.add_product', function () {\r\n var parentWrapper = $(this).parents('article');\r\n var specialProduct = $(this).attr('special_product');\r\n var extraProductAutoPopup = $(this).hasClass('extra-products-popup');\r\n let productInfoWrapper = $(this).prev('.product_info_wrapper');\r\n if ((specialProduct !== undefined && specialProduct !== false && specialProduct != '') || extraProductAutoPopup) {\r\n $('button.extra-products-btn:first', parentWrapper).click();\r\n return false;\r\n } else {\r\n // Find the input field element\r\n var input = $('input', parentWrapper);\r\n var amount = $.trim(input.val()) * 1;\r\n\r\n // Validate amount\r\n if (!isInteger(amount)) {\r\n // Add red border on the amount input\r\n var parentFormGroup = input.parents('div.form-group');\r\n parentFormGroup.addClass('has-error');\r\n return;\r\n }\r\n\r\n var mobileView = ($(window).width() <= 768 && SUB_DOMAIN == 'isushi');\r\n // Add product\r\n addToShoppingCart(input.attr('product_id'), amount, parentWrapper, mobileView);\r\n\r\n //If the class \"product_article_hide_picture\" is added, the config \"hide default pictures\" is active\r\n // -> Add position: absolute to the info_wrapper to place it back again after removing it\r\n if ($('div#products_wrapper div.product_article_hide_picture'). length > 0) {\r\n parentWrapper.children('div.product_info_wrapper').css('position', 'absolute');\r\n }\r\n }\r\n });\r\n\r\n // Add 1 product to shopping cart\r\n $('.add_product_simple').click(function (event) {\r\n var parentWrapper = $(this).parents('article');\r\n var specialProduct = $(this).attr('special_product');\r\n var extraProductAutoPopup = $(this).hasClass('extra-products-popup');\r\n if ((specialProduct !== undefined && specialProduct !== false && specialProduct != '') || extraProductAutoPopup) {\r\n $('button.extra-products-btn:first', parentWrapper).click();\r\n return false;\r\n } else {\r\n // Find the input field element\r\n var input = $('input', parentWrapper);\r\n var amount = 1;\r\n var mobileView = ($(window).width() <= 768 && SUB_DOMAIN == 'isushi');\r\n // Add product\r\n addToShoppingCart(input.attr('product_id'), amount, parentWrapper, mobileView);\r\n }\r\n });\r\n\r\n // Add product from product search\r\n $(document).on('click', 'button.add_product_from_search', function (event) {\r\n var parentWrapper = $(this).parents('div.purchase_product_from_search_wrapper');\r\n var specialProduct = $(this).attr('special_product');\r\n var extraProductAutoPopup = $(this).hasClass('extra-products-popup');\r\n if ((specialProduct !== undefined && specialProduct !== false && specialProduct != '') || extraProductAutoPopup) {\r\n $('button.extra-products-btn:first', parentWrapper).click();\r\n return false;\r\n } else {\r\n // Find the input field element\r\n var input = $('input', parentWrapper);\r\n var amount = $.trim(input.val()) * 1;\r\n\r\n // Validate amount\r\n if (!isInteger(amount)) {\r\n // Alert\r\n alert('Ugyldig antall: ' + amount);\r\n return;\r\n }\r\n // Add product\r\n addToShoppingCart(input.attr('product_id'), amount, -1, false);\r\n }\r\n });\r\n\r\n // Add product to shopping cart\r\n $(document).on('click', 'span.delete_product', function (event) {\r\n //Post product id\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'remove_product',\r\n product_id: $(this).attr('product_id')\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // If user is in the checkout page, refresh entire page, no need to fetch with ajax\r\n if (window.location.pathname === '/shop/checkout') {\r\n window.location.reload();\r\n }\r\n // Update shopping cart\r\n refreshShoppingCart();\r\n } else {\r\n alert(response.error_message);\r\n }\r\n //ajaxLockActive = false;\r\n }, 'json');\r\n });\r\n\r\n // Edit product in shopping cart\r\n $(document).on('click', 'span.glyphicon-edit:not(.extra-products-btn)', function (event) {\r\n // Get parent product container\r\n var productContainer = $(this).closest('div.shopping_cart_product_container');\r\n var sumAndDeleteWrapper = $('p.price', productContainer);\r\n var editAmountWrapper = $('div.edit_amount_wrapper', productContainer);\r\n\r\n // Hide sum and display edit options\r\n sumAndDeleteWrapper.hide();\r\n editAmountWrapper.show();\r\n });\r\n\r\n //When clicking on the delivery tab in checkout, add delivery fee\r\n $('button[target=\"shop_delivery_form_wrapper\"]').click(function (event) {\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'add_delivery_product'\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // Success\r\n // Update shopping cart\r\n refreshShoppingCart('product_added');\r\n } else {\r\n alert(response.error_message);\r\n }\r\n //ajaxLockActive = false;\r\n }, 'json');\r\n });\r\n\r\n // Empty/unset shopping cart\r\n $(document).on('click', 'button#clear_shopping_cart',function() {\r\n if (typeof withoutPrompt === 'undefined') {\r\n if (!confirm('Vil du tømme handlekurv og starte på nytt?')) {\r\n return;\r\n }\r\n }\r\n\r\n //Post serialized form and save ProductCategory\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'unset_shopping_cart'\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // Refresh page\r\n window.location.href = \"/shop\";\r\n } else {\r\n alert(response.error_message);\r\n }\r\n //ajaxLockActive = false;\r\n }, 'json');\r\n });\r\n\r\n /**\r\n * Updates the number in the amount input when editing amount of product in shopping cart\r\n *\r\n * @param String action minus or plus\r\n * @param Element element the element that was clicked\r\n * @returns\r\n */\r\n function updateInputWithAmountOfProduct(action, element) {\r\n var amountInput = $('input', element.parent());\r\n var amount = $.trim(amountInput.val());\r\n if (isNaN(amount)) {\r\n amountInput.val('0');\r\n return;\r\n }\r\n if (action === 'minus' && (amount * 1) <= 1) {\r\n return;\r\n }\r\n\r\n var newAmount = 0;\r\n if (action === 'minus') {\r\n newAmount = (amount * 1) - 1;\r\n } else {\r\n newAmount = (amount * 1) + 1;\r\n }\r\n\r\n if (!isInteger) {\r\n amountInput.addClass('has-error');\r\n amountInput.val('0');\r\n return;\r\n }\r\n amountInput.val(newAmount);\r\n }\r\n\r\n /**\r\n * Updates the number in the amount input when editing amount of product in shopping cart\r\n *\r\n * @param String action minus or plus\r\n * @param Element element the element that was clicked\r\n * @returns\r\n */\r\n function updateInputWithAmountBeforeAddingToShoppingCart(action, element) {\r\n var amountInput = $('input', element.parent());\r\n var amount = $.trim(amountInput.val());\r\n if (isNaN(amount)) {\r\n amountInput.val('0');\r\n return;\r\n }\r\n if (action === 'minus' && (amount * 1) <= 1) {\r\n return;\r\n }\r\n\r\n var newAmount = 0;\r\n if (action === 'minus') {\r\n newAmount = (amount * 1) - 1;\r\n } else {\r\n newAmount = (amount * 1) + 1;\r\n }\r\n\r\n if (!isInteger) {\r\n amountInput.addClass('has-error');\r\n amountInput.val('0');\r\n return;\r\n }\r\n amountInput.val(newAmount);\r\n }\r\n\r\n // Edit amount of a product by using the minus or plus signal (Editing amount in shopping cart)\r\n $(document).on('click', 'div.edit_amount_wrapper span.glyphicon-minus', function (event) {\r\n updateInputWithAmountOfProduct('minus', $(this));\r\n });\r\n $(document).on('click', 'div.edit_amount_wrapper span.glyphicon-plus', function (event) {\r\n updateInputWithAmountOfProduct('plus', $(this));\r\n });\r\n\r\n // Edit amount of a product by using the minus or plus signal (Before adding to shopping cart)\r\n $(document).on('click', 'div.purchase_product_wrapper span.glyphicon-minus', function (event) {\r\n updateInputWithAmountBeforeAddingToShoppingCart('minus', $(this));\r\n });\r\n $(document).on('click', 'div.purchase_product_wrapper span.glyphicon-plus', function (event) {\r\n updateInputWithAmountBeforeAddingToShoppingCart('plus', $(this));\r\n });\r\n\r\n // Update amount of product in shopping cart. \r\n $(document).on('click', 'button.edit_product_amount', function () {\r\n var productWrapper = $(this).closest('div.shopping_cart_product_container');\r\n var productId = productWrapper.attr('product_id');\r\n var amountInput = $('input', $(this).parent());\r\n var amount = $.trim(amountInput.val().replace(',', '.'));\r\n amountInput.removeClass('has-error');\r\n if (isNaN(amount)) {\r\n amountInput.addClass('has-error');\r\n amountInput.val('0');\r\n return;\r\n }\r\n if (!isInteger) {\r\n amountInput.addClass('has-error');\r\n amountInput.val('0');\r\n return;\r\n }\r\n\r\n updateShoppingCartProductCount(productId, amount);\r\n });\r\n\r\n // Search for product\r\n $('button#product_search_button').click(function () {\r\n search();\r\n });\r\n\r\n /*\r\n * Search if enter key in the search field\r\n */\r\n $('input#product_search_input').keyup(function (e) {\r\n var key = e.which;\r\n var searchInput = $('input#product_search_input');\r\n // Refresh list if enter was pressed or the search field is empty\r\n if (key === 13) {\r\n search();\r\n }\r\n\r\n if (searchInput.val() === '') {\r\n // Remove products if empty search field\r\n $('div#product_search_result_wrapper').html('');\r\n }\r\n });\r\n\r\n //When clicking on the delivery tab in checkout, add delivery fee\r\n $('button[target=\"shop_pick_up_form_wrapper\"]').click(function (event) {\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'remove_delivery_product'\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // Success\r\n // Update shopping cart\r\n refreshShoppingCart();\r\n } else {\r\n alert(response.error_message);\r\n }\r\n //ajaxLockActive = false;\r\n }, 'json');\r\n });\r\n\r\n // Display button to copy production order when hovering over tr\r\n jQuery('table#frontline_customer_production_orders tr').hover(function () {\r\n jQuery(this).find(\"a.copy_production_order \").removeClass('hidden');\r\n }, function () {\r\n jQuery(this).find(\"a.copy_production_order \").addClass('hidden');\r\n });\r\n\r\n // Add anchor to menu links if small screen\r\n addAnchorsToMenuIfSmallScreen();\r\n\r\n // Compensate for header height if anchor is set\r\n scrollToCompensateForHeader();\r\n\r\n /**\r\n * Hides product purchase options and displays image and product image\r\n *\r\n * @param Element productArticle\r\n * @return\r\n */\r\n function hidePurchaseOptions(productArticle) {\r\n\r\n // Hide image and display purchase options\r\n $('img', productArticle).css('height', '');\r\n\r\n // Switch plus sign with minus sign\r\n switchFromMinusToPlus($('span.glyphicon-minus-sign', productArticle));\r\n\r\n // Hide description\r\n $('p.description span.hidden-normal', productArticle).removeClass('hidden').addClass('hidden');\r\n\r\n // Show direct order button\r\n $('button.add_product_simple').show();\r\n\r\n // Display purchase option\r\n $('div.purchase_product_wrapper', productArticle).hide();\r\n }\r\n\r\n /**\r\n * Hides product purchase options and displays image and product image\r\n *\r\n * @param Element productArticle\r\n * @return\r\n */\r\n function hidePurchaseOptionsMobile(productArticle) {\r\n // Hide image and display purchase options\r\n $('img', productArticle).css('display', 'none');\r\n\r\n // Switch plus sign with arrow sign\r\n switchFromMinusToArrow($('span.glyphicon-minus-sign', productArticle));\r\n\r\n // Show direct order button\r\n $('button.add_product_simple').show();\r\n\r\n // Hide description\r\n $('p.description', productArticle).hide();\r\n\r\n // Hide purchase option\r\n $('div.purchase_product_wrapper', productArticle).hide();\r\n\r\n $(productArticle).parents('.product_article_mobile').removeClass('open');\r\n }\r\n\r\n /**\r\n * Switches from span class from plus symbol to minus symbol\r\n * Sets font color as red\r\n *\r\n * @param span\r\n * @return\r\n */\r\n function switchFromPlusToMinus(span) {\r\n // Switch plus sign with minus sign\r\n span.removeClass('glyphicon-plus-sign');\r\n span.addClass('glyphicon-minus-sign');\r\n }\r\n\r\n /**\r\n * Switches from span class from plus symbol to minus symbol\r\n * Sets font color as red\r\n *\r\n * @param element span\r\n * @return\r\n */\r\n function switchFromMinusToPlus(span) {\r\n // Switch plus sign with minus sign\r\n span.addClass('glyphicon-plus-sign');\r\n span.removeClass('glyphicon-minus-sign');\r\n }\r\n\r\n /**\r\n * Switches from span class from plus symbol to minus symbol\r\n * Sets font color as red\r\n *\r\n * @param span\r\n * @return\r\n */\r\n function switchFromArrowToMinus(span) {\r\n // Switch plus sign with minus sign\r\n span.removeClass('glyphicon-chevron-right');\r\n span.addClass('glyphicon-minus-sign');\r\n }\r\n\r\n /**\r\n * Switches from span class from plus symbol to minus symbol\r\n * Sets font color as red\r\n *\r\n * @param element span\r\n * @return\r\n */\r\n function switchFromMinusToArrow(span) {\r\n // Switch plus sign with minus sign\r\n span.addClass('glyphicon-chevron-right');\r\n span.removeClass('glyphicon-minus-sign');\r\n }\r\n\r\n /**\r\n * Returns true if n is integer\r\n *\r\n * @param {integer} n\r\n * @returns {Boolean}\r\n */\r\n function isInteger(n) {\r\n return n === +n && n === (n | 0);\r\n }\r\n\r\n /**\r\n * Fetches shopping cart html with ajax and replaces current shopping cart.\r\n *\r\n * @return\r\n */\r\n refreshShoppingCart = function (actionBeforeRefresh) {\r\n var actionBeforeRefresh = typeof actionBeforeRefresh !== 'undefined' ? actionBeforeRefresh : 'not set';\r\n\r\n // Type is the active shop type page\r\n // E.g /shop/1: type = 1\r\n if ($('#breadcrumbs_row #crumbs a.active').length > 0) {\r\n var type = $('#breadcrumbs_row #crumbs a.active').data('type');\r\n } else {\r\n var type = $('nav#menu').attr('type');\r\n }\r\n if (window.location.pathname === '/shop/checkout') {\r\n type = 'checkout';\r\n } else if (window.location.pathname === '/shop/shoppingcart') {\r\n type = 'shopping_cart_full';\r\n }\r\n\r\n // Update shopping cart in mobile view or normal view\r\n //if ($('div#shopping_cart_header').is(':visible')) {\r\n // Mobile\r\n var action = '';\r\n if (window.location.pathname === '/shop/shoppingcart') {\r\n // Full view\r\n action = 'get_shopping_cart_sum_and_full';\r\n } else {\r\n // Mobile view with only the shopping cart sum in the header\r\n action = 'get_shopping_cart_sum';\r\n }\r\n\r\n //Post serialized form and save ProductCategory\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: action,\r\n type: type\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // Success\r\n // Replace html\r\n if (type === 'shopping_cart_full') {\r\n $('div#clear_shopping_cart_full').remove();\r\n $('div#shopping_cart_full').replaceWith(response.html);\r\n }\r\n\r\n $('span#shopping_cart_header_sum').html(response.sum);\r\n\r\n if (response.product_count > 0) {\r\n $('span#shopping_cart_product_count').html(response.product_count + 'x');\r\n }\r\n\r\n if ($('span#shopping_cart_product_count_badge').length) {\r\n if (response.product_count > 0) {\r\n $('span#shopping_cart_product_count_badge').html(response.product_count);\r\n if ($('span#shopping_cart_product_count_badge').hasClass('animate_badge')) {\r\n $('span#shopping_cart_product_count_badge').removeClass('animate_badge');\r\n }\r\n setTimeout(function () {\r\n $('span#shopping_cart_product_count_badge').addClass('animate_badge')\r\n }, 50);\r\n }\r\n }\r\n } else {\r\n alert(response.error_message);\r\n }\r\n //ajaxLockActive = false;\r\n }, 'json');\r\n if ($('div#shopping_cart_small').is(':visible')) {\r\n // Normal\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'get_shopping_cart',\r\n type: type\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // Success\r\n // Replace html\r\n $('.button-below-shopping-cart').remove();\r\n $('div#shopping_cart_small').replaceWith(response.html);\r\n\r\n if (actionBeforeRefresh === 'product_added') {\r\n var lastProduct = $('div#shopping_cart_small div.shopping_cart_product_container:last');\r\n if (lastProduct.length) {\r\n // Animate last row of shopping cart to the right\r\n if (lastProduct.hasClass('animate_last_product_added_to_shopping_cart')) {\r\n lastProduct.removeClass('animate_last_product_added_to_shopping_cart');\r\n }\r\n setTimeout(function () {\r\n lastProduct.addClass('animate_last_product_added_to_shopping_cart')\r\n }, 50);\r\n }\r\n }\r\n\r\n setShoppingCartPlacement();\r\n } else {\r\n alert(response.error_message);\r\n }\r\n //ajaxLockActive = false;\r\n }, 'json');\r\n }\r\n }\r\n\r\n if ($('div#shopping_cart_small').length) {\r\n // Keep shopping cart in fixed position\r\n var originalelpos = $('div#shopping_cart_small').offset().top;\r\n // Add header hight to margin-top so the table will appear under the menu\r\n var headerHeight = $('header.navbar').height();\r\n var productsHeight = $('div#products_wrapper').height();\r\n }\r\n\r\n /**\r\n * Adds product in given amount to shopping cart\r\n *\r\n * @param int productId\r\n * @param int amount\r\n * @param Element parentWrapper (-1 if not adding product from normal user webshop)\r\n * @param {boolean} mobileView\r\n * @returns {undefined}\r\n */\r\n function addToShoppingCart(productId, amount, parentWrapper, mobileView) {\r\n //Post serialized form and save ProductCategory\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'add_product',\r\n product_id: productId,\r\n amount: amount\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // Success\r\n // Update shopping cart\r\n refreshShoppingCart('product_added');\r\n\r\n // Hide purchase options and display product image\r\n if (parentWrapper !== -1) {\r\n if (mobileView) {\r\n hidePurchaseOptionsMobile(parentWrapper);\r\n } else {\r\n hidePurchaseOptions(parentWrapper);\r\n }\r\n\r\n // Flash \"Bestill\" button\r\n if ($('button.add_product_simple', parentWrapper).length) {\r\n if ($('button.add_product_simple', parentWrapper).hasClass('animate_add_to_cart_button')) {\r\n $('button.add_product_simple', parentWrapper).removeClass('animate_add_to_cart_button');\r\n }\r\n setTimeout(function () {\r\n $('button.add_product_simple', parentWrapper).addClass('animate_add_to_cart_button')\r\n }, 50);\r\n }\r\n }\r\n } else {\r\n alert(response.error_message);\r\n }\r\n }, 'json');\r\n }\r\n\r\n /**\r\n * Updates product count to given amount in shopping cart\r\n *\r\n * @param int productId\r\n * @param int amount\r\n * @returns {undefined}\r\n */\r\n function updateShoppingCartProductCount(productId, amount) {\r\n //Post serialized form and save ProductCategory\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'update_product_amount',\r\n product_id: productId,\r\n amount: amount\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // If user is in the checkout page, refresh entire page, no need to fetch with ajax\r\n if (window.location.pathname === '/shop/checkout') {\r\n window.location.reload();\r\n }\r\n\r\n // Success\r\n // Update shopping cart\r\n refreshShoppingCart();\r\n } else {\r\n alert(response.error_message);\r\n }\r\n }, 'json');\r\n }\r\n\r\n /**\r\n * Keeps shopping cart in a fixed position by setting margin top\r\n *\r\n * @returns\r\n */\r\n function setShoppingCartPlacement() {\r\n var shoppingCart = $('div#shopping_cart_small');\r\n if (!shoppingCart.length) {\r\n // Shopping cart does not exist on page\r\n return;\r\n }\r\n if (shoppingCart !== null) {\r\n var elpos = shoppingCart.offset().top; // take current situation\r\n var windowpos = $(window).scrollTop();\r\n\r\n // Only adjust margin top if window is not scrolled below the products\r\n if (windowpos < (productsHeight + originalelpos)) {\r\n var finaldestination = windowpos + originalelpos;\r\n\r\n if (windowpos > (originalelpos - headerHeight)) {\r\n shoppingCart.stop().animate({'margin-top': windowpos - originalelpos + headerHeight}, 0);\r\n } else {\r\n shoppingCart.stop().animate({'margin-top': 0}, 0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //Run on scroll\r\n $(window).scroll(function () {\r\n setShoppingCartPlacement();\r\n });\r\n\r\n /**\r\n * Adds anchors to all product category menu options if screen is small.\r\n *\r\n * @returns\r\n */\r\n function addAnchorsToMenuIfSmallScreen() {\r\n if ($(window).width() >= 768) {\r\n return;\r\n }\r\n\r\n $('nav#menu a').each(function () {\r\n if ($(this).parent().find('ul').length) {\r\n // Menus with child menu\r\n var newHref = $(this).attr('href') + \"#breadcrumbs_row\";\r\n $(this).attr('href', newHref);\r\n } else {\r\n // Menus with no children\r\n var newHref = $(this).attr('href') + \"#products_wrapper\";\r\n $(this).attr('href', newHref);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Since the header is fixed at the top, anchors will not work correctly.\r\n * Scroll up to compensate for the header height.\r\n *\r\n * @returns\r\n */\r\n function scrollToCompensateForHeader() {\r\n var url = window.location.hash;\r\n var index = url.indexOf(\"#\");\r\n if (index != -1) {\r\n var header = $('header.navbar');\r\n var y = $(window).scrollTop(); //your current y position on the page\r\n $(window).scrollTop(y);\r\n }\r\n }\r\n\r\n function search() {\r\n var searchText = $.trim($('input#product_search_input').val());\r\n // Do nothing if empty search word\r\n if (searchText === '') {\r\n return;\r\n }\r\n\r\n //Post search text\r\n $.ajax({\r\n type: 'POST',\r\n url: '/includes/shop/ajax/ajax.php',\r\n data: {\r\n action: 'product_search',\r\n search_text: searchText\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n // Success\r\n\r\n // Check if product was added automatically to shopping cart (only one product matchced searh\r\n if (response.refresh_shopping_cart !== undefined && response.refresh_shopping_cart === '1') {\r\n // Display success message\r\n $('div#product_search_result_wrapper').html(response.info_message);\r\n\r\n // refresh shopping cart\r\n refreshShoppingCart('product_added');\r\n\r\n // Remove text in search field\r\n $('input#product_search_input').val('');\r\n } else {\r\n // Update search result table\r\n $('div#product_search_result_wrapper').html(response.html);\r\n }\r\n\r\n } else {\r\n alert(response.error_message);\r\n }\r\n //ajaxLockActive = false;\r\n }, 'json');\r\n }\r\n\r\n $(document).on('click', 'div#select_consuming_location_wrapper button#select_eat_in_button, div#select_consuming_location_wrapper button#select_take_away_button', function () {\r\n let consumingLocation = $(this).val();\r\n let shoppingCartSmall = $('div#shopping_cart_small div.shopping_cart_product_container');\r\n let products = getProductsFromShoppingCart(shoppingCartSmall);\r\n\r\n if(products.length > 0) {\r\n if (!confirm('Dersom du endrer denne nå, kan det påvirke varene du har lagt i handlekurven.')) {\r\n return;\r\n }\r\n }\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPathSetConsumingLocation,\r\n data: {\r\n consuming_location: consumingLocation\r\n },\r\n dataType: 'json'\r\n }).success(function (data) {\r\n location.reload();\r\n }).error(function (data) {\r\n modalTitle = 'Det oppstod en feil!';\r\n modalMessage = $.parseJSON(data.responseText).errors;\r\n modalAlertType = 'error';\r\n\r\n displayInfoMessageModal(modalParentElementInDOM, modalTitle, modalMessage, modalButtonText, modalAlertType);\r\n });\r\n });\r\n});","var ajaxPath = '/includes/shop/ajax/ajax.php';\r\nvar ajaxLocked = false;\r\nconst ajaxPathCheckCheckoutIfDeliveryTimeMatchesProductionTime = '/action/shopping-cart/check-checkout-if-delivery-time-matches-production-time';\r\nconst ajaxPathGetRestaurantTables = '/action/checkout/get-restaurant-tables';\r\nvar modalParentElementInDOM = $('div#main-container');\r\nvar modalTitle = '';\r\nvar modalMessage = '';\r\nvar modalButtonText = 'Lukk';\r\nvar modalAlertType = '';\r\n\r\n$(document).ready(function () {\r\n\r\n $(document).on('change', 'div.timepoint_row .timebox', function () {\r\n //let selectedDay = $('div.timepoint_row select[name^=\"time_point_arr\"]').children(\"option:selected\").val();\r\n let timeRow = $(this).closest('div.timepoint_row');\r\n let selectedDay = $('select:eq(0)', timeRow).val();\r\n let selectedTime = $('select:eq(1)', timeRow).val();\r\n validateSelectedDeliveryTimeAgainstProductsInShoppingCart(selectedDay, selectedTime);\r\n });\r\n\r\n // Switch between delivery and pickup\r\n $('div.shop-checkout-form-wrapper .btn-group button').click(function () {\r\n // If the button is already active, do nothing\r\n if ($(this).hasClass('active')) {\r\n return;\r\n }\r\n\r\n if ($(this).attr('target') === 'shop_delivery_form_wrapper') {\r\n // Display delivery form\r\n $('div#shop_delivery_form_wrapper').show();\r\n $('div#shop_pick_up_form_wrapper').hide();\r\n\r\n // Switch active class\r\n // First remove active\r\n $('div.shop-checkout-form-wrapper .btn-group button').each(function () {\r\n $(this).removeClass('active');\r\n });\r\n $(this).addClass('active');\r\n } else if ($(this).attr('target') === 'shop_pick_up_form_wrapper') {\r\n // Display pick up form\r\n $('div#shop_delivery_form_wrapper').hide();\r\n $('div#shop_pick_up_form_wrapper').show();\r\n\r\n // Switch active class\r\n // First remove active\r\n $('div.shop-checkout-form-wrapper .btn-group button').each(function () {\r\n $(this).removeClass('active');\r\n });\r\n $(this).addClass('active');\r\n }\r\n });\r\n\r\n //Selects the contact person in the other textbox based on the id written on #employee_id text box\r\n $('#employee_id').on('input', function () {\r\n let employeeId = $('#employee_id').val();\r\n $('#contact_person_picker option[employee_id=\"'+employeeId+'\"]').prop('selected', true);\r\n whenContactPersonPickerChanges();\r\n });\r\n\r\n $('#add_time_points').click(function () {\r\n if ($('.timepoint_row').length < $('#add_time_points').attr('max')){\r\n fetchAvailableDaysAndTimesWhenSelectingAStore(true);\r\n }\r\n });\r\n\r\n $('#remove_time_points').click(function () {\r\n if ($('.timepoint_row').length < 2 ){\r\n return;\r\n }\r\n let lastTimePointRow = $('.timepoint_row');\r\n lastTimePointRow.prev('div.clearfix').last().remove();\r\n lastTimePointRow.last().remove();\r\n });\r\n\r\n $('input[name=\"payment_method\"]').click(function () {\r\n if ($(this).val() === 'frontline_invoice')\r\n {\r\n $('#add_time_points').show();\r\n $('#remove_time_points').show();\r\n $('.timepoint_row').each(function( index ) {\r\n if (index !== 0)\r\n $(this).show();\r\n });\r\n }\r\n else {\r\n $('#add_time_points').hide();\r\n $('#remove_time_points').hide();\r\n $('.timepoint_row').each(function( index ) {\r\n if (index !== 0) {\r\n $(this).hide();\r\n }\r\n });\r\n }\r\n });\r\n\r\n $('select[name=\"contact_person_picker\"]').change(function () {\r\n whenContactPersonPickerChanges();\r\n });\r\n\r\n // Change in select list with registered delivery addresses\r\n // Change values in address input fields\r\n function whenContactPersonPickerChanges() {\r\n // The new values are stored as html key value pairs in the option\r\n var option = $('option:selected', $('select[name=\"contact_person_picker\"]'));\r\n\r\n $('input#employee_name').val(option.text());\r\n }\r\n\r\n $('.change_use_alternative_vat').click(function () {\r\n var sessionValue = $(this).attr('value');\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'set_session_use_alternative_vat',\r\n session_value: sessionValue\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n //alert(\"Success\");\r\n let totalPriceOnShoppingCartHtml = $('#totalPriceOnShoppingCart').html();\r\n if (totalPriceOnShoppingCartHtml !== undefined && totalPriceOnShoppingCartHtml.trim() !== \"0,00 Kr\") {\r\n location.reload();\r\n }\r\n } else {\r\n alert(\"Error: \" + response.error_message);\r\n }\r\n }, 'json');\r\n });\r\n\r\n // Change in select list with registered delivery addresses\r\n // Change values in address input fields\r\n $('select[name=\"delivery_address_picker\"]').change(function () {\r\n // The new values are stored as html key value pairs in the option\r\n var option = $('option:selected', this);\r\n\r\n $('input#address').val(option.attr('address'));\r\n $('input#zip').val(option.attr('zip'));\r\n $('input#city').val(option.attr('city'));\r\n $('input#entrance').val(option.attr('entrance'));\r\n $('input#floor').val(option.attr('floor'));\r\n $('textarea#extra_adress_info').val(option.attr('extra_info'));\r\n });\r\n\r\n // Fetch available times for a another day\r\n //$(document).on('change', 'select[name=\"pick_up_days_from_now\"]', function () {\r\n $(document).on('change', '.pick_up_days_from_now', function () {\r\n var daysFromNow = $(this).val();\r\n updateTimeOfTextBox(daysFromNow, $(this).attr('array_id'));\r\n });\r\nvar a= true;\r\n /**\r\n * If textbox_array_id == -2 it sets for the last one. If textbox_array_id == -1, it sets for all textboxes\r\n * @param daysFromNow\r\n * @param textbox_array_id\r\n */\r\n function updateTimeOfTextBox(daysFromNow, textbox_array_id) {\r\n var frontlineStoreId = $('input[name=frontline_store_id]:checked:first').val();\r\n\r\n if (isNaN(daysFromNow)) {\r\n alert('Ugyldig dag valgt');\r\n return;\r\n }\r\n if (isAdmin && !a)\r\n return;\r\n a = false;\r\n\r\n var delivery = getGetParameterByName(\"delivery\") === \"1\";\r\n\r\n var storeSyncCode = '';\r\n var action = 'get_available_pick_up_times';\r\n if (delivery)\r\n {\r\n action = 'get_available_delivery_times';\r\n if ($('select[name=\"target_sync_code_override\"]').length) {\r\n storeSyncCode = $('select[name=\"target_sync_code_override\"]').val();\r\n } else {\r\n storeSyncCode = $('input[name=\"frontline_store_sync_code_that_covers_zip\"]').val();\r\n }\r\n\r\n // If zip code have changed\r\n var newZipCodePostValue = '';\r\n var newZipCode = $.trim($('input[name=\"zip\"]').val());\r\n var originalZipCode = $.trim($('input[name=\"original_zip\"]').val());\r\n\r\n if (newZipCode !== originalZipCode) {\r\n newZipCodePostValue = newZipCode;\r\n }\r\n\r\n if (isNaN(daysFromNow)) {\r\n alert('Ugyldig dag valgt');\r\n return;\r\n }\r\n }\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: action,\r\n array_id: textbox_array_id,\r\n frontline_store_id: frontlineStoreId,\r\n days_from_now: daysFromNow,\r\n\r\n sync_code: storeSyncCode,\r\n new_zip_code: newZipCodePostValue\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n //$('select[name=\"pick_up_time\"]').replaceWith(response.html);\r\n if (textbox_array_id === -2) {\r\n $('.timebox').last().next('input').remove();\r\n $('.timebox').last().replaceWith(response.html);\r\n }\r\n else if (textbox_array_id === -1) {\r\n $('.timebox').next('input').remove();\r\n $('.timebox').replaceWith(response.html);\r\n }\r\n else {\r\n $('.timebox[array_id=\"' + textbox_array_id + '\"]').next('input').remove();\r\n $('.timebox[array_id=\"' + textbox_array_id + '\"]').replaceWith(response.html);\r\n }\r\n\r\n if($('option', $('.timebox[array_id=\"' + textbox_array_id + '\"]')).length == 0){\r\n $('.timebox[array_id=\"' + textbox_array_id + '\"]').html('');\r\n }\r\n } else {\r\n alert(response.error_message);\r\n }\r\n }, 'json');\r\n }\r\n\r\n // Fetch available days and times when selecting a store\r\n $(\"input[name=frontline_store_id]:radio\").change(function () {\r\n fetchAvailableDaysAndTimesWhenSelectingAStore();\r\n getRestaurantTableSelector();\r\n });\r\n\r\n function getRestaurantTableSelector() {\r\n if($('div#restaurant_table_panel').length) {\r\n\r\n if(ajaxLocked) {\r\n return;\r\n }\r\n let frontlineStoreId = $('input[name=frontline_store_id]:checked:first').val();\r\n\r\n ajaxLocked = true;\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: ajaxPathGetRestaurantTables,\r\n data: {\r\n frontline_store_id: frontlineStoreId\r\n },\r\n dataType: 'json'\r\n }).success(function (data) {\r\n $('div#restaurant_table_form_group').html(data.html);\r\n\r\n if ($('div#frontline_store_id_radio').attr('posted_frontline_store_id') === frontlineStoreId) {\r\n\r\n $(\"div#restaurant_table_panel select#select_restaurant_table\").val($('div#restaurant_table_panel').attr('posted_restaurant_table')).change();\r\n }\r\n\r\n }).error(function (data) {\r\n modalTitle = 'En feil oppstod';\r\n modalMessage = $.parseJSON(data.responseText).errors;\r\n modalAlertType = 'error';\r\n\r\n displayInfoMessageModal(modalParentElementInDOM, modalTitle, modalMessage, modalButtonText, modalAlertType);\r\n }).always(function () {\r\n ajaxLocked = false;\r\n });\r\n }\r\n }\r\n\r\n function fetchAvailableDaysAndTimesWhenSelectingAStore(appendHtml) {\r\n if (!appendHtml)\r\n {\r\n appendHtml = false;\r\n }\r\n var frontlineStoreId = $('input[name=frontline_store_id]:checked:first').val();\r\n var arrayId = $('.timepoint_row').length;//$('[name*=\"time_point_arr\"]').length/2;\r\n var delivery = getGetParameterByName(\"delivery\") === \"1\";\r\n var action = 'get_available_pick_up_times';\r\n\r\n var storeSyncCode = '';\r\n if (delivery)\r\n {\r\n action = 'get_available_delivery_times';\r\n if ($('select[name=\"target_sync_code_override\"]').length) {\r\n storeSyncCode = $('select[name=\"target_sync_code_override\"]').val();\r\n } else {\r\n storeSyncCode = $('input[name=\"frontline_store_sync_code_that_covers_zip\"]').val();\r\n }\r\n\r\n // If zip code have changed\r\n var newZipCodePostValue = '';\r\n var newZipCode = $.trim($('input[name=\"zip\"]').val());\r\n var originalZipCode = $.trim($('input[name=\"original_zip\"]').val());\r\n\r\n if (newZipCode !== originalZipCode) {\r\n newZipCodePostValue = newZipCode;\r\n }\r\n /*\r\n //var daysFromNow = $('select[name=\"delivery_days_from_now\"]').val();\r\n var daysFromNow = 0;//$('.delivery_days_from_now').val();\r\n\r\n if (isNaN(daysFromNow)) {\r\n alert('Ugyldig dag valgt');\r\n return;\r\n }*/\r\n }\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: action,\r\n frontline_store_id: frontlineStoreId,\r\n array_id: arrayId,\r\n\r\n sync_code: storeSyncCode,\r\n //days_from_now: daysFromNow,\r\n new_zip_code: newZipCodePostValue\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n if (appendHtml)\r\n {\r\n $('div#delivery_time_form_group').append('
' + response.html);\r\n }\r\n else {\r\n $('div#delivery_time_form_group').html(response.html);\r\n }\r\n\r\n let daysFromNow = $('.pick_up_days_from_now').find(\"option:first-child\").val();\r\n\r\n updateTimeOfTextBox(daysFromNow, arrayId);\r\n appendHtml = true;\r\n activateDatepicker();\r\n } else {\r\n alert(response.error_message);\r\n }\r\n }, 'json');\r\n }\r\n\r\n if ($('form#checkout_pick_up_form').is(':visible')) {\r\n if ($(\"input[name='frontline_store_id']:checked\").val()) {\r\n $(\"input[name='frontline_store_id']:checked\").change();\r\n }\r\n }\r\n\r\n // Fetch available times for a another day in the delivery form\r\n function onChange_delivery_days_from_now(textbox_array_id, daysFromNow) {\r\n if (!textbox_array_id){\r\n textbox_array_id = 0;\r\n }\r\n if (!daysFromNow){\r\n daysFromNow = 0;\r\n }\r\n var storeSyncCode = '';\r\n if ($('select[name=\"target_sync_code_override\"]').length) {\r\n storeSyncCode = $('select[name=\"target_sync_code_override\"]').val();\r\n } else {\r\n storeSyncCode = $('input[name=\"frontline_store_sync_code_that_covers_zip\"]').val();\r\n }\r\n\r\n // If zip code have changed\r\n var newZipCodePostValue = '';\r\n var newZipCode = $.trim($('input[name=\"zip\"]').val());\r\n var originalZipCode = $.trim($('input[name=\"original_zip\"]').val());\r\n\r\n if (newZipCode !== originalZipCode) {\r\n newZipCodePostValue = newZipCode;\r\n }\r\n\r\n if (isNaN(daysFromNow)) {\r\n alert('Ugyldig dag valgt');\r\n return;\r\n }\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'get_available_delivery_times',\r\n array_id: textbox_array_id,\r\n sync_code: storeSyncCode,\r\n days_from_now: daysFromNow,\r\n new_zip_code: newZipCodePostValue\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n //$('select[name=\"delivery_time\"]').replaceWith(response.html);\r\n if (textbox_array_id === -2) {\r\n $('.timebox').last().next('input').remove();\r\n $('.timebox').last().replaceWith(response.html);\r\n }\r\n else if (textbox_array_id === -1) {\r\n $('.timebox').next('input').remove();\r\n $('.timebox').replaceWith(response.html);\r\n }\r\n else {\r\n $('.timebox[array_id=\"' + textbox_array_id + '\"]').next('input').remove();\r\n $('.timebox[array_id=\"' + textbox_array_id + '\"]').replaceWith(response.html);\r\n }\r\n if($('option', $('.timebox[array_id=\"' + textbox_array_id + '\"]')).length == 0){\r\n $('.timebox[array_id=\"' + textbox_array_id + '\"]').html('');\r\n }\r\n } else {\r\n alert(response.error_message);\r\n }\r\n }, 'json');\r\n }\r\n\r\n //$(document).on('change', 'select[name=\"delivery_days_from_now\"]', function () {\r\n $(document).on('change', '.delivery_days_from_now', function () {\r\n var daysFromNow = $(this).val();\r\n onChange_delivery_days_from_now($(this).attr('array_id'), daysFromNow);\r\n /*\r\n var storeSyncCode = '';\r\n if ($('select[name=\"target_sync_code_override\"]').length) {\r\n storeSyncCode = $('select[name=\"target_sync_code_override\"]').val();\r\n } else {\r\n storeSyncCode = $('input[name=\"frontline_store_sync_code_that_covers_zip\"]').val();\r\n }\r\n\r\n // If zip code have changed\r\n var newZipCodePostValue = '';\r\n var newZipCode = $.trim($('input[name=\"zip\"]').val());\r\n var originalZipCode = $.trim($('input[name=\"original_zip\"]').val());\r\n\r\n if (newZipCode !== originalZipCode) {\r\n newZipCodePostValue = newZipCode;\r\n }\r\n var daysFromNow = $(this).val();\r\n\r\n if (isNaN(daysFromNow)) {\r\n alert('Ugyldig dag valgt');\r\n return;\r\n }\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'get_available_delivery_times',\r\n sync_code: storeSyncCode,\r\n days_from_now: daysFromNow,\r\n new_zip_code: newZipCodePostValue\r\n }\r\n }).done(function(response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n $('select[name=\"delivery_time\"]').replaceWith(response.html);\r\n } else {\r\n alert(response.error_message);\r\n }\r\n }, 'json');\r\n */\r\n });\r\n //if ($('select[name=\"delivery_days_from_now\"]').length) {\r\n if ($('.delivery_days_from_now').length) {\r\n onChange_delivery_days_from_now();\r\n }\r\n\r\n\r\n // Fetch available days and times when admin is selecting a store in the delivery form\r\n $('select[name=\"target_sync_code_override\"]').change(function () {\r\n var storeSyncCode = $('select[name=\"target_sync_code_override\"]').val();\r\n\r\n onChange_delivery_days_from_now();\r\n return;\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: ajaxPath,\r\n data: {\r\n action: 'get_available_delivery_times',\r\n sync_code: storeSyncCode,\r\n days_from_now: 0\r\n }\r\n }).done(function (response) {\r\n // Validate response\r\n var success = true;\r\n if (response.status === undefined) {\r\n success = false;\r\n } else if (response.status.toUpperCase() !== 'OK') {\r\n success = false;\r\n }\r\n\r\n if (success) {\r\n $('select[name=\"delivery_time\"]').replaceWith(response.html);\r\n //$('div#delivery_time_form_group_delivery_form').html(response.html);\r\n } else {\r\n alert(response.error_message);\r\n }\r\n }, 'json');\r\n });\r\n\r\n // When changing pick up day, set options in time select. \r\n // If \"today\" another select list is required than if its another day\r\n // If its another day theres possible to select all times from when the store opens\r\n /*$('select[name=\"pick_up_days_from_now\"]').change(function(){\r\n var select = $('select[name=\"pick_up_days_from_now\"]');\r\n var timeSelect = $('select[name=\"pick_up_time\"]');\r\n if (select.val() === '0') {\r\n // \"Today\"\r\n timeSelect.empty().append($('div#pick_up_time_options_today').html());\r\n } else {\r\n // Another day in the future\r\n timeSelect.empty().append($('div#pick_up_time_options_other_days').html());\r\n }\r\n });*/\r\n\r\n // When changing delivery day, set options in time select. \r\n // If \"today\" another select list is required than if its another day\r\n // If its another day theres possible to select all times from when the store opens\r\n //$('select[name=\"delivery_days_from_now\"]').change(function () {\r\n $('.delivery_days_from_now').change(function () {\r\n //var select = $('select[name=\"delivery_days_from_now\"]');\r\n var select = $('.delivery_days_from_now');\r\n //var timeSelect = $('select[name=\"delivery_time\"]');\r\n var timeSelect = $('select[name=\"delivery_time\"]');\r\n if (select.val() === '0') {\r\n // \"Today\"\r\n timeSelect.empty().append($('div#delivery_time_options_today').html());\r\n } else {\r\n // Another day in the future\r\n timeSelect.empty().append($('div#delivery_time_options_other_days').html());\r\n }\r\n });\r\n\r\n function getGetParameterByName(name, url) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n var isAdmin = getGetParameterByName('admin') != null;\r\n\r\n // Prevent double submission\r\n //$('form#checkout_delivery_form').preventDoubleSubmission();\r\n //$('form#checkout_pick_up_form').preventDoubleSubmission();\r\n\r\n $('button#register-button').click(function (e) {\r\n if (ajaxLocked === true) {\r\n return;\r\n }\r\n\r\n ajaxLocked = true;\r\n\r\n if ($('#contact_person_picker').length > 0) {\r\n if ($('#contact_person_picker').val() == null || $('#contact_person_picker').val() == '') {\r\n alert('Du må velge kontaktperson');\r\n ajaxLocked = false;\r\n return;\r\n }\r\n }\r\n\r\n if ($('#tosCheckbox').length > 0) {\r\n if (!$('#tosCheckbox').is(':checked')) {\r\n alert('Du må akseptere våre kjøpsvilkår for å bestille');\r\n ajaxLocked = false;\r\n return;\r\n }\r\n }\r\n\r\n if(!validateCheckoutForm()){\r\n alert('Tidspunkt må velges.');\r\n ajaxLocked = false;\r\n return;\r\n }\r\n\r\n $('img#checkout_submit_loadig').removeClass('hidden');\r\n $(this).addClass('hidden');\r\n\r\n //$(this).replaceWith('' + message + '
' +\r\n '