function ValidateSwedishSSN(n){var t,i;if(n===undefined||n===null)return!1;if(t=Parse(n),t.length===10){i=t.pop();switch(GetChecksum(t)){case i:return!0;default:return!1}}else return!1}function GetChecksum(n){var t=[2,1,2,1,2,1,2,1,2],i=n.map(function(n,i){return n*t[i]}),r=FlatMap(i,function(n){return n>=10?[SumOfNum(n)]:[n]}),u=function(n,t){return n+t},f=r.reduce(u);return Math.floor(f*9%10)}function Parse(n){var t=n.replace(/\D/g,"").split("");return t.length===12?t.slice(2,12).map(Number):t.map(Number)}function SumOfNum(n){return Math.floor(n%10)+Math.floor(n/10)}var FlatMap;$(document).ready(function(){$(document).on("click","#btnBIDMobileHolder",BankIDMobileHolderClick);$(document).on("click","#btnBIDMobile",StartBankIDFlowMobile);$(document).on("click","#btnBIDLocal",StartBankIDFlowLocal);$(document).on("keyup","#tbPersonalNumberInput",ValidatePersonalNumber)});var BankIDMobileHolderClick=function(){$(this).hide();$("#btnBIDMobile").fadeIn(1e3);$("#tbPersonalNumberInput").fadeIn(1e3)},StartBankIDFlowLocal=function(){$("#btnBIDLocal").children("span").first().html("Autentiserar...");$("#btnBIDLocal").addClass("disabled");$("#btnBIDLocal").addClass("running");$.ajax({url:UrlSettings.BankIDAuthenticate,data:{personalNumber:""},cache:!1,type:"POST",success:function(n){if(n.Status==="OK"){ShowBankIDNotification("Starta BankID-appen","INFO");let t="bankid:///?autostarttoken="+n.AutoStartToken+"&redirect="+n.ReturnUrl;$("#bankIDIFrame").attr("src",t);PingForResult(n.OrderRef)}else HandleFailure(n.Status)},error:function(){HandleFailure("ERROR")}})},StartBankIDFlowMobile=function(){var n=$("#tbPersonalNumberInput"),t;CheckPersonalNumber(n)?($(this).addClass("running"),t=n.val(),n.hide(),$("#btnBIDMobile").children("span").first().html("Autentiserar..."),$("#btnBIDMobile").addClass("disabled"),$.ajax({url:UrlSettings.BankIDAuthenticate,data:{personalNumber:t},cache:!1,type:"POST",success:function(n){n.Status==="OK"?(ShowBankIDNotification("Starta BankID-appen","INFO"),PingForResult(n.OrderRef)):HandleFailure(n.Status)},error:function(){HandleFailure("ERROR")}})):ShowBankIDNotification("Ofullständigt personnummer","ERROR")},HandleFailure=function(n){n==="CANCEL"?ShowBankIDNotification("Åtgärden avbruten. Försök igen","ERROR"):n==="TIMEOUT"?ShowBankIDNotification("BankID-appen svarar inte. Kontrollera att den är startad och att du har internetanslutning. Om du inte har något giltigt BankID kan du hämta ett hos din Bank. Försök sedan igen.","ERROR"):n==="ERROR"?ShowBankIDNotification("Internt tekniskt fel. Försök igen","ERROR"):ShowBankIDNotification("Okänt fel. Försök igen.","ERROR");ResetBankIDButtons()},ResetBankIDButtons=function(){$("#btnBIDLocal").children("span").first().html("BankID på den här enheten");$("#btnBIDLocal").removeClass("disabled");$("#btnBIDLocal").removeClass("running");$("#btnBIDMobile").children("span").first().html("START");$("#btnBIDMobile").removeClass("disabled");$("#btnBIDMobile").removeClass("running");$("#btnBIDMobile").hide();$("#btnBIDMobileHolder").removeClass("disabled");$("#btnBIDMobileHolder").show();$("#btnBIDMobileHolder").children("span").first().show();$("#tbPersonalNumberInput").hide()},PingForResult=function(n){$.ajax({url:UrlSettings.BankIDAuthStatusPing,data:{orderRef:n,rememberMe:$("#RememberMe").is(":checked")},cache:!1,type:"POST",async:!0,success:function(t){t.Status==="OK"?location.href=t.redirectLink+"&redirectUrl="+location.href:t.Status==="REPEAT"?setTimeout(function(){PingForResult(n)},1500):HandleFailure(t.Status)},error:function(){HandleFailure("ERROR")}})},ValidatePersonalNumber=function(){var n=$(this);CheckPersonalNumber(n)},CheckPersonalNumber=function(n){var t=n.val();return ValidateSwedishSSN(t)?(n.removeClass("has-error-bankID"),HideBankIDNotification(),!0):(n.addClass("has-error-bankID"),!1)},ShowBankIDNotification=function(n,t){$("#bankIDNotification").fadeIn(1e3);var i=$("#bankIDNotification").children().first("div");i.removeClass();i.addClass("alert");t==="ERROR"?i.addClass("alert-danger"):i.addClass("alert-info");i.html(n);setTimeout(function(){$("#bankIDNotification").fadeOut(1e3)},1e4)},HideBankIDNotification=function(){$("#bankIDNotification").fadeOut(500);var n=$("#bankIDNotification").children().first("div");n.removeClass();n.addClass("alert");n.html("")};FlatMap=function(n,t){return[].concat.apply([],n.map(t))}