{"version":3,"file":"checkout.b57915ce8f217b7e0d61.js","mappings":"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","sources":["webpack://mcweb3/./Scripts/Web/ViewModels/Checkout/Checkout.js","webpack://mcweb3/./Scripts/Web/ViewModels/Checkout/CheckoutConfirmationView.js","webpack://mcweb3/./Scripts/Web/ViewModels/Checkout/CheckoutFooterView.js","webpack://mcweb3/./Scripts/Web/ViewModels/Checkout/PaymentView.js","webpack://mcweb3/./Scripts/Web/ViewModels/Checkout/SalesConditions.js","webpack://mcweb3/./Scripts/Web/ViewModels/Checkout/ShipmentView.js"],"sourcesContent":["mcWeb.checkout = new function () {\r\n\r\n this.events = {\r\n onShowSendOrder: \"mcWeb.checkout.onShowSendOrder\" \r\n };\r\n\r\n\tvar $ = jQuery;\r\n\tvar self = this;\r\n\tself.service = new WebApiService(\"Checkout\");\r\n\tself.langService = new LanguageService();\r\n \r\n\tself.cartName = null;\r\n self.cartGuid = null;\r\n\r\n $(function () {\r\n\r\n self.isCheckoutPage = ($(\"#checkout\").length > 0) ? true : false;\r\n\r\n if (!self.isCheckoutPage)\r\n return;\r\n\r\n\t\tvar returnCode = self.getParameterByName(\"returnCode\");\r\n\t\tself.showErrorMessageFromReturnCode(returnCode);\r\n\r\n\t\tvar btnOrderEl = $(\"#McPaymentAddOrderbottom\");\r\n\t\tvar priceEl = $(\"#checkout-amount\");\r\n\t\tvar salesConditionsEl = $(\"#mcweb-salesconditions-sales-conditions\");\r\n\r\n\t\tPubSub.subscribe(mcWeb.checkout.events.onShowSendOrder, function (message, status) {\r\n\r\n if (status === null)\r\n return;\r\n\r\n var registration = mcWeb.customerRegistration.instances[\"checkout-registration\"];\r\n if (registration !== null) {\r\n //Blocked or not active customer\r\n if (registration.registrationVM.blockedCustomer()) {\r\n status.showBtn = false;\r\n status.disabledBtn = true;\r\n $(\".sales-conditions\").hide();\r\n }\r\n }\r\n\r\n\r\n if (status.showBtn !== null || status.disabledBtn !== null) {\r\n\r\n if (status.disabledBtn !== null)\r\n {\r\n if (status.disabledBtn === true) {\r\n btnOrderEl.removeClass(\"btn-primary\");\r\n btnOrderEl.addClass(\"btn-default disabled\");\r\n } else {\r\n btnOrderEl.removeClass(\"btn-default disabled\");\r\n btnOrderEl.addClass(\"btn-primary\");\r\n }\r\n }\r\n\r\n if (status.showBtn !== null) {\r\n\r\n if (status.showBtn === true) {\r\n btnOrderEl.show();\r\n } else {\r\n btnOrderEl.hide();\r\n }\r\n }\r\n }//showBtn or disabledBtn\r\n\r\n if (status.showPrice !== null) {\r\n if (status.showPrice === true) {\r\n priceEl.show();\r\n } else {\r\n priceEl.hide();\r\n }\r\n }\r\n\r\n if (status.showSalesConditions !== null) {\r\n\r\n if (status.showSalesConditions === true) {\r\n salesConditionsEl.show();\r\n } else {\t\t \r\n salesConditionsEl.hide();\r\n }\r\n }\r\n\r\n });\r\n\r\n\t});\r\n\r\n\r\n self.findElement = function (payment, element) {\r\n return $(\"div[id=\" + payment.selectedPayment() + \"]\").find(\"input[id*='\" + element + \"']\");\r\n };\r\n\r\n self.findClass = function (payment, cssClass) {\r\n return $(\"div[id=\" + payment.selectedPayment() + \"]\").find(\"input[class*='\" + cssClass + \"']\");\r\n };\r\n\t\r\n\tself.validatePayment = function (payment) {\r\n\t\tvar paymentId = payment.selectedPayment();\r\n\t\tvar element;\r\n\t\tvar validate = false;\r\n\t\tvar isValid = false;\r\n\t\tvar resName = \"\";\r\n\r\n\t\tif (paymentId === 96 || paymentId === 97) {\t//Klarna \r\n\t\t\tvalidate = true;\r\n if (payment.CustomerType() === \"private\" || payment.CustomerType() === \"privatkunde\") {\r\n element = self.findElement(payment, \"fodselsnummer\");\r\n\t\t\t\tisValid = payment.isFodselsnummerValid($(\"#fodselsnummer\"), true);\r\n\t\t\t\tresName = \"FodselsnummerError\";\r\n\t\t\t} else {\r\n element = self.findElement(payment, \"orgnr\");\r\n\t\t\t\tisValid = payment.isOrgnrValid($(\"#orgnr\"), true);\r\n\t\t\t\tresName = \"OrgnummerError\";\r\n\t\t\t}\r\n } else if (paymentId === 94 || paymentId === 107) { //Gothia private\r\n\t\t\telement = self.findElement(payment, \"birth_ssn\");\r\n\t\t\tvalidate = true;\r\n\t\t\tisValid = payment.isFodselsnummerValid($(\"#birth_ssn\"), false);\r\n\t\t\tresName = \"FodselsnummerError\";\r\n } else if (paymentId === 95) { //Gothia business\r\n\t\t\telement = self.findElement(payment, \"orgnr_ssn\");\r\n\t\t\tvalidate = true;\r\n\t\t\tisValid = payment.isOrgnrValid($(\"#orgnr_ssn\"), false);\r\n\t\t\tresName = \"OrgnummerError\";\r\n } else if (paymentId === 112 || paymentId === 115 || paymentId === 168) { //Santander\r\n\t\t\tvalidate = true;\r\n\t\t\tvar paymentViewSantander = mcWeb.payments.instances[\"payment-view\"];\r\n var validSantander = paymentViewSantander.validateSantander(payment);\r\n\r\n\t\t\tisValid = validSantander.IsValid;\r\n\t\t\tresName = validSantander.ResName;\r\n\t\t\telement = validSantander.Element;\r\n\t\t} else if (paymentId === 87 || paymentId === 128) {\r\n\t\t\tvalidate = true;\r\n\t\t\tvar paymentViewSvea = mcWeb.payments.instances[\"payment-view\"];\r\n var validSveaWebPay = paymentViewSvea.validateSveaWebPay(payment);\r\n\r\n\t\t\tisValid = validSveaWebPay.IsValid;\r\n\t\t\tresName = validSveaWebPay.ResName;\r\n\t\t\telement = validSveaWebPay.Element;\r\n\t\t} else if (payment.ShowOrgnrSsn()) {\r\n\t\t\tvalidate = true;\r\n\t\t\tvar fieldType = payment.ShowOrgnrSsnField();\r\n\t\t\tswitch (fieldType) {\r\n\t\t\tcase 1:\r\n element = self.findClass(payment, \"genericOrgnr\");\r\n isValid = payment.isOrgnrValid($(\".genericOrgnr\"), false);\r\n resName = \"OrgnummerError\";\r\n break;\r\n\t\t\tcase 2:\r\n element = self.findClass(payment, \"genericSsn\");\r\n isValid = payment.isFodselsnummerValid($(\".genericSsn\"), false);\r\n resName = \"FodselsnummerError\";\r\n break;\r\n\t\t\tcase 3:\r\n element = self.findClass(payment, \"genericBirthdate\");\r\n isValid = payment.isBirthdateValid($(\".genericBirthdate\"), false);\r\n resName = \"FodselsdatoError\";\r\n break;\r\n\t\t\tdefault:\r\n isValid = false;\r\n resName = \"MissingFields\";\r\n break;\r\n\t\t\t}\r\n\t\t} else {\r\n isValid = true;\r\n\t\t}\r\n\r\n\t\tif (validate) {\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tvar errorText = mcWeb.validation.getErrorMessage(\"VALIDATION,\" + resName);\r\n\t\t\t\terrorText.then(function (result) {\r\n\t\t\t\t\tmcWeb.validation.qTipActionShow(element, result, false);\r\n\t\t\t\t\tmcWeb.validation.addErrorClass(element);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\tmcWeb.validation.setValidCss(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn isValid;\r\n\t};\r\n \r\n self.disableOrderButton = function() {\r\n $(\"#McPaymentAddOrderbottom\").attr(\"disabled\", \"disabled\");\r\n };\r\n\r\n self.enableOrderButton = function() {\r\n $(\"#McPaymentAddOrderbottom\").removeAttr(\"disabled\");\r\n };\r\n \r\n self.insertOrder = function (conditionsVM) {\r\n self.disableOrderButton();\r\n self.conditionsVM = conditionsVM;\r\n\t\tvar btnSendOrder = $(\"#McPaymentAddOrderbottom.btn-default.disable\");\r\n\t\tif (btnSendOrder.length > 0) {\r\n\t\t\tself.showErrorMessage($(\"#missing-info\").html());\r\n self.enableOrderButton();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n if ($(\".hide-zipcode\").length === 0) {\r\n var zipCode = $(\"#carrier-zipcode\");\r\n if (zipCode[0] !== undefined) {\r\n if (zipCode.val().length < 1) {\r\n zipCode.focus();\r\n self.enableOrderButton();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\t\t$(\"#insert-order-alert\").hide();\r\n\t\tvar registration = mcWeb.customerRegistration.instances[\"checkout-registration\"];\r\n var payment = mcWeb.payments.instances[\"payment-view\"];\r\n\r\n if (typeof registration.registrationVM.epost() === 'string')\r\n registration.registrationVM.epost(registration.registrationVM.epost().toLowerCase());\r\n\t\t\r\n\t\tvar paymentValidationResult = self.validatePayment(payment);\r\n\t\tself.showWaitTemplate();\r\n if (!registration.validateCustomerSelectionType()) {\r\n self.enableOrderButton();\r\n return;\r\n }\r\n\r\n registration.validate().then(function (validationResult) {\r\n\r\n if (!validationResult.success || !paymentValidationResult) {\r\n if (!paymentValidationResult) {\r\n // paymentError\r\n }\r\n else if (registration.requireLogin()) {\r\n //window.location.hash = \"#login\"; // Todo: Endre til en event via PubSub\r\n self.showErrorMessage($(\".text-email-blocked\").html());\r\n } else if (validationResult.invalidElements.length > 0) {\r\n self.scrollToFirstInvalidElement(validationResult.invalidElements[0].elem);\r\n } else {\r\n if (validationResult.message !== null && validationResult.message.length > 0)\r\n self.showErrorMessage(validationResult.message);\r\n }\r\n self.enableOrderButton();\r\n return;\r\n }\r\n\r\n if (!self.salesConditionsAccepted()) {\r\n self.showErrorMessage($(\".sales-cond-warning\").html());\r\n self.enableOrderButton();\r\n return;\r\n }\r\n\r\n registration.registrationVM.saveDeliveryAddressChanges().then(function (saveDeliveryResult) {\r\n\r\n if (saveDeliveryResult === undefined || !saveDeliveryResult.Success) {\r\n self.showErrorMessage(saveDeliveryResult.Message);\r\n return;\r\n }\r\n // Sjekker om SkiAssembly er aktivert og om det er produkter i handlevognen som mangler info\r\n self.service.GetAction(\"ShowSkiAssembly\", null).then(function (result) {\r\n if (result.length > 0) {\r\n self.enableOrderButton();\r\n\r\n if (result === \"mcWeb.SkiAssembly\")\r\n getLibrary(\"skiassembly\").then(() => {\r\n mcWeb.SkiAssembly.load(true);\r\n });\r\n else if (result === \"mcWeb.SkiAttributeAssembly\")\r\n getLibrary(\"skiattributeassembly\").then(() => {\r\n mcWeb.SkiAttributeAssembly.load();\r\n });\r\n else if (result === \"mcWeb.cart.events.onPopupForProductAssembly\") {\r\n PubSub.publish(result.MessageToPublish, result.MessageToPublishData);\r\n }\r\n else {\r\n console.log(result)\r\n alert(\"Error - Cant show ski assembly\");\r\n }\r\n return;\r\n }\r\n\r\n // Viser \"vennligst vent\"-melding\r\n PubSub.publish(mcWeb.lightbox.events.onShowLightbox, { backdrop: \"static\", keyboard: false, show: true });\r\n\r\n var customer = registration.getJsonData(self.conditionsVM);\r\n var paymentData = payment.getJsonData();\r\n var paymentDetails;\r\n\r\n if (paymentData.selectedPayment === 112 || paymentData.selectedPayment === 115 || paymentData.selectedPayment === 168) {\r\n var resourceName = payment.validateSantanderAddress(customer.postnr, customer.poststed, customer.adress);\r\n\r\n if (resourceName !== \"\") {\r\n self.langService.getValue(\"VALIDATION\", resourceName).then(function (value) {\r\n if (value.length > 0)\r\n self.showErrorMessage(value);\r\n });\r\n self.enableOrderButton();\r\n return;\r\n }\r\n\r\n paymentDetails = paymentData.santanderApplicationDetails;\r\n paymentDetails.RegisteredPostCode = paymentData.paymentDetails.RegisteredPostCode;\r\n } else {\r\n paymentDetails = paymentData.paymentDetails;\r\n }\r\n\r\n if (paymentData.paymentDetails.Birthdate !== \"undefined\")\r\n customer.birthDate = paymentData.paymentDetails.Birthdate;\r\n\r\n if (customer.customerType === \"undefined\" && payment.CustomerType() === \"privatkunde\")\r\n customer.customerType = \"private\";\r\n\r\n var registrationVM = mcWeb.customerRegistration.instances['checkout-registration'].registrationVM;\r\n if (registrationVM.deliveryWindow() !== null) {\r\n var deliveryWindow = registrationVM.deliveryWindow()\r\n customer.deliveryWindow = { start: deliveryWindow.start, end: deliveryWindow.end, token: deliveryWindow.token, expiresAt: deliveryWindow.expiresAt };\r\n customer.porterbuddyProduct = deliveryWindow.product;\r\n }\r\n\r\n self.service.PostAction(\"ProcessOrder\", { CustomerData: customer, PaymentDetails: paymentDetails, CartGuid: self.cartGuid, CartName: self.cartName }).then(function (result) {\r\n if (result.ReturnCode === \"Success\") {\r\n\r\n window.location = result.RedirectUrl;\r\n\r\n } else {\r\n self.enableOrderButton();\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder, { showBtn: true, disabledBtn: false });\r\n\r\n if (result.ReturnCode === \"ValidatePostalAddressFailed\" & result.ErrorMessageSpecified) {\r\n self.showErrorMessageFromReturnCode(result.ErrorMessage);\r\n }\r\n else if (result.ReturnCode == \"UnsupportedCurrency\") {\r\n var selectCurrencyParam = {\r\n SupportedCurrencies: result.SupportedCurrencies\r\n }\r\n var loginServcie = new WebApiService(\"Login\");\r\n loginServcie.PostAction(\"SelectAnyValidCurrency\", selectCurrencyParam).then(function (changedCurrencyResult) {\r\n\r\n self.showErrorMessage(changedCurrencyResult.Msg);\r\n $(\"#center-popup\").on(\"hidden.bs.modal\", function (e) {\r\n PubSub.publish(mcWeb.cart.events.onChangedCart);\r\n });\r\n });\r\n }\r\n else if (result.ErrorMessageSpecified) {\r\n self.showErrorMessage(result.ErrorMessage);\r\n if (result.ReturnCode === \"ProductValidationFailed\") {\r\n $(\"#center-popup\").on(\"hidden.bs.modal\", function (e) {\r\n PubSub.publish(mcWeb.cart.events.onChangedCart);\r\n });\r\n }\r\n }\r\n else if (result.SecondaryErrorMessageSpecified) {\r\n if (result.UseSecondaryErrorMessageAsReturnCode)\r\n self.showErrorMessageFromReturnCode(result.SecondaryErrorMessage);\r\n else\r\n self.showErrorMessage(result.SecondaryErrorMessage);\r\n }\r\n else if (result.ReturnCode === \"ValidateCustomerFailed\") {\r\n self.showErrorMessage(\"ValidateCustomerFailed\");\r\n }\r\n else {\r\n if (result.ReturnCode === \"SelectedCarrierNoLongerAvailable\")\r\n PubSub.publish(mcWeb.cart.events.onShowShipment, { show: true });\r\n //PubSub.publish(mcWeb.cartsmall.events.onChangedQuantityCartSmall, \"\");\r\n PubSub.publish(mcWeb.shipment.events.reloadShipment, null);\r\n\r\n if (result.ReturnCode === \"SessionNotValid\") result.ReturnCode = \"CurrentSessionHasExpired\";\r\n self.showErrorMessageFromReturnCode(result.ReturnCode);\r\n\r\n if (result.ReturnCode === \"CurrentSessionHasExpired\" || result.ReturnCode === \"ExperianError\" || result.ReturnCode === \"ExperianNoCreditApproval\" ||\r\n result.ReturnCode === \"CampaignInvalid\" || result.ReturnCode === \"CartArchivedOrInserted\") {\r\n $(\"#center-popup\").on(\"hidden.bs.modal\", function (e) {\r\n window.location.reload(true);\r\n });\r\n }\r\n else if (result.ReturnCode === \"CartValueAltered\" || result.ReturnCode === \"GiftcardAmountNeededRefresh\") {\r\n $(\"#center-popup\").on(\"hidden.bs.modal\", function (e) {\r\n PubSub.publish(mcWeb.cart.events.onChangedCart);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n });\r\n });\r\n\t\t})\r\n\t\t.catch(function (error) {\r\n\t\t\t$(\"#checkout-popup\").modal(\"hide\");\r\n self.enableOrderButton();\r\n\t\t\tconsole.log(error);\r\n\t\t});\r\n\t};\r\n\r\n self.salesConditionsAccepted = function() {\r\n var salesCondCheckbox = $(\".checkbox-sales-cond\");\r\n var salesconditions = $(\".sales-conditions\");\r\n salesconditions.removeClass(\"has-error\");\r\n if (salesCondCheckbox.length > 0 && salesconditions.is(\":visible\")) {\r\n if (salesCondCheckbox.prop(\"checked\")) {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n\r\n salesconditions.addClass(\"has-error\");\r\n return false;\r\n };\r\n\r\n\tself.showErrorMessage = function (message) {\r\n\t\tif (message.length > 0)\r\n\t\t\tself.showAlertErrorMessage(message);\r\n\t};\r\n\r\n\tself.showErrorMessageFromReturnCode = function (returnCode) {\r\n\t\tif (returnCode.length === 0)\r\n\t\t\treturn;\r\n\r\n\t\tvar unknownErrorCodes = [\r\n\t\t\t\"CartIsNull\", \"SetCustomerDataFailed\", \"SetCartValuesFailed\",\r\n\t\t\t\"SaveCartFailed\", \"CommitPhoneFailed\", \"BrokenCartReplaced\"\r\n\t\t];\r\n\r\n\t\tif (unknownErrorCodes.indexOf(returnCode) !== -1)\r\n\t\t\treturnCode = \"UnknownError\";\r\n\r\n\t\tself.langService.getValue(\"CheckoutReturnCodes\", returnCode).then(function (value) {\r\n if (value.length > 0) {\r\n var country = self.getParameterByName(\"country\");\r\n if (country) value = value.replace(/{COUNTRY}/gi, country);\r\n\r\n var email = self.getParameterByName(\"email\");\r\n if (email) value = value.replace(/{EMAIL}/gi, email);\r\n\r\n self.showAlertErrorMessage(value);\r\n }\r\n\t\t\telse {\r\n\t\t\t\tself.langService.getValue(\"CheckoutReturnCodes\", \"UnknownError\").then(function (value) {\r\n\t\t\t\t\tif (value.length > 0)\r\n\t\t\t\t\t\tself.showAlertErrorMessage(value);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tself.showAlertErrorMessage(\"\");\t//TODO: Hide progressdialog\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n self.showAlertErrorMessage = function(message, asHtml) {\r\n var msg = $(\"#error-message-label\");\r\n if (asHtml === true) {\r\n msg.append(message);\r\n } else {\r\n msg.html(message);\r\n }\r\n\r\n self.showTemplate($(\"#popup-error-message\").html());\r\n PubSub.publish(mcWeb.lightbox.events.onShowLightbox, { show: true });\r\n };\r\n\r\n\tself.scrollToFirstInvalidElement = function (element) {\r\n\t\tvar animationTime = 750;\r\n\t\tvar topOffset = 120;\r\n\t\t$(\"html, body\").animate({\r\n\t\t\tscrollTop: $(element).offset().top - topOffset\r\n\t\t}, animationTime);\r\n\t\telement.focus();\r\n };\r\n\r\n\tself.getParameterByName = function (name) {\r\n\t\tname = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n\t\tvar regex = new RegExp(\"[\\\\?&]\" + name + \"=([^]*)\"),\r\n\t\t\t\tresults = regex.exec(location.search);\r\n\t\treturn results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n\t}\r\n\r\n\tself.showWaitTemplate = function () {\r\n\r\n\t\tvar wait = $(\"#popup-wait\");\r\n\t\tif (wait.length < 1)\r\n\t\t\treturn;\r\n\r\n\t\tself.showTemplate(wait.html());\r\n\t};\r\n\r\n\tself.showTemplate = function (html) {\r\n\r\n\t\tvar template = $(\"#lightbox-placeholder\");\r\n\t\tif (template.length < 1) {\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder, { showBtn: false, disabledBtn: false });\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttemplate.html(html);\r\n\t};\r\n\r\n\tPubSub.subscribe(mcWeb.cart.events.cartGuid, function (message, data) {\r\n\t\tif (data !== null) {\r\n\t\t\tself.cartName = data.cartName;\r\n\t\t\tself.cartGuid = data.cartGuid;\r\n\t\t}\t\t\r\n });\r\n};\r\n","mcWeb.checkoutConfirmation = new function() {\r\n\r\n\t//Is used for all the new instances \r\n\tthis.instance = new function () { };\r\n\r\n\tthis.checkoutConfirmationObj = function (id, json, jsonSetting) {\r\n\t\tvar $ = jQuery;\r\n\r\n\t\tvar self = this;\r\n\t\tself.id = \"#\" + id;\r\n\t\tself.service = new WebApiService(\"Cart\");\r\n\r\n\t\t//View Model\r\n\t\tself.vm = new function () {\r\n\t\t\tvar view = this;\r\n\t\t\tview.referenceNo = ko.observable();\r\n\t\t}; /*END viewModel*/\r\n\r\n\t\tself.load = function (obj, setting) {\r\n\t\t\tif (obj == null)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tself.vm.referenceNo(obj.ReferenceNo);\r\n\t\t};\r\n\r\n\t\t//Bind viewModel\r\n\t\tko.applyBindings(self.vm, document.getElementById(id));\r\n\t\tself.load(json, jsonSetting);\r\n\t};\r\n};","mcWeb.checkoutFooterView = new function () {\r\n\r\n\tthis.events = {\r\n\t}\r\n\r\n\tthis.vm = function (id) {\r\n var self = this;\r\n\t\tthis.id = \"#\" + id;\r\n this.conditionsStatus = {\r\n isFunctionalConditionAccepted: ko.observable(false),\r\n acceptDocuments: ko.observableArray([]),\r\n usageArea: 3,\r\n refCondVm: null\r\n };\r\n\r\n this.isOrderRefRequired = false;\r\n \r\n this.load = function (data, settings) {\r\n PubSub.subscribe(mcWeb.conditions.events.onAcceptChange, function (evt, conditionStatus) {\r\n if (self.conditionsStatus.usageArea == conditionStatus.usageArea) {\r\n\r\n if (conditionStatus.functionalConditionIsAccepted === null) {\r\n self.conditionsStatus.isFunctionalConditionAccepted(true);\r\n }\r\n else {\r\n self.conditionsStatus.isFunctionalConditionAccepted(conditionStatus.functionalConditionIsAccepted);\r\n }\r\n self.conditionsStatus.acceptDocuments(conditionStatus.acceptDocuments);\r\n self.conditionsStatus.refCondVm = conditionStatus.vm;\r\n }\r\n });\r\n PubSub.subscribe(mcWeb.cart.events.onOrderRefReqChange, function (evt, isOrderRefRequired) {\r\n self.isOrderRefRequired = isOrderRefRequired;\r\n\r\n var el = jQuery('#McPaymentAddOrderbottom');\r\n\r\n if (self.isOrderRefRequired) {\r\n el.tooltip('enable');\r\n el.tooltip('show');\r\n el.blur();\r\n } else {\r\n el.tooltip('hide');\r\n el.tooltip('disable');\r\n } \r\n\r\n });\r\n };\r\n \r\n this.insertOrder = function (source) {\r\n if (self.isOrderRefRequired) {\r\n return;\r\n }\r\n\r\n var condsForProcessing = {\r\n isFunctionalConditionAccepted: self.conditionsStatus.isFunctionalConditionAccepted,\r\n acceptDocuments: self.conditionsStatus.acceptDocuments(),\r\n usageArea: self.conditionsStatus.usageArea\r\n };\r\n\r\n if (self.conditionsStatus == null || self.conditionsStatus.acceptDocuments == null || self.conditionsStatus.acceptDocuments().length <= 0) {\r\n condsForProcessing.isFunctionalConditionAccepted(true);\r\n if (source === 'vipps')\r\n return true;\r\n mcWeb.checkout.insertOrder(condsForProcessing);\r\n return;\r\n }\r\n\r\n if (self.conditionsStatus.isFunctionalConditionAccepted()) {\r\n if (source === 'vipps')\r\n return true;\r\n mcWeb.checkout.insertOrder(condsForProcessing);\r\n }\r\n else {\r\n if (self.conditionsStatus.refCondVm !== null) {\r\n if (self.conditionsStatus.refCondVm.highlightRequired(\"checkoutconditions\")) {\r\n mcWeb.validation.qTipActionShowClickHide(self.id + \" #McPaymentAddOrderbottom\",\r\n jQuery(\".langtext-conditions-required\").length > 0 ? jQuery(\".langtext-conditions-required\")[0].innerText : \"\");\r\n }\r\n } \r\n }\r\n };\r\n\t};\r\n};\r\n","mcWeb.payments = jQuery.extend(mcWeb.payments, new function () {\r\n\r\n this.vm = function (id) {\r\n \r\n // Se også LoginCheckoutView.js, subscribe(onShowHideLogin)\r\n var KCO_BETBETID = 167;\r\n var SVEA_PARTPAYMENT = 128;\r\n var ARVATO_PARTPAYMENT = 107;\r\n var ARVATO_BUSINESS = 95;\r\n var NETS_EASY_BETBETID = 183;\r\n var VIPPS_BETBETID = 186;\r\n var SCO_BETBETID = 187;\r\n\r\n this.netsEasyCheckout = null;\r\n this.netsEasyCheckoutHtml = null;\r\n this.betBetIdList = \"\";\r\n\r\n var $ = jQuery;\r\n var self = this;\r\n this.id = \"#\" + id;\r\n this.settings = null;\r\n self.isBound = false;\r\n self.isPublishMode = false;\r\n var publishModeBody = $(\"body.publish-mode\");\r\n if (publishModeBody !== undefined && publishModeBody !== null && publishModeBody.length > 0)\r\n self.isPublishMode = true;\r\n\r\n self.kcoValidateCountry = true;\r\n\r\n self.netsEasyCheckoutUrl = \"\";\r\n self.netsEasyProduction = false;\r\n self.netsEasyEnabled = false;\r\n self.cartName = null;\r\n self.cartGuid = null;\r\n self.service = new WebApiService(\"Payment\");\r\n self.waitCheckoutSnippet = false;\r\n self.langService = new LanguageService();\r\n self.conditionsVM = null;\r\n self.cancelEnter = function () {\r\n if (event.keyCode === 13) {\r\n event.preventDefault();\r\n } else return true;\r\n };\r\n\r\n this.load = function (data, settings, isPaymentChange) {\r\n if (settings !== null && settings) {\r\n self.settings = settings;\r\n }\r\n\r\n getLibrary(\"mcWeb.customerRegistration\").then(() => {\r\n if (mcWeb.customerRegistration.instances === undefined || mcWeb.customerRegistration.instances[\"checkout-registration\"] === undefined) {\r\n PubSub.subscribe(mcWeb.events.customerRegistration.onCustomerRegLoaded, function () {\r\n self.registration = mcWeb.customerRegistration.instances['checkout-registration'];\r\n self.innerLoad(data, settings, isPaymentChange);\r\n \r\n });\r\n }\r\n else {\r\n self.registration = mcWeb.customerRegistration.instances['checkout-registration'];\r\n self.innerLoad(data, settings, isPaymentChange);\r\n \r\n }\r\n \r\n });\r\n }\r\n this.innerLoad = function (data, settings, isPaymentChange) {\r\n PubSub.publish(mcWeb.payments.events.onShowUpdateIcon, null);\r\n\r\n \r\n\r\n if (data === null || !data) {\r\n self.service.GetAction(\"GetPaymentList\", null).then(function (result) {\r\n self.innerLoad(result, null, isPaymentChange);\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.Porterbuddy = self.settings.Porterbuddy;\r\n self.CustomerCountryId = self.settings.CustomerCountryId;\r\n\r\n self.klarnaShowCustomerTypeSelection(false);\r\n self.klarnaShippingAssistantEnabled(false);\r\n self.klarnaShowChangedCustomerTypeMessage(false);\r\n\r\n if (self.settings.Klarna) {\r\n self.klarnaShowCustomerTypeSelection(self.settings.Klarna.ShowCustomerTypeSelection);\r\n self.klarnaShippingAssistantEnabled(self.settings.Klarna.ShippingAssistantEnabled);\r\n self.klarnaShowChangedCustomerTypeMessage(self.settings.Klarna.ShowChangedCustomerTypeMessage);\r\n }\r\n\r\n self.sveaCheckoutShowCustomerTypeSelection(false);\r\n\r\n if (self.settings.SveaCheckout) {\r\n self.sveaCheckoutShowCustomerTypeSelection(self.settings.SveaCheckout.ShowCustomerTypeSelection);\r\n }\r\n\r\n self.vippsExpressCheckoutInCart(false);\r\n self.vippsShowCustomerTypeSelection(false);\r\n self.vippsAllowBusinessCustomer(false);\r\n\r\n if (self.settings.Vipps) {\r\n if (!self.isLoggedIn() && !self.registration.registrationVM.readOnly())\r\n self.vippsExpressCheckoutInCart(self.settings.Vipps.ExpressCheckoutInCart);\r\n self.vippsShowCustomerTypeSelection(self.settings.Vipps.ShowCustomerTypeSelection);\r\n self.vippsAllowBusinessCustomer(self.settings.Vipps.AllowBusinessCustomer);\r\n }\r\n\r\n if (self.settings.NetsEasy) {\r\n self.netsEasyEnabled = self.settings.NetsEasy.Enabled;\r\n self.netsEasyProduction = self.settings.NetsEasy.Production;\r\n self.netsEasyShowCustomerTypeSelection(self.settings.NetsEasy.ShowCustomerTypeSelection);\r\n self.netsEasyCheckoutUrl = self.settings.NetsEasy.CheckoutUrl;\r\n }\r\n self.setNetsEasyCheckoutScriptSource();\r\n\r\n if (self.registration.registrationVM.readOnly() === true) {\r\n var experianRemoved = false;\r\n if (self.registration.registrationVM.hideExperianBetBet()) {\r\n\r\n var expIndex = -1;\r\n if (data.PaymentTypes !== null) {\r\n for (var i = 0; i < data.PaymentTypes.length; i++) {\r\n if (data.PaymentTypes[i].PaymentId === self.registration.registrationVM.experianBetBetId())\r\n expIndex = i;\r\n }\r\n }\r\n\r\n if (expIndex !== -1) {\r\n data.PaymentTypes.splice(expIndex, 1);\r\n experianRemoved = true;\r\n }\r\n\r\n } else if (self.registration.registrationVM.hideOrgnrSsn()) {\r\n self.ShowOrgnrSsn(false);\r\n self.ShowOrgnrSsnField(0);\r\n }\r\n }\r\n\r\n // Vi sjekker om det er gjort endringer på betalingsmåter som skal vises \r\n // og setter kun PaymentTypes dersom det er en endring. Dette for å hindre \r\n // at hele paymentviewet unødvendig lastes på nytt. \r\n if (self.PaymentTypes() && data.PaymentTypes && self.PaymentTypes().length == data.PaymentTypes.length) {\r\n for (var i = 0; i < data.PaymentTypes.length; i++) {\r\n if (self.PaymentTypes()[i].PaymentId !== data.PaymentTypes[i].PaymentId) {\r\n self.PaymentTypes(data.PaymentTypes);\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n self.PaymentTypes(data.PaymentTypes);\r\n }\r\n\r\n self.KlarnaCustomerType(data.CustomerType);\r\n self.CustomerType(data.CustomerType);\r\n\r\n self.addBindings();\r\n self.isLoggedIn(data.IsLoggedIn);\r\n self.BirthDate(data.BirthDate);\r\n\r\n var paymentMethodSelected = false;\r\n var hasKlarnaCheckout = false;\r\n let doLoadCustomerForm = false;\r\n if (data.PaymentTypes !== null) {\r\n for (var i = 0; i < data.PaymentTypes.length; i++) {\r\n\r\n if (data.PaymentTypes[i].PaymentId === KCO_BETBETID) {\r\n hasKlarnaCheckout = true;\r\n }\r\n\r\n if (data.PaymentTypes[i].PaymentId === NETS_EASY_BETBETID) {\r\n hasKlarnaCheckout = true;\r\n }\r\n\r\n if (data.PaymentTypes[i].PaymentId === SCO_BETBETID) {\r\n hasKlarnaCheckout = true;\r\n }\r\n\r\n if (experianRemoved === true) {\r\n self.selectPaymentType(data.PaymentTypes[i]);\r\n paymentMethodSelected = true;\r\n experianRemoved = false;\r\n }\r\n\r\n if (data.PaymentTypes[i].PaymentId === data.SelectedId) {\r\n self.selectPaymentType(data.PaymentTypes[i]);\r\n doLoadCustomerForm = true;\r\n //moved loadCustomerForm because we haven't applied the bindings yet\r\n paymentMethodSelected = true;\r\n }\r\n }\r\n }\r\n\r\n // Vi oppdaterer visningen av betalingsmåtene dersom listen over betalingsmåter er endret siden forrige visning\r\n if (data.PaymentList !== self.betBetIdList) {\r\n //console.log(\"Liste med BetBet er endret\");\r\n self.betBetIdList = data.PaymentList;\r\n PubSub.publish(mcWeb.payments.events.reloadPayments, \"reloadPayments\");\r\n }\r\n\r\n if (paymentMethodSelected === false) {\r\n console.log('Advarsel: Ingen betalingsmåter er aktivert for denne kunden!');\r\n }\r\n PubSub.publish(mcWeb.payments.events.onHideUpdateIcon, null);\r\n\r\n if (!self.isBound) {\r\n self.showCustomerRegButtonPrivate = ko.computed(function () {\r\n if (self.registration === undefined || self.registration.registrationVM === undefined)\r\n return false;\r\n\r\n return self.registration.registrationVM.customerType() === 'business' && !self.registration.registrationVM.readOnly() && !self.registration.registrationVM.isLoggedIn() && !self.registration.registrationVM.onlyBusiness();\r\n });\r\n\r\n self.showCustomerRegButtonBusiness = ko.computed(function () {\r\n if (self.registration === undefined || self.registration.registrationVM === undefined)\r\n return false;\r\n\r\n return self.registration.registrationVM.customerType() === 'private' && !self.registration.registrationVM.readOnly() && !self.registration.registrationVM.isLoggedIn() && !self.registration.registrationVM.onlyPrivate();\r\n });\r\n\r\n let vmNode = document.getElementById(self.settings.VMID);\r\n ko.applyBindings(self, vmNode);\r\n self.isBound = true;//prevent multiple bindings of this VM\r\n }\r\n\r\n self.lockPorterbuddyRecipientInfo(data.SelectedId);\r\n\r\n if (doLoadCustomerForm) {\r\n self.loadCustomerForm(data.SelectedId, hasKlarnaCheckout, isPaymentChange);\r\n }\r\n };\r\n\r\n this.setNetsEasyCheckoutScriptSource = function () {\r\n if (!self.netsEasyEnabled) {\r\n $('#netseasy-checkout-script').hide();\r\n return;\r\n }\r\n\r\n $('#netseasy-checkout-script').show();\r\n $('#netseasy-checkout-script').attr(\"src\", self.netsEasyCheckoutUrl);\r\n };\r\n\r\n this.highlightRequiredConditions = function () {\r\n if (self.conditionsVM)\r\n self.conditionsVM.highlightRequired(\"checkoutconditions\");\r\n };\r\n\r\n this.addBindings = function () {\r\n $(document).on('shown.bs.tab', 'a[href=\"#97\"]', function (e) {\r\n });\r\n };\r\n\r\n this.hasCartItems = ko.observable(false);\r\n this.functionalConditionsAccepted = ko.observable(true); //backwards compatibility\r\n this.showPayments = ko.computed(function () {\r\n return self.hasCartItems();\r\n }, this);\r\n this.PaymentTypes = ko.observableArray();\r\n\r\n this.selectedPaymentOld = ko.observable();\r\n this.selectedPayment = ko.observable();\r\n\r\n this.selectedPayment.subscribe(function (newValue) {\r\n if (self.selectedPaymentOld() !== newValue) {\r\n self.selectedPaymentOld(newValue);\r\n self.selectedPayment(newValue);\r\n PubSub.publish(mcWeb.payments.events.onSelectedPayment, newValue);\r\n }\r\n });\r\n\r\n this.KlarnaCampaigns = ko.observableArray();\r\n this.Fodselsnummer = ko.observable();\r\n this.RegisteredZip = ko.observable();\r\n this.BirthDate = ko.observable();\r\n this.BirthDate.subscribe(function (newValue) {\r\n if (newValue !== null && newValue.length > 0) {\r\n newValue = newValue.replace(/[^\\d]/, '');\r\n self.BirthDate(newValue);\r\n\r\n //Test date: 011299 \r\n if (self.isValidDateddmmyy(newValue)) {\r\n self.service.GetAction(\"UpdateBirthDate\", { date: newValue }).then(function (result) {\r\n var input = $('.col-birthdate .genericBirthdate');\r\n var symbol = $('.col-birthdate i');\r\n\r\n if (result === true) {\r\n symbol.addClass('icon-check green');\r\n input.removeClass('validation_error');\r\n } else {\r\n symbol.removeClass('icon-check green');\r\n input.addClass('validation_error');\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n this.Orgnr = ko.observable();\r\n this.Orgnr.subscribe(function (data) {\r\n PubSub.publish(mcWeb.payments.events.updateOrgNr, data);\r\n });\r\n\r\n self.selectedSveaPaymentPlanOptionRadio = ko.observable();\r\n\r\n this.showSveaPaymentPlanOptionInfo = function (campaignCode) {\r\n if (self.selectedSveaPaymentPlanOptionRadio() == campaignCode)\r\n return true;\r\n return false;\r\n }\r\n\r\n this.formatMoney = function (money) {\r\n return money;\r\n };\r\n\r\n this.formatInterest = function (interest) {\r\n return interest + \" %\";\r\n };\r\n\r\n this.CustomerCountryId = 1;\r\n this.GothiaTOS = ko.observable();\r\n this.GothiaRequireCustomerConfirmation = ko.observable();\r\n this.AcceptedTermsAndConditions = ko.observable();\r\n this.ShowOrgnrSsn = ko.observable();\r\n this.ShowOrgnrSsnField = ko.observable();\r\n this.KlarnaCustomerType = ko.observable();\r\n this.CustomerType = ko.observable();\r\n this.showRefreshSpin = ko.observable(false);\r\n this.showRefreshSpinMargin = ko.observable(0);\r\n this.isLoggedIn = ko.observable(false);\r\n this.SveaWebPayPaymentPlanOptions = ko.observableArray();\r\n this.GetSveaWebPayPaymentPlanOptions = ko.observable();\r\n this.klarnaShowCustomerTypeSelection = ko.observable(false);\r\n this.klarnaShippingAssistantEnabled = ko.observable(false);\r\n this.klarnaShowChangedCustomerTypeMessage = ko.observable(false);\r\n this.vippsExpressCheckoutInCart = ko.observable(false);\r\n this.vippsShowCustomerTypeSelection = ko.observable(false);\r\n this.vippsAllowBusinessCustomer = ko.observable(false);\r\n this.sveaCheckoutShowCustomerTypeSelection = ko.observable(false);\r\n this.netsEasyShowCustomerTypeSelection = ko.observable(false);\r\n this.Porterbuddy = false;\r\n\r\n this.showCustomerSelection = function () {\r\n switch (self.selectedPayment()) {\r\n case 186: //Vipps\r\n return self.vippsExpressCheckoutInCart() && self.vippsShowCustomerTypeSelection();\r\n break;\r\n case 167: //KCO\r\n return self.klarnaShowCustomerTypeSelection();\r\n break;\r\n case 183: //Easy\r\n return self.netsEasyShowCustomerTypeSelection();\r\n break;\r\n }\r\n return true;\r\n };\r\n\r\n //Set the hight of \"update icon\"\r\n this.showRefreshSpin.subscribe(function () {\r\n var hight = parseFloat($(\"#payments.payments\").height());\r\n if (hight !== NaN && hight > 1) {\r\n hight = ((hight / 2) - 30);\r\n if (hight < 5)\r\n hight = 5;\r\n self.showRefreshSpinMargin(hight + 'px');\r\n }\r\n });\r\n\r\n var hasCartItem = true;\r\n PubSub.subscribe(mcWeb.cart.events.hasCartItems, function (message, data) {\r\n if (data === false) {\r\n self.hasCartItems(false);\r\n hasCartItem = false;\r\n } else {\r\n hasCartItem = true;\r\n }\r\n\r\n });\r\n\r\n getLibrary(\"mcWeb.customerRegistration\").then(() => {\r\n PubSub.subscribe(mcWeb.events.customerRegistration.onChangedCustomerData, function (message, data) {\r\n if (data !== null && data.isLoggedIn !== null) {\r\n self.isLoggedIn(data.isLoggedIn);\r\n }\r\n if (hasCartItem === false)\r\n self.hasCartItems(false);\r\n else\r\n self.hasCartItems(true);\r\n\r\n self.RegisterKlarnaListener();\r\n });\r\n });\r\n\r\n PubSub.subscribe(mcWeb.conditions.events.onAcceptChange, function (evt, conditionStatus) {\r\n if (conditionStatus.usageArea === 3) {\r\n var previousFunctionalAcceptanceStatus = self.functionalConditionsAccepted();\r\n self.conditionsVM = conditionStatus.vm;\r\n if (conditionStatus.functionalConditionIsAccepted === null) {\r\n self.functionalConditionsAccepted(true);\r\n } else if (conditionStatus.acceptDocuments === null || conditionStatus.acceptDocuments.length <= 0) {\r\n self.functionalConditionsAccepted(true);\r\n }\r\n else {\r\n self.functionalConditionsAccepted(conditionStatus.functionalConditionIsAccepted);\r\n }\r\n if (self.functionalConditionsAccepted()) {\r\n if (self.selectedPayment() === KCO_BETBETID || self.selectedPayment() === NETS_EASY_BETBETID || self.selectedPayment() === SCO_BETBETID ||\r\n (self.selectedPayment() === VIPPS_BETBETID && (!self.vippsAllowBusinessCustomer() || self.CustomerType() !== 'bedriftskunde'))) {\r\n PubSub.publish(mcWeb.payments.events.onShowUpdateIcon, null);\r\n if (previousFunctionalAcceptanceStatus !== self.functionalConditionsAccepted()) {\r\n if (!self.KCOisLoaded()) {\r\n self.KCOisLoaded(true);\r\n self.loadCustomerForm(self.selectedPayment(), true);\r\n } else {\r\n self.processPaymentMethods(self.selectedPayment());\r\n }\r\n self.UpdateCheckoutCartItems();\r\n }\r\n\r\n if (self.selectedPayment() === VIPPS_BETBETID)\r\n $('.payment-title').show();\r\n\r\n PubSub.publish(mcWeb.payments.events.onHideUpdateIcon, null);\r\n\r\n }\r\n } else {\r\n if (self.selectedPayment() === KCO_BETBETID || self.selectedPayment() === NETS_EASY_BETBETID || self.selectedPayment() === SCO_BETBETID ||\r\n (self.selectedPayment() === VIPPS_BETBETID && self.vippsExpressCheckoutInCart() && (!self.vippsAllowBusinessCustomer() || self.CustomerType() !== 'bedriftskunde'))) {\r\n //if (previousFunctionalAcceptanceStatus != self.functionalConditionsAccepted())\r\n self.highlightRequiredConditions();\r\n\r\n if (self.selectedPayment() === VIPPS_BETBETID)\r\n $('.payment-title').hide();\r\n }\r\n self.KCOisLoaded(false);\r\n }\r\n }\r\n });\r\n\r\n getLibrary(\"mcWeb.loginCheckout\").then(() => {\r\n PubSub.subscribe(mcWeb.loginCheckout.events.onShowLoginPassword, function (message, paymentId) {\r\n self.ShowOrgnrSsn(false);\r\n });\r\n });\r\n\r\n this.loadCustomerForm = function (paymentId, hasKlarnaCheckout, isPaymentChange) {\r\n\r\n var el = $(\"#mcweb-customerregistration-checkout-registration\");\r\n\r\n var tabContent = $(\".tab-content\");\r\n var tabHeight = tabContent.height();\r\n tabContent.css('min-height', tabHeight + 'px');\r\n var form = null;\r\n\r\n if (!self.isPublishMode) {//gaia windows fail when we attach/detach the \r\n form = el.detach();\r\n }\r\n\r\n $('#payments-tab-nav a[href=\"#' + paymentId + '\"]').tab('show');\r\n self.selectedPayment(paymentId);\r\n if (!self.isPublishMode) {\r\n form.appendTo(\"#\" + paymentId);\r\n }\r\n\r\n $(\"#mcweb-customerregistration-checkout-registration\").show();\r\n\r\n tabContent.animate({ \"min-height\": \"250px\" }, { queue: false, duration: 800 });\r\n\r\n var checkout = $('.checkout');\r\n var nav = $('#payments-tab-nav');\r\n\r\n if (hasKlarnaCheckout) {\r\n nav.show();\r\n checkout.removeClass('l-out').addClass('l-in');\r\n }\r\n\r\n if (self.isLoggedIn() || paymentId === KCO_BETBETID || paymentId === NETS_EASY_BETBETID || paymentId === SCO_BETBETID ||\r\n (paymentId === VIPPS_BETBETID && self.vippsExpressCheckoutInCart() && (!self.vippsAllowBusinessCustomer() || self.CustomerType() !== 'bedriftskunde'))) {\r\n\r\n if (paymentId === KCO_BETBETID || paymentId === NETS_EASY_BETBETID || paymentId === SCO_BETBETID ||\r\n (paymentId === VIPPS_BETBETID && !self.isLoggedIn())) {\r\n checkout.removeClass('l-in').addClass('l-out');\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder, { showBtn: false, disabledBtn: false, showPrice: false, showSalesConditions: false });\r\n } else {\r\n checkout.removeClass('l-out').addClass('l-in');\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder, { showBtn: true, disabledBtn: false, showPrice: true, showSalesConditions: true });\r\n }\r\n\r\n nav.show();\r\n\r\n if (!self.functionalConditionsAccepted() && paymentId === VIPPS_BETBETID) {\r\n $('.payment-title').hide();\r\n } else {\r\n $('.payment-title').show();\r\n }\r\n\r\n $('.tab-content').removeClass('tab-radius');\r\n\r\n //if (paymentId === NETS_EASY_BETBETID && self.netsEasyCheckout !== undefined && self.netsEasyCheckout === null)\r\n self.processPaymentMethods(paymentId, isPaymentChange);\r\n\r\n } else {\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder, { showBtn: true, disabledBtn: true, showPrice: true, showSalesConditions: true });\r\n\r\n checkout.removeClass('l-out').addClass('l-in');\r\n PubSub.publish(mcWeb.loginCheckout.events.onShowHideLogin, paymentId);\r\n }\r\n\r\n self.getGothiaAccountTos(paymentId);\r\n self.getSveaWebPayPaymentPlanOptions(paymentId);\r\n\r\n PubSub.publish(mcWeb.payments.events.onHideUpdateIcon, null);\r\n\r\n if (!!mcWeb.inlineEditor)\r\n mcWeb.inlineEditor.init(true);\r\n\r\n //}); //el.slideUp\r\n };\r\n\r\n this.KCOisLoaded = ko.observable(false);\r\n\r\n this.selectPaymentType = function (paymentType) {\r\n var data = { paymentId: paymentType.PaymentId, paymentText: paymentType.PaymentText };\r\n self.service.GetAction(\"SelectPayment\", data).then(function (result) {\r\n PubSub.publish(mcWeb.cart.events.onChangedCart, null);\r\n });\r\n };\r\n\r\n this.handlePaymentChange = function (paymentType) {\r\n PubSub.publish(mcWeb.payments.events.onShowUpdateIcon, null);\r\n $('.qtip').qtip('destroy', true);\r\n\r\n // Vipps er ikke tilgjengelig for bedriftskunder\r\n if (paymentType.PaymentId === VIPPS_BETBETID && self.vippsExpressCheckoutInCart() && (!self.vippsAllowBusinessCustomer() || self.CustomerType() !== 'bedriftskunde'))\r\n self.clickPrivate();\r\n\r\n self.selectedPayment(paymentType.PaymentId);\r\n\r\n self.loadCustomerForm(paymentType.PaymentId, null, true);\r\n\r\n self.lockPorterbuddyRecipientInfo(paymentType.PaymentId);\r\n\r\n if (paymentType.PaymentId === KCO_BETBETID || paymentType.PaymentId === NETS_EASY_BETBETID || paymentType.PaymentId === SCO_BETBETID ||\r\n (paymentType.PaymentId === VIPPS_BETBETID && self.vippsExpressCheckoutInCart() && (!self.vippsAllowBusinessCustomer() || self.CustomerType() !== 'bedriftskunde'))) {\r\n self.KCOisLoaded(true);\r\n if (!self.functionalConditionsAccepted())\r\n self.highlightRequiredConditions();\r\n }\r\n self.selectPaymentType(paymentType);//this will publish onChangedCart event, no need to publish an extra identical event \r\n };\r\n\r\n this.lockPorterbuddyRecipientInfo = function (paymentId) {\r\n if (typeof porterbuddy !== 'undefined' && typeof porterbuddy.setRecipientInfoLocked === 'function') {\r\n if (paymentId === SCO_BETBETID || paymentId === KCO_BETBETID)\r\n porterbuddy.setRecipientInfoLocked(true);\r\n else if (paymentId === NETS_EASY_BETBETID)\r\n porterbuddy.setRecipientInfoLocked(false);\r\n else\r\n porterbuddy.setRecipientInfoLocked(false);\r\n }\r\n };\r\n\r\n this.getJsonData = function () {\r\n var campaignCode = '';\r\n if (self.selectedPayment() === SVEA_PARTPAYMENT) campaignCode = self.selectedSveaPaymentPlanOptionRadio();\r\n\r\n var orgnrTemp = self.Orgnr();\r\n if (self.selectedPayment() === ARVATO_BUSINESS) {\r\n orgnrTemp = self.Fodselsnummer();\r\n }\r\n var birthdate = 'undefined';\r\n if (self.ShowOrgnrSsn()) {\r\n birthdate = self.BirthDate();\r\n }\r\n var paymentDetails = {\r\n SocialSecurityNumber: self.Fodselsnummer(),\r\n CampaignCode: campaignCode,\r\n AcceptCreditCheck: self.AcceptedTermsAndConditions(),\r\n OrgNumber: orgnrTemp,\r\n Birthdate: birthdate,\r\n RegisteredPostCode: self.RegisteredZip()\r\n };\r\n\r\n return {\r\n selectedPayment: self.selectedPayment(),\r\n paymentDetails: paymentDetails\r\n };\r\n };\r\n\r\n this.updatePaymentWithPBAddress = function (recipientInfo) {\r\n var paymentType = self.selectedPayment();\r\n\r\n if (!paymentType)\r\n return;\r\n\r\n var provider = \"\";\r\n switch (paymentType) {\r\n case KCO_BETBETID:\r\n provider = \"KlarnaCheckout\";\r\n break;\r\n case NETS_EASY_BETBETID:\r\n provider = \"NetsEasy\";\r\n break;\r\n case VIPPS_BETBETID:\r\n provider = \"Vipps\";\r\n break;\r\n case SCO_BETBETID:\r\n provider = \"Svea\";\r\n break;\r\n }\r\n\r\n var addressLine = recipientInfo.streetAddress;\r\n var zipCode = recipientInfo.postCode;\r\n var email = recipientInfo.email;\r\n var req = { Provider: provider, AddressLine: addressLine, ZipCode: zipCode, Email: email };\r\n\r\n self.service.PostAction(\"UpdatePorterbuddyDeliveryAddress\", req).then(function (result) {\r\n if (result === null || result.length < 1) {\r\n console.log(\"Oppdatering av adresse feilet\");\r\n }\r\n });\r\n }\r\n\r\n this.validateSveaWebPay = function (payment) {\r\n var paymentId = payment.selectedPayment();\r\n var resName = \"\";\r\n var element;\r\n\r\n if (self.CustomerType() === 'bedriftskunde') {\r\n element = self.findClass(paymentId, \"SveaWebPay_OrgNo\", \"input\");\r\n if (!payment.isOrgnrValid($(\".SveaWebPay_OrgNo\"), false)) return { IsValid: false, ResName: \"OrgnummerError\", Element: element }\r\n else mcWeb.validation.setValidCss(element);\r\n } else {\r\n element = self.findClass(paymentId, \"SveaWebPay_PersonalId\", \"input\");\r\n if (!payment.isFodselsnummerValid($(\".SveaWebPay_PersonalId\"), false)) return { IsValid: false, ResName: \"FodselsnummerError\", Element: element }\r\n else mcWeb.validation.setValidCss(element);\r\n }\r\n\r\n if (paymentId === 128) {\r\n var radioButtonListArray = $(\"input[name='sveaPaymentPlanOptionRadio']\");\r\n var checked = false;\r\n\r\n for (var i = 0; i < radioButtonListArray.length; i++) {\r\n if (radioButtonListArray[i].checked)\r\n checked = true;\r\n }\r\n\r\n if (!checked)\r\n return { IsValid: false, ResName: \"SveaPaymentPlanOptionNotSet\", Element: radioButtonListArray[0] };\r\n }\r\n\r\n return { IsValid: true, ResName: resName, Element: element };\r\n };\r\n\r\n this.findClass = function (paymentId, cssClass, type) {\r\n try {\r\n var paymentDiv = $(\"div[id=\" + paymentId + \"]\");\r\n var toFind = type + \"[class*='\" + cssClass + \"']\";\r\n var found = paymentDiv.find(toFind);\r\n return found;\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n\r\n\r\n this.getSveaWebPayPaymentPlanOptions = function (paymentId) {\r\n if (paymentId === SVEA_PARTPAYMENT) {\r\n PubSub.publish(mcWeb.payments.events.onShowUpdateIcon, null);\r\n self.service.GetAction(\"GetSveaWebPayPaymentPlanOptions\", null).then(function (result) {\r\n PubSub.publish(mcWeb.payments.events.onHideUpdateIcon, null);\r\n self.SveaWebPayPaymentPlanOptions(JSON.parse(result));\r\n });\r\n }\r\n };\r\n\r\n this.getGothiaAccountTos = function (paymentId) {\r\n if (paymentId === ARVATO_PARTPAYMENT) {\r\n PubSub.publish(mcWeb.payments.events.onShowUpdateIcon, null);\r\n self.service.GetAction(\"GetAccountTermsAndConditions\", null).then(function (result) {\r\n PubSub.publish(mcWeb.payments.events.onHideUpdateIcon, null);\r\n self.GothiaTOS(result.TermsAndConditions);\r\n self.GothiaRequireCustomerConfirmation(result.RequireCustomerConfirmation);\r\n });\r\n }\r\n };\r\n\r\n this.gothiaShowTermsAndConditions = function () {\r\n var generator = window.open('', 'gothiaTos', 'height=600,width=730,location=0,menubar=0');\r\n generator.document.write(self.GothiaTOS());\r\n generator.document.close();\r\n };\r\n\r\n this.getFakturaGebyr = function () {\r\n return self.service.GetAction(\"GetFakturaGebyr\", null);\r\n };\r\n\r\n this.isFodselsnummerValid = function (element, klarna) {\r\n var regEx = null;\r\n\r\n if (self.CustomerCountryId === 1) //Norge\r\n regEx = /^[0-9]{2}[0,1][0-9][0-9]{2}[ ]?[0-9]{5}$/;\r\n else if (self.CustomerCountryId === 2) //Sverige\r\n regEx = /^([0-9]{2})?[0-9]{2}[0-1][0-9][0-9]{2}[-+]?[0-9]{4}$/;\r\n else if (self.CustomerCountryId === 3) //Danmark\r\n regEx = /^[0-9]{2}[0,1][0-9][0-9]{2}[0-9]{4}$/;\r\n else if (self.CustomerCountryId === 4) //Finland\r\n regEx = /^[0-9]{2}\\.?[0,1][0-9]\\.?[0-9]{2}[-+A][0-9]{3}[0-9A-Z]{1}$/;\r\n\r\n if (regEx === null) return true;\r\n return regEx.test(element.val());\r\n };\r\n\r\n this.isZipCodeValid = function (element) {\r\n if (element.val().length <= 0) return false;\r\n return true;\r\n };\r\n\r\n this.isZipCodeValidFormat = function (element, landId) {\r\n var zipCode = element.val();\r\n var regEx = /^\\d{4}$/;\r\n if (zipCode.match(regEx) !== null)\r\n return true;\r\n return false;\r\n };\r\n\r\n this.isPhoneValidFormat = function (element, landId) {\r\n var phone = element.val();\r\n var regEx = /^\\d{8}$/;\r\n if (phone.match(regEx) !== null)\r\n return true;\r\n return false;\r\n };\r\n\r\n this.isValidDateddmmyy = function (dateString) {\r\n var regEx = /\\d{2}\\d{2}\\d{2}/;\r\n if (dateString.match(regEx) !== null) {\r\n return true; //var format = self.ddmmyy_to_utcdate(dateString);\r\n //return self.isValidYear(format);\r\n }\r\n return false;\r\n };\r\n\r\n this.isOrgnrValid = function (element, klarna) {\r\n var regEx = null;\r\n\r\n if (self.CustomerCountryId === 1) //Norge\r\n regEx = /^(\\d{9})$|((\\d{3})\\s(\\d{3})\\s(\\d{3}))$/;\r\n else if (self.CustomerCountryId === 2) //Sverige\r\n regEx = /^(\\d{10})$|(\\d{6}[-]\\d{4})$/;\r\n\r\n if (regEx === null) return true;\r\n return regEx.test(element.val());\r\n };\r\n\r\n this.isBirthdateValid = function (element) {\r\n var isValid = false;\r\n var value = element.val();\r\n if (value.length > 0) {\r\n if (self.isValidDateddmmyy(value)) { //011299) \r\n isValid = true;\r\n }\r\n }\r\n\r\n return isValid;\r\n };\r\n\r\n this.selectFirstInList = function () {\r\n $(\"input:radio\").filter(':visible:first').attr(\"checked\", true);\r\n };\r\n\r\n this.GetCheckoutSnippet = function (paymentId, isPaymentChange) {\r\n if (paymentId === KCO_BETBETID || paymentId === NETS_EASY_BETBETID || paymentId === SCO_BETBETID) {\r\n self.GetCheckout(paymentId, isPaymentChange);\r\n } else if (paymentId === VIPPS_BETBETID && !self.isLoggedIn() && self.vippsExpressCheckoutInCart() && (!self.vippsAllowBusinessCustomer() || self.CustomerType() !== 'bedriftskunde')) {\r\n $(\"#customer-registration\").hide();\r\n } else {\r\n $(\"#customer-registration\").show();\r\n\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder,\r\n { showBtn: true, disabledBtn: false, showPrice: false });\r\n }\r\n };\r\n\r\n this.GetCheckout = function (paymentId, isPaymentChange) {\r\n $(\"#customer-registration\").hide();\r\n $(\"#nets-easy-checkout-error\").hide();\r\n $(\"#svea-checkout-error\").hide();\r\n\r\n if (paymentId === SCO_BETBETID)\r\n self.disableSveaCheckout();\r\n\r\n if (self.cartGuid === null || self.cartName === null) {\r\n self.waitCheckoutSnippet = true;\r\n return;\r\n }\r\n self.waitCheckoutSnippet = false;\r\n\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder,\r\n { showBtn: false, disabledBtn: false, showPrice: false });\r\n\r\n var customerData = this.registration.getJsonData();\r\n if (typeof (customerData.epost) !== \"undefined\") {\r\n if (customerData.epost.length > 0) customerData.epost = customerData.epost.trim();\r\n }\r\n\r\n if (!isPaymentChange)\r\n isPaymentChange = false;\r\n\r\n var data = { Customer: customerData, CartGuid: self.cartGuid, CartName: self.cartName, IsPaymentChange: isPaymentChange };\r\n\r\n if (paymentId === KCO_BETBETID) {\r\n self.service.PostAction(\"GetKlarnaCheckoutSnippet\", data).then(function (result) {\r\n if (result === null || result.length < 1) {\r\n console.log(\"Kunne ikke laste Klarna Checkout\");\r\n return;\r\n }\r\n self.SetKlarnaCheckout(result);\r\n });\r\n }\r\n\r\n if (paymentId === NETS_EASY_BETBETID) {\r\n self.service.PostAction(\"GetNetsEasyCheckoutSnippet\", data).then(function (result) {\r\n if (result === null || result.length < 1) {\r\n $(\"#nets-easy-checkout-error\").show();\r\n console.log(\"Kunne ikke laste Nets Easy Checkout\");\r\n return;\r\n }\r\n if (result.RedirectUrl) window.location = result.RedirectUrl;\r\n self.SetNetsEasyCheckout(result.CheckoutOptions);\r\n });\r\n }\r\n\r\n if (paymentId === SCO_BETBETID) {\r\n self.service.PostAction(\"GetSveaCheckoutSnippet\", data).then(function (result) {\r\n if (result === undefined || result === null || result.length < 1) {\r\n $(\"#svea-checkout-error\").show();\r\n console.log(\"Kunne ikke laste Svea Checkout\");\r\n self.enableSveaCheckout();\r\n return;\r\n }\r\n self.SetSveaCheckout(result);\r\n self.enableSveaCheckout();\r\n });\r\n }\r\n };\r\n\r\n this.disableSveaCheckout = function () {\r\n if (window.scoApi)\r\n window.scoApi.setCheckoutEnabled(false);\r\n }\r\n\r\n this.enableSveaCheckout = function () {\r\n if (window.scoApi)\r\n window.scoApi.setCheckoutEnabled(true);\r\n }\r\n\r\n this.SetSveaCheckout = function (snippet) {\r\n $(\"#svea-checkout-snippet\").html(snippet);\r\n self.RegisterSveaCheckoutListener();\r\n };\r\n\r\n this.netsEasyCheckoutHtml = ko.observable();\r\n this.netsEasyCheckoutPaymentId = ko.observable();\r\n\r\n this.SetNetsEasyCheckout = function (checkoutOptions) {\r\n try {\r\n var checkoutSnippetHtml = $(\"#nets-easy-checkout-snippet\").html();\r\n\r\n if (checkoutSnippetHtml !== undefined) {\r\n if (!checkoutSnippetHtml || checkoutSnippetHtml.length == 0 || self.netsEasyCheckoutPaymentId() != checkoutOptions.paymentId) {\r\n if (self.netsEasyCheckoutHtml() && self.netsEasyCheckoutHtml().length > 0 && self.netsEasyCheckoutPaymentId() == checkoutOptions.paymentId) {\r\n $(\"#nets-easy-checkout-snippet\").html(self.netsEasyCheckoutHtml());\r\n $(\"#nets-easy-checkout-snippet\").addClass(\"dibs-checkout-wrapper\");\r\n }\r\n else {\r\n console.log(\"Nets Easy, initializing!\");\r\n\r\n // Før vi kjører new og setter callbacks må vi rydde opp...\r\n if (self.netsEasyCheckout) {\r\n self.netsEasyCheckout.cleanup();\r\n $(\"#nets-easy-checkout-snippet\").html(\"\");\r\n }\r\n\r\n self.netsEasyCheckout = new Dibs.Checkout(checkoutOptions);\r\n self.RegisterNetsEasyCallback(self.netsEasyCheckout);\r\n self.netsEasyCheckoutHtml($(\"#nets-easy-checkout-snippet\").html());\r\n self.netsEasyCheckoutPaymentId(checkoutOptions.paymentId);\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.log('Warning - PaymentView.js:SetNetsEasyCheckout. Exception: ' + e);\r\n }\r\n };\r\n\r\n this.RegisterNetsEasyCallback = function (checkout) {\r\n checkout.on('payment-completed', function (response) {\r\n var redirectMsg = $('#nets-easy-process-checkout').html();\r\n self.showTemplate(redirectMsg);\r\n PubSub.publish(mcWeb.lightbox.events.onShowLightbox, { backdrop: 'static', keyboard: false, show: true });\r\n\r\n var data = { paymentId: response.paymentId };\r\n self.service.GetAction(\"NetsEasyCheckoutComplete\", data).then(function (result) {\r\n if (result === null || result.length < 1) {\r\n console.log(\"Nets Easy, verifisering og opprettelse av ordre feilet eller ordre eksisterer\");\r\n PubSub.publish(mcWeb.lightbox.events.onHideLightbox);\r\n return;\r\n }\r\n window.location = result;\r\n });\r\n });\r\n\r\n // Ved endring av postnummer i Nets Easy snippet oppdateres kassen...\r\n checkout.on('address-changed', function (address) { // Subscribe to address-changed event\r\n console.log(\"Nets Easy, address-changed\");\r\n //console.log(address);\r\n\r\n if (address) {\r\n var zipCode = \"\";\r\n var countryCode = \"\";\r\n\r\n if (address.postalCode !== null && address.postalCode.length > 1)\r\n zipCode = address.postalCode;\r\n\r\n if (address.countryCode !== null && address.countryCode.length > 1)\r\n countryCode = address.countryCode;\r\n\r\n if (zipCode !== \"\" && countryCode !== \"\") {\r\n var data = { zipCode: zipCode, landKode3: countryCode };\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedZipCode, data);\r\n self.UpdateCheckoutZipCode(zipCode);\r\n }\r\n }\r\n\r\n var paymentAddress = { Provider: \"NetsEasy\", Name: \"\", Email: \"\", StreetAddress: \"\", StreetAddress2: \"\", PostalCode: address.postalCode, City: \"\", CountryCode: address.countryCode };\r\n self.service.PostAction(\"GetPaymentAddress\", paymentAddress).then(function (result) {\r\n self.SetPorterbuddyRecipientInfo(\"NetsEasy\", result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n\r\n self.service.GetAction(\"NetsEasyIsCustomerPerson\", null).then(function (result) {\r\n if (result === null || result.length < 1) {\r\n return;\r\n }\r\n\r\n var customerType = \"\";\r\n if (result === true)\r\n customerType = \"person\";\r\n else\r\n customerType = \"organization\";\r\n console.log(\"Nets Easy, customerType = \" + customerType);\r\n\r\n var defaultCustomerType = 'person';\r\n if (self.KlarnaCustomerType() === 'bedriftskunde')\r\n defaultCustomerType = 'organization';\r\n if (customerType !== defaultCustomerType)\r\n self.showPaymentProviderCartReloadLightbox(customerType);\r\n });\r\n });\r\n\r\n // whenever the consumer clicks on the \"pay\" button\r\n checkout.on('pay-initialized', function (response) {\r\n var success = true;\r\n checkout.send('payment-order-finalized', success);\r\n });\r\n };\r\n\r\n this.SetKlarnaCheckout = function (snippet) {\r\n $(\"#klarna-checkout-snippet\").html(snippet);\r\n self.RegisterKlarnaListener();\r\n };\r\n\r\n this.SuspendKlarnaCheckout = function () {\r\n try {\r\n if (typeof (window._klarnaCheckout) !== \"undefined\") {\r\n window._klarnaCheckout(function (api) {\r\n api.suspend();\r\n });\r\n }\r\n } catch (e) {\r\n console.log('Warning - PaymentView.js:SuspendKlarnaCheckout. Exception: ' + e);\r\n }\r\n };\r\n\r\n this.ResumeKlarnaCheckout = function () {\r\n try {\r\n if (typeof (window._klarnaCheckout) !== \"undefined\") {\r\n window._klarnaCheckout(function (api) {\r\n api.resume();\r\n });\r\n }\r\n } catch (e) {\r\n console.log('Warning - PaymentView.js:ResumeKlarnaCheckout. Exception: ' + e);\r\n }\r\n };\r\n\r\n PubSub.subscribe(mcWeb.payments.events.onShowUpdateIcon, function (message, data) {\r\n self.showRefreshSpin(true);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.payments.events.onHideUpdateIcon, function (message, data) {\r\n self.showRefreshSpin(false);\r\n });\r\n\r\n this.IsKcoEnabled = function () {\r\n try {\r\n if (self.PaymentTypes() === null)\r\n return false;\r\n var kcoEnabled = false;\r\n\r\n for (var i = 0; i < self.PaymentTypes().length; i++) {\r\n if (self.PaymentTypes()[i].PaymentId === KCO_BETBETID) {\r\n kcoEnabled = true;\r\n }\r\n }\r\n\r\n return kcoEnabled;\r\n } catch (e) {\r\n console.log('Warning - PaymentView.js:kcoEnabled. Exception: ' + e);\r\n return false;\r\n }\r\n };\r\n\r\n // Oppdaterer KCO/EASY desom postnummer endres i kassen\r\n this.UpdateCheckoutZipCode = function (zipCode) {\r\n try {\r\n var paymentId = self.selectedPayment();\r\n if (paymentId === undefined) return;\r\n\r\n if (paymentId === KCO_BETBETID) {\r\n if (!self.klarnaShippingAssistantEnabled()) return;\r\n var isKcoEnabled = self.IsKcoEnabled();\r\n if (!isKcoEnabled) return;\r\n self.SuspendKlarnaCheckout();\r\n }\r\n\r\n if (paymentId === NETS_EASY_BETBETID) {\r\n if (self.netsEasyCheckout && !self.netsEasyFrozen()) {\r\n self.netsEasyCheckout.freezeCheckout();\r\n self.netsEasyFrozen(true);\r\n }\r\n self.netsEasyFreezeStack.push(\"UpdateCheckoutZipCode\");\r\n }\r\n\r\n var data = { paymentId: paymentId, zipCode: zipCode };\r\n self.service.GetAction(\"UpdateCheckoutZipCode\", data).then(function (result) {\r\n if (paymentId === KCO_BETBETID)\r\n self.ResumeKlarnaCheckout();\r\n\r\n if (paymentId === NETS_EASY_BETBETID) {\r\n self.netsEasyFreezeStack.pop();\r\n\r\n if (self.netsEasyCheckout && self.netsEasyFreezeStack.length === 0 && self.netsEasyFrozen()) {\r\n self.netsEasyCheckout.thawCheckout();\r\n self.netsEasyFrozen(false);\r\n }\r\n }\r\n });\r\n } catch (e) {\r\n console.log('Warning - PaymentView.js:UpdateCheckoutZipCode. Exception: ' + e);\r\n }\r\n };\r\n\r\n this.netsEasyFreezeStack = [];\r\n this.netsEasyFrozen = ko.observable(false);\r\n\r\n this.UpdateCheckoutCartItems = function () {\r\n if (self.selectedPayment() !== KCO_BETBETID && self.selectedPayment() !== NETS_EASY_BETBETID && self.selectedPayment() !== SCO_BETBETID) {\r\n return;\r\n }\r\n\r\n if (self.selectedPayment() === KCO_BETBETID) {\r\n $(\"#klarna-checkout-snippet-error\").hide();\r\n self.SuspendKlarnaCheckout(); // Vi trenger denne for at KCO-snippet skal oppdateres med korrekte priser (BUG: Mobil scroll to buttom)\r\n\r\n self.service.GetAction(\"UpdateKlarnaCheckoutCartItems\", null).then(function (result) {\r\n self.ResumeKlarnaCheckout(); // Vi trenger denne for at KCO-snippet skal oppdateres med korrekte priser (BUG: Mobil scroll to buttom)\r\n\r\n if (result === null || result.length < 1) {\r\n console.log(\"UpdateKlarnaCheckoutCartItems failed...\");\r\n return;\r\n }\r\n\r\n if (!result.Success) {\r\n $(\"#klarna-checkout-snippet\").hide();\r\n $(\"#klarna-checkout-snippet-error\").show();\r\n }\r\n\r\n $(\"#klarna-checkout-snippet\").show();\r\n $(\"#klarna-checkout-snippet-error\").hide();\r\n });\r\n }\r\n\r\n if (self.selectedPayment() === NETS_EASY_BETBETID) {\r\n if (self.netsEasyCheckout && !self.netsEasyFrozen()) {\r\n self.netsEasyCheckout.freezeCheckout();\r\n self.netsEasyFrozen(true);\r\n }\r\n self.netsEasyFreezeStack.push(\"UpdateNetsEasyCheckoutCartItems\");\r\n\r\n self.service.GetAction(\"UpdateNetsEasyCheckoutCartItems\", null).then(function (result) {\r\n self.netsEasyFreezeStack.pop();\r\n\r\n if (self.netsEasyCheckout && self.netsEasyFreezeStack.length === 0 && self.netsEasyFrozen()) {\r\n self.netsEasyCheckout.thawCheckout();\r\n self.netsEasyFrozen(false);\r\n }\r\n\r\n if (result === null || result.length < 1) {\r\n console.log(\"UpdateNetsEasyCheckoutCartItems failed...\");\r\n return;\r\n }\r\n });\r\n }\r\n\r\n if (self.selectedPayment() === SCO_BETBETID) {\r\n self.disableSveaCheckout();\r\n\r\n self.service.GetAction(\"UpdateSveaCheckoutCartItems\", null).then(function (result) {\r\n if (result === null || result.length < 1)\r\n console.log(\"UpdateSveaCheckoutCartItems failed\");\r\n else if (result == 'true')\r\n console.log(\"Update OK\");\r\n else if (result == 'false')\r\n console.log(\"Empty snippet\");\r\n else\r\n console.log(result);\r\n\r\n self.enableSveaCheckout();\r\n });\r\n return;\r\n }\r\n };\r\n\r\n this.showKcoCartReloadLightbox = function (customerType) {\r\n if (self.klarnaShowChangedCustomerTypeMessage()) {\r\n // Ved endring av kundetype i KCO-snippet må vi laste kassen på nytt.\r\n self.showTemplate($('#kco-reload-cart').html());\r\n PubSub.publish(mcWeb.lightbox.events.onShowLightbox, { backdrop: 'static', keyboard: false, show: true });\r\n\r\n document.getElementById(\"kco-reload-cart-btn\").addEventListener(\"click\", function () {\r\n self.changeCustomerType(customerType);\r\n });\r\n } else {\r\n self.changeCustomerType(customerType);\r\n }\r\n };\r\n\r\n this.changeCustomerType = function (customerType) {\r\n if (customerType === 'organization') {\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedCustomerType, 1);\r\n } else {\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedCustomerType, 0);\r\n }\r\n }\r\n\r\n this.showPaymentProviderCartReloadLightbox = function (customerType) {\r\n // Ved endring av kundetype må vi laste kassen på nytt.\r\n\r\n self.showTemplate($('#payment-provider-reload-cart').html());\r\n PubSub.publish(mcWeb.lightbox.events.onShowLightbox, { backdrop: 'static', keyboard: false, show: true });\r\n\r\n document.getElementById(\"payment-provider-reload-cart-btn\").addEventListener(\"click\", function () {\r\n if (customerType === 'organization')\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedCustomerType, 1);\r\n else\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedCustomerType, 0);\r\n });\r\n };\r\n\r\n this.clickBusiness = function () {\r\n self.registration.registrationVM.showCustomerType(false);\r\n self.registration.registrationVM.showRegButtons(true);\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedCustomerType, 1)\r\n }\r\n\r\n this.clickPrivate = function () {\r\n self.registration.registrationVM.showCustomerType(false);\r\n self.registration.registrationVM.showRegButtons(true);\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedCustomerType, 0)\r\n }\r\n\r\n this.VippsExpressCheckout = function () {\r\n var checkoutFooter = mcWeb.checkoutFooterView.instances['footer'];\r\n var okToContinue = checkoutFooter.insertOrder('vipps');\r\n\r\n if (okToContinue) {\r\n var url = \"/api/vipps/express-checkout?checkout=true\";\r\n\r\n //var useExpressCheckout = true;\r\n //if (useExpressCheckout) {\r\n // url = \"/api/vipps/express-checkout?checkout=true\";\r\n //} else {\r\n // url = \"/api/vipps/register\";\r\n //}\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: url,\r\n contentType: \"application/json; charset=utf-8\",\r\n success: function (data) {\r\n if (data) {\r\n console.log(\"Vipps Success: \" + data);\r\n window.location.replace(data);\r\n }\r\n else {\r\n console.log(\"Vipps: Blank URL\");\r\n self.langService.getValue(\"CheckoutReturnCodes\", \"VippsInitFailed\").then(function (value) {\r\n self.showErrorMessage(value);\r\n });\r\n }\r\n },\r\n error: function () {\r\n console.log(\"Vipps Error\");\r\n self.langService.getValue(\"CheckoutReturnCodes\", \"VippsInitFailed\").then(function (value) {\r\n self.showErrorMessage(value);\r\n });\r\n }\r\n });\r\n }\r\n\r\n return;\r\n };\r\n\r\n this.RegisterSveaCheckoutListener = function () {\r\n try {\r\n logPb(\"RegisterSveaCheckoutListener()\");\r\n\r\n document.addEventListener(\"checkoutReady\", function () {\r\n logPb(\"document.addEventListener(\\\"checkoutReady\\\")\");\r\n\r\n if (!window.scoApi.customEventHandlers[\"identity.phoneNumber\"] || window.scoApi.customEventHandlers[\"identity.phoneNumber\"].length === 0) {\r\n logPb(\"Register window.scoApi.observeEvent(\\\"identity.phoneNumber\\\")\");\r\n\r\n window.scoApi.observeEvent(\"identity.phoneNumber\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.phoneNumber\\\")\", data);\r\n });\r\n }\r\n if (!window.scoApi.customEventHandlers[\"identity.firstName\"] || window.scoApi.customEventHandlers[\"identity.firstName\"].length === 0) {\r\n logPb(\"Register window.scoApi.observeEvent(\\\"identity.firstName\\\")\");\r\n\r\n window.scoApi.observeEvent(\"identity.firstName\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.firstName\\\")\", data);\r\n });\r\n }\r\n if (!window.scoApi.customEventHandlers[\"identity.lastName\"] || window.scoApi.customEventHandlers[\"identity.lastName\"].length === 0) {\r\n logPb(\"Register window.scoApi.observeEvent(\\\"identity.lastName\\\")\");\r\n\r\n window.scoApi.observeEvent(\"identity.lastName\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.lastName\\\")\", data);\r\n });\r\n }\r\n\r\n if (!window.scoApi.customEventHandlers[\"identity.postalCode\"] || window.scoApi.customEventHandlers[\"identity.postalCode\"].length === 0) {\r\n logPb(\"Register window.scoApi.observeEvent(\\\"identity.postalCode\\\")\");\r\n\r\n window.scoApi.observeEvent(\"identity.postalCode\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.postalCode\\\")\", data);\r\n\r\n var postalCode = data.value;\r\n if (!postalCode)\r\n postalCode = \"\";\r\n\r\n if (postalCode.length > 1) {\r\n var data = { zipCode: postalCode };\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedZipCode, data);\r\n }\r\n\r\n var paymentAddress = { Provider: \"Svea\", Name: \"\", Email: \"\", StreetAddress: \"\", StreetAddress2: \"\", PostalCode: postalCode, City: \"\", CountryCode: \"\" };\r\n self.service.PostAction(\"GetPaymentAddress\", paymentAddress).then(function (result) {\r\n logPb(\"GetPaymentAddress [identity.postalCode]\", result);\r\n self.SetPorterbuddyRecipientInfo(\"Svea\", result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n });\r\n }\r\n if (!window.scoApi.customEventHandlers[\"identity.streetAddress\"] || window.scoApi.customEventHandlers[\"identity.streetAddress\"].length === 0) {\r\n logPb(\"Register window.scoApi.observeEvent(\\\"identity.streetAddress\\\")\");\r\n\r\n window.scoApi.observeEvent(\"identity.streetAddress\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.streetAddress\\\")\", data);\r\n\r\n var streetAddress = data.value;\r\n if (!streetAddress)\r\n streetAddress = \"\";\r\n\r\n var paymentAddress = { Provider: \"Svea\", Name: \"\", Email: \"\", StreetAddress: streetAddress, StreetAddress2: \"\", PostalCode: \"\", City: \"\", CountryCode: \"\" };\r\n self.service.PostAction(\"GetPaymentAddress\", paymentAddress).then(function (result) {\r\n logPb(\"GetPaymentAddress [identity.streetAddress]\", result);\r\n self.SetPorterbuddyRecipientInfo(\"Svea\", result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n });\r\n }\r\n if (!window.scoApi.customEventHandlers[\"identity.email\"] || window.scoApi.customEventHandlers[\"identity.email\"].length === 0) {\r\n logPb(\"Register window.scoApi.observeEvent(\\\"identity.email\\\")\");\r\n\r\n window.scoApi.observeEvent(\"identity.email\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.email\\\")\", data);\r\n\r\n var email = data.value;\r\n if (!email)\r\n email = \"\";\r\n\r\n var paymentAddress = { Provider: \"Svea\", Name: \"\", Email: email, StreetAddress: \"\", StreetAddress2: \"\", PostalCode: \"\", City: \"\", CountryCode: \"\" };\r\n self.service.PostAction(\"GetPaymentAddress\", paymentAddress).then(function (result) {\r\n logPb(\"GetPaymentAddress [identity.email]\", result);\r\n self.SetPorterbuddyRecipientInfo(\"Svea\", result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n });\r\n }\r\n });\r\n } catch (e) {\r\n logPb(\"Warning - PaymentView.js:RegisterSveaCheckoutListener. Exception\", e.toString());\r\n console.log('Warning - PaymentView.js:RegisterSveaCheckoutListener. Exception: ' + e);\r\n }\r\n };\r\n\r\n self.previousPbEmail = \"\";\r\n self.previousPbPostCode = \"\";\r\n self.previousPbStreetAddress = \"\";\r\n\r\n function shippingOptionsHandled(shippingOptions) {\r\n logPb(\"shippingOptionsHandled()\", { shippingOptions });\r\n\r\n porterbuddy.homeDeliveryOptions = shippingOptions.homeDeliveryOptions;\r\n porterbuddy.refreshShippingOptions();\r\n }\r\n\r\n this.SetPorterbuddyRecipientInfo = function (provider, email, postCode, streetAddress) {\r\n if (!self.Porterbuddy)\r\n return;\r\n\r\n try {\r\n if (postCode.includes(\"•\"))\r\n postCode = \"\";\r\n\r\n if (typeof porterbuddy !== 'undefined' && porterbuddy.setRecipientInfo !== undefined &&\r\n (email !== self.previousPbEmail || postCode !== self.previousPbPostCode || streetAddress !== self.previousPbStreetAddress)) {\r\n\r\n if (!email) {\r\n email = localStorage.getItem(\"pb-recipient-email\");\r\n\r\n if (!email)\r\n email = \"\";\r\n }\r\n\r\n if (!postCode) {\r\n postCode = localStorage.getItem(\"postalCode\")\r\n\r\n if (!postCode)\r\n postCode = \"\";\r\n }\r\n\r\n if (!streetAddress) {\r\n streetAddress = localStorage.getItem(\"pb-recipient-street-address\");\r\n\r\n if (!streetAddress)\r\n streetAddress = \"\";\r\n }\r\n\r\n var paymentAddress = {\r\n Provider: provider,\r\n Name: \"\",\r\n Email: email,\r\n StreetAddress: streetAddress,\r\n StreetAddress2: \"\",\r\n PostalCode: postCode,\r\n City: \"\",\r\n CountryCode: \"\"\r\n };\r\n self.service.PostAction(\"GetPaymentAddress\", paymentAddress).then(function (result) {\r\n email = result.Email;\r\n postCode = result.PostalCode;\r\n streetAddress = result.StreetAddress;\r\n });\r\n\r\n self.previousPbEmail = email;\r\n self.previousPbPostCode = postCode;\r\n self.previousPbStreetAddress = streetAddress;\r\n\r\n var recipientInfo = { email, postCode, streetAddress };\r\n\r\n logPb(\"SetPorterbuddyRecipientInfo(): porterbuddy.setRecipientInfo()\", { email, postCode, streetAddress });\r\n porterbuddy.setRecipientInfo(recipientInfo);\r\n\r\n savePbRecipientToLocalStorage(recipientInfo);\r\n\r\n var shippingOptions = getShippingOptions(recipientInfo);\r\n shippingOptions.then(shippingOptionsHandled);\r\n\r\n } else {\r\n var pb = typeof porterbuddy !== 'undefined';\r\n var sri = false;\r\n\r\n if (pb) {\r\n sri = porterbuddy.setRecipientInfo !== undefined;\r\n if (!sri) porterbuddy.refresh();\r\n }\r\n\r\n var data = { Porterbuddy: pb, SetRecipientInfo: sri, Email: email, PostCode: postCode, StreetAddress: streetAddress, PreviousEmail: self.previousPbEmail, PreviousPostCode: self.previousPbPostCode, PreviousStreetAddress: self.previousPbStreetAddress };\r\n logPb(\"SetPorterbuddyRecipientInfo(): Recipient already set or unavailable\", data);\r\n }\r\n } catch (e) {\r\n logPb(\"SetPorterbuddyRecipientInfo(): exception\", e.toString());\r\n console.log('Warning - PaymentView.js:SetPorterbuddyRecipientInfo. Exception: ' + e);\r\n }\r\n }\r\n\r\n function savePbRecipientToLocalStorage(recipient) {\r\n logPb(\"savePbRecipientToLocalStorage()\", recipient);\r\n\r\n localStorage.setItem(\"pb-recipient-email\", recipient.email);\r\n localStorage.setItem(\"postalCode\", recipient.postCode);\r\n localStorage.setItem(\"pb-recipient-street-address\", recipient.streetAddress);\r\n }\r\n\r\n function logPb(logTxt, logData) {\r\n try {\r\n var data = { Text: logTxt, Data: JSON.stringify(logData) };\r\n var cartService = new WebApiService(\"Cart\");\r\n cartService.PostAction(\"LogPb\", data);\r\n } catch (e) {\r\n console.log('Warning - PaymentView.js:logPb Exception: ' + e);\r\n }\r\n }\r\n\r\n this.RegisterKlarnaListener = function () {\r\n try {\r\n if (self.selectedPayment() !== KCO_BETBETID) return;\r\n\r\n if (typeof (window._klarnaCheckout) !== \"undefined\") {\r\n window._klarnaCheckout(function (api) {\r\n //console.log(\"RegisterKlarnaListener 'change'\");\r\n\r\n api.on({\r\n 'load': function (data) {\r\n var customerType = data.customer.type;\r\n var defaultCustomerType = 'person';\r\n if (self.KlarnaCustomerType() === 'bedriftskunde')\r\n defaultCustomerType = 'organization';\r\n\r\n if (customerType !== undefined) {\r\n if (customerType !== defaultCustomerType)\r\n self.showKcoCartReloadLightbox(customerType);\r\n }\r\n }\r\n });\r\n\r\n api.on({\r\n 'customer': function (data) {\r\n var customerType = data.type;\r\n var defaultCustomerType = 'person';\r\n if (self.KlarnaCustomerType() === 'bedriftskunde')\r\n defaultCustomerType = 'organization';\r\n\r\n if (customerType !== undefined) {\r\n if (customerType !== defaultCustomerType)\r\n self.showKcoCartReloadLightbox(customerType);\r\n }\r\n }\r\n });\r\n\r\n api.on({\r\n 'change': function (data) {\r\n var kcoData = data;\r\n\r\n if (data !== null && data.email !== null && typeof (data.email) !== \"undefined\" && data.email.length > 3) {\r\n PubSub.publish(mcWeb.loginCheckout.events.onChangedEmail, data.email);\r\n }\r\n\r\n if (data !== null && data.postal_code !== null && data.postal_code.length > 1) {\r\n if (data.postal_code.indexOf('*') === -1) {\r\n var zipCode = data.postal_code;\r\n var data = { zipCode: zipCode };\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedZipCode, data);\r\n } else {\r\n data.postal_code = \"\";\r\n }\r\n }\r\n\r\n var email = \"\";\r\n if (data.email)\r\n email = data.email;\r\n\r\n var name = undefined;\r\n if (kcoData.give_name)\r\n name = kcoData.give_name;\r\n if (kcoData.family_name) {\r\n if (name)\r\n name = \" \" + kcoData.family_name;\r\n else\r\n name = kcoData.family_name;\r\n }\r\n\r\n var paymentAddress = { Provider: \"KlarnaCheckout\", Name: name, Email: kcoData.email, StreetAddress: \"\", StreetAddress2: \"\", PostalCode: kcoData.postal_code, City: kcoData.city, CountryCode: kcoData.country };\r\n self.service.PostAction(\"GetPaymentAddress\", paymentAddress).then(function (result) {\r\n self.SetPorterbuddyRecipientInfo(\"KlarnaCheckout\", result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n }\r\n });\r\n });\r\n\r\n if (self.klarnaShippingAssistantEnabled()) {\r\n window._klarnaCheckout(function (api) {\r\n api.on({\r\n 'shipping_option_change': function (data) {\r\n var jsonData = JSON.stringify(data)\r\n console.log(\"shipping_option_change: \" + jsonData);\r\n\r\n var data = {\r\n shippingId: data.id,\r\n name: data.name,\r\n price: data.price,\r\n taxRate: data.tax_rate,\r\n taxAmount: data.tax_amount\r\n };\r\n\r\n var shipmentService = new WebApiService(\"Shipment\");\r\n shipmentService.GetAction(\"SaveSelectedKlarnaCarrier\", data).then(function (result) {\r\n PubSub.publish(mcWeb.cart.events.onChangedCart, \"\");\r\n //PubSub.publish(mcWeb.shipment.events.onSelectedShipment, carrier);\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (self.kcoValidateCountry) {\r\n window._klarnaCheckout(function (api) {\r\n //console.log(\"RegisterKlarnaListener 'billing_address_change'\");\r\n\r\n api.on({\r\n 'billing_address_change': function (data) {\r\n var selectedCountry = data.country;\r\n var email = data.email;\r\n if (!email) email = \"\";\r\n\r\n var name = undefined;\r\n if (data.give_name)\r\n name = data.give_name;\r\n if (data.family_name) {\r\n if (name)\r\n name = \" \" + data.family_name;\r\n else\r\n name = data.family_name;\r\n }\r\n\r\n if (data !== null && data.postal_code !== null && data.postal_code.length > 1) {\r\n if (data.postal_code.indexOf('*') === -1) {\r\n var zipCode = data.postal_code;\r\n var data = { zipCode: zipCode };\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedZipCode, data);\r\n } \r\n }\r\n\r\n var paymentAddress = { Provider: \"KlarnaCheckout\", Name: name, Email: data.email, StreetAddress: \"\", StreetAddress2: \"\", PostalCode: data.postal_code, City: data.city, CountryCode: data.country };\r\n self.service.PostAction(\"GetPaymentAddress\", paymentAddress).then(function (result) {\r\n self.SetPorterbuddyRecipientInfo(\"KlarnaCheckout\", result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n\r\n if (!email) return;\r\n\r\n if (email) {\r\n self.service.GetAction(\"GetCustomerCountryCode3\", { email: email }).then(function (result) {\r\n if (result) {\r\n var countryCode = result.m_Item1;\r\n var countryText = result.m_Item2;\r\n\r\n if (countryCode && countryCode !== selectedCountry) {\r\n //console.log(\"Kunden har avvikende land: (\" + countryCode + \"/\" + countryText + \") -> \" + selectedCountry);\r\n\r\n self.langService.getValue(\"CheckoutReturnCodes\", \"CountryCodeMismatch\").then(function (value) {\r\n if (value.length <= 0)\r\n value =\r\n 'Det eksisterer allerede en kunde med denne epostadressen som er registrert i {COUNTRY}. For å fortsette med denne E-postadressen må land endres til {COUNTRY}. Alternativt kan en annen E-postadresse benyttes.';\r\n value = value.replace(/{COUNTRY}/gi, countryText);\r\n self.showErrorMessage(value);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n } catch (e) {\r\n console.log('Warning - PaymentView.js:RegisterKlarnaListener. window._klarnaCheckout Exception: ' + e);\r\n }\r\n };\r\n\r\n self.showErrorMessage = function (message) {\r\n if (message.length > 0)\r\n self.showAlertErrorMessage(message);\r\n };\r\n\r\n self.showAlertErrorMessage = function (message, asHtml) {\r\n var msg = $(\"#error-message-label\");\r\n if (asHtml === true) {\r\n msg.append(message);\r\n } else {\r\n msg.html(message);\r\n }\r\n\r\n self.showTemplate($(\"#popup-error-message\").html());\r\n PubSub.publish(mcWeb.lightbox.events.onShowLightbox, { show: true });\r\n };\r\n\r\n self.showTemplate = function (html) {\r\n var template = $(\"#lightbox-placeholder\");\r\n if (template.length < 1) {\r\n PubSub.publish(mcWeb.checkout.events.onShowSendOrder, { showBtn: false, disabledBtn: false });\r\n return;\r\n }\r\n\r\n template.html(html);\r\n };\r\n\r\n this.zipCodePrev = ko.observable();\r\n this.zipCode = ko.observable();\r\n\r\n this.showOrgnrSsn = function (paymentId) {\r\n var data = { paymentId: paymentId };\r\n\r\n if (!(self.registration.registrationVM.readOnly() === true && self.registration.registrationVM.hideOrgnrSsn())) {\r\n self.service.GetAction(\"ShowOrgnrSsn\", data).then(function (result) {\r\n if (result.Show === true && result.FieldToShow !== 0) {\r\n self.ShowOrgnrSsn(result.Show);\r\n self.ShowOrgnrSsnField(result.FieldToShow);\r\n self.CustomerType(result.CustomerType);\r\n } else {\r\n self.ShowOrgnrSsn(false);\r\n }\r\n });\r\n } else {\r\n self.ShowOrgnrSsn(false);\r\n }\r\n };\r\n\r\n getLibrary(\"mcWeb.customerRegistration\").then(() => {\r\n PubSub.subscribe(mcWeb.events.customerRegistration.onChangedZipCode, function (message, data) {\r\n if (!data)\r\n return;\r\n\r\n var zipCode = data.zipCode;\r\n if (!zipCode)\r\n return;\r\n\r\n if (self.zipCode() !== zipCode) {\r\n self.zipCodePrev(zipCode);\r\n self.zipCode(zipCode);\r\n self.UpdateCheckoutZipCode(zipCode);\r\n }\r\n }); \r\n });\r\n\r\n PubSub.subscribe(mcWeb.payments.events.updateKco, function (message, data) {\r\n self.UpdateCheckoutCartItems();\r\n });\r\n\r\n getLibrary(\"mcWeb.campaignCode\").then(() => {\r\n PubSub.subscribe(mcWeb.campaignCode.onChangedCampaignCode, function (message, data) {\r\n self.UpdateCheckoutCartItems();\r\n PubSub.publish(mcWeb.payments.events.reloadPayments, null);\r\n });\r\n });\r\n\r\n PubSub.subscribe(mcWeb.cart.events.onChangedCart, function (message, data) {\r\n self.UpdateCheckoutCartItems();\r\n });\r\n\r\n PubSub.subscribe(mcWeb.cart.events.onChangedQuantityCart, function (message, data) {\r\n self.UpdateCheckoutCartItems();\r\n PubSub.publish(mcWeb.payments.events.reloadPayments, { parentEvent: mcWeb.cart.events.onChangedQuantityCart });\r\n });\r\n\r\n PubSub.subscribe(mcWeb.shipment.events.onSelectedShipment, function (message, data) {\r\n PubSub.publish(mcWeb.cart.events.onChangedCart, null);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.shipment.events.onChangedShipment, function (message, data) {\r\n self.UpdateCheckoutCartItems();\r\n });\r\n\r\n PubSub.subscribe(mcWeb.payments.events.reloadPayments, function (message, data) {\r\n if (data) return;\r\n\r\n mcWeb.loginCheckout.ResetLoginCheckoutPosision();\r\n if (!self.isPublishMode) {\r\n $(\"#mcweb-customerregistration-checkout-registration\").hide().detach().appendTo(\"body\");\r\n }\r\n self.load(null, null, data === undefined || data === null || data.parentEvent !== mcwe.car.events.onChangedQuantityCart);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.payments.events.focusFirstName, function (message, data) {\r\n\r\n if (mcWeb.responsive.getScreenSize() !== 'xs') {\r\n setTimeout(function () {\r\n\r\n if (self.ShowOrgnrSsn()) {\r\n switch (self.ShowOrgnrSsnField()) {\r\n case 1:\r\n $(\"div[id=\" + self.selectedPayment() + \"]\").find(\"input[class*='genericOrgnr']\").focus();\r\n break;\r\n case 2:\r\n $(\"div[id=\" + self.selectedPayment() + \"]\").find(\"input[class*='genericSsn']\").focus();\r\n break;\r\n case 3:\r\n $(\"div[id=\" + self.selectedPayment() + \"]\").find(\"input[class*='genericBirthdate']\").focus();\r\n break;\r\n }\r\n\r\n } else {\r\n $(\"#firstName\").focus();\r\n }\r\n\r\n }, 400);\r\n }\r\n\r\n });\r\n\r\n PubSub.subscribe(mcWeb.login.events.onIsloggedIn, function (message, isLoggedIn) {\r\n self.isLoggedIn(isLoggedIn);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.payments.events.processPaymentMethods, function (message, paymentId) {\r\n self.processPaymentMethods(paymentId);\r\n });\r\n\r\n this.processPaymentMethods = function (paymentId, isPaymentChange) {\r\n if (paymentId === null) {\r\n paymentId = self.selectedPayment();\r\n return;\r\n }\r\n\r\n self.showOrgnrSsn(paymentId);\r\n self.GetCheckoutSnippet(paymentId, isPaymentChange);\r\n\r\n // Vipps er ikke tilgjengelig for bedriftskunder\r\n if (paymentId === VIPPS_BETBETID && self.vippsExpressCheckoutInCart() && (!self.vippsAllowBusinessCustomer() || self.CustomerType() !== 'bedriftskunde'))\r\n self.clickPrivate();\r\n };\r\n\r\n PubSub.subscribe(mcWeb.payments.events.updateOrgNr, function (message, data) {\r\n self.Orgnr(data);\r\n PubSub.publish(mcWeb.events.customerRegistration.updateOrgNr, data);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.cart.events.cartGuid, function (message, data) {\r\n if (data !== null) {\r\n self.cartName = data.cartName;\r\n self.cartGuid = data.cartGuid;\r\n\r\n if (self.cartGuid !== null && self.cartName !== null) {\r\n if (self.waitCheckoutSnippet === true) {\r\n self.GetCheckoutSnippet(self.selectedPayment());\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.validate = function () {\r\n var promise = vm.validateModel().then(function (res) {\r\n var result = {\r\n success: false,\r\n message: '',\r\n invalidElements: []\r\n };\r\n\r\n vm.lastValidationResult = res;\r\n\r\n if (res.every(mcWeb.validation.elementIsValid)) {\r\n if (vm.settings.SoftAdressValidation && !vm.adress() && vm.addressWarningFlag === 0) {\r\n result.message = \"Adresse feltet er tomt.
Fortsett med registrering om du ikke har gateadresse!\";\r\n vm.addressWarningFlag = 1;\r\n //} else if (vm.settings.AllowNewPostNr && vm.cityDoesNotMatch && vm.zipcodeWarningFlag == 0) {\r\n //\tresult.message = \"Du har oppgitt et nytt postnr og poststed.
Fortsett med registrering om du mener dette er riktig!\";\r\n //\tvm.zipcodeWarningFlag = 1;\r\n } else {\r\n result.success = true;\r\n }\r\n } else {\r\n res.forEach(function (validationResult) {\r\n if (!validationResult.valid)\r\n result.invalidElements.push(validationResult);\r\n });\r\n\r\n result.message = $('#validation-error-text').html();\r\n }\r\n\r\n return result;\r\n });\r\n\r\n return promise;\r\n };\r\n\r\n this.validateModel = function () {\r\n $('.qtip').remove();\r\n var index;\r\n var res = mcWeb.validation.validateModel(vm.validationRules);\r\n return res.then(function (res) {\r\n for (index = 0; index < res.length; index++) {\r\n if (res[index].valid) {\r\n mcWeb.validation.setValidCss(res[index].elem);\r\n continue;\r\n } else {\r\n mcWeb.validation.removeValidCss(res[index].elem);\r\n mcWeb.validation.addErrorClass(res[index].elem);\r\n mcWeb.validation.qTipActionShow(res[index].elem, vm.getErrorMessage(res[index].elem, res[index].rule));\r\n break;\r\n }\r\n }\r\n\r\n return res;\r\n });\r\n };\r\n\r\n this.validateElement = function (eledata, event) {\r\n mcWeb.validation.validateElement(vm.validationRules, event.target)\r\n .then(function (elemValidationResult) {\r\n if (elemValidationResult.valid) {\r\n mcWeb.validation.setValidCss(event.target);\r\n } else {\r\n mcWeb.validation.removeValidCss(event.target);\r\n };\r\n });\r\n };\r\n };\r\n});","mcWeb.salesConditions = new function () {\r\n\r\n this.events = {\r\n }\r\n\r\n this.vm = function (id) {\r\n var self = this;\r\n this.id = \"#\" + id;\r\n\r\n self.hasCartItems = ko.observable(false);\r\n self.showConditons = ko.observable(false);\r\n\r\n this.load = function (data, settings) {};\r\n\r\n this.onClickConditions = function () {\r\n self.showConditons(!self.showConditons());\r\n }\r\n\r\n PubSub.subscribe(mcWeb.cart.events.hasCartItems, function (message, hasCartItems) {\r\n if (hasCartItems != null) {\r\n self.hasCartItems(hasCartItems); \r\n }\r\n });\r\n };\r\n};\r\n","mcWeb.shipment = jQuery.extend(mcWeb.shipment, new function () {\r\n\r\n this.vm = function (id) {\r\n var $ = jQuery;\r\n var self = this;\r\n\r\n self.id = \"#\" + id;\r\n self.service = new WebApiService(\"Shipment\");\r\n\r\n self.showShipments = ko.observable(false);\r\n self.hasCartItems = ko.observable(false);\r\n self.showShipmentsDetails = ko.observable(true);\r\n\r\n self.showShipmentPrice = ko.observable(false);\r\n self.showOnlyCarrierList = ko.observable();\r\n self.showCheckoutZipCode = ko.observable(true);\r\n self.selectedCarrierName = ko.observable();\r\n self.carrierList = ko.observableArray();\r\n self.selectedCarrierId = ko.observable();\r\n self.selectedCarrierPrice = ko.observable();\r\n\r\n self.logistraPickupPointsForSelectedCarrier = ko.observableArray();\r\n self.selectedLogistraPickupPoint = ko.observable();\r\n\r\n self.pickupPointEnabled = ko.observable(false);\r\n self.pickupPointRegionList = ko.observableArray();\r\n self.pickupPointCustomerList = ko.observableArray();\r\n self.pickupPointSelectedRegion = ko.observable();\r\n self.pickupPointSelectedCustomer = ko.observable();\r\n self.pickupPointRegion = ko.observable();\r\n self.pickupPointRegionId = ko.observable();\r\n self.pickupPointCustomername = ko.observable();\r\n self.popoverOpen = ko.observable(false);\r\n\r\n self.zipCodePrev = ko.observable();\r\n self.zipCode = ko.observable();\r\n self.focusZipCode = ko.observable(false);\r\n\r\n self.postOffice = ko.observable();\r\n self.adressDelivery = ko.observable();\r\n self.adresstillegDelivery = ko.observable();\r\n self.poststedDelivery = ko.observable();\r\n\r\n self.showRefreshSpin = ko.observable(false);\r\n self.showRefreshSpinMargin = ko.observable(0);\r\n self.isCheckout = ko.observable(false);\r\n self.inlineEditor = ko.observable(false);\r\n self.showCollectedDelivery = ko.observable(false);\r\n self.useCollectedDeliveryPrev = ko.observable(false);\r\n self.useCollectedDelivery = ko.observable(false);\r\n self.previousCarrierId = null;\r\n self.previousCarrierList = null;\r\n\r\n self.useCollectedDelivery.subscribe(function (newValue) {\r\n if (self.useCollectedDeliveryPrev() != newValue) {\r\n self.useCollectedDeliveryPrev(newValue);\r\n PubSub.publish(mcWeb.cart.events.onChangeCollectedDelivery, newValue);\r\n }\r\n });\r\n\r\n self.showInsuranceProduct = ko.observable(false);\r\n self.useInsuranceProduct = ko.observable(false);\r\n self.klarnaShippingAssistantEnabled = ko.observable(false);\r\n\r\n self.showPrintPackingList = ko.observable(false);\r\n self.usePrintPackingListPrev = ko.observable(false);\r\n self.usePrintPackingList = ko.observable(false);\r\n\r\n self.usePrintPackingList.subscribe(function (newValue) {\r\n if (self.usePrintPackingListPrev() !== newValue) {\r\n //self.usePrintPackingListPrev(newValue); //Denne skal IKKE være med\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedUsePrintPackingList, newValue);\r\n }\r\n });\r\n\r\n getLibrary(\"mcWeb.customerRegistration\").then(() => {\r\n PubSub.subscribe(mcWeb.events.customerRegistration.onChangedUsePrintPackingList, function (message, active) {\r\n if (active === true || active === false) {\r\n if (self.usePrintPackingList() !== active) {\r\n self.usePrintPackingList(active);\r\n } else {\r\n self.usePrintPackingListPrev(active);\r\n }\r\n }\r\n });\r\n });\r\n\r\n //Set the hight of \"update icon\"\r\n this.showRefreshSpin.subscribe(function () {\r\n var hight = parseFloat($(\"#carrier-selected.panel\").height());\r\n if (hight != NaN && hight > 1) {\r\n self.showRefreshSpinMargin(((hight / 2) - 30) + 'px');\r\n }\r\n });\r\n\r\n this.load = function (data, settings) {\r\n\r\n self.showRefreshSpin(true);\r\n\r\n //Settings\r\n if (settings) {\r\n self.showShipments(settings.ShowShipments);\r\n self.showShipmentPrice(settings.ShowShipmentPrice);\r\n self.showOnlyCarrierList(settings.ShowOnlyCarrierList);\r\n self.showCheckoutZipCode(settings.ShowCheckoutZipCode);\r\n self.isCheckout(($('.body-checkout').length > 0) ? true : false);\r\n\r\n self.showCollectedDelivery(settings.ShowCollectedDelivery);\r\n self.showPrintPackingList(settings.ShowPrintPackingList);\r\n self.showInsuranceProduct(settings.ShowInsuranceProduct);\r\n self.inlineEditor(settings.InlineEditor);\r\n }\r\n\r\n //Loading data width ajax\r\n if (!data) {\r\n self.service.GetAction(\"CarrierList\", { isCheckout: self.isCheckout() }).then(function (result) {\r\n if (result == null) {\r\n self.showRefreshSpin(false);\r\n return;\r\n }\r\n\r\n self.load(result);\r\n });\r\n return;\r\n }\r\n\r\n self.pickupPointEnabled(data.PickupPointEnabled);\r\n if (data.CarrierList)\r\n self.carrierList(data.CarrierList);\r\n self.selectedCarrierId(data.SelectedCarrierId);\r\n setSelectedCarrier(data);\r\n if (self.zipCode() == null && self.zipCodePrev() == null) {\r\n self.zipCodePrev(data.ZipCode);\r\n self.zipCode(data.ZipCode);\r\n }\r\n\r\n self.useCollectedDeliveryPrev(data.UseCollectedDelivery);\r\n self.useCollectedDelivery(data.UseCollectedDelivery);\r\n\r\n self.useInsuranceProduct(data.UseInsuranceProduct);\r\n\r\n self.klarnaShippingAssistantEnabled(data.KlarnaShippingAssistantEnabled);\r\n self.showShipmentsDetails(!data.KlarnaShippingAssistantEnabled);\r\n\r\n self.usePrintPackingList(data.UsePrintPackingList);\r\n self.usePrintPackingListPrev(data.UsePrintPackingList); //Denne skal ligge neders pga event oppdatering\r\n\r\n self.showRefreshSpin(false);\r\n\r\n if (self.previousCarrierId == null) {\r\n PubSub.publish(mcWeb.shipment.events.onChangedShipment, data);\r\n self.previousCarrierId = self.selectedCarrierId();\r\n self.previousCarrierList = self.carrierList();\r\n }\r\n else if (self.carrierHasChanged(self.carrierList(), data.SelectedCarrierId)) {\r\n PubSub.publish(mcWeb.shipment.events.onChangedShipment, data);\r\n self.previousCarrierId = self.selectedCarrierId();\r\n self.previousCarrierList = self.carrierList();\r\n }\r\n };\r\n\r\n self.carrierHasChanged = function (newCarrierList, newSelectedCarrierId) {\r\n if (self.previousCarrierId !== newSelectedCarrierId)\r\n return true;\r\n if (self.previousCarrierList === null && newCarrierList !== null)\r\n return true;\r\n if (self.previousCarrierList !== null && newCarrierList === null)\r\n return true;\r\n if (self.previousCarrierList.length !== newCarrierList.length)\r\n return true;\r\n for (var i = 0; i < self.previousCarrierList.length; i++) {\r\n var previousCarrier = self.previousCarrierList[i];\r\n var currentCarrier = newCarrierList[i];\r\n if (previousCarrier.Id !== currentCarrier.Id)\r\n return true;\r\n if (previousCarrier.Name !== currentCarrier.Name)\r\n return true;\r\n if (previousCarrier.PrintPrice !== currentCarrier.PrintPrice)\r\n return true;\r\n }\r\n return false;\r\n }\r\n \r\n this.useInsuranceProduct.subscribe(function (checked) {\r\n if (!self.showInsuranceProduct()) return true;\r\n\r\n self.showRefreshSpin(true);\r\n\r\n var data = { addProduct: checked }\r\n try {\r\n self.service.GetAction(\"SetInsuranceProduct\", data).then(function (result) {\r\n self.showRefreshSpin(false);\r\n if (result == null || result.length < 1) return;\r\n if (result.Success === false)\r\n alert(result.Message);\r\n PubSub.publish(mcWeb.cart.events.onChangedCart, \"\");\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n\r\n\r\n return true;\r\n });\r\n\r\n this.getPickupPointRegions = function () {\r\n if (!self.pickupPointEnabled()) return true;\r\n self.showRefreshSpin(true);\r\n\r\n self.service.GetAction(\"GetPickupPointRegions\", null).then(function (result) {\r\n self.showRefreshSpin(false);\r\n\r\n if (result == null || result.length < 1) return;\r\n\r\n self.pickupPointRegionList(result);\r\n self.pickupPointRegion(self.pickupPointRegionList()[0].Region);\r\n self.pickupPointRegionId(self.pickupPointRegionList()[0].RegionId);\r\n if (result.length === 1) self.pickupPointSelectedRegion(self.pickupPointRegionId());\r\n });\r\n return true;\r\n }\r\n\r\n this.pickupPointSelectedRegion.subscribe(function (regionId) {\r\n if (regionId == null) return false;\r\n if (regionId === \"\") return false;\r\n if (self.selectedCarrierId == null) return false;\r\n\r\n self.showRefreshSpin(true);\r\n\r\n var data = { regionId: regionId }\r\n self.service.GetAction(\"GetPickupPointCustomers\", data).then(function (result) {\r\n self.showRefreshSpin(false);\r\n\r\n if (result == null || result.length < 1) return;\r\n\r\n self.pickupPointCustomerList(result);\r\n self.pickupPointCustomername(self.pickupPointCustomerList()[0].Customername);\r\n });\r\n return true;\r\n });\r\n\r\n this.saveSelectedPickupPointCustomer = function (customerId, customerName, customerEmail) {\r\n if (customerId == null || customerName == null || customerEmail == null) return false;\r\n var data = { customerId: customerId, customerName: customerName, customerEmail: customerEmail }\r\n\r\n self.showRefreshSpin(true);\r\n self.service.GetAction(\"SaveSelectedPickupPointCustomer\", data).then(function (result) {\r\n self.showRefreshSpin(false);\r\n });\r\n\r\n return true;\r\n }\r\n\r\n this.pickupPointSelectedCustomer.subscribe(function (selectedPickupPoint) {\r\n if (selectedPickupPoint == null) return false;\r\n if (self.selectedCarrierId == null) return false;\r\n\r\n var customername = \"\";\r\n var customerEmail = \"\";\r\n\r\n if (selectedPickupPoint.Customername != null) customername = selectedPickupPoint.Customername.trim();\r\n if (selectedPickupPoint.EmailAddress != null) customerEmail = selectedPickupPoint.EmailAddress.trim();\r\n\r\n self.saveSelectedPickupPointCustomer(selectedPickupPoint.CustomerId, customername, customerEmail);\r\n\r\n return true;\r\n });\r\n\r\n var setSelectedCarrier = function (data) {\r\n jQuery.each(data.CarrierList, function (index, obj) {\r\n if (obj.Id == data.SelectedCarrierId && (self.selectedCarrierName() !== obj.Name || self.selectedCarrierPrice() !== obj.PrintPrice)) {\r\n var publishEvent = self.selectedCarrierName() !== undefined;\r\n\r\n self.selectedCarrierName(obj.Name);\r\n self.selectedCarrierPrice(obj.PrintPrice);\r\n\r\n self.logistraPickupPointsForSelectedCarrier(obj.LogistraPickupPoints);\r\n if (!self.selectedLogistraPickupPoint())\r\n self.saveLogistraPickupPoint(null);\r\n\r\n if (publishEvent)//no need upon first load\r\n PubSub.publish(mcWeb.cartsmall.events.onChangedQuantityCartSmall, \"\");\r\n }\r\n else if (obj.Id == data.SelectedCarrierId) {\r\n self.logistraPickupPointsForSelectedCarrier(obj.LogistraPickupPoints);\r\n if (!self.selectedLogistraPickupPoint())\r\n self.saveLogistraPickupPoint(null);\r\n }\r\n });\r\n self.getPickupPointRegions();\r\n }\r\n\r\n this.onChangedLogistraPickupPoint = function (context) {\r\n try {\r\n var id = self.selectedLogistraPickupPoint();\r\n if (!id) return;\r\n var data = context.logistraPickupPointsForSelectedCarrier().find(obj => { return obj.Id === id })\r\n self.saveLogistraPickupPoint(data);\r\n\r\n // Frakt må oppdateres. Prisen kan være annen for valgt utleveringssted.\r\n PubSub.publish(mcWeb.shipment.events.reloadShipment);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n\r\n this.saveLogistraPickupPoint = function (saveRequest) {\r\n self.showRefreshSpin(true);\r\n\r\n try {\r\n self.service.GetAction(\"SaveSelectedLogistraPickupPoint\", saveRequest).then(function (result) {\r\n self.showRefreshSpin(false);\r\n if (result == null || result.length < 1) return;\r\n if (result.Success === false)\r\n alert(result.Message);\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n //Subscribe to event\r\n this.saveSelectedCarrier = function (carrier) {\r\n self.showRefreshSpin(true);\r\n\r\n self.pickupPointSelectedCustomer(undefined);\r\n self.pickupPointSelectedRegion(undefined);\r\n self.pickupPointCustomerList.removeAll();\r\n\r\n self.selectedCarrierName(carrier.Name);\r\n self.selectedCarrierPrice(carrier.PrintPrice);\r\n\r\n var authenticationGuid = mcWeb.currentUser.getAuthenticationGUID();\r\n var email = mcWeb.loginCheckout.getEmail();\r\n carrier.PickupPoint = null;\r\n\r\n var data = {\r\n carrierItem: carrier,\r\n email: email,\r\n zipCode: null,\r\n isCheckout: self.isCheckout,\r\n authenticationGuid: authenticationGuid\r\n }\r\n\r\n self.service.PostAction(\"SaveSelectedCarrier\", data).then(function (result) {\r\n self.showRefreshSpin(false); \r\n \r\n PubSub.publish(mcWeb.shipment.events.onSelectedShipment, carrier);\r\n\r\n if (result !== null && result != undefined) {\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedCustomerData, result.CustomerRegistration);\r\n if (result.SelectedCarrierRemoved) {\r\n PubSub.publish(mcWeb.shipment.events.reloadShipment, result.Carriers);\r\n }\r\n //result.HasLockedDeliveryAddress = true / false;\r\n }\r\n });\r\n return true;\r\n };\r\n\r\n PubSub.subscribe(mcWeb.shipment.events.onSelectedShipment, function (message, carrier) {\r\n if (!carrier)\r\n return;\r\n\r\n self.selectedCarrierName(carrier.Name);\r\n self.selectedCarrierPrice(carrier.PrintPrice);\r\n });\r\n\r\n this.showCarrierList = function () {\r\n self.showOnlyCarrierList(true);\r\n }\r\n\r\n PubSub.subscribe(mcWeb.cart.events.hasCartItems, function (message, data) {\r\n\r\n if (data != null) {\r\n self.hasCartItems(data); //was False\r\n }\r\n });\r\n\r\n PubSub.subscribe(mcWeb.shipment.events.reloadShipment, function (message, data) {\r\n self.load(data);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.events.customerRegistration.onChangedCustomerData, function (message, data) {\r\n if (data == null)\r\n return\r\n\r\n if (data.useDifferentDeliveryAddress != null && data.useDifferentDeliveryAddress == true) {\r\n if (data.postnrDelivery != null && data.postnrDelivery != self.zipCode()) {\r\n self.LoadZipCode(data.postnrDelivery);\r\n }\r\n\r\n self.adressDelivery((data.adressDelivery == null) ? \"\" : data.adressDelivery);\r\n self.adresstillegDelivery((data.adresstillegDelivery == null) ? \"\" : data.adresstillegDelivery);\r\n self.poststedDelivery((data.poststedDelivery == null) ? \"\" : data.poststedDelivery);\r\n }\r\n else {\r\n if (data.postnr != null && data.postnr != self.zipCode()) {\r\n self.LoadZipCode(data.postnr);\r\n }\r\n\r\n self.adressDelivery((data.adress == null) ? \"\" : data.adress);\r\n self.adresstillegDelivery((data.adresstilleg == null) ? \"\" : data.adresstilleg);\r\n self.poststedDelivery((data.poststed == null) ? \"\" : data.poststed);\r\n }\r\n });\r\n\r\n PubSub.subscribe(mcWeb.events.customerRegistration.onChangedCity, function (message, city) {\r\n self.poststedDelivery((city == null || city.length < 1) ? '' : city);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.events.customerRegistration.onChangedZipCode, function (message, data) {\r\n if (!data)\r\n return;\r\n\r\n var zipCode = data.zipCode;\r\n if (!zipCode)\r\n return;\r\n\r\n if (self.zipCode() != zipCode) {\r\n self.zipCodePrev(zipCode);\r\n self.zipCode(zipCode);\r\n self.load();\r\n }\r\n });\r\n\r\n PubSub.subscribe(mcWeb.payments.events.onSelectedPayment, function (message, paymentId) {\r\n if (paymentId != null) {\r\n self.service.GetAction(\"ShowCollectedDeliveryBasedOnPayment\", { betBetId: paymentId }).then(function (result) {\r\n if (result == 2) {\r\n self.showCollectedDelivery(false);\r\n self.useCollectedDelivery(true);\r\n }\r\n self.showCollectedDelivery((result === 1));\r\n });\r\n }\r\n });\r\n\r\n this.LoadZipCode = function (zipCode) {\r\n if (zipCode == null || zipCode.length < 3)\r\n return\r\n\r\n try {\r\n if ((zipCode.indexOf(\"*\") > -1)) {\r\n self.showCheckoutZipCode(false);\r\n return;\r\n }\r\n\r\n self.showRefreshSpin(true);\r\n\r\n var data = { zipCode: zipCode };\r\n PubSub.publish(mcWeb.events.customerRegistration.onChangedZipCode, data);\r\n PubSub.publish(mcWeb.cart.events.onChangedCart, null);\r\n\r\n } catch (e) {\r\n stopUpdateIcon();\r\n console.error(e);\r\n }\r\n };\r\n\r\n this.shipmentInfo = function () {\r\n if (self.zipCode() != null && self.zipCode().indexOf('*') > -1) {\r\n return \"\";\r\n }\r\n\r\n var text = (self.postOffice() == null || self.postOffice().length < 1) ? \"\" : self.postOffice() + ' ';\r\n text += (self.zipCode() == null || self.zipCode().length < 1) ? \"\" : self.zipCode() + ' ';\r\n text += (self.poststedDelivery() == null || self.poststedDelivery().length < 1) ? \"\" : self.poststedDelivery() + ' ';\r\n\r\n return text;\r\n };\r\n\r\n /* NEW */\r\n this.onToggleCarrierTypes = function () {\r\n $('#carriers').slideToggle();\r\n };\r\n\r\n this.isNumberKey = function (sender, e) {\r\n var key = (e.which) ? e.which : e.keyCode;\r\n if (key == 13) {\r\n document.activeElement.blur();\r\n return false;\r\n }\r\n return !(key > 31 && (key < 48 || key > 57));\r\n };\r\n\r\n self.zipCode.subscribe(function (zipCode) {\r\n\r\n if (self.zipCodePrev() == zipCode)\r\n return;\r\n\r\n self.poststedDelivery('');\r\n\r\n if (zipCode != null && zipCode.length > 3) {\r\n self.zipCodePrev(zipCode);\r\n self.LoadZipCode(zipCode);\r\n }\r\n });\r\n\r\n $('#qt-carrier-zipcode-i').popover({\r\n trigger: 'hover',\r\n title: $('#qt-carrier-zipcode-t').html(),\r\n content: $('#qt-carrier-zipcode-c').html(),\r\n placement: 'top',\r\n container: 'body'\r\n });\r\n\r\n $('#qt-coll-delivery-i').popover({\r\n trigger: 'hover',\r\n title: $('#qt-coll-delivery-t').html(),\r\n content: $('#qt-coll-delivery-c').html(),\r\n placement: 'top',\r\n container: 'body'\r\n });\r\n\r\n $('#qt-print-packing-i').popover({\r\n trigger: 'hover',\r\n title: $('#qt-print-packing-t').html(),\r\n content: $('#qt-print-packing-c').html(),\r\n placement: 'top',\r\n container: 'body'\r\n });\r\n\r\n $('#qt-insurance-i').popover({\r\n trigger: 'hover',\r\n title: $('#qt-insurance-t').html(),\r\n content: $('#qt-insurance-c').html(),\r\n placement: 'top',\r\n container: 'body'\r\n });\r\n\r\n ko.bindingHandlers.popoverShipping = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var node = $(element);\r\n self.popoverNode = node;\r\n var option = ko.utils.unwrapObservable(valueAccessor());\r\n var conId = option.contentid, titId = option.titleid, kn = \"-kn\";\r\n var contentkn = \"