{"version":3,"sources":["webpack:///./Scripts/Web/ViewModels/Checkout/Checkout.js","webpack:///./Scripts/Web/ViewModels/Checkout/PaymentView.js","webpack:///./Scripts/Web/ViewModels/Checkout/CheckoutFooterView.js","webpack:///./Scripts/Web/ViewModels/Checkout/SalesConditions.js","webpack:///./Scripts/Web/ViewModels/Checkout/ShipmentView.js","webpack:///./Scripts/Web/ViewModels/Checkout/CheckoutConfirmationView.js"],"names":["mcWeb","checkout","this","events","onShowSendOrder","$","jQuery","self","service","WebApiService","langService","LanguageService","cartName","cartGuid","isCheckoutPage","length","returnCode","getParameterByName","showErrorMessageFromReturnCode","btnOrderEl","priceEl","salesConditionsEl","PubSub","subscribe","message","status","registration","customerRegistration","instances","registrationVM","blockedCustomer","showBtn","disabledBtn","hide","removeClass","addClass","show","showPrice","showSalesConditions","findElement","payment","element","selectedPayment","find","findClass","cssClass","validatePayment","paymentId","validate","isValid","resName","CustomerType","isFodselsnummerValid","isOrgnrValid","validSantander","payments","validateSantander","IsValid","ResName","Element","validSveaWebPay","validateSveaWebPay","ShowOrgnrSsn","ShowOrgnrSsnField","isBirthdateValid","validation","setValidCss","getErrorMessage","done","result","qTipActionShow","addErrorClass","disableOrderButton","attr","enableOrderButton","removeAttr","insertOrder","conditionsVM","showErrorMessage","html","zipCode","undefined","val","focus","epost","toLowerCase","paymentValidationResult","showWaitTemplate","validateCustomerSelectionType","then","validationResult","success","salesConditionsAccepted","GetAction","SkiAssembly","load","SkiAttributeAssembly","publish","MessageToPublish","MessageToPublishData","console","log","alert","lightbox","onShowLightbox","backdrop","keyboard","paymentDetails","customer","getJsonData","paymentData","resourceName","validateSantanderAddress","postnr","poststed","adress","getValue","value","santanderApplicationDetails","RegisteredPostCode","Birthdate","birthDate","customerType","deliveryWindow","start","end","token","expiresAt","porterbuddyProduct","product","PostAction","CustomerData","PaymentDetails","CartGuid","CartName","ReturnCode","window","location","RedirectUrl","ErrorMessageSpecified","ErrorMessage","selectCurrencyParam","SupportedCurrencies","changedCurrencyResult","Msg","on","e","cart","onChangedCart","SecondaryErrorMessageSpecified","UseSecondaryErrorMessageAsReturnCode","SecondaryErrorMessage","onShowShipment","shipment","reloadShipment","reload","requireLogin","invalidElements","scrollToFirstInvalidElement","elem","fail","error","modal","salesCondCheckbox","salesconditions","is","prop","showAlertErrorMessage","indexOf","country","replace","email","asHtml","msg","append","showTemplate","animate","scrollTop","offset","top","name","results","RegExp","exec","search","decodeURIComponent","wait","template","data","extend","vm","id","netsEasyCheckout","netsEasyCheckoutHtml","betBetIdList","settings","isPublishMode","publishModeBody","kcoValidateCountry","netsEasyProduction","netsEasyEnabled","waitCheckoutSnippet","cancelEnter","event","keyCode","preventDefault","isPaymentChange","onShowUpdateIcon","CustomerCountryId","KlarnaLandId","KlarnaVersion","klarnaShowCustomerTypeSelection","klarnaShippingAssistantEnabled","klarnaShowChangedCustomerTypeMessage","Klarna","ShowCustomerTypeSelection","ShippingAssistantEnabled","ShowChangedCustomerTypeMessage","sveaCheckoutShowCustomerTypeSelection","SveaCheckout","vippsExpressCheckoutInCart","vippsShowCustomerTypeSelection","vippsAllowBusinessCustomer","Vipps","isLoggedIn","readOnly","ExpressCheckoutInCart","AllowBusinessCustomer","NetsEasy","Enabled","Production","netsEasyShowCustomerTypeSelection","setNetsEasyCheckoutScriptSource","experianRemoved","hideExperianBetBet","expIndex","PaymentTypes","i","PaymentId","experianBetBetId","splice","hideOrgnrSsn","GetKlarnaJson","KlarnaCustomerType","addBindings","IsLoggedIn","BirthDate","paymentMethodSelected","hasKlarnaCheckout","selectPaymentType","SelectedId","loadCustomerForm","PaymentList","reloadPayments","onHideUpdateIcon","highlightRequiredConditions","highlightRequired","getTemplateNameKonto","selectedKlarnaKontoCampaign","getTemplateNameFaktura","selectedKlarnaFakturaCampaign","pclass_id","document","hasCartItems","ko","observable","functionalConditionsAccepted","showPayments","computed","observableArray","selectedPaymentOld","newValue","onSelectedPayment","KlarnaCampaigns","Fodselsnummer","RegisteredZip","isValidDateddmmyy","date","input","symbol","Orgnr","updateOrgNr","selectedSveaPaymentPlanOptionRadio","showSveaPaymentPlanOptionInfo","campaignCode","formatMoney","money","formatInterest","interest","GothiaTOS","GothiaRequireCustomerConfirmation","AcceptedTermsAndConditions","showRefreshSpin","showRefreshSpinMargin","SveaWebPayPaymentPlanOptions","GetSveaWebPayPaymentPlanOptions","KlarnaInvoiceFee","showCustomerSelection","hight","parseFloat","height","NaN","selectedKlarnaPclass","hasCartItem","logPb","logTxt","logData","Text","Data","JSON","stringify","onChangedCustomerData","RegisterKlarnaListener","conditions","onAcceptChange","evt","conditionStatus","usageArea","previousFunctionalAcceptanceStatus","functionalConditionIsAccepted","acceptDocuments","KCOisLoaded","processPaymentMethods","UpdateCheckoutCartItems","loginCheckout","onShowLoginPassword","el","tabContent","tabHeight","css","form","detach","tab","appendTo","queue","duration","nav","onShowHideLogin","getFakturaGebyr","getGothiaAccountTos","getSveaWebPayPaymentPlanOptions","inlineEditor","init","paymentType","paymentText","PaymentText","handlePaymentChange","qtip","clickPrivate","porterbuddy","setRecipientInfoLocked","orgnrTemp","birthdate","SocialSecurityNumber","CampaignCode","AcceptCreditCheck","OrgNumber","indexOfKlarnaFaktura","group","code","indexOfFirstKlarnaKonto","paymentTypes","getKlarnaJson","json","parse","payment_methods","updatePaymentWithPBAddress","recipientInfo","provider","req","Provider","AddressLine","streetAddress","ZipCode","postCode","Email","radioButtonListArray","checked","type","paymentDiv","toFind","TermsAndConditions","RequireCustomerConfirmation","gothiaShowTermsAndConditions","generator","open","write","close","klarna","regEx","test","isZipCodeValid","isZipCodeValidFormat","landId","match","isPhoneValidFormat","dateString","showKlarnaTerms","href","terms","uri","selectFirstInList","filter","GetCheckoutSnippet","GetCheckout","customerData","trim","Customer","IsPaymentChange","SetKlarnaCheckout","SetNetsEasyCheckout","CheckoutOptions","SetSveaCheckout","snippet","RegisterSveaCheckoutListener","netsEasyCheckoutPaymentId","checkoutOptions","checkoutSnippetHtml","cleanup","Dibs","Checkout","RegisterNetsEasyCallback","response","redirectMsg","onHideLightbox","address","countryCode","postalCode","landKode3","onChangedZipCode","UpdateCheckoutZipCode","SetPorterbuddyRecipientInfo","PostalCode","StreetAddress","defaultCustomerType","showPaymentProviderCartReloadLightbox","send","SuspendKlarnaCheckout","_klarnaCheckout","api","suspend","ResumeKlarnaCheckout","resume","IsKcoEnabled","kcoEnabled","netsEasyFrozen","freezeCheckout","netsEasyFreezeStack","push","pop","thawCheckout","Success","showKcoCartReloadLightbox","getElementById","addEventListener","changeCustomerType","onChangedCustomerType","clickBusiness","showCustomerType","showRegButtons","VippsExpressCheckout","checkoutFooterView","ajax","url","contentType","scoApi","customEventHandlers","observeEvent","previousPbEmail","previousPbPostCode","previousPbStreetAddress","setRecipientInfo","Porterbuddy","SetRecipientInfo","PostCode","onChangedEmail","postal_code","jsonData","shippingId","price","taxRate","tax_rate","taxAmount","tax_amount","selectedCountry","m_Item1","countryText","m_Item2","zipCodePrev","showOrgnrSsn","Show","FieldToShow","updateKco","onChangedCampaignCode","onChangedQuantityCart","onSelectedShipment","onChangedShipment","ResetLoginCheckoutPosision","focusFirstName","responsive","getScreenSize","setTimeout","login","onIsloggedIn","validateModel","res","lastValidationResult","every","elementIsValid","SoftAdressValidation","addressWarningFlag","forEach","valid","index","remove","validationRules","removeValidCss","rule","validateElement","eledata","target","elemValidationResult","conditionsStatus","isFunctionalConditionAccepted","refCondVm","isOrderRefRequired","onOrderRefReqChange","tooltip","blur","source","condsForProcessing","qTipActionShowClickHide","innerText","salesConditions","showConditons","onClickConditions","showShipments","showShipmentsDetails","showShipmentPrice","showOnlyCarrierList","showCheckoutZipCode","selectedCarrierName","carrierList","selectedCarrierId","selectedCarrierPrice","pickupPointEnabled","pickupPointRegionList","pickupPointCustomerList","pickupPointSelectedRegion","pickupPointSelectedCustomer","pickupPointRegion","pickupPointRegionId","pickupPointCustomername","popoverOpen","focusZipCode","postOffice","adressDelivery","adresstillegDelivery","poststedDelivery","isCheckout","showCollectedDelivery","useCollectedDeliveryPrev","useCollectedDelivery","onChangeCollectedDelivery","showInsuranceProduct","useInsuranceProduct","showPrintPackingList","usePrintPackingListPrev","usePrintPackingList","onChangedUsePrintPackingList","active","ShowShipments","ShowShipmentPrice","ShowOnlyCarrierList","ShowCheckoutZipCode","ShowCollectedDelivery","ShowPrintPackingList","ShowInsuranceProduct","InlineEditor","PickupPointEnabled","CarrierList","SelectedCarrierId","setSelectedCarrier","UseCollectedDelivery","UseInsuranceProduct","KlarnaShippingAssistantEnabled","UsePrintPackingList","addProduct","Message","err","getPickupPointRegions","Region","RegionId","regionId","Customername","saveSelectedPickupPointCustomer","customerId","customerName","customerEmail","selectedPickupPoint","customername","EmailAddress","CustomerId","each","obj","Id","Name","PrintPrice","cartsmall","onChangedQuantityCartSmall","saveSelectedCarrier","carrier","removeAll","authenticationGuid","currentUser","getAuthenticationGUID","getEmail","PickupPoint","carrierItem","CustomerRegistration","SelectedCarrierRemoved","Carriers","showCarrierList","useDifferentDeliveryAddress","postnrDelivery","LoadZipCode","adresstilleg","onChangedCity","city","betBetId","stopUpdateIcon","shipmentInfo","text","onToggleCarrierTypes","slideToggle","isNumberKey","sender","key","which","activeElement","popover","trigger","title","content","placement","container","bindingHandlers","popoverShipping","valueAccessor","allBindingsAccessor","viewModel","bindingContext","node","popoverNode","option","utils","unwrapObservable","conId","contentid","titId","titleid","contentkn","titlekn","togglePopover","parentElement","innerData","cleanNode","context","con","contentClass","click","checkoutConfirmation","instance","checkoutConfirmationObj","jsonSetting","referenceNo","setting","ReferenceNo","applyBindings"],"mappings":"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","file":"checkout.6074ae347a504dfce0ce.bundle.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\t\t\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.done(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).done(function (result) {\r\n if (result.length > 0) {\r\n self.enableOrderButton();\r\n\r\n if (result === \"mcWeb.SkiAssembly\")\r\n mcWeb.SkiAssembly.load(true);\r\n else if (result === \"mcWeb.SkiAttributeAssembly\")\r\n mcWeb.SkiAttributeAssembly.load();\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).done(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 }).done(function (result) {\r\n\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).done(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 {\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.fail(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).done(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\").done(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.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 KLARNA_INVOICE = 96;\r\n var KLARNA_ACCOUNT = 97;\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.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.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\r\n PubSub.publish(mcWeb.payments.events.onShowUpdateIcon, null);\r\n\r\n if (settings !== null && settings) {\r\n self.settings = settings;\r\n }\r\n\r\n if (data === null || !data) {\r\n self.service.GetAction(\"GetPaymentList\", null).done(function (result) {\r\n self.load(result, null, isPaymentChange);\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.CustomerCountryId = self.settings.CustomerCountryId;\r\n self.KlarnaLandId = self.settings.KlarnaLandId;\r\n self.KlarnaVersion = self.settings.KlarnaVersion;\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 }\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.GetKlarnaJson(data.PaymentTypes);\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\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 self.loadCustomerForm(data.PaymentTypes[i].PaymentId, hasKlarnaCheckout, isPaymentChange);\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\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 if (self.netsEasyProduction)\r\n $('#netseasy-checkout-script').attr(\"src\", \"https://checkout.dibspayment.eu/v1/checkout.js?v=1\");\r\n else\r\n $('#netseasy-checkout-script').attr(\"src\", \"https://test.checkout.dibspayment.eu/v1/checkout.js?v=1\");\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.getTemplateNameKonto = function () {\r\n if (self.selectedKlarnaKontoCampaign()) {\r\n if (self.selectedKlarnaKontoCampaign().name === \"Account\")\r\n if (self.KlarnaLandId === 2) return \"klarna-konto-account-details-se\";\r\n else return \"klarna-konto-account-details-no\";\r\n\r\n if (self.selectedKlarnaKontoCampaign().name === \"Part Payment\")\r\n if (self.KlarnaLandId === 2) return \"klarna-konto-partPayment-details-se\";\r\n else return \"klarna-konto-partPayment-details-no\";\r\n\r\n return \"\";\r\n }\r\n };\r\n\r\n this.getTemplateNameFaktura = function () {\r\n if (self.selectedKlarnaFakturaCampaign()) {\r\n if (self.selectedKlarnaFakturaCampaign().pclass_id !== -1) {\r\n if (self.KlarnaLandId === 1) {\r\n return \"klarna-faktura-campaign-details-no\";\r\n } else if (self.KlarnaLandId === 2) {\r\n return \"klarna-faktura-campaign-details-se\";\r\n }\r\n }\r\n }\r\n return \"klarna-faktura-details-no\";\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.registration = mcWeb.customerRegistration.instances['checkout-registration'];\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 }).done(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.selectedKlarnaKontoCampaign = ko.observable();\r\n this.selectedKlarnaFakturaCampaign = ko.observable();\r\n this.CustomerCountryId = 1;\r\n this.KlarnaLandId = 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.KlarnaInvoiceFee = 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\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 this.selectedKlarnaPclass = ko.computed(function () {\r\n if (self.selectedPayment() === KLARNA_INVOICE && self.selectedKlarnaFakturaCampaign()) {\r\n return self.selectedKlarnaFakturaCampaign().pclass_id;\r\n } else {\r\n if (self.selectedKlarnaKontoCampaign() && self.selectedKlarnaKontoCampaign())\r\n return self.selectedKlarnaKontoCampaign().pclass_id;\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 PubSub.subscribe(mcWeb.customerRegistration.events.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 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 PubSub.subscribe(mcWeb.loginCheckout.events.onShowLoginPassword, function (message, paymentId) {\r\n self.ShowOrgnrSsn(false);\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 $('.klarna-konto-content').show();\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 if (paymentId === KLARNA_INVOICE) {\r\n self.getFakturaGebyr().done(function (result) {\r\n self.KlarnaInvoiceFee(result);\r\n });\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).done(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 self.selectPaymentType(paymentType);\r\n self.loadCustomerForm(paymentType.PaymentId, null, true);\r\n\r\n if (typeof porterbuddy !== 'undefined') {\r\n if (paymentType.PaymentId === SCO_BETBETID)\r\n porterbuddy.setRecipientInfoLocked(true);\r\n else if (paymentType.PaymentId === KCO_BETBETID || paymentType.PaymentId === NETS_EASY_BETBETID)\r\n porterbuddy.setRecipientInfoLocked(false);\r\n else\r\n porterbuddy.setRecipientInfoLocked(false);\r\n }\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 PubSub.publish(mcWeb.cart.events.onChangedCart, null);\r\n };\r\n\r\n this.getJsonData = function () {\r\n var campaignCode = self.selectedKlarnaPclass();\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.indexOfKlarnaFaktura = function () {\r\n if (self.KlarnaCampaigns() !== null && typeof (self.KlarnaCampaigns()) !== \"undefined\") {\r\n for (var i = 0; i < self.KlarnaCampaigns().length; i++) {\r\n if (self.KlarnaCampaigns()[i].group.code === 'invoice')\r\n return i;\r\n }\r\n }\r\n return 0;\r\n };\r\n\r\n this.indexOfFirstKlarnaKonto = function () {\r\n if (self.KlarnaCampaigns() !== null && typeof (self.KlarnaCampaigns()) !== \"undefined\") {\r\n for (var i = 0; i < self.KlarnaCampaigns().length; i++) {\r\n if (self.KlarnaCampaigns()[i].group.code === 'part_payment')\r\n return i;\r\n }\r\n }\r\n return 0;\r\n };\r\n\r\n this.GetKlarnaJson = function (paymentTypes) {\r\n var getKlarnaJson = false;\r\n\r\n if (paymentTypes === null)\r\n return;\r\n\r\n for (var i = 0; i < paymentTypes.length; i++) {\r\n if (paymentTypes[i].PaymentId === KLARNA_INVOICE || paymentTypes[i].PaymentId === KLARNA_ACCOUNT) {\r\n getKlarnaJson = true;\r\n }\r\n }\r\n if (getKlarnaJson) {\r\n PubSub.publish(mcWeb.payments.events.onShowUpdateIcon, null);\r\n self.service.GetAction(\"GetKlarnaCampaigns\", null).done(function (result) {\r\n PubSub.publish(mcWeb.payments.events.onHideUpdateIcon, null);\r\n if (result === null || result.length < 1)\r\n return;\r\n\r\n var json = JSON.parse(result);\r\n self.KlarnaCampaigns(json.payment_methods);\r\n var indexOfKlarnaFaktura = (self.KlarnaCampaigns()) === null || typeof (self.KlarnaCampaigns()) === \"undefined\" ? 0 : self.KlarnaCampaigns()[self.indexOfKlarnaFaktura()];\r\n self.selectedKlarnaFakturaCampaign(indexOfKlarnaFaktura);\r\n\r\n var indexOfFirstKlarnaKonto = (self.KlarnaCampaigns() === null) || typeof (self.KlarnaCampaigns()) === \"undefined\" ? 0 : self.KlarnaCampaigns()[self.indexOfFirstKlarnaKonto()];\r\n self.selectedKlarnaKontoCampaign(indexOfFirstKlarnaKonto);\r\n });\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).done(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).done(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).done(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 (klarna) {\r\n if (self.KlarnaLandId === 1)//Norge\r\n regEx = /^[0-9]{2}[0,1][0-9][0-9]{2}[ ]?[0-9]{5}$/;\r\n else if (self.KlarnaLandId === 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.KlarnaLandId === 3)//Danmark\r\n regEx = /^[0-9]{2}[0,1][0-9][0-9]{2}[0-9]{4}$/;\r\n } else {\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\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 (klarna) {\r\n if (self.KlarnaLandId === 1)//Norge\r\n regEx = /^(\\d{9})$|((\\d{3})\\s(\\d{3})\\s(\\d{3}))$/;\r\n else if (self.KlarnaLandId === 2)//Sverige\r\n regEx = /^(\\d{10})$|(\\d{6}[-]\\d{4})$/;\r\n } else {\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\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.showKlarnaTerms = function () {\r\n var href = \"\";\r\n if (self.selectedPayment() === KLARNA_INVOICE && self.selectedKlarnaFakturaCampaign().group.code === 'invoice')\r\n href += self.selectedKlarnaFakturaCampaign().terms.uri + self.KlarnaInvoiceFee();\r\n else\r\n href += self.selectedKlarnaKontoCampaign().terms.uri;\r\n window.open(href, 'Klarna terms', 'width=500,height=500,location=0,toolbar=0,titlebar=0,status=0,menubar=0');\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 === KCO_BETBETID)\r\n console.log(\"GetCheckout Klarna v\" + self.KlarnaVersion);\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).done(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).done(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).done(function (result) {\r\n if (result === null || result.length < 1) {\r\n $(\"#svea-checkout-error\").show();\r\n console.log(\"Kunne ikke laste Svea Checkout\");\r\n return;\r\n }\r\n self.SetSveaCheckout(result);\r\n });\r\n }\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).done(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.customerRegistration.events.onChangedZipCode, data);\r\n self.UpdateCheckoutZipCode(zipCode);\r\n }\r\n }\r\n\r\n self.service.GetAction(\"GetPaymentAddress\", { provider: \"NetsEasy\", email: \"\" }).done(function (result) {\r\n self.SetPorterbuddyRecipientInfo(result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n\r\n self.service.GetAction(\"NetsEasyIsCustomerPerson\", null).done(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.KlarnaVersion === 3 && !self.klarnaShippingAssistantEnabled()) return;\r\n if (self.KlarnaLandId === 1 && zipCode.length !== 4) 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).done(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).done(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).done(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.service.GetAction(\"UpdateSveaCheckoutCartItems\", null).done(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 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.customerRegistration.events.onChangedCustomerType, 1);\r\n } else {\r\n PubSub.publish(mcWeb.customerRegistration.events.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.customerRegistration.events.onChangedCustomerType, 1);\r\n else\r\n PubSub.publish(mcWeb.customerRegistration.events.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.customerRegistration.events.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.customerRegistration.events.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\").done(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\").done(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 document.addEventListener(\"checkoutReady\", function () {\r\n if (!window.scoApi.customEventHandlers[\"identity.postalCode\"] || window.scoApi.customEventHandlers[\"identity.postalCode\"].length === 0) {\r\n window.scoApi.observeEvent(\"identity.postalCode\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.postalCode\\\")\", data);\r\n self.service.GetAction(\"GetPaymentAddress\", { provider: \"Svea\", email: \"\" }).done(function (result) {\r\n logPb(\"GetPaymentAddress [identity.postalCode]\", result);\r\n self.SetPorterbuddyRecipientInfo(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 window.scoApi.observeEvent(\"identity.streetAddress\", function (data) {\r\n logPb(\"window.scoApi.observeEvent(\\\"identity.streetAddress\\\")\", data);\r\n self.service.GetAction(\"GetPaymentAddress\", { provider: \"Svea\", email: \"\" }).done(function (result) {\r\n logPb(\"GetPaymentAddress [identity.streetAddress]\", result);\r\n self.SetPorterbuddyRecipientInfo(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 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 self.service.GetAction(\"GetPaymentAddress\", { provider: \"Svea\", email: email }).done(function (result) {\r\n logPb(\"GetPaymentAddress [identity.email]\", result);\r\n self.SetPorterbuddyRecipientInfo(result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n });\r\n }\r\n });\r\n } catch (e) {\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 this.SetPorterbuddyRecipientInfo = function (email, postCode, streetAddress) {\r\n try {\r\n if (typeof porterbuddy !== 'undefined' && porterbuddy.setRecipientInfo !== undefined &&\r\n ((email && email !== \"\" && postCode && postCode !== \"\" && streetAddress && streetAddress !== \"\") &&\r\n (email !== self.previousPbEmail || postCode !== self.previousPbPostCode || streetAddress !== self.previousPbStreetAddress))) {\r\n\r\n self.previousPbEmail = email;\r\n self.previousPbPostCode = postCode;\r\n self.previousPbStreetAddress = streetAddress;\r\n\r\n logPb(\"SetPorterbuddyRecipientInfo(): porterbuddy.setRecipientInfo()\", { email, postCode, streetAddress });\r\n\r\n porterbuddy.setRecipientInfo({\r\n email,\r\n postCode,\r\n streetAddress,\r\n });\r\n } else {\r\n var data = { Porterbuddy: typeof porterbuddy, SetRecipientInfo: porterbuddy.setRecipientInfo, Email: email, PostCode: postCode, StreetAddress: streetAddress }\r\n logPb(\"SetPorterbuddyRecipientInfo(): Porterbuddy object not set\", data);\r\n }\r\n } catch (e) {\r\n logPb(\"SetPorterbuddyRecipientInfo(): exception\", e);\r\n console.log('Warning - PaymentView.js:SetPorterbuddyRecipientInfo. Exception: ' + e);\r\n }\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 if (self.KlarnaVersion === 3) {\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\r\n if (self.KlarnaVersion === 3) {\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\r\n api.on({\r\n 'change': function (data) {\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.customerRegistration.events.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 self.service.GetAction(\"GetPaymentAddress\", { provider: \"KlarnaCheckout\", email: email }).done(function (result) {\r\n self.SetPorterbuddyRecipientInfo(result.Email, result.PostalCode, result.StreetAddress);\r\n });\r\n }\r\n });\r\n });\r\n\r\n if (self.klarnaShippingAssistantEnabled() && self.KlarnaVersion === 3) {\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).done(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 && self.KlarnaVersion === 3) {\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 self.service.GetAction(\"GetPaymentAddress\", { provider: \"KlarnaCheckout\", email: email }).done(function (result) {\r\n self.SetPorterbuddyRecipientInfo(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 }).done(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\").done(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).done(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 PubSub.subscribe(mcWeb.customerRegistration.events.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 PubSub.subscribe(mcWeb.payments.events.updateKco, 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.campaignCode.onChangedCampaignCode, 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.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.customerRegistration.events.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 .done(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.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.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.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.customerRegistration.events.onChangedUsePrintPackingList, newValue);\r\n }\r\n });\r\n\r\n PubSub.subscribe(mcWeb.customerRegistration.events.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 //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() }).done(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\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).done(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).done(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).done(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).done(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) {\r\n self.selectedCarrierName(obj.Name);\r\n self.selectedCarrierPrice(obj.PrintPrice);\r\n PubSub.publish(mcWeb.cartsmall.events.onChangedQuantityCartSmall, \"\");\r\n }\r\n });\r\n self.getPickupPointRegions();\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.GetAction(\"SaveSelectedCarrier\", data).done(function (result) {\r\n self.showRefreshSpin(false); \r\n\r\n PubSub.publish(mcWeb.cart.events.onChangedCart, \"\");\r\n PubSub.publish(mcWeb.shipment.events.onSelectedShipment, carrier);\r\n\r\n if (result !== null && result != undefined) {\r\n PubSub.publish(mcWeb.customerRegistration.events.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.customerRegistration.events.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.customerRegistration.events.onChangedCity, function (message, city) {\r\n self.poststedDelivery((city == null || city.length < 1) ? '' : city);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.customerRegistration.events.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 }).done(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.customerRegistration.events.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 = \"
\" + $('#' + conId).html() + \"
\";\r\n var titlekn = \"
\" + $('#' + titId).html() + \"
\";\r\n\r\n self.togglePopover = function () {\r\n $(event.target.parentElement).popover('toggle');\r\n var innerData = document.getElementById(conId);\r\n\r\n ko.cleanNode(innerData);\r\n }\r\n\r\n node.popover({\r\n title: titlekn,\r\n content: contentkn,\r\n html: option.html,\r\n trigger: 'manual',\r\n placement: function (context) {\r\n var con = jQuery(context);\r\n con.addClass(option.contentClass);\r\n\r\n var module = $('body.mc-inline-editor');\r\n if (module.length > 0)\r\n return 'bottom';\r\n\r\n con.on('mouseleave', function () {\r\n node.popover('hide');\r\n self.popoverOpen(false);\r\n return true;\r\n });\r\n return 'bottom';\r\n }\r\n });\r\n\r\n node.click(function () {\r\n\r\n self.togglePopover();\r\n self.popoverOpen(!self.popoverOpen());\r\n\r\n if (self.inlineEditor && !!mcWeb.inlineEditor) {\r\n mcWeb.inlineEditor.init(true);\r\n }\r\n });\r\n }\r\n };\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};"],"sourceRoot":""}