﻿function OnClickLogin()
{
    //Sys.Services.AuthenticationService.login(userName, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext);
    
    var userName = $get("AccountName").value + "\\" + $get("userNameTextbox").value;
    var password = $get("passwordTextbox").value;

    Sys.Services.AuthenticationService.login(userName,password,false,null,null,LogInCompleted,null,userName);
    
}

function OnClickRegister()
{
    if (modalLogIn != null)
    {
        modalLogIn.close();
    }
    Register();
}

function OnClickLogOut()
{
    Sys.Services.AuthenticationService.logout();
}




function LogInCompleted(validCredentials, userContext, methodName)
{
    var loginStatus = $get("loginStatus");
   
    if (validCredentials)
    {
        NetByDesign.IDXPlus.Services.Registration.LoadUserProfile(userContext,SetUserProfileCompleted,SetUserProfileError);
        if (modalLogIn != null)
        {
            modalLogIn.close();
        }
        
        if (modalRegistration != null)
        {
            modalRegistration.close();
        }
    }
    else
    {
        loginStatus.innerHTML = "Invalid User Name or Password.";
    }
}



function SetUserProfileCompleted(userProfileResult)
{
    userProfile = userProfileResult;
    SetLogInContainer();
    GetFavorites();
    
}

function SetUserProfileError(message)
{
    //$get("userProfileStatus").innerHTML = message._message;
}

function IsUserLoggedIn()
{
    var isLoggedIn = Sys.Services.AuthenticationService.get_isLoggedIn();
    return isLoggedIn;
}

function SetLogInContainer()
{
    var output = '';;
    
    if (IsUserLoggedIn())
    {
        if (userProfile != null)
        {
            output = '<a href="#" onclick="UserProfile()" title="Update Your Profile">';
            output += userProfile.FirstName + ' ' + userProfile.LastName;
            output += '</a> | '
        }
        
        output += '<a href="#" onclick="OnClickLogOut()">Log Out</a>';
    }
    else
    {
        output = '<a href="#" onclick="LogIn()">Log In</a> | <a href="#" onclick="Register()">Register</a>';
    }
    
    var logInContainer = $get("logInContainer");
    if (logInContainer != null)
    {
        logInContainer.innerHTML = output;
    }
}

function ToggleResetPassword()
{
    Sys.UI.DomElement.toggleCssClass($get("loginFormContainer"),"hideResetPassword");
    Sys.UI.DomElement.toggleCssClass($get("resetPasswordContainer"),"hideResetPassword");
    //changePasswordActionContainer
}

function OnClickResetPassword()
{
    var accountName = $get("AccountName").value;
    var userName = $get("rpUserName").value;
    NetByDesign.IDXPlus.Services.Registration.ResetPassword(accountName,userName,ResetPasswordCompleted,ResetPasswordError);
}

function ResetPasswordCompleted(resetResult)
{
     ToggleResetPassword();
     $get("loginStatus").innerHTML = "Your password has been reset.";
}

function ResetPasswordError(message)
{
    $get("resetPasswordStatus").innerHTML = message._message;
}

function ResetLogInForm(allElements)
{
    var validationElements = ['loginStatus','resetPasswordStatus'];
    var fields = ['userNameTextbox','passwordTextbox','rpUserName'];
    
    ClearValidationElements(validationElements);
    ClearFields(fields);
}

// Notify ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();