{"version":3,"sources":["account.ts","cart.ts","catalog.ts","checkout.ts","common.ts","other.ts","wishlist.ts","startup.ts"],"names":["Account","Cart","Init","$","document","on","Update","ForgotPassword","ChangePassword","ResetPassword","Common","formValidate","Register","e","which","click","focusout","email","this","val","ajax","type","url","data","success","response","Result","showCheckEmailMessageBox","Message","LoginCaption","ResetPasswordCaption","Back","Caption","formName","form","serialize","headers","RequestVerificationToken","toString","dataType","showMessage","showMessageBox","replace","error","xhr","ajaxOptions","thrownError","console","log","status","removeClass","jQuery","length","checked","NeedActivation","showActivateAccountMessageBox","window","location","href","grecaptcha","reset","value","Login","returnUrl","URI","path","html","replaceWith","filter","alert","_url","URLSearchParams","search","get","showResetPasswordMessageBox","ReturnUrl","SendConfirmationEmail","AddToCart","productID","amount","RefreshCartInfo","reload","scrollTo","showAddToCartMessageBox","RemoveFromCart","id","refreshDropdown","refreshCartWidget","customNumber","RefreshCartInfoPartial","find","async","beforeSend","addClass","cnt","text","ShowCountDown","SetSazimeCesko","countDown","countDownDate","Date","attr","getTime","now","distance","hours","Math","floor","minutes","seconds","sTime","toLocaleString","minimumIntegerDigits","minimumFractionDigits","useGrouping","clearInterval","cartCountDownInterval","setInterval","undefined","createTile","SazimeCeskoAddToCart","options","loop","rewind","trigger","AddVoucherToCart","voucher","UpdateCart","updateOnly","add","cartID","Catalog","Checkout","Other","WishList","SetTooltip","placement","each","index","popover","ResetFilter","_ord","_kat","hasQuery","query","kat","order","addQuery","SetURL","empty","IsMobileViewPort","CloseFilter","GetProductsAsync","GetFilterAsync","GetPriceSliderAsync","ScrollToTop","event","preventDefault","AutocompleteSearchSetup","easyAutocomplete","GetAutocompleteSearchOpt","append","_path","_query","_accept","routa","view","Accept","complete","GetProducts","_a","sent","_proc","getElementById","noUiSlider","updateOptions","start","range","min","max","GetPriceSlider","SetCheckBox","i","element","collapse","startHeight","openedClass","closest","item","content","children","itemParents","parents","slice","css","is","height","endHeight","originalEvent","propertyName","input","list","items","toArray","map","ps","PerfectScrollbar","wheelSpeed","wheelPropagation","results","matched","toLowerCase","indexOf","toggleClass","update","GetFilter","GetHTMLAsync","_bread","parseHTML","GetHTML","GetTagsAsync","GetTags","animate","scrollTop","offset","top","GetFilterJSON","_prop","removeQuery","properties","_val","_chk","_item","x","PropID","HodnID","Hodnota","hidden","not","prop","matchMedia","matches","body","blockSidebar","history","pushState","valueOf","searchField","searchForm","getValue","Nazev","ajaxSettings","method","preparePostData","template","dostupnost","concat","Soubor","dostupnostText","formatCurrency","Celkem","Symbol","maxNumberOfElements","match","enabled","onChooseEvent","desc","getSelectedItemData","URL","minCharNumber","requestDelay","GetCategMobileMenu","touchClick","elements","callback","onTouchstart","touchStartData","touches","target","currentTarget","touch","changedTouches","timestamp","onTouchEnd","identity","abs","sqrt","pow","screenX","screenY","preventTouchClick","onClick","removeEventListener","addEventListener","setTimeout","imgWidth","imgHeight","outerWidth","outerHeight","ratio","parseInt","newHeight","key","parent","change","_pg","page","off","mobileMedia","bodyWidth","width","OpenFilter","CMenu","container","currentItem","onMouseenter","bind","onMouseleave","onTouchClick","prototype","targetItem","unsetCurrentItem","setCurrentItem","hasSubmenu","openSubmenu","closeSubmenu","getSubmenu","submenu","itemTop","viewportHeight","position","menuTop","maxHeight","innerHeight","paddingY","submenuHeight","left","innerWidth","submenuInstance","CDepartments","linksWrapper","button","mode","fixedBy","fixedHeight","onButtonClick","onGlobalClick","close","open","setMode","closeImmediately","documentHeight","documentElement","clientHeight","contentRect","getBoundingClientRect","containerTop","hasClass","submenuTop","departmentsElement","GetCategMenu","onpopstate","state","IsCatalog","from","to","slider","titleValues","querySelector","create","connect","step","direction","format","wNumb","decimals","thousand","values","handle","innerHTML","unencoded","isTap","positions","baguetteBox","run","buttons","cookie","PageLink","DeleteFilterTag","remove","orderInfo","delivery","parseFloat","payment","cart","cartProducts","cartSales","currencySymbol","totalSum","isNaN","SetPaymentMethods","idZpDoruc","SetCheckoutProducts","SetOrderSum","GetSelectedDelivery","personalDelivery","idPobocka","parcelID","parcelNazev","parcelJSON","o","innerText","saveFormData","saveFormToSessionStorage","sessionStorage","setItem","loadFormData","loadFormFromSessionStorage","getItem","elem","checkPersonalDelivery","show","hide","toggle","GetParcelJSON","nazev","ulice","misto","psc","stat","parcel","JSON","stringify","SetDeliveryMethods","CreateOrder","SelectBranchWidget","itemsCount","disabled","idStat","idPayment","GetSelectedPayment","AfterDeliveryMethodSelect","AfterPaymentMethodSelect","da","model","useDeliveryAddress","chciZadatFaktUdaje","form1Valid","checkedTerms1","checkedTerms2","fa","serializeArray","reduce","acc","f","name","polozky","parse","UseDodaci","ChciZadatFaktUdaje","DoruceniID","PobockaID","ParcelID","ParcelNazev","ParcelJSON","PlatbaID","IC","DIC","Fakturacni_adresa","Dodaci_adresa","Poznamka","Polozky","contentType","redirectPost","scrollIntoView","typ","countryCode","messageHandler_1","messageHandler_2","messageHandler_3","messageHandler_4","messageHandler_5","h","Packeta","Widget","pick","point","parcelName","place","nameStreet","street","city","zip","country","setAttribute","message","swal","address","municipality_name","showParcelWidget","dpdWidget","contactInfo","pickupPointResult","isTrusted","zipCode","parcelshop","detail","pclshopid","zipcode","ctrcode","toUpperCase","msg","icon","timeout","fire","toast","showConfirmButton","timer","timerProgressBar","Swal","title","showCancelButton","showCloseButton","grow","didOpen","showLoading","onload","swalTitle","getTitle","style","display","hideLoading","toCartCaption","toBackCaption","confirmButtonText","cancelButtonText","reverseButtons","buttonsStyling","customClass","confirmButton","cancelButton","then","result","retunUrl","toLoginCaption","toResetPasswordCaption","showDenyButton","denyButtonText","denyButton","isConfirmed","isDenied","AddURLParam","RemoveURLParam","RemoveQueryString","uri","clean_uri","substring","replaceState","valid","validate","errorList","createElement","appendChild","action","submit","suffix","Intl","NumberFormat","currency","statusText","SendContactForm","SetCookieConsent","cookieconsent","initCookieConsent","current_lang","page_scripts","autorun","delay","autoclear_cookies","gui_options","consent_modal","layout","transition","settings_modal","onAccept","cookies","allowedCategory","dataLayer","push","consentType","languages","cs","description","primary_btn","role","secondary_btn","save_settings_btn","accept_all_btn","reject_all_btn","close_btn_label","blocks","readonly","validCookie","RefreshWishList","refreshWishListWidget","Pocet","RemoveFromWishList","AddToWishList","pathname"],"mappings":"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","file":"site.min.js","sourcesContent":["namespace Account {\r\n export function Init() {\r\n $(document).on(\"click\", '[data-save-form=\"formF\"]', function () { Account.Update('formF', $('#formF'), '/account/update-billing-address'); })\r\n $(document).on(\"click\", '[data-save-form=\"formD\"]', function () { Account.Update('formD', $('#formD'), '/account/update-delivery-address'); })\r\n $(document).on(\"click\", '[data-save-form=\"formO\"]', function () { Account.Update('formO', $('#formO'), '/account/update-other-info-klient'); })\r\n $(document).on(\"click\", '#btnSendResetRequest', function () { Account.ForgotPassword('frmForgotPassword'); })\r\n $(document).on(\"click\", '#btnChangePassword', function () { Account.ChangePassword('frmChangePassword'); })\r\n $(document).on(\"click\", '#btnResetPassword', function () { Account.ResetPassword('frmResetPassword'); })\r\n $(document).on(\"change\", '#frmForgotPassword', function () { if (!Common.formValidate('frmForgotPassword')) return; })\r\n //$(document).on(\"change\", '#frmResetPassword', function () { if (!Common.formValidate('frmResetPassword')) return; })\r\n $(document).on(\"click\", '#btn-register', function () { Account.Register(); })\r\n $(document).on('keypress', '[name=\"Email\"],[name=\"Password\"]', function (e) {\r\n if (e.which == 13) {\r\n $('#frmLogin [name=\"Login\"]').click();\r\n }\r\n });\r\n $(document).on('keypress', '#frmChangePassword [name=\"CurrentPassword\"],#frmChangePassword [name=\"NewPassword\"],#frmChangePassword [name=\"ConfirmPassword\"]', function (e) {\r\n if (e.which == 13) {\r\n Account.ChangePassword('frmChangePassword');\r\n }\r\n });\r\n $('#registration-form [name=\"Email\"]').focusout(function (e) {\r\n var email = $(this).val();\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/account/check-email\",\r\n data: { 'email': email },\r\n success: function (response) {\r\n if (response.Result != true) {\r\n Common.showCheckEmailMessageBox(response.Message, response.LoginCaption, response.ResetPasswordCaption, response.Back, response.Caption, email);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n export function Update(formName, form, url) {\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: url,\r\n data: form.serialize(),\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessage(response.Message, 'success', 1000);\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status, 'error');\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function Register() {\r\n var formName = 'registration-form';\r\n if (!Common.formValidate(formName)) return;\r\n var checkedConsent = (jQuery(\"#checkConsent\").length > 0) && (jQuery(\"#checkConsent\")[0] as HTMLInputElement).checked;\r\n if (!checkedConsent) {\r\n Common.showMessageBox((jQuery(\"#errTermsMsg\")[0] as HTMLInputElement).value, 'warning');\r\n return;\r\n }\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/register\",\r\n data: $('#' + formName).serialize(),\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n if (response.NeedActivation == true) {\r\n Common.showActivateAccountMessageBox(response.Message.toString());\r\n } else {\r\n window.location.href = \"/\";\r\n }\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n (window as any).grecaptcha.reset();\r\n }\r\n\r\n export function Login(returnUrl) {\r\n var formName = 'frmLogin';\r\n if (!Common.formValidate(formName)) return;\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/login?returnUrl=\" + returnUrl,\r\n data: $('#frmLogin').serialize(),\r\n headers: { \"RequestVerificationToken\": $('#frmLogin' + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n success: function (response) {\r\n if (response.Result == false) {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n } else if (response.Result == true) {\r\n var _url = new URI(window.location.href);\r\n \r\n if ((_url.path() == \"/login\") && (returnUrl.length == 0)) {\r\n\r\n window.location.href = '/';\r\n }\r\n else {\r\n window.location.href = returnUrl;\r\n }\r\n } else {\r\n var html = $(response);\r\n $('.block').replaceWith(html.filter('.block'));\r\n }\r\n },\r\n error: function (xhr) {\r\n alert(xhr.status);\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function ForgotPassword(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n var returnUrl = (new URLSearchParams(window.location.search)).get('ReturnUrl');\r\n var _url = \"/forgot-password\";\r\n if (returnUrl != null) _url = \"/forgot-password?ReturnUrl=\" + returnUrl;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: _url,\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function ChangePassword(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/change-password\",\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n $('[name=\"CurrentPassword\"]').val('');\r\n $('[name=\"NewPassword\"]').val('');\r\n $('[name=\"ConfirmPassword\"]').val('');\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function ResetPassword(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/reset-password\",\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showResetPasswordMessageBox(response.Message, 'success', response.ReturnUrl)\r\n }\r\n else {\r\n Common.showResetPasswordMessageBox(response.Message, 'warning','');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function SendConfirmationEmail(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/unconfirm-email\",\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n}","namespace Cart {\r\n export var cartCountDownInterval = -1;\r\n\r\n export function Init() {\r\n $(document).on(\"click\", '#cart-info .dropcart__product-remove', function () { Cart.RemoveFromCart($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.cart-table__body .cart-table__column--remove', function () { Cart.RemoveFromCart($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.product-card__actions .product-card__addtocart', function () { Cart.AddToCart($(this).data(\"id\"), $(this).data(\"amount\")); })\r\n $(document).on(\"click\", '.wishlist__column--tocart', function () { Cart.AddToCart($(this).data(\"id\"), $(this).data(\"amount\")); })\r\n //$(document).on(\"click\", '#cart-info-mobile .indicator__button ', function (e) { Cart.refreshCartWidget(true); e.stopPropagation(); })\r\n $(document).on(\"click\", '#planetwe-check', function () {\r\n Cart.SazimeCeskoAddToCart((jQuery(\"#planetwe-check\")[0] as HTMLInputElement).checked);\r\n });\r\n $(document).on(\"click\", '#cart-info .indicator__button ', function () { Cart.refreshCartWidget(true); })\r\n $(document).on(\"click\", '*[name=\"voucher-in-cart\"] button', function () { Cart.RemoveFromCart($(this).data(\"id\")); })\r\n $(document).on('keypress', '.cart__coupon-form input', function (e) {\r\n if (e.which == 13) {\r\n $('.cart__coupon-form button').click();\r\n }\r\n });\r\n\r\n if ($('.owl-carousel').length > 0) {\r\n $('.owl-carousel').data('owl.carousel').options.loop = false;\r\n $('.owl-carousel').data('owl.carousel').options.rewind = true;\r\n $('.owl-carousel').trigger('refresh.owl.carousel');\r\n }\r\n ShowCountDown();\r\n }\r\n\r\n export function AddToCart(productID, amount) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/addtocart',\r\n data: ({ 'productID': productID, 'amount': amount }),\r\n success: function (response) {\r\n if (typeof response == \"object\") {\r\n Common.showMessageBox(response.Message, 'info');\r\n RefreshCartInfo();\r\n }\r\n else if (typeof response == \"string\") {\r\n if ($(\".cart\").length > 0) {\r\n window.location.reload();\r\n window.scrollTo(0, 0);\r\n } else {\r\n Common.showAddToCartMessageBox(response, $(response).data(\"tocartcaption\"), $(response).data(\"tobackcaption\"));\r\n RefreshCartInfo();\r\n }\r\n }\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function AddVoucherToCart(voucher) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/addvouchertocart',\r\n data: ({ 'voucher': voucher }),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessage(response.Message, 'success', 1200);\r\n RefreshCartInfo();\r\n }\r\n else Common.showMessageBox(response.Message, 'warning');\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function UpdateCart(productID, amount) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/addtocart',\r\n data: ({ 'productID': productID, 'amount': amount, 'updateOnly': true }),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n RefreshCartInfoPartial();\r\n }\r\n else Common.showMessageBox(response.Message, 'info');\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function RemoveFromCart(id) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/removefromcart',\r\n data: { 'id': id },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n if (($(\"#checkoutSumCart\").length > 0) || ($(\".cart\").length > 0)) {\r\n window.location.reload();\r\n }\r\n RefreshCartInfo(true);\r\n Common.showMessage(response.Message, 'info', 900);\r\n }\r\n else\r\n Common.showMessageBox(response.Message, 'error');\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function RefreshCartInfo(refreshDropdown = false) {\r\n refreshCartWidget(refreshDropdown);\r\n if ($(\".cart\").length > 0) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/cart?partial=true',\r\n success: function (response) {\r\n var html = $(response);\r\n $('.cart.block').replaceWith(html.filter('.cart.block'));\r\n (window as any).$('.input-number').customNumber();\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n }\r\n export function RefreshCartInfoPartial(refreshDropdown = false) {\r\n refreshCartWidget(refreshDropdown);\r\n if ($(\".cart\").length > 0) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/cart?partial=true',\r\n success: function (response) {\r\n var html = $(response);\r\n $('.cart__table.cart-table').replaceWith(html.find('.cart__table.cart-table'));\r\n $('.cart__totals').replaceWith(html.find('.cart__totals'));\r\n (window as any).$('.input-number').customNumber();\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n }\r\n\r\n export function refreshCartWidget(refreshDropdown = false) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcartinfo?refreshDropdown=' + refreshDropdown,\r\n async: true,\r\n beforeSend: function () { $('#cart-info .dropcart__body').addClass(\"btn-loading\"); },\r\n success: function (response) {\r\n var html = $(response);\r\n var cnt = html.find('.indicator__value');\r\n $('#cart-info .indicator__value').replaceWith(html.find('.indicator__value'));\r\n if (refreshDropdown) $('#cart-info .dropcart__body').replaceWith(html.find('.dropcart__body'));\r\n $('#cart-info-mobile .indicator__value').html(cnt.text());\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function ShowCountDown() {\r\n SetSazimeCesko();\r\n var countDownDate: number = new Date($('meta[id=cartExpirationDate]').attr(\"content\")).getTime();\r\n if (!countDownDate) return;\r\n\r\n var countDown = function () {\r\n var now = new Date().getTime();\r\n var distance = countDownDate - now;\r\n var hours = Math.floor((distance % (1000 * 60 * 60 * 60)) / (1000 * 60 * 60));\r\n var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n if (distance > 0) {\r\n var sTime = minutes.toLocaleString('en', { minimumIntegerDigits: 2, minimumFractionDigits: 0, useGrouping: false }) + \":\" + seconds.toLocaleString('en', { minimumIntegerDigits: 2, minimumFractionDigits: 0, useGrouping: false });\r\n if (hours > 0) {\r\n sTime = hours.toLocaleString('en', { minimumIntegerDigits: 1, minimumFractionDigits: 0, useGrouping: false }) + \":\" + sTime;\r\n }\r\n $(\"#cartExpiration\").html(sTime);\r\n }\r\n else {\r\n clearInterval(cartCountDownInterval);\r\n $(\"#cartExpiration\").html(\"00:00\");\r\n window.location.reload();\r\n }\r\n SetSazimeCesko();\r\n };\r\n\r\n countDown();\r\n\r\n if (cartCountDownInterval < 0) {\r\n cartCountDownInterval = setInterval(countDown, 1000);\r\n }\r\n\r\n }\r\n export function SazimeCeskoAddToCart(add) {\r\n if (jQuery(\"#planetwe-check\").length == 0) return;\r\n\r\n var productID = $(\"#sazimecesko-box\").data(\"product-id\");\r\n\r\n if (add === true) { AddToCart(productID, 1) }\r\n else {\r\n var cartID = $(\"[data-product-id='\" + productID + \"']\").attr('data-id');\r\n console.log(productID);\r\n console.log(cartID);\r\n RemoveFromCart(cartID)\r\n }\r\n }\r\n\r\n function SetSazimeCesko() {\r\n if (jQuery(\"#sazimecesko-box\").length == 0) return;\r\n if (jQuery(\"#planetwe-check\").length > 0) {\r\n (jQuery(\"#planetwe-check\")[0] as HTMLInputElement).checked = (jQuery(\"#sazimecesko-box\").attr('data-checked') == undefined);\r\n } else { (window as any).createTile(); }\r\n }\r\n}","namespace Catalog {\r\n export function Init() {\r\n\r\n // bannery eshop\r\n ResizeBanner();\r\n\r\n // disable KategItem link\r\n $(\"#filter-menu a\").click(function (event) {\r\n event.preventDefault();\r\n });\r\n\r\n // KategItem click\r\n $(\"a[data-type='kateg-item']\").click(function (event) {\r\n var key = $(this).attr(\"data-key\");\r\n var value = $(this).attr(\"data-value\");\r\n var _ord = \"\";\r\n\r\n $(\".filter-categories-alt__item--current\").removeClass(\"filter-categories-alt__item--current\");\r\n $(this).parent().addClass(\"filter-categories-alt__item--current\");\r\n\r\n var url = new URI(window.location.href);\r\n if (url.hasQuery(\"order\") === true) {\r\n _ord = url.query(true).order.toString();\r\n }\r\n\r\n url.search(\"\");\r\n url.addQuery(key, value);\r\n if (_ord.length > 0) {\r\n url.addQuery(\"order\", _ord);\r\n }\r\n SetURL(url);\r\n\r\n // pokud je mobilní tak zavřít filtr\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n\r\n GetProductsAsync(false);\r\n //ScrollToTop();\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n GetHTMLAsync();\r\n $(\"#filter-tags-par\").empty();\r\n\r\n event.preventDefault();\r\n });\r\n\r\n //$(function () {\r\n // var resizeEnd;\r\n // $(window).on('resize', function () {\r\n // clearTimeout(resizeEnd);\r\n // resizeEnd = setTimeout(function () {\r\n // $(window).trigger('resize-end');\r\n // }, 300);\r\n // });\r\n //});\r\n\r\n //$(window).on('resize-end', function () {\r\n // ResizeBanner();\r\n //});\r\n\r\n // Product sorting\r\n $(\"#product-sorting\").change(function (event) {\r\n var key = $(this).children('option:selected').data('key');\r\n var value = $(this).children('option:selected').data('value');\r\n\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n url.removeQuery(\"order\");\r\n url.addQuery(key, value);\r\n SetURL(url);\r\n\r\n GetProductsAsync(false);\r\n event.preventDefault();\r\n });\r\n\r\n $(\"#btn-load-next\").click(function (event) {\r\n var url = new URI(window.location.href);\r\n var _pg = 1;\r\n if (url.hasQuery(\"page\") === true) {\r\n _pg = parseInt(url.query(true).page.toString());\r\n if (!_pg) { _pg = 1; }\r\n }\r\n\r\n _pg++;\r\n\r\n url.removeQuery(\"page\");\r\n url.addQuery(\"page\", _pg.toString());\r\n SetURL(url);\r\n\r\n GetProductsAsync(true);\r\n event.preventDefault();\r\n });\r\n\r\n $(\"#btn-reset-filter\").click(function (event) {\r\n ResetFilter();\r\n });\r\n\r\n $('.filters-button').off('click').on('click', function (e) {\r\n OpenFilter();\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n SetCheckBox();\r\n e.preventDefault();\r\n });\r\n\r\n $('.departments__button').click(function (event) {\r\n if (($('div.departments--open').length == 0) && ($('div.departments--fixed').length == 0)) {\r\n if ($(this).attr('data-loaded') == undefined) {\r\n GetCategMenu();\r\n }\r\n }\r\n });\r\n\r\n $('[data-button-kateg]').on('click', function () {\r\n if ($('#mobile_menu_kateg').attr('data-loaded') == undefined) {\r\n GetCategMobileMenu();\r\n }\r\n });\r\n\r\n window.onpopstate = function (event) {\r\n if (event && event.state) {\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n\r\n GetProductsAsync(false);\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n GetHTMLAsync();\r\n ScrollToTop();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n // pokud je desktop tak se načtou checkBox filtry\r\n if (!IsMobileViewPort() && IsCatalog()) {\r\n GetFilterAsync();\r\n SetCheckBox();\r\n };\r\n\r\n SetTooltip('label-left', 'right');\r\n SetTooltip('label-right', 'left');\r\n\r\n // našeptávač ve vyhledávání\r\n AutocompleteSearchSetup();\r\n\r\n SetSliders();\r\n\r\n $('.gallery').each(function (index, value) {\r\n (window as any).baguetteBox.run('.gallery', { buttons: true });\r\n });\r\n\r\n $('.layout-switcher__button').on('click', function () {\r\n document.cookie = \"dlazdicetype=\" + $(this).attr(\"data-layout\");\r\n }); \r\n }\r\n\r\n export function SetTooltip(id: string, placement: string) {\r\n if ((window as any).$(\"[name='images']\").length == 0) return;\r\n\r\n (window as any).$(\"[data-toggle='\" + id + \"']\").each(function (index, value) {\r\n (window as any).$(this).popover({\r\n html: true,\r\n trigger: 'hover',\r\n placement: placement,\r\n //container: $(this) \r\n });\r\n });\r\n }\r\n\r\n export function PageLink(page: number) {\r\n var url = new URI(window.location.href);\r\n if (url.hasQuery(\"page\") === true) { url.removeQuery(\"page\"); }\r\n\r\n url.addQuery(\"page\", page.toString());\r\n SetURL(url);\r\n ScrollToTop();\r\n GetProductsAsync(false);\r\n }\r\n\r\n export function DeleteFilterTag(prop: number, value: number) {\r\n $(\".select-value[data-tag-prop='\" + prop + \"'][data-tag-value='\" + value + \"']\").remove();\r\n // pokud už není žádný tag, tak se vymaže skupina\r\n if ($(\".select-value[data-tag-prop='\" + prop + \"']\").length == 0) {\r\n $(\".select-param[data-tag-prop='\" + prop + \"']\").remove();\r\n }\r\n if ($(\".select-value[data-tag-value='-1']\").length == 0) {\r\n $(\".select-param[data-tag-prop='tags']\").remove();\r\n }\r\n if ($(\"#select-params .select-param\").length == 0) {\r\n $(\"#filter-tags-par\").empty();\r\n }\r\n\r\n var url = new URI(window.location.href);\r\n if (value == -1) {\r\n // štítky\r\n url.removeQuery(prop.toString());\r\n }\r\n else {\r\n url.removeQuery(prop.toString(), value.toString());\r\n }\r\n SetURL(url);\r\n\r\n GetProductsAsync(false);\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n event.preventDefault();\r\n }\r\n\r\n export function ResetFilter() {\r\n var _ord = \"\";\r\n var _kat = \"\";\r\n var url = new URI(window.location.href);\r\n if (url.hasQuery(\"kat\") === true) {\r\n _kat = url.query(true).kat.toString();\r\n }\r\n if (url.hasQuery(\"order\") === true) {\r\n _ord = url.query(true).order.toString();\r\n }\r\n\r\n url.search(\"\");\r\n if (_kat.length > 0) { url.addQuery(\"kat\", _kat); }\r\n if (_ord.length > 0) { url.addQuery(\"order\", _ord); }\r\n SetURL(url);\r\n\r\n $(\"#filter-tags-par\").empty();\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n ScrollToTop();\r\n event.preventDefault();\r\n }\r\n\r\n export function AutocompleteSearchSetup() {\r\n (window as any).$(\"#searchForm\").easyAutocomplete(GetAutocompleteSearchOpt(\"desktop\"));\r\n (window as any).$(\"#searchFormMobile\").easyAutocomplete(GetAutocompleteSearchOpt(\"mobile\"));\r\n\r\n $(document).on('click', 'body', function () {\r\n if ($(\".easy-autocomplete-container\")) {\r\n $(\".easy-autocomplete-container\").trigger(\"hide.eac\");\r\n }\r\n });\r\n\r\n }\r\n\r\n function SetSliders() {\r\n $('.slider-value').each(function (i, element) {\r\n const min = $(element).data('min');\r\n const max = $(element).data('max');\r\n if (min == max) {\r\n return;\r\n }\r\n\r\n const from = $(element).data('from');\r\n const to = $(element).data('to');\r\n const slider = element.querySelector('.filter-price__slider');\r\n\r\n (window as any).noUiSlider.create(slider, {\r\n start: [from, to],\r\n connect: true,\r\n step: 1,\r\n direction: 'ltr',\r\n range: {\r\n 'min': min,\r\n 'max': max\r\n },\r\n format: (window as any).wNumb({\r\n decimals: 0,\r\n thousand: \" \"\r\n //suffix: \",-\"\r\n })\r\n });\r\n\r\n const titleValues = [\r\n $(element).find('.filter-price__min-value')[0],\r\n $(element).find('.filter-price__max-value')[0]\r\n ];\r\n\r\n (slider as any).noUiSlider.on('update', function (values, handle) {\r\n titleValues[handle].innerHTML = values[handle];\r\n });\r\n\r\n if (slider.id == 'slider-price') {\r\n (slider as any).noUiSlider.on(\"change\", function (values, handle, unencoded, isTap, positions) {\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n url.removeQuery(\"p-min\");\r\n url.removeQuery(\"p-max\");\r\n if ((positions[0] != 0) || (positions[1] != 100)) {\r\n url.addQuery(\"p-min\", values[0].toString().replace(' ', ''));\r\n url.addQuery(\"p-max\", values[1].toString().replace(' ', ''));\r\n }\r\n SetURL(url);\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n GetFilterJSON();\r\n });\r\n } else {\r\n (slider as any).noUiSlider.on(\"change\", function (values, handle, unencoded, isTap, positions) {\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n url.removeQuery(slider.id);\r\n if ((positions[0] != 0) || (positions[1] != 100)) {\r\n url.addQuery(slider.id, values[0].toString().replace(' ', '') + ';' + values[1].toString().replace(' ', ''));\r\n }\r\n //SetURL(url);\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n GetFilterJSON();\r\n GetPriceSliderAsync();\r\n });\r\n }\r\n });\r\n }\r\n\r\n async function GetProductsAsync(append: boolean) {\r\n return await GetProducts(append);\r\n }\r\n\r\n function GetProducts(append: boolean) {\r\n try {\r\n $(\"#loader\").addClass(\"loading\");\r\n\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n var _IsWebPSupport = (function () {\r\n var webP = new Image();\r\n webP.onload = (window as any).WebP.onerror = function () {\r\n (window as any).callback(webP.height == 2);\r\n };\r\n webP.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';\r\n }) ? true : false;\r\n\r\n var _accept = \"text/plain; charset=utf-8\";\r\n if (_IsWebPSupport) _accept = \"image/webp; charset=utf-8\";\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': 'zbozi' },\r\n headers: {\r\n Accept: _accept\r\n },\r\n success: function (response) {\r\n var html = $(response);\r\n if (append) {\r\n $('.products-list__body').append(html.find('.products-list__body').html());\r\n } else {\r\n $('.products-list__body').replaceWith(html.find('.products-list__body'));\r\n }\r\n $('.pagination').replaceWith(html.find('.pagination'));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n //showMessage(xhr.status, 'error');\r\n },\r\n complete: function () {\r\n $(\"#loader\").removeClass(\"loading\");\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetPriceSliderAsync() {\r\n return await GetPriceSlider();\r\n }\r\n\r\n function GetPriceSlider() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': \"price\" },\r\n success: function (response) {\r\n const _proc = $(response).find('#product-price');\r\n if (_proc.data(\"min\") != _proc.data(\"max\")) {\r\n const _slider = document.getElementById(\"slider-price\");\r\n (_slider as any).noUiSlider.updateOptions({\r\n start: [_proc.data(\"from\"), _proc.data(\"to\")],\r\n range: {\r\n 'min': _proc.data(\"min\"),\r\n 'max': _proc.data(\"max\"),\r\n }\r\n });\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetFilterAsync() {\r\n return await GetFilter();\r\n }\r\n\r\n function GetFilter() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': \"filter\" },\r\n success: function (response) {\r\n var html = $(response);\r\n $('#filter-properties').replaceWith(html);\r\n SetFilterMenu();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetHTMLAsync() {\r\n return await GetHTML();\r\n }\r\n\r\n function GetHTML() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': \"html\", 'url': _url.toString() },\r\n success: function (response) {\r\n var _bread = $($.parseHTML(response)).filter(\"#breadcrumbs\").html();\r\n if (_bread != undefined) $('#breadcrumbs').html(_bread);\r\n\r\n $('#html-catalog').empty();\r\n $('#html-catalog').append($(response).filter(\"#html-h1\"));\r\n $('#html-catalog').append($(response).filter(\"#html-top\"));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetTagsAsync() {\r\n return await GetTags();\r\n }\r\n\r\n function GetTags() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'query': _query, 'view': 'tags' },\r\n success: function (response) {\r\n $('#filter-tags-par').html(response);\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n //showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n function ScrollToTop() {\r\n //return;\r\n $('html, body').animate({\r\n scrollTop: $(\"#breadcrumbs\").offset().top - 50\r\n }, 0);\r\n }\r\n\r\n function SetFilterMenu() {\r\n //SetSliders(false);\r\n SetCheckBox();\r\n\r\n $('[data-collapse]').each(function (i, element) {\r\n const collapse = element;\r\n\r\n $('[data-collapse-trigger].filter__title', collapse).on('click', function () {\r\n const openedClass = $(this).closest('[data-collapse-opened-class]').data('collapse-opened-class');\r\n const item = $(this).closest('[data-collapse-item]');\r\n const content = item.children('[data-collapse-content]');\r\n const itemParents = item.parents();\r\n\r\n itemParents.slice(0, itemParents.index(collapse) + 1).filter('[data-collapse-item]').css('height', '');\r\n\r\n if (item.is('.' + openedClass)) {\r\n const startHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n item.removeClass(openedClass);\r\n\r\n content.height(); // force reflow\r\n content.css('height', '');\r\n } else {\r\n const startHeight = content.height();\r\n\r\n item.addClass(openedClass);\r\n\r\n const endHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n content.height(); // force reflow\r\n content.css('height', endHeight + 'px');\r\n }\r\n\r\n $('[data-collapse-content]', collapse).on('transitionend', function (event) {\r\n if ((event.originalEvent as any).propertyName === 'height') {\r\n $(this).css('height', '');\r\n }\r\n });\r\n });\r\n\r\n });\r\n\r\n $('.filter-list--searchable').each(function () {\r\n const filter = $(this);\r\n const input = filter.find('.filter-list__search input');\r\n const list = filter.find('.filter-list__list');\r\n const items = filter.find('.filter-list__item').toArray().map(function (item) { return $(item); });\r\n const ps = new (window as any).PerfectScrollbar(list[0], {\r\n wheelSpeed: .25,\r\n wheelPropagation: false,\r\n });\r\n\r\n input.on('input', function () {\r\n const results = items.filter(function (item) {\r\n const itemValue = item.data('search-value').toString().toLowerCase();\r\n const matched = itemValue.indexOf(input.val().toString().toLowerCase()) !== -1;\r\n\r\n item.toggleClass('filter-list__item--not-matched', !matched);\r\n\r\n return matched;\r\n });\r\n\r\n filter.toggleClass('filter-list--no-results', results.length === 0);\r\n\r\n ps.update();\r\n });\r\n });\r\n }\r\n\r\n function GetFilterJSON() {\r\n try {\r\n var _prop = $(\"#dataProp\").data(\"value\");\r\n var _url = new URI(window.location.href).removeQuery(\"view\");\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getpropvalues',\r\n data: { 'properties': _prop, 'routa': _path, 'query': _query },\r\n success: function (response) {\r\n $('.filter-list__item').each(function (i, element) {\r\n var _chk = $(element).find('.input-check__input');\r\n if (_chk.length == 0) { return; }\r\n if ($(_chk).is(\":checked\")) { return; }\r\n\r\n var _prop = $(_chk).data('prop');\r\n var _val = $(_chk).data('value');\r\n\r\n if (_prop != \"tag\") {\r\n var _item = response.find(x => x.PropID == _prop && (x.HodnID == _val || x.Hodnota == \"true\"));\r\n if (_item == undefined) {\r\n element.hidden = true;\r\n }\r\n else {\r\n element.hidden = false;\r\n }\r\n }\r\n });\r\n\r\n $('[data-prop-vycet]').each(function (i, element) {\r\n element.hidden = false;\r\n if ($(this).find('.filter-list__item').not(':hidden').length == 0) {\r\n element.hidden = true;\r\n }\r\n });\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n //Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n function SetCheckBox() {\r\n $(\".input-check__input\").click(function (event) {\r\n var prop = $(this).attr(\"data-prop\");\r\n var value = $(this).attr(\"data-value\");\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n\r\n if ($(this).is(':checked')) {\r\n url.addQuery(prop, value);\r\n }\r\n else {\r\n url.removeQuery(prop, value);\r\n }\r\n SetURL(url);\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n GetFilterJSON();\r\n GetPriceSliderAsync();\r\n GetTagsAsync();\r\n\r\n //$(\".filter-list__list\").each(function () {\r\n // $(this).find(\"filter-list__item\").toArray().sort(function (a, b) {\r\n // return +a.dataset.name - +b.dataset.name;\r\n // });\r\n //});\r\n\r\n //ScrollToTop();\r\n });\r\n }\r\n\r\n function ResizeBanner() {\r\n var imgWidth = $(\"div[data-banner-img]\").outerWidth();\r\n var imgHeight = $(\"div[data-banner-img]\").outerHeight();\r\n\r\n $(\"div[data-banner='banner-eshop']\").each(function () {\r\n var height = parseInt($(this).attr(\"data-banner-height\"));\r\n var ratio = height / 1110;\r\n var newHeight = Math.floor(imgWidth * ratio);\r\n if (imgHeight != newHeight) $(this).css(\"height\", newHeight);\r\n });\r\n\r\n //const mobileMedia = matchMedia('(max-width: 991px)');\r\n //if (mobileMedia.matches) {\r\n $(\"div[data-banner='banner-index']\").each(function () {\r\n var height = parseInt($(this).attr(\"data-banner-height\"));\r\n var ratio = height / 840;\r\n var newHeight = Math.floor(imgWidth * ratio);\r\n if (imgHeight != newHeight) $(this).css(\"height\", newHeight);\r\n });\r\n //}\r\n\r\n $(\"div[data-banner='banner-eshop']\").css(\"visibility\", \"visible\");\r\n $(\"div[data-banner='banner-index']\").css(\"visibility\", \"visible\");\r\n }\r\n\r\n function IsMobileViewPort() {\r\n const mobileMedia = matchMedia('(max-width: 991px)');\r\n\r\n if (mobileMedia.matches) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function IsCatalog() {\r\n const blockSidebar = $('.block-sidebar');\r\n\r\n if (blockSidebar.length > 0) { return true; }\r\n return false;\r\n }\r\n\r\n function CloseFilter() {\r\n const body = $('body');\r\n const blockSidebar = $('.block-sidebar');\r\n body.css('overflow', '');\r\n body.css('paddingRight', '');\r\n\r\n blockSidebar.removeClass('block-sidebar--open');\r\n }\r\n\r\n function OpenFilter() {\r\n const body = $('body');\r\n const blockSidebar = $('.block-sidebar');\r\n const mobileMedia = matchMedia('(max-width: 991px)');\r\n\r\n if (blockSidebar.is('.block-sidebar--offcanvas--mobile') && !mobileMedia.matches) {\r\n return;\r\n }\r\n\r\n const bodyWidth = body.width();\r\n body.css('overflow', 'hidden');\r\n body.css('paddingRight', (body.width() - bodyWidth) + 'px');\r\n\r\n blockSidebar.addClass('block-sidebar--open');\r\n }\r\n\r\n function SetURL(url: URI) {\r\n window.history.pushState({ url: \"\" + url.valueOf().toString() + \"\" }, \"\", url.valueOf());\r\n }\r\n\r\n function GetAutocompleteSearchOpt(type) {\r\n if (type === \"desktop\") {\r\n var searchField = \"#searchField\";\r\n var searchForm = \"#searchForm\";\r\n }\r\n if (type === \"mobile\") {\r\n var searchField = \"#searchFieldMobile\";\r\n var searchForm = \"#searchFormMobile\";\r\n }\r\n return {\r\n url: function (data) {\r\n return \"/catalogautocomplete\";\r\n },\r\n getValue: function (element) {\r\n return element.Nazev;\r\n },\r\n ajaxSettings: {\r\n dataType: \"json\",\r\n method: \"POST\",\r\n data: {\r\n dataType: \"json\"\r\n }\r\n },\r\n preparePostData: function (data) {\r\n data.search = $(searchField).val();\r\n\r\n return data;\r\n },\r\n template: {\r\n type: \"custom\",\r\n method: function (value, item) {\r\n var css = 'text-success';\r\n if (item.dostupnost == false) css = 'text-muted'\r\n return `
\r\n
\r\n
\r\n
${item.Nazev}
\r\n
\r\n
${item.dostupnostText}
\r\n
${Common.formatCurrency(item.Celkem)} ${item.Symbol}
\r\n
\r\n
\r\n
`;\r\n }\r\n },\r\n list: {\r\n maxNumberOfElements: 10,\r\n match: {\r\n enabled: true\r\n },\r\n onChooseEvent: function () {\r\n var desc = (window as any).$(searchForm).getSelectedItemData().URL;\r\n window.location.href = \"/\"+desc;\r\n }\r\n },\r\n minCharNumber: 0,\r\n requestDelay: 400,\r\n //theme: \"square\",\r\n\r\n };\r\n }\r\n\r\n\r\n function GetCategMenu() {\r\n try {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcategmenu',\r\n success: function (response) {\r\n $('.departments__links-wrapper').replaceWith($(response).find('.departments__links-wrapper'));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n },\r\n complete: function () {\r\n $('.departments__button').attr('data-loaded', 'true');\r\n loadMenu();\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n export function GetCategMobileMenu() {\r\n try {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcategmenumobile',\r\n success: function (response) {\r\n $('#mobile_menu_kateg').html(response);\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n },\r\n complete: function () {\r\n $('#mobile_menu_kateg').attr('data-loaded', 'true');\r\n loadMobileMenu();\r\n $(\"[data-button-kateg]\").click();\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n\r\n /*\r\n // Touch Click\r\n */\r\n function touchClick(elements, callback) {\r\n elements = $(elements);\r\n\r\n let touchStartData = null;\r\n\r\n const onTouchstart = function (event) {\r\n const originalEvent = event.originalEvent;\r\n\r\n if (originalEvent.touches.length !== 1) {\r\n touchStartData = null;\r\n return;\r\n }\r\n\r\n touchStartData = {\r\n target: originalEvent.currentTarget,\r\n touch: originalEvent.changedTouches[0],\r\n timestamp: (new Date).getTime(),\r\n };\r\n };\r\n const onTouchEnd = function (event) {\r\n const originalEvent = event.originalEvent;\r\n\r\n if (\r\n !touchStartData ||\r\n originalEvent.changedTouches.length !== 1 ||\r\n originalEvent.changedTouches[0].identity !== touchStartData.touch.identity\r\n ) {\r\n return;\r\n }\r\n\r\n const timestamp = (new Date).getTime();\r\n const touch = originalEvent.changedTouches[0];\r\n const distance = Math.abs(\r\n Math.sqrt(\r\n Math.pow(touchStartData.touch.screenX - touch.screenX, 2) +\r\n Math.pow(touchStartData.touch.screenY - touch.screenY, 2)\r\n )\r\n );\r\n\r\n if (touchStartData.target === originalEvent.currentTarget && timestamp - touchStartData.timestamp < 500 && distance < 10) {\r\n callback(event);\r\n }\r\n };\r\n\r\n elements.on('touchstart', onTouchstart);\r\n elements.on('touchend', onTouchEnd);\r\n\r\n return function () {\r\n elements.off('touchstart', onTouchstart);\r\n elements.off('touchend', onTouchEnd);\r\n };\r\n }\r\n\r\n // call this in touchstart/touchend event handler\r\n function preventTouchClick() {\r\n const onClick = function (event) {\r\n event.preventDefault();\r\n\r\n document.removeEventListener('click', onClick);\r\n };\r\n document.addEventListener('click', onClick);\r\n setTimeout(function () {\r\n document.removeEventListener('click', onClick);\r\n }, 100);\r\n }\r\n\r\n function loadMenu() {\r\n\r\n /*\r\n // menu\r\n */\r\n function CMenu(element) {\r\n this.element = $(element);\r\n this.container = this.element.find('> .menu__submenus-container');\r\n this.items = this.element.find('> .menu__list > .menu__item');\r\n this.currentItem = null;\r\n\r\n this.element.data('menuInstance', this);\r\n\r\n this.onMouseenter = this.onMouseenter.bind(this);\r\n this.onMouseleave = this.onMouseleave.bind(this);\r\n this.onTouchClick = this.onTouchClick.bind(this);\r\n\r\n // add event listeners\r\n this.items.on('mouseenter', this.onMouseenter);\r\n this.element.on('mouseleave', this.onMouseleave);\r\n touchClick(this.items, this.onTouchClick);\r\n }\r\n CMenu.prototype.onMouseenter = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && targetItem.is(this.currentItem)) {\r\n return;\r\n }\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n };\r\n CMenu.prototype.onMouseleave = function () {\r\n this.unsetCurrentItem();\r\n };\r\n CMenu.prototype.onTouchClick = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && this.currentItem.is(targetItem)) {\r\n return;\r\n }\r\n\r\n if (this.hasSubmenu(targetItem)) {\r\n preventTouchClick();\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n }\r\n };\r\n CMenu.prototype.setCurrentItem = function (item) {\r\n this.currentItem = item;\r\n this.currentItem.addClass('menu__item--hover');\r\n\r\n this.openSubmenu(this.currentItem);\r\n };\r\n CMenu.prototype.unsetCurrentItem = function () {\r\n if (this.currentItem) {\r\n this.closeSubmenu(this.currentItem);\r\n\r\n this.currentItem.removeClass('menu__item--hover');\r\n this.currentItem = null;\r\n }\r\n };\r\n CMenu.prototype.getSubmenu = function (item) {\r\n let submenu = item.find('> .menu__submenu');\r\n\r\n if (submenu.length) {\r\n this.container.append(submenu);\r\n item.data('submenu', submenu);\r\n }\r\n\r\n return item.data('submenu');\r\n };\r\n CMenu.prototype.hasSubmenu = function (item) {\r\n return !!this.getSubmenu(item);\r\n };\r\n CMenu.prototype.openSubmenu = function (item) {\r\n const submenu = this.getSubmenu(item);\r\n\r\n if (!submenu) {\r\n return;\r\n }\r\n\r\n submenu.addClass('menu__submenu--display');\r\n\r\n // calc submenu position\r\n const menuTop = this.element.offset().top - $(window).scrollTop();\r\n const itemTop = item.find('> .menu__item-submenu-offset').offset().top - $(window).scrollTop();\r\n const viewportHeight = window.innerHeight;\r\n const paddingY = 20;\r\n const maxHeight = viewportHeight - paddingY * 2;\r\n\r\n submenu.css('maxHeight', maxHeight + 'px');\r\n\r\n const submenuHeight = submenu.height();\r\n const position = Math.min(\r\n Math.max(\r\n itemTop - menuTop,\r\n 0\r\n ),\r\n (viewportHeight - paddingY - submenuHeight) - menuTop\r\n );\r\n\r\n submenu.css('top', position + 'px');\r\n submenu.addClass('menu__submenu--open');\r\n\r\n\r\n const submenuRight = this.element.offset().left + this.element.width() + submenu.width();\r\n if (submenuRight > $('body').innerWidth()) {\r\n submenu.addClass('menu__submenu--reverse');\r\n }\r\n\r\n };\r\n CMenu.prototype.closeSubmenu = function (item) {\r\n const submenu = this.getSubmenu(item);\r\n\r\n if (submenu) {\r\n submenu.removeClass('menu__submenu--display');\r\n submenu.removeClass('menu__submenu--open');\r\n submenu.removeClass('menu__submenu--reverse');\r\n\r\n const submenuInstance = submenu.find('> .menu').data('menuInstance');\r\n\r\n if (submenuInstance) {\r\n submenuInstance.unsetCurrentItem();\r\n }\r\n }\r\n };\r\n $('.menu').each(function () {\r\n new CMenu($(this));\r\n });\r\n\r\n\r\n /*\r\n // departments, sticky header\r\n */\r\n $(function () {\r\n /*\r\n // departments\r\n */\r\n const CDepartments = function (element) {\r\n const self = this;\r\n\r\n element.data('departmentsInstance', self);\r\n\r\n this.element = element;\r\n this.container = this.element.find('.departments__submenus-container');\r\n this.linksWrapper = this.element.find('.departments__links-wrapper');\r\n this.body = this.element.find('.departments__body');\r\n this.button = this.element.find('.departments__button');\r\n this.items = this.element.find('.departments__item');\r\n this.mode = this.element.is('.departments--fixed') ? 'fixed' : 'normal';\r\n this.fixedBy = $(this.element.data('departments-fixed-by'));\r\n this.fixedHeight = 0;\r\n this.currentItem = null;\r\n\r\n if (this.mode === 'fixed' && this.fixedBy.length) {\r\n this.fixedHeight = this.fixedBy.offset().top - this.body.offset().top + this.fixedBy.outerHeight();\r\n this.body.css('height', this.fixedHeight + 'px');\r\n }\r\n\r\n this.linksWrapper.on('transitionend', function (event) {\r\n if (event.originalEvent.propertyName === 'height') {\r\n $(this).css('height', '');\r\n $(this).closest('.departments').removeClass('departments--transition');\r\n }\r\n });\r\n\r\n this.onButtonClick = this.onButtonClick.bind(this);\r\n this.onGlobalClick = this.onGlobalClick.bind(this);\r\n this.onMouseenter = this.onMouseenter.bind(this);\r\n this.onMouseleave = this.onMouseleave.bind(this);\r\n this.onTouchClick = this.onTouchClick.bind(this);\r\n\r\n // add event listeners\r\n //this.button.on('click', this.onButtonClick);\r\n //document.addEventListener('click', this.onGlobalClick, true);\r\n touchClick(document, this.onGlobalClick);\r\n this.items.on('mouseenter', this.onMouseenter);\r\n this.linksWrapper.on('mouseleave', this.onMouseleave);\r\n touchClick(this.items, this.onTouchClick);\r\n\r\n };\r\n CDepartments.prototype.onButtonClick = function (event) {\r\n event.preventDefault();\r\n\r\n if (this.element.is('.departments--open')) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n };\r\n CDepartments.prototype.onGlobalClick = function (event) {\r\n if (this.element.not($(event.target).closest('.departments')).length) {\r\n if (this.element.is('.departments--open')) {\r\n this.close();\r\n }\r\n }\r\n };\r\n CDepartments.prototype.setMode = function (mode) {\r\n this.mode = mode;\r\n\r\n if (this.mode === 'normal') {\r\n this.element.removeClass('departments--fixed');\r\n this.element.removeClass('departments--open');\r\n this.body.css('height', 'auto');\r\n }\r\n if (this.mode === 'fixed') {\r\n this.element.addClass('departments--fixed');\r\n this.element.addClass('departments--open');\r\n this.body.css('height', this.fixedHeight + 'px');\r\n $('.departments__links-wrapper', this.element).css('maxHeight', '');\r\n }\r\n };\r\n CDepartments.prototype.close = function () {\r\n if (this.element.is('.departments--fixed')) {\r\n return;\r\n }\r\n\r\n const content = this.element.find('.departments__links-wrapper');\r\n const startHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n this.element\r\n .addClass('departments--transition')\r\n .removeClass('departments--open');\r\n\r\n content.height(); // force reflow\r\n content.css('height', '');\r\n content.css('maxHeight', '');\r\n\r\n this.unsetCurrentItem();\r\n };\r\n CDepartments.prototype.closeImmediately = function () {\r\n if (this.element.is('.departments--fixed')) {\r\n return;\r\n }\r\n\r\n const content = this.element.find('.departments__links-wrapper');\r\n\r\n this.element.removeClass('departments--open');\r\n\r\n content.css('height', '');\r\n content.css('maxHeight', '');\r\n\r\n this.unsetCurrentItem();\r\n };\r\n CDepartments.prototype.open = function () {\r\n const content = this.element.find('.departments__links-wrapper');\r\n const startHeight = content.height();\r\n\r\n this.element\r\n .addClass('departments--transition')\r\n .addClass('departments--open');\r\n\r\n const documentHeight = document.documentElement.clientHeight;\r\n const paddingBottom = 20;\r\n const contentRect = content[0].getBoundingClientRect();\r\n const endHeight = Math.min(content.height(), documentHeight - paddingBottom - contentRect.top);\r\n\r\n content.css('height', startHeight + 'px');\r\n content.height(); // force reflow\r\n content.css('maxHeight', endHeight + 'px');\r\n content.css('height', endHeight + 'px');\r\n };\r\n CDepartments.prototype.onMouseenter = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && targetItem.is(this.currentItem)) {\r\n return;\r\n }\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n };\r\n CDepartments.prototype.onMouseleave = function () {\r\n this.unsetCurrentItem();\r\n };\r\n CDepartments.prototype.onTouchClick = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && this.currentItem.is(targetItem)) {\r\n return;\r\n }\r\n\r\n if (this.hasSubmenu(targetItem)) {\r\n preventTouchClick();\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n }\r\n };\r\n CDepartments.prototype.setCurrentItem = function (item) {\r\n this.unsetCurrentItem();\r\n\r\n this.currentItem = item;\r\n this.currentItem.addClass('departments__item--hover');\r\n\r\n this.openSubmenu(this.currentItem);\r\n };\r\n CDepartments.prototype.unsetCurrentItem = function () {\r\n if (this.currentItem) {\r\n this.closeSubmenu(this.currentItem);\r\n\r\n this.currentItem.removeClass('departments__item--hover');\r\n this.currentItem = null;\r\n }\r\n };\r\n CDepartments.prototype.getSubmenu = function (item) {\r\n let submenu = item.find('> .departments__submenu');\r\n\r\n if (submenu.length) {\r\n this.container.append(submenu);\r\n\r\n item.data('submenu', submenu);\r\n }\r\n\r\n return item.data('submenu');\r\n };\r\n CDepartments.prototype.hasSubmenu = function (item) {\r\n return !!this.getSubmenu(item);\r\n };\r\n CDepartments.prototype.openSubmenu = function (item) {\r\n const submenu = this.getSubmenu(item);\r\n\r\n if (submenu) {\r\n submenu.addClass('departments__submenu--open');\r\n\r\n const documentHeight = document.documentElement.clientHeight;\r\n const paddingBottom = 20;\r\n\r\n if (submenu.hasClass('departments__submenu--type--megamenu')) {\r\n const submenuTop = submenu.offset().top - $(window).scrollTop();\r\n submenu.css('maxHeight', (documentHeight - submenuTop - paddingBottom) + 'px');\r\n }\r\n\r\n if (submenu.hasClass('departments__submenu--type--menu')) {\r\n submenu.css('maxHeight', (documentHeight - paddingBottom - Math.min(\r\n paddingBottom,\r\n this.body.offset().top - $(window).scrollTop()\r\n )) + 'px');\r\n\r\n const submenuHeight = submenu.height();\r\n const itemTop = this.currentItem.offset().top - $(window).scrollTop();\r\n const containerTop = this.container.offset().top - $(window).scrollTop();\r\n\r\n submenu.css('top', (Math.min(itemTop, documentHeight - paddingBottom - submenuHeight) - containerTop) + 'px');\r\n }\r\n }\r\n };\r\n CDepartments.prototype.closeSubmenu = function (item) {\r\n const submenu = item.data('submenu');\r\n\r\n if (submenu) {\r\n submenu.removeClass('departments__submenu--open');\r\n\r\n if (submenu.is('.departments__submenu--type--menu')) {\r\n submenu.find('> .menu').data('menuInstance').unsetCurrentItem();\r\n }\r\n }\r\n };\r\n\r\n const departmentsElement = $('.departments');\r\n const departments = departmentsElement.length ? new CDepartments(departmentsElement) : null;\r\n\r\n });\r\n\r\n }\r\n\r\n function loadMobileMenu() {\r\n $('[data-collapse]').each(function (i, element) {\r\n const collapse = element;\r\n\r\n $('[data-collapse-trigger-kateg]', collapse).on('click', function () {\r\n const openedClass = $(this).closest('[data-collapse-opened-class]').data('collapse-opened-class');\r\n const item = $(this).closest('[data-collapse-item]');\r\n const content = item.children('[data-collapse-content]');\r\n const itemParents = item.parents();\r\n\r\n itemParents.slice(0, itemParents.index(collapse) + 1).filter('[data-collapse-item]').css('height', '');\r\n\r\n if (item.is('.' + openedClass)) {\r\n const startHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n item.removeClass(openedClass);\r\n\r\n content.height(); // force reflow\r\n content.css('height', '');\r\n } else {\r\n const startHeight = content.height();\r\n\r\n item.addClass(openedClass);\r\n\r\n const endHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n content.height(); // force reflow\r\n content.css('height', endHeight + 'px');\r\n }\r\n\r\n $('[data-collapse-content]', collapse).on('transitionend', function (event) {\r\n if ((event.originalEvent as any).propertyName === 'height') {\r\n $(this).css('height', '');\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n}\r\n","namespace Checkout {\r\n class orderInfo {\r\n delivery: number; \r\n payment: number;\r\n cart: number;\r\n cartProducts: number;\r\n cartSales: number; \r\n totalSum: number;\r\n currencySymbol: string; \r\n constructor() {\r\n this.delivery = parseFloat($(\"#deliveryMethodsList .payment-methods__item--active\").data(\"value\").toString().replace(\",\", \".\"));\r\n this.payment = parseFloat($(\"#paymentMethodsList .payment-methods__item--active\").data(\"value\").toString().replace(\",\", \".\"));\r\n this.cart = parseFloat($(\"#dataCart\").data(\"price-cart\").toString().replace(\",\", \".\"));\r\n this.cartProducts = parseFloat($(\"#dataCart\").data(\"price-products\").toString().replace(\",\", \".\"));\r\n this.cartSales = parseFloat($(\"#dataCart\").data(\"price-sales\").toString().replace(\",\", \".\"));\r\n this.currencySymbol = \"\" + $(\"#dataCart\").data(\"currency-symbol\").toString() + \"\";\r\n this.totalSum = 0;\r\n if (isNaN(this.delivery)) this.delivery = 0;\r\n if (isNaN(this.payment)) this.payment = 0;\r\n if (isNaN(this.cart)) this.cart = 0;\r\n if (isNaN(this.cartProducts)) this.cartProducts = 0;\r\n if (isNaN(this.cartSales)) this.cartSales = 0;\r\n this.totalSum = this.delivery + this.payment + this.cart;\r\n }\r\n }\r\n export function Init() {\r\n $(window).on('beforeunload', function (event) {\r\n saveFormData();\r\n //event.stopPropagation();\r\n //event.preventDefault();\r\n });\r\n \r\n $(\"#formF #Email\").focusout(function (e) {\r\n var email = $(this).val();\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/account/check-email\",\r\n data: { 'email': email },\r\n success: function (response) {\r\n if (response.Result != true) {\r\n Common.showCheckEmailMessageBox(response.Message, response.LoginCaption, response.ResetPasswordCaption, response.Back, response.Caption, email);\r\n }\r\n }\r\n });\r\n });\r\n\r\n $(\"#formF #StatID\").on(\"change\", '', function () {\r\n if (!(jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked) {\r\n Checkout.SetDeliveryMethods(this.value);\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetOrderSum();\r\n }\r\n })\r\n $(\"#formD #DeliveryAddressStatID\").on(\"change\", '', function () {\r\n Checkout.SetDeliveryMethods(this.value);\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetOrderSum();\r\n })\r\n\r\n $(\"#checkout-different-address\").on(\"change\", '', function () {\r\n Checkout.SetDeliveryMethods(getStatID());\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetOrderSum();\r\n })\r\n $(\"#checkoutCreateOrder\").on(\"click\", '', function () {\r\n Checkout.CreateOrder();\r\n })\r\n\r\n if (($(\"#deliveryMethodsList .payment-methods__item--active\").length == 0) && (jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked)\r\n $(\"#formD #StatID\").change()\r\n else\r\n $(\"#formF #StatID\").change();\r\n\r\n // modal window select branches\r\n $(document).on('click', '[name=\"buttonSelectBranch\"]', function () {\r\n Checkout.SelectBranchWidget($(\"#deliveryMethodsList .payment-methods__item--active\").data(\"dopravci-sluzby-id\"), $('[name=\"buttonSelectBranch\"]').data(\"country-code\"));\r\n });\r\n\r\n $(document).on('click', '[name=\"packeta-search-button\"]', function () {\r\n Checkout.SelectBranchWidget($(\"#deliveryMethodsList .payment-methods__item--active\").data(\"dopravci-sluzby-id\"), $('[name=\"buttonSelectBranch\"]').data(\"country-code\"));\r\n });\r\n\r\n $(document).on('click', '[name=\"ChciZadatFaktUdaje\"]', function () {\r\n if ((jQuery(\"#ChciZadatFaktUdaje\")[0] as HTMLInputElement).checked) {\r\n $(\"#collapseFaktUdaje\").hide();\r\n } else {\r\n $(\"#collapseFaktUdaje\").show();\r\n } \r\n $(\"#collapseFaktUdaje\").toggle();\r\n });\r\n\r\n $(document).on('keypress', '[name=\"findPosta\"],[name=\"findPsc\"]', function (e) {\r\n if (e.which == 13) {\r\n $('#do-balikovny-search-button').click();\r\n }\r\n });\r\n\r\n var itemsCount = parseFloat($(\"#dataCart\").data(\"items-count\").toString().replace(\",\", \".\"));\r\n (jQuery(\"#checkoutCreateOrder\")[0] as HTMLInputElement).disabled = itemsCount == 0;\r\n\r\n //Pouze, pokud není přihlášený klient\r\n if ($(\"#dataCart\").data(\"klient-signin\") == \"False\") {\r\n loadFormData();\r\n }\r\n\r\n checkPersonalDelivery();\r\n\r\n if ((jQuery(\"#Company\")[0] as HTMLInputElement).checked) {\r\n $(\"#collapseFirmInfo\").hide();\r\n } else {\r\n $(\"#collapseFirmInfo\").show();\r\n }\r\n $(\"#collapseFirmInfo\").toggle();\r\n $(document).on('click', '[name=\"Company\"]', function () {\r\n if ((jQuery(\"#Company\")[0] as HTMLInputElement).checked) {\r\n $(\"#collapseFirmInfo\").hide();\r\n } else {\r\n $(\"#collapseFirmInfo\").show();\r\n }\r\n $(\"#collapseFirmInfo\").toggle();\r\n\r\n });\r\n Checkout.SetOrderSum();\r\n }\r\n export function SetDeliveryMethods(idStat) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getdeliverymethods',\r\n data: ({ 'idStat': idStat }),\r\n success: function (response) {\r\n $('#deliveryMethodsList').replaceWith(response);\r\n },\r\n complete: function () {\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetCheckoutProducts();\r\n Checkout.SetOrderSum();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function SetPaymentMethods(idZpDoruc) {\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getpaymentmethods',\r\n data: ({ 'idZpDoruc': idZpDoruc }),\r\n success: function (response) {\r\n $('#paymentMethodsList').replaceWith(response);\r\n Checkout.SetCheckoutProducts();\r\n Checkout.SetOrderSum();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function SetCheckoutProducts() {\r\n var idPayment = Checkout.GetSelectedPayment();\r\n var idZpDoruc = Checkout.GetSelectedDelivery();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getcheckoutproducts',\r\n data: ({ 'idZpDoruc': idZpDoruc, 'idPayment': idPayment }),\r\n success: function (response) {\r\n $('#checkoutProducts').replaceWith(response);\r\n Checkout.SetOrderSum();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function AfterDeliveryMethodSelect(idZpDoruc) {\r\n SetPaymentMethods(idZpDoruc);\r\n Checkout.SetCheckoutProducts();\r\n SetOrderSum();\r\n checkPersonalDelivery();\r\n }\r\n export function AfterPaymentMethodSelect(idZpDoruc) {\r\n Checkout.SetCheckoutProducts();\r\n SetOrderSum();\r\n }\r\n export function GetSelectedDelivery() {\r\n var id = $(\"#deliveryMethodsList .payment-methods__item--active\").data(\"id\");\r\n var personalDelivery = $(\"#deliveryMethodsList .payment-methods__item--active\").data(\"personal-delivery\");\r\n var idPobocka = $(\"#deliveryMethodsList .payment-methods__item--active\").attr(\"data-pobocka-id\");\r\n var parcelNazev = $(\"#deliveryMethodsList .payment-methods__item--active\").attr(\"data-pobocka-nazev\");\r\n var parcelProps = $(\"#deliveryMethodsList .payment-methods__item--active\").attr(\"data-pobocka-props\");\r\n if (id === null) id = 0;\r\n if (idPobocka === null) idPobocka = '0';\r\n\r\n return { id: id, idPobocka: 0, personalDelivery: personalDelivery, parcelID: idPobocka, parcelNazev: parcelNazev, parcelJSON: parcelProps };\r\n }\r\n export function GetSelectedPayment() {\r\n var id = $(\"#paymentMethodsList .payment-methods__item--active\").data(\"id\");\r\n if (id === null) return 0; else return id;\r\n }\r\n export function SetOrderSum() {\r\n var o = new orderInfo();\r\n $(\"#checkoutCart\")[0].innerText = Common.formatCurrency(o.cartProducts);\r\n $(\"#checkoutSales\")[0].innerText = Common.formatCurrency(o.cartSales);\r\n $(\"#checkoutDelivery\")[0].innerText = Common.formatCurrency(o.delivery + o.payment);\r\n $(\"#checkoutTotal\")[0].innerHTML = Common.formatCurrency(o.totalSum) + \" \" + o.currencySymbol;\r\n }\r\n export function CreateOrder() {\r\n var useDeliveryAddress = (jQuery(\"#checkout-different-address\").length > 0) && (jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked;\r\n var chciZadatFaktUdaje = (jQuery(\"#ChciZadatFaktUdaje\").length > 0) && (jQuery(\"#ChciZadatFaktUdaje\")[0] as HTMLInputElement).checked;\r\n \r\n // validace\r\n var form1Valid: boolean = Common.formValidate('formF');\r\n if (useDeliveryAddress) if (!Common.formValidate('formD')) return;\r\n if ((!form1Valid)) {\r\n jQuery(\".page-header\")[0].scrollIntoView();\r\n return;\r\n }\r\n\r\n var checkedTerms1 = (jQuery(\"#checkout-terms1\").length > 0) && (jQuery(\"#checkout-terms1\")[0] as HTMLInputElement).checked;\r\n var checkedTerms2 = (jQuery(\"#checkout-terms2\").length > 0) && (jQuery(\"#checkout-terms2\")[0] as HTMLInputElement).checked;\r\n if (!checkedTerms1 || !checkedTerms2) {\r\n Common.showMessageBox((jQuery(\"#errTermsMsg\")[0] as HTMLInputElement).value, 'warning');\r\n return;\r\n }\r\n\r\n // data pro model\r\n var fa = $(\"#formF\").serializeArray().reduce((acc, f) => {\r\n acc[f.name] = f.value\r\n return acc\r\n }, {});\r\n\r\n var da = $(\"#formD\").serializeArray().reduce((acc, f) => {\r\n acc[f.name] = f.value\r\n return acc\r\n }, {});\r\n\r\n var polozky = JSON.parse((jQuery(\"#dataCart\")[0] as HTMLTextAreaElement).value);\r\n var model = JSON.stringify({\r\n UseDodaci: useDeliveryAddress,\r\n ChciZadatFaktUdaje: chciZadatFaktUdaje,\r\n DoruceniID: Checkout.GetSelectedDelivery().id.toString(),\r\n PobockaID: Checkout.GetSelectedDelivery().idPobocka.toString(),\r\n ParcelID: Checkout.GetSelectedDelivery().parcelID,\r\n ParcelNazev: Checkout.GetSelectedDelivery().parcelNazev,\r\n ParcelJSON: Checkout.GetSelectedDelivery().parcelJSON,\r\n PlatbaID: Checkout.GetSelectedPayment().toString(),\r\n IC: (jQuery(\"#IC\")[0] as HTMLTextAreaElement).value,\r\n DIC: (jQuery(\"#DIC\")[0] as HTMLTextAreaElement).value,\r\n Fakturacni_adresa: fa,\r\n Dodaci_adresa: da,\r\n Poznamka: (jQuery(\"#checkout-comment\")[0] as HTMLTextAreaElement).value,\r\n Polozky: polozky\r\n });\r\n\r\n jQuery(\"#checkoutCreateOrder\").prop('disabled', true);\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n contentType: \"application/json; charset=utf-8\",\r\n url: '/createorder',\r\n data: model,\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.redirectPost('/cart/finish', { id: response.id });\r\n }\r\n else {\r\n jQuery(\"#checkoutCreateOrder\").prop('disabled', false);\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n jQuery(\"#checkoutCreateOrder\").prop('disabled', false);\r\n }\r\n });\r\n }\r\n export function saveFormData() {\r\n Common.saveFormToSessionStorage(\"formF\");\r\n Common.saveFormToSessionStorage(\"formD\");\r\n\r\n if ((jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked)\r\n sessionStorage.setItem('checkout-different-address', 'true');\r\n else\r\n sessionStorage.setItem('checkout-different-address', 'false');\r\n\r\n sessionStorage.setItem('checkout-comment', $('#checkout-comment').val().toString());\r\n\r\n //Save delivery\r\n var id = $(\"#deliveryMethodsList .payment-methods__item--active\").data(\"id\");\r\n if (id > 0) {\r\n var delivery = GetSelectedDelivery();\r\n sessionStorage.setItem('delivery-id', delivery.id.toString());\r\n sessionStorage.setItem('delivery-branch-id', delivery.idPobocka.toString());\r\n }\r\n\r\n }\r\n export function loadFormData() {\r\n Common.loadFormFromSessionStorage(\"formF\");\r\n Common.loadFormFromSessionStorage(\"formD\");\r\n\r\n var value = sessionStorage.getItem('checkout-different-address');\r\n var elem = (jQuery(\"#checkout-different-address\")[0] as HTMLInputElement);\r\n if (value == 'true') { elem.click(); elem.checked = true; } else { elem.checked = false };\r\n\r\n $('#checkout-comment').val(sessionStorage.getItem('checkout-comment'));\r\n\r\n ////deliveryMethodsList data-id selectedBranch\r\n //var delID = sessionStorage.getItem('delivery-id');\r\n //console.log(delID);\r\n //if (delID.length > 0) {\r\n // alert('a');\r\n // $(\"#deliveryMethodsList\").find(\"[data-id='\" + delID.toString() + \"']\").click();\r\n // console.log(\"[data-id='\" + delID.toString() + \"']\");\r\n // alert(\"[data-id='\" + delID.toString() + \"']\");\r\n // $(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0].innerText = sessionStorage.getItem('delivery-branch-name');\r\n //}\r\n \r\n //(jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", $(this).data(\"id\"));\r\n //(jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = $(this).data(\"description\");\r\n }\r\n export function SelectBranchWidget(typ: number, countryCode: string) {\r\n\r\n if (!countryCode) countryCode = 'cz';\r\n var h = window.innerHeight * 0.85;\r\n\r\n if (typ == 4) {\r\n // Zásilkovna\r\n (window as any).Packeta.Widget.pick('6bbffea28d4356e7', (point) => {\r\n if (point) {\r\n var parcelName = point.place + \", \" + point.nameStreet;\r\n var parcel = GetParcelJSON(point.id,parcelName,point.street,point.city,point.zip,point.country);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", point.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n }, { country: countryCode })\r\n }\r\n if (typ == 3) {\r\n // Česká pošta Balíkovna\r\n const messageHandler = function (event) {\r\n if (event.data.message === \"pickerResult\") {\r\n (window as any).swal.close();\r\n if (event.data) {\r\n var parcelName = event.data.point.name + \", \" + event.data.point.address;\r\n var parcel = GetParcelJSON(event.data.id, parcelName, 'Balíkovna', event.data.point.municipality_name, event.data.point.zip, event.data.point.country);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n Common.showParcelWidget('');\r\n }\r\n if (typ == 2) {\r\n // Česká pošta Balík na poštu\r\n const messageHandler = function (event) {\r\n if (event.data.message === \"pickerResult\") {\r\n (window as any).swal.close();\r\n if (event.data) {\r\n var parcelName = event.data.point.address;\r\n var parcel = GetParcelJSON(event.data.id, parcelName, 'Na poštu', event.data.point.municipality_name, event.data.point.zip, event.data.point.country);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n Common.showParcelWidget('');\r\n }\r\n if (typ == 8) {\r\n // DPD ParcelShop\r\n const messageHandler = function (event) {\r\n if (event.data.dpdWidget) {\r\n (window as any).swal.close();\r\n var parcelName = event.data.dpdWidget.contactInfo.name + \", \" + event.data.dpdWidget.pickupPointResult;\r\n var parcel = GetParcelJSON(event.data.dpdWidget.id, parcelName, event.data.dpdWidget.location.address.street, event.data.dpdWidget.location.address.city, event.data.dpdWidget.location.address.zip, event.data.dpdWidget.location.address.country);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.dpdWidget.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n } \r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n Common.showParcelWidget('');\r\n }\r\n if (typ == 11) {\r\n // PPL ParcelShop\r\n const messageHandler = function (event) {\r\n if (event && event.isTrusted) {\r\n (window as any).swal.close();\r\n\r\n var parcelName = event.data.data.name + \", \" + event.data.data.street + \", \" + event.data.data.city;\r\n var parcel = GetParcelJSON(event.data.data.id, parcelName, event.data.data.street, event.data.data.city, event.data.data.zipCode, event.data.data.country);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.data.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n\r\n var validCountryCodes = ['cz', 'sk', 'de', 'pl'];\r\n if (validCountryCodes.indexOf(countryCode.toLowerCase()) !== -1) {\r\n Common.showParcelWidget(\"\");\r\n }\r\n \r\n }\r\n if (typ == 22) {\r\n // GLS ParcelShop\r\n const messageHandler = function (event) {\r\n if (event && event.isTrusted) {\r\n (window as any).swal.close();\r\n\r\n var parcelName = event.data.parcelshop.detail.name + \", \" + event.data.parcelshop.detail.address + \", \" + event.data.parcelshop.detail.city;\r\n var parcel = GetParcelJSON(event.data.parcelshop.detail.pclshopid, parcelName, event.data.parcelshop.detail.address, event.data.parcelshop.detail.city, event.data.parcelshop.detail.zipcode, event.data.parcelshop.detail.ctrcode);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.parcelshop.detail.pclshopid);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n var validCountryCodes = ['CZ', 'SK', 'SI', 'HU', 'HR', 'RO'];\r\n if (validCountryCodes.indexOf(countryCode.toUpperCase()) !== -1) {\r\n Common.showParcelWidget('');\r\n }\r\n }\r\n }\r\n function getStatID() {\r\n if ((jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked)\r\n return (jQuery(\"#DeliveryAddressStatID\")[0] as HTMLInputElement).value;\r\n else\r\n return (jQuery(\"#StatID\")[0] as HTMLInputElement).value;\r\n }\r\n function checkPersonalDelivery() {\r\n if (GetSelectedDelivery().personalDelivery == \"True\") {\r\n (jQuery(\"#ChciZadatFaktUdaje\")[0] as HTMLInputElement).checked = false;\r\n $(\"#chkFaktUdaje\").show();\r\n $(\"#collapseFaktUdaje\").show();\r\n $(\"#divDelivery\").hide();\r\n $(\"#divDeliveryDivider\").hide();\r\n } else {\r\n $(\"#chkFaktUdaje\").hide();\r\n $(\"#collapseFaktUdaje\").hide();\r\n $(\"#divDelivery\").show();\r\n $(\"#divDeliveryDivider\").show();\r\n }\r\n $(\"#collapseFaktUdaje\").toggle();\r\n }\r\n function GetParcelJSON(id: string, nazev: string, ulice: string, misto: string, psc: string, stat: string): string {\r\n const parcel = {\r\n id: id,\r\n nazev: nazev,\r\n ulice: ulice,\r\n misto: misto,\r\n psc: psc,\r\n stat: stat\r\n };\r\n return JSON.stringify(parcel);\r\n }\r\n}","namespace Common {\r\n export function showMessage(msg, icon, timeout = 2000) {\r\n (window as any).swal.fire({\r\n text: msg,\r\n toast: true,\r\n position: 'top-end',\r\n showConfirmButton: false,\r\n icon: icon,\r\n timer: timeout,\r\n timerProgressBar: true\r\n });\r\n }\r\n\r\n export function showMessageBox(msg, icon) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n showConfirmButton: true,\r\n icon: icon\r\n });\r\n }\r\n export function showParcelWidget(html) {\r\n \r\n (window as any).Swal.fire({\r\n title: 'Načítám seznam výdejních míst...',\r\n html: html,\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n showCloseButton: true,\r\n grow: 'fullscreen',\r\n didOpen: () => {\r\n (window as any).Swal.showLoading(); // Zobrazí loader\r\n let iframe = document.getElementById('parcelFrame');\r\n iframe.onload = function () {\r\n const swalTitle = (window as any).Swal.getTitle();\r\n if (swalTitle) {\r\n swalTitle.style.display = 'none';\r\n }\r\n (window as any).Swal.hideLoading(); // Skryje loader, jakmile je iframe načtený\r\n };\r\n },\r\n \r\n });\r\n }\r\n export function showAddToCartMessageBox(msg, toCartCaption, toBackCaption) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n showCancelButton: true,\r\n confirmButtonText: toCartCaption,\r\n cancelButtonText: toBackCaption,\r\n reverseButtons: true,\r\n buttonsStyling: false,\r\n customClass: {\r\n confirmButton: 'btn btn-primary mb-2',\r\n cancelButton: 'btn btn-secondary mr-2 mb-2'\r\n }\r\n }).then((result) => {\r\n if (result.value) {\r\n window.location.href = '/cart';\r\n }\r\n })\r\n }\r\n \r\n export function showResetPasswordMessageBox(msg, icon, retunUrl) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n showConfirmButton: true,\r\n icon: icon\r\n }).then((result) => {\r\n if (result.value) {\r\n if (retunUrl!==\"\") window.location.href = retunUrl;\r\n }\r\n })\r\n }\r\n\r\n export function showCheckEmailMessageBox(msg, toLoginCaption, toResetPasswordCaption, toBackCaption, Caption, email) {\r\n (window as any).swal.fire({\r\n title: Caption,\r\n html: msg,\r\n icon: 'info',\r\n showCancelButton: true,\r\n showDenyButton: true,\r\n confirmButtonText: toLoginCaption,\r\n denyButtonText: toResetPasswordCaption,\r\n cancelButtonText: toBackCaption,\r\n reverseButtons: false,\r\n buttonsStyling: false,\r\n customClass: {\r\n confirmButton: 'btn btn-primary mb-2',\r\n denyButton: 'btn btn-secondary ml-2 mb-2',\r\n cancelButton: 'btn btn-secondary ml-2 mb-2'\r\n }\r\n }).then((result) => {\r\n\r\n if (result.isConfirmed) {\r\n window.location.href = '/login?ReturnUrl=%2Fcart/checkout&loginName='+email;\r\n } else if (result.isDenied) {\r\n window.location.href = '/forgot-password?ReturnUrl=%2Fcart/checkout&email=' + email;\r\n }\r\n })\r\n }\r\n\r\n export function showActivateAccountMessageBox(msg) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n icon: 'info',\r\n }).then(() => {\r\n window.location.href = '/';\r\n })\r\n }\r\n\r\n export function AddURLParam(key: string, value: string) {\r\n var url = new URI(window.location.href);\r\n url.addQuery(key, value);\r\n window.history.pushState(null, null, url.valueOf());\r\n }\r\n\r\n export function RemoveURLParam(key: string, value: string = \"\") {\r\n var url = new URI(window.location.href);\r\n if (value.length > 0) {\r\n url.removeQuery(key, value);\r\n }\r\n else {\r\n url.removeQuery(key);\r\n }\r\n window.history.pushState(null, null, url.valueOf());\r\n }\r\n\r\n\r\n export function RemoveQueryString() {\r\n var uri = window.location.toString();\r\n if (uri.indexOf(\"?\") > 0) {\r\n var clean_uri = uri.substring(0, uri.indexOf(\"?\"));\r\n window.history.replaceState({}, document.title, clean_uri);\r\n }\r\n }\r\n\r\n export function formValidate(formName: string) {\r\n //$.validator.addMethod(\"requiredif\", function (value, element, params) {\r\n // console.log(\"aaa\");\r\n // if ($(params).val().toString().length === 0) {\r\n // return true;\r\n // } else if(value.length === 0) {\r\n // return false;\r\n // }\r\n // return true;\r\n //});\r\n\r\n //$.validator.unobtrusive.adapters.add(\"requiredif\", [\"otherpropertyname\"], function (options) {\r\n // options.rules[\"requiredif\"] = \"#\" + options.params.otherpropertyname;\r\n // options.messages[\"requiredif\"] = options.message;\r\n //});\r\n\r\n\r\n\r\n if ($('#' + formName).valid() == false) {\r\n $.each($('#' + formName).validate().errorList, function () {\r\n $('span[data-valmsg-for=\"' + this.element.id + '\"]').text(this.message);\r\n $('span[data-valmsg-for=\"' + this.element.id + '\"]').show();\r\n });\r\n return false;\r\n } else {\r\n return true;\r\n };\r\n\r\n }\r\n\r\n // Provede redirect na danou url s odesláním POST dat\r\n // Použití: Common.redirectPost('/cart/finish', { id: response.id });\r\n export function redirectPost(url, data) {\r\n var form = document.createElement('form');\r\n document.body.appendChild(form);\r\n form.method = 'post';\r\n form.action = url;\r\n for (var name in data) {\r\n var input = document.createElement('input');\r\n input.type = 'hidden';\r\n input.name = name;\r\n input.value = data[name];\r\n form.appendChild(input);\r\n }\r\n form.submit();\r\n }\r\n\r\n export function formatCurrency(value: number) {\r\n var suffix = (value % 1) == 0 ? \",-\" : \"\";\r\n return Intl.NumberFormat('cs-CZ', { style: 'decimal', currency: 'czk', minimumFractionDigits: (value % 1) == 0 ? 0 : 2 }).format(value) + suffix;\r\n }\r\n\r\n export function saveFormToSessionStorage(formName: string) {\r\n $('#' + formName + ' input[type=\"text\"]').each(function () {\r\n var id = $(this).attr('id');\r\n sessionStorage.setItem(id, $(this).val().toString());\r\n });\r\n $('#' + formName + ' input[type=\"checkbox\"]').each(function () {\r\n var id = $(this).attr('id');\r\n if ($(this).is(\":checked\")) { sessionStorage.setItem(id, 'true'); }\r\n else { sessionStorage.setItem(id, 'false'); };\r\n });\r\n $('#' + formName + ' select').each(function () {\r\n var id = $(this).attr('id');\r\n sessionStorage.setItem(id, $(this).val().toString());\r\n });\r\n };\r\n\r\n export function loadFormFromSessionStorage(formName: string) {\r\n $('#' + formName + ' input[type=\"text\"]').each(function () {\r\n var id = $(this).attr('id');\r\n var value = sessionStorage.getItem(id);\r\n $(this).val(value);\r\n });\r\n $('#' + formName + ' input[type=\"checkbox\"]').each(function () {\r\n var id = $(this).attr('id');\r\n var value = sessionStorage.getItem(id);\r\n if (value == 'true') { ((this) as HTMLInputElement).click(); ((this) as HTMLInputElement).checked = true; } else { ((this) as HTMLInputElement).checked = false };\r\n });\r\n $('#' + formName + ' select').each(function () {\r\n var id = $(this).attr('id');\r\n if (sessionStorage.getItem(id) != null) $(this).val(sessionStorage.getItem(id)).change();\r\n });\r\n }\r\n}","namespace Other {\r\n export function Init() {\r\n $(\"#btnNewsletter\").click(function (event) {\r\n if (!Common.formValidate(\"fNewsletter\")) return;\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: '/newsletter',\r\n //headers: { \"RequestVerificationToken\": $('#fNewsletter input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#fNewsletter').serialize(),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n $('#footer-newsletter-address').val(\"\");\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessageBox(xhr.status + ' - ' + xhr.statusText, 'error');\r\n }\r\n });\r\n\r\n });\r\n\r\n if ($(\"#PaymentStatusView\").length > 0) {\r\n Common.RemoveQueryString();\r\n }\r\n\r\n $(document).on(\"click\", '#send-contact-form', function () { Other.SendContactForm('contact-form'); })\r\n }\r\n\r\n export function SendContactForm(formName) {\r\n\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/sendcontactform\",\r\n data: $('#' + formName).serialize(),\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessageBox(response.Message.toString(), 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function SetCookieConsent() {\r\n var cookieconsent = (window as any).initCookieConsent();\r\n cookieconsent.run({\r\n current_lang: 'cs',\r\n page_scripts: true,\r\n autorun: true,\r\n delay: 0,\r\n autoclear_cookies: true,\r\n\r\n gui_options: {\r\n consent_modal: {\r\n layout: 'box', // box/cloud/bar\r\n position: 'bottom left', // bottom/top + left/right/center\r\n transition: 'slide' // zoom/slide\r\n },\r\n settings_modal: {\r\n layout: 'box', // box/bar\r\n transition: 'slide', // zoom/slide\r\n }\r\n },\r\n\r\n onAccept: function (cookies) {\r\n if (cookieconsent.allowedCategory('necessary')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"necessary\" });\r\n }\r\n\r\n if (cookieconsent.allowedCategory('analytics')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"tracking\" });\r\n }\r\n\r\n if (cookieconsent.allowedCategory('marketing')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"performance\" });\r\n }\r\n },\r\n\r\n languages: {\r\n 'cs': {\r\n consent_modal: {\r\n title: \"Cookies informace\",\r\n description: 'Tyto webové stránky používají soubory cookies a další identifikátory, které mohou obsahovat osobní údaje. Cookies nám pomáhají zjišťovat, jak stránku používáte, a díky tomu ji můžeme stále zlepšovat.',\r\n primary_btn: {\r\n text: 'Přijmout vše',\r\n role: 'accept_all' //'accept_selected' or 'accept_all'\r\n },\r\n secondary_btn: {\r\n text: 'Nastavení cookies',\r\n role: 'settings' //'settings' or 'accept_necessary'\r\n }\r\n },\r\n settings_modal: {\r\n title: 'Nastavení cookies',\r\n save_settings_btn: \"Uložit nastavení\",\r\n accept_all_btn: \"Přijmout vše\",\r\n reject_all_btn: 'Odmítnout vše',\r\n close_btn_label: \"Zavřít\",\r\n blocks: [\r\n {\r\n title: \"Jaké používáme cookies\",\r\n description: 'Pro zlepšení uživatelského zážitku tento web využívá soubory cookies. Kromě technických cookies nezbytných pro správnou funkčnost webu využíváme také další skupiny cookies, které můžete povolit nebo zakázat v nabídce níže. Své rozhodnutí můžete kdykoli změnit kliknutím na odkaz \"Nastavení cookies\" v patičce.',\r\n }, {\r\n title: \"Technické cookies\",\r\n description: 'Soubory nutné pro základní funkčnost webových stránek.',\r\n toggle: {\r\n value: 'necessary',\r\n enabled: true,\r\n readonly: true\r\n }\r\n }, {\r\n title: \"Analytické cookies\",\r\n description: 'Analytické cookies nám dávají obecný přehled o návštěvnosti a pohybu uživatelů na webu.',\r\n toggle: {\r\n value: 'analytics',\r\n enabled: true,\r\n readonly: false\r\n }\r\n }, {\r\n title: \"Marketingové cookies\",\r\n description: 'Cookies pro marketingové účely shromažďují informace o vašem chování při procházení stránek za účelem zobrazování reklam a dalších marketingových nástrojů.',\r\n toggle: {\r\n value: 'marketing',\r\n enabled: true,\r\n readonly: false\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (!cookieconsent.validCookie('cc_cookie')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"empty\" });\r\n }\r\n }\r\n}","namespace WishList {\r\n export function Init() {\r\n $(document).on(\"click\", '.wishlist__column--remove', function () { WishList.RemoveFromWishList($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.product-card__actions .product-card__wishlist', function () { WishList.AddToWishList($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.product__actions-item--wishlist .btn', function () { WishList.AddToWishList($(this).data(\"id\")); })\r\n\r\n }\r\n\r\n export function AddToWishList(productID) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/addtowishlist',\r\n data: ({ 'productID': productID, 'returnUrl': window.location.pathname }),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n refreshWishListWidget();\r\n Common.showMessage(response.Message, 'success', 5000);\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function RemoveFromWishList(id) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/removefromwishlist',\r\n data: { 'id': id },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n RefreshWishList();\r\n Common.showMessage(response.Message, 'info', 5000);\r\n }\r\n else\r\n Common.showMessageBox(response.Message, 'error');\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function RefreshWishList() {\r\n if ($(\".wishlist\").length > 0) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/account/wishlist?partial=true',\r\n success: function (response) {\r\n var html = $(response);\r\n $('.wishlistContainer').replaceWith(html.find('.wishlistContainer'));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n refreshWishListWidget();\r\n }\r\n\r\n function refreshWishListWidget() {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getwishlistinfo',\r\n success: function (response) {\r\n $('.wishListInfo .indicator__value').html(response.Pocet.toString());\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n}\r\n\r\n","$(function () {\r\n //Account\r\n Account.Init();\r\n\r\n // Cart\r\n Cart.Init();\r\n //Cart.RefreshCartInfo(); \r\n\r\n //Checkout\r\n if ($(\"#checkoutCreateOrder\").length > 0) Checkout.Init();\r\n\r\n // WishList\r\n WishList.Init(); \r\n\r\n // Catalog \r\n Catalog.Init();\r\n\r\n // other\r\n Other.Init();\r\n\r\n //Catalog.SetTooltip('label-left', 'right');\r\n //Catalog.SetTooltip('label-right', 'left');\r\n\r\n Other.SetCookieConsent();\r\n});\r\n\r\n"]}