define(["appSettings","dom","connectionManager","loading","cardStyle","emby-checkbox"],function(appSettings,dom,connectionManager,loading){"use strict";function authenticateUserByName(page,apiClient,username,password){loading.show(),apiClient.authenticateUserByName(username,password).then(function(result){var newUrl,user=result.User,serverId=getParameterByName("serverid");newUrl=user.Policy.IsAdministrator&&!serverId?"dashboard.html":"home.html",loading.hide(),Dashboard.onServerChanged(user.Id,result.AccessToken,apiClient),Dashboard.navigate(newUrl)},function(response){page.querySelector("#txtManualName").value="",page.querySelector("#txtManualPassword").value="",loading.hide(),401==response.status?require(["toast"],function(toast){toast(Globalize.translate("MessageInvalidUser"))}):showServerConnectionFailure()})}function showServerConnectionFailure(){Dashboard.alert({message:Globalize.translate("MessageUnableToConnectToServer"),title:Globalize.translate("HeaderConnectionFailure")})}function showManualForm(context,showCancel,focusPassword){context.querySelector(".chkRememberLogin").checked=appSettings.enableAutoLogin(),context.querySelector(".manualLoginForm").classList.remove("hide"),context.querySelector(".visualLoginForm").classList.add("hide"),focusPassword?context.querySelector("#txtManualPassword").focus():context.querySelector("#txtManualName").focus(),showCancel?context.querySelector(".btnCancel").classList.remove("hide"):context.querySelector(".btnCancel").classList.add("hide")}function getRandomMetroColor(){var index=Math.floor(Math.random()*(metroColors.length-1));return metroColors[index]}function getMetroColor(str){if(str){for(var character=String(str.substr(0,1).charCodeAt()),sum=0,i=0;i
',html+='
',html+='
',html+='
';var imgUrl;if(user.PrimaryImageTag)imgUrl=apiClient.getUserImageUrl(user.Id,{width:300,tag:user.PrimaryImageTag,type:"Primary"}),html+='
";else{var background=getMetroColor(user.Id);imgUrl="css/images/logindefault.png",html+='
'}html+="
",html+="
",html+='
',html+='
'+user.Name+"
",html+="
",html+="
",html+=""}var container=context.querySelector("#divUsers");container.innerHTML=html}var metroColors=["#6FBD45","#4BB3DD","#4164A5","#E12026","#800080","#E1B222","#008040","#0094FF","#FF00C7","#FF870F","#7F0037"];return function(view,params){function getApiClient(){var serverId=params.serverid;return serverId?connectionManager.getOrCreateApiClient(serverId):ApiClient}function showVisualForm(){view.querySelector(".visualLoginForm").classList.remove("hide"),view.querySelector(".manualLoginForm").classList.add("hide")}view.querySelector("#divUsers").addEventListener("click",function(e){var card=dom.parentWithClass(e.target,"card"),cardContent=card?card.querySelector(".cardContent"):null;if(cardContent){var context=view,id=cardContent.getAttribute("data-userid"),name=cardContent.getAttribute("data-username"),haspw=cardContent.getAttribute("data-haspw");"manual"==id?(context.querySelector("#txtManualName").value="",showManualForm(context,!0)):"false"==haspw?authenticateUserByName(context,getApiClient(),name,""):(context.querySelector("#txtManualName").value=name,context.querySelector("#txtManualPassword").value="",showManualForm(context,!0,!0))}}),view.querySelector(".manualLoginForm").addEventListener("submit",function(e){appSettings.enableAutoLogin(view.querySelector(".chkRememberLogin").checked);var apiClient=getApiClient();return authenticateUserByName(view,apiClient,view.querySelector("#txtManualName").value,view.querySelector("#txtManualPassword").value),e.preventDefault(),!1}),view.querySelector(".btnForgotPassword").addEventListener("click",function(){Dashboard.navigate("forgotpassword.html")}),view.querySelector(".btnCancel").addEventListener("click",showVisualForm),view.querySelector(".btnManual").addEventListener("click",function(){view.querySelector("#txtManualName").value="",showManualForm(view,!0)}),view.addEventListener("viewshow",function(e){loading.show();var apiClient=getApiClient();apiClient.getPublicUsers().then(function(users){users.length?users.length&&users[0].EnableAutoLogin?authenticateUserByName(view,apiClient,users[0].Name,""):(showVisualForm(),loadUserList(view,apiClient,users)):(view.querySelector("#txtManualName").value="",showManualForm(view,!1,!1)),loading.hide()}),apiClient.getJSON(apiClient.getUrl("Branding/Configuration")).then(function(options){view.querySelector(".disclaimer").innerHTML=options.LoginDisclaimer||""}),Dashboard.isConnectMode()?view.querySelector(".connectButtons").classList.remove("hide"):view.querySelector(".connectButtons").classList.add("hide")})}});