﻿$(function () {
    $.extend({
        login: function (username, password, remember) {
            $.loginfadeout();
            Sys.Services.AuthenticationService.login(username, password, remember, null, null, loginsuccess, loginfailed, "");
        },
        loginbyform: function () {
           
            var username, password, remember;
            username = $('#username').val();

            password = $('#password').val();
            remember = $('#rememberme').is(':checked');
            $.login(username, password, remember);
        },
        logout: function () {
            Sys.Services.AuthenticationService.logout(null, logoutsuccess,
                 loginfailed, "Context Info");
        },
        loginfailedalert: function () {
            $.loginfadein();
            $(".shakeonfail").addClass("error"); //.effect("shake", { times: 6, distance: 4 }, 50)
        },
        afterlogin: function () {
            var returnurl = $.querystring("returnurl");
            $.loginfadein();
            if (returnurl != "") {
                window.location = returnurl;
            }
            else {
                // reload
                window.location.reload();
            }
            $.loginfadein();
        },
        resetPassword: function () {
            $.loginfadeout();
            var usernameoremail = $("#forgottenpassword").val();
            if (usernameoremail.length == 0) {
                $("#forgottenpassword").addClass("error");
                return false;
            }
            var datatosend = "{emailorusername:'" + usernameoremail + "'}";
            $.ajax({
                type: "POST",
                url: '/usercontrols/WRDev.Umb.MO/Services/Membership.asmx/ResetPassword',
                data: datatosend,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    var s = data.d;
                    if (s.Reset) {
                        $(".login-forgottenpassword-message").html("Your password has been reset and an email has been sent to " + s.Email + " with your new password.");
                    }
                    else {
                        $(".login-forgottenpassword-message").html("There was a problem and your password has not been reset. " + s.Message);
                    }
                    $(".login-forgottenpassword-message").fadeIn();
                    $.loginfadein();
                }
            });
        },
        querystring: function (name) {
            name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
            var regexS = "[\\?&]" + name + "=([^&#]*)";
            var regex = new RegExp(regexS);
            var results = regex.exec(window.location.href);
            if (results == null)
                return "";
            else
                return decodeURIComponent(results[1].replace(/\+/g, " "));
        },
        loginfadeout: function () {
            $("#login-table").fadeTo(500, 0.3);
        },
        loginfadein: function () {
            $("#login-table").fadeTo(500, 1.0);
        }
    })
});

loginsuccess = function (validCredentials, userContext, methodName) {
	//alert('success');
	//alert("valid: " + validCredentials);
    if (validCredentials) {
       // alert('valid');
	   var roles = Sys.Services.RoleService.get_roles();
	   //alert(roles);
		$.afterlogin();
		
    }
    else {
        $.loginfailedalert();
    }
};

loginfailed = function (error, userContext, methodName) {
    //alert('failed ' + methodName);
    //alert(error);
    $.loginfailedalert();
};


function logoutsuccess(result, userContext, methodName) {
    //alert('You have been logged out from the web site.');
}
