{"version":3,"file":"checkout.567e36b33e674174b370.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\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!self.salesConditionsAccepted()) {\r\n\t\t\t\tself.showErrorMessage($(\".sales-cond-warning\").html());\r\n self.enableOrderButton();\r\n\t\t\t\treturn;\r\n\t\t\t}\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\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, null);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.shipment.events.onSelectedShipment, function (message, data) {\r\n PubSub.publish(mcWeb.payments.events.reloadPayments, 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, true);\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.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 PubSub.publish(mcWeb.shipment.events.onChangedShipment, data);\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 = \"