<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*
* TCore
* @version: 1.0.0 (2021)
* @requires: jQuery v3.0 or later
* @author: TORANJDATA
* @event-namespace: .TCore
* @license: www.toranjnet.com
* Copyright 2021 TORANJDATA
*/

; (function ($) {

    $.tc.components.ToranjLogin = {
        defaults: {

        },

        init: function (el, options) {

            var htmlError = '&lt;span class="text-danger font-size-1 error"&gt;&lt;/span&gt;',
                baseURL = "/Template/stack/Views/user/webparts/login.aspx?act=",
                username = "";

            var login_reg = function () {

                function usercheckHandler($btn) {

                    debugger

                    var phoneRegex = /^^09\d{9}$/,
                        emailRegex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/,
                        //nationalCodeRegex = /^[0-9]{10}$/,
                        $username = $btn.parents('form').find('#username'),
                        username = $.tc.toEnDigit($username.val().trim());

                    if (username !== '') {

                        switch (true) {
                            case emailRegex.test(username):
                                hideMassage($username);
                                usercheckPro($btn, username, "email");
                                break;

                            case phoneRegex.test(username):
                                hideMassage($username);
                                usercheckPro($btn, username, "cellphone");
                                break;

                            case $.tc.isMeliCode(username):
                                hideMassage($username);
                                usercheckPro($btn, username, "melicode");
                                break;

                            default:
                                showMassage($username, $.msg.valueNotValid);

                        }

                        //if (username.includes("@")) { // ایمیل است
                        //    if (emailRegex.test(username)) {
                        //        hideMassage($username);
                        //        usercheck($btn, username);
                        //    } else {
                        //        showMassage($username, $.msg.EmailNotValid); //"ایمیل نامعتبر است"
                        //    }
                        //}
                        //else {// شماره است
                        //    if (phoneRegex.test(username)) {
                        //        hideMassage($username);
                        //        usercheck($btn, username);
                        //    } else {
                        //        showMassage($username, $.msg.CellphoneNotValid); // 'شماره موبایل نامعتبر است. شماره همراه را با 0 بتدایی و با اعداد انگلیسی وارد نمایید'
                        //    }
                        //}
                    }
                    else {
                        showMassage($username, $.msg.enterEmailOrCellphone); //'ایمیل یا شماره موبایل را وارد نمایید'
                    }
                }

                function loginHandler($btn) {
                    var $password = $btn.parents('form').find('#password'),
                        password = $password.val();

                    if (password !== '') {
                        if (password.length &gt; 2) {
                            hideMassage($password);
                            login($btn, password, "");
                        } else {
                            hideMassage($password);
                            showMassage($password, $.msg.passwordNotValid); // 'گذرواژه باید بیش از 3 کاراکتر باشد'
                        }
                    } else {
                        showMassage($password, $.msg.enterPassword); // 'گذرواژه را وارد نمایید'
                    }
                }

                function loginCodeHandler($btn) {

                    var $code = $('#code-login'),
                        code = $code.val();
                    if (code !== '') {
                        login($btn, "", code);
                    } else {
                        showMassage($code, $.msg.enterCode); // 'کد ورود را وارد نمایید'
                    }
                }

                function regCodeHandler($btn) {

                    var $code = $('#code-reg'),
                        code = $code.val();
                    if (code !== '') {
                        regAuth($btn, code);
                    } else {
                        showMassage($code, $.msg.enterCode); //'کد ورود را وارد نمایید'
                    }
                }



                $(document).on('click', '#btn-user-check', function () {
                    usercheckHandler($(this));
                });

                $('body').on('keydown', '#username', function (e) {
                    if (e.keyCode == 13) {
                        e.preventDefault();
                        usercheckHandler($("#btn-user-check"));
                    }
                });

                $(document).on('click', '#btn-login', function () {
                    loginHandler($(this));
                });
                $(document).on('keydown', '#password', function (e) {
                    if (e.keyCode == 13) {
                        e.preventDefault();
                        loginHandler($("#btn-login"));
                    }
                });

                $(document).on('click', '#btn-login-auth', function () {
                    loginCodeHandler($(this));
                });
                $(document).on('keydown', '#code-login', function (e) {
                    if (e.keyCode == 13) {
                        e.preventDefault();
                        loginCodeHandler($("#btn-login-auth"));
                    }
                });

                $(document).on('click', '#btn-reg-auth', function () {
                    regCodeHandler($(this));
                });
                $(document).on('keydown', '#code-reg', function (e) {
                    if (e.keyCode == 13) {
                        e.preventDefault();
                        regCodeHandler($("#btn-reg-auth"));
                    }
                });


                $(document).on('click', '#btn-send-authcode', function () {
                    var $btn = $(this);
                    sendcode($btn);
                });

                $(document).on('click', '#btn-register', function () {
                    var $btn = $(this);
                    var formData = new FormData($(this).parents('form')[0]);
                    debugger;
                    if ($("#user-register").valid()) {
                        reg($btn, formData)
                    }

                });

                $(document).on('click', '#btn-recovery', function () {
                    var $btn = $(this);
                    recovery($btn);
                });
            }

            var changeSteps = function () {
                $(document).on('click', '.btn-step', function () {
                    switch ($(this).data("step")) {
                        case 'usercheck':
                            $.tc.remote($("#pnlLogin"), baseURL + "usercheck");
                            break;
                        case 'recovery':
                            $.tc.remote($("#pnlLogin"), baseURL + "recovery");
                            break;
                        case 'password':
                            $.tc.remote($("#pnlLogin"), baseURL + "password");
                            break;
                    }
                });
            }

            var showMassage = function (element, textError) {
                element.addClass('is-invalid');
                if ($('.error').length &gt; 0) {
                    $('.error').remove();
                }
                element.after(htmlError);
                $('.error').text(textError);
            };
            var hideMassage = function (element) {
                element.removeClass('is-invalid');
                if ($('.error').length &gt; 0) {
                    $('.error').remove();
                }
            };

            var usercheck = function ($btn, username) {

                $.ajax({
                    url: "/AjaxLibrary/auth.aspx?act=UserCheckByCredential",
                    cache: false,
                    type: "POST",
                    data: {
                        "username": username
                    },
                    success: function (result) {
                        if (result == "error") {
                            swal(obj.msg, {
                                icon: obj.status,
                            });
                            $.tc.btnLoading('reset', $btn);
                        }
                        else {
                            var obj = JSON.parse(result);
                            switch (obj.status) {
                                case 'error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'new-user-email':

                                    $("#pnlLogin").attr("data-token", obj.token);
                                    $.tc.remote($("#pnlLogin"), baseURL + "register-email");
                                    //swal(obj.msg, {
                                    //    icon: obj.type,
                                    //});
                                    //$.tc.btnLoading('reset', $btn);
                                    break;
                                case 'user-password-login':
                                    //show password pnl

                                    $("#pnlLogin").attr("data-token", obj.token);
                                    if (username.includes("@"))
                                        $.tc.remote($("#pnlLogin"), baseURL + "password&amp;email=1");
                                    else
                                        $.tc.remote($("#pnlLogin"), baseURL + "password");

                                    break;

                                case 'new-user-authcode':
                                    //show authcode pnl
                                    $("#pnlLogin").attr("data-token", obj.token);
                                    $.tc.remote($("#pnlLogin"), baseURL + "authcodereg");


                                    //$.tc.timers($('.countdown'), function () {
                                    //    alert();
                                    //});
                                    break;

                                case 'error-authcode-send':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;

                                case 'error-authcode-resend':
                                    $.tc.remote($("#pnlLogin"), baseURL + "authcodereg");
                                    break;
                            }
                        }
                    },
                    beforeSend: function () {
                        $.tc.btnLoading('loading', $btn);
                    },
                    error: function () {
                        $.tc.btnLoading('reset', $btn);
                    }
                });
            }

            var usercheckPro = function ($btn, username, type) {

                $.ajax({
                    url: "/AjaxLibrary/auth.aspx?act=UserCheckByCredential",
                    cache: false,
                    type: "POST",
                    data: {
                        "username": username
                    },
                    success: function (result) {
                        if (result == "error") {
                            swal(obj.msg, {
                                icon: obj.status,
                            });
                            $.tc.btnLoading('reset', $btn);
                        }
                        else {

                            var obj = JSON.parse(result);

                            switch (obj.status) {
                                case 'error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'new-user-simple':

                                    $("#pnlLogin").attr("data-token", obj.token);
                                    $.tc.remote($("#pnlLogin"), baseURL + "register-simple&amp;type=" + type + "&amp;data=" + username);

                                    break;
                                case 'user-password-login':
                                    //show password pnl

                                    $("#pnlLogin").attr("data-token", obj.token);
                                    if (type != "cellphone")
                                        $.tc.remote($("#pnlLogin"), baseURL + "password&amp;email=1");
                                    else
                                        $.tc.remote($("#pnlLogin"), baseURL + "password");

                                    break;

                                case 'new-user-authcode':
                                    //show authcode pnl
                                    $("#pnlLogin").attr("data-token", obj.token);
                                    $.tc.remote($("#pnlLogin"), baseURL + "authcodereg");


                                    //$.tc.timers($('.countdown'), function () {
                                    //    alert();
                                    //});
                                    break;

                                case 'error-authcode-send':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;

                                case 'error-authcode-resend':
                                    $.tc.remote($("#pnlLogin"), baseURL + "authcodereg");
                                    break;
                            }
                        }
                    },
                    beforeSend: function () {
                        $.tc.btnLoading('loading', $btn);
                    },
                    error: function () {
                        $.tc.btnLoading('reset', $btn);
                    }
                });
            }

            var sendcode = function ($btn) {
                $.ajax({
                    url: "/AjaxLibrary/auth.aspx?act=SendAuthCode",
                    cache: false,
                    type: "POST",
                    data: {
                        "token": $("#pnlLogin").data("token"),
                    },
                    success: function (result) {
                        if (result == "error") {
                            swal(obj.msg, {
                                icon: obj.status,
                            });
                            $.tc.btnLoading('reset', $btn);
                        }
                        else {
                            var obj = JSON.parse(result);
                            switch (obj.status) {
                                case 'error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'error-token':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.remote($("#pnlLogin"), baseURL + "usercheck");
                                    break;
                                case 'error-authcode-send':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'error-authcode-resend':
                                    //alert("error-authcode-resend");
                                    $.tc.remote($("#pnlLogin"), baseURL + "authcode");
                                    break;
                                case 'success':
                                    $.tc.remote($("#pnlLogin"), baseURL + "authcode");
                                    //$.tc.timers($('.countdown'), function () {
                                    //    alert();
                                    //});
                                    break;
                            }
                        }
                    },
                    beforeSend: function () {
                        $.tc.btnLoading('loading', $btn);
                        $("#btn-login").addClass("disabled");
                    },
                    error: function () {
                        $.tc.btnLoading('reset', $btn);
                    }
                });
            }
            var login = function ($btn, password, authcode) {

                $.ajax({
                    url: "/AjaxLibrary/auth.aspx?act=Login",
                    cache: false,
                    type: "POST",
                    data: {
                        "token": $("#pnlLogin").data("token"),
                        "password": password,
                        "authcode": authcode,
                    },
                    success: function (result) {
                        if (result == "error") {
                            swal(obj.msg, {
                                icon: obj.status,
                            });
                            $.tc.btnLoading('reset', $btn);
                        }
                        else {
                            var obj = JSON.parse(result);
                            switch (obj.status) {
                                case 'error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.remote($("#pnlLogin"), baseURL + "login");
                                    break;
                                case 'wrong-password':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'wrong-authcode':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'success':
                                    window.location.replace(($("#pnlLogin").data("redir")));
                                    break;
                            }
                        }
                    },
                    beforeSend: function () {
                        $.tc.btnLoading('loading', $btn);
                    },
                    error: function () {
                        $.tc.btnLoading('reset', $btn);
                    }
                });
            }
            var regAuth = function ($btn, authcode) {
                $.ajax({
                    url: "/AjaxLibrary/auth.aspx?act=RegAuth",
                    cache: false,
                    type: "POST",
                    data: {
                        "token": $("#pnlLogin").data("token"),
                        "authcode": authcode,
                    },
                    success: function (result) {
                        if (result == "error") {
                            swal(obj.msg, {
                                icon: obj.status,
                            });
                            $.tc.btnLoading('reset', $btn);
                        }
                        else {
                            var obj = JSON.parse(result);
                            switch (obj.status) {
                                case 'error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.remote($("#pnlLogin"), baseURL + "login");
                                    break;
                                case 'wrong-authcode':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'success':
                                    $("#pnlLogin").attr("data-token", obj.token);
                                    $.tc.remote($("#pnlLogin"), baseURL + "register");

                                    break;
                            }
                        }
                    },
                    beforeSend: function () {
                        $.tc.btnLoading('loading', $btn);
                    },
                    error: function () {
                        $.tc.btnLoading('reset', $btn);
                    }
                });
            }
            var reg = function ($btn, formData) {
                debugger;
                formData.append('token', $("#pnlLogin").data("token"));
                $.ajax({
                    url: "/AjaxLibrary/auth.aspx?act=RegAndLogin",
                    cache: false,
                    type: "POST",
                    data: formData,
                    processData: false,
                    contentType: false,
                    success: function (result) {
                        if (result == "error") {
                            swal(obj.msg, {
                                icon: obj.status,
                            });
                            $.tc.btnLoading('reset', $btn);
                        }
                        else {
                            var obj = JSON.parse(result);
                            switch (obj.status) {
                                case 'error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.remote($("#pnlLogin"), baseURL + "login");
                                    break;
                                case 'email-error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'wrong-authcode':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    $.tc.btnLoading('reset', $btn);
                                    break;
                                case 'success':
                                    window.location.replace(($("#pnlLogin").data("redir")));
                                    break;
                            }
                        }
                    },
                    beforeSend: function () {
                        $.tc.btnLoading('loading', $btn);
                    },
                    error: function () {
                        $.tc.btnLoading('reset', $btn);
                    }
                });
            }
            var recovery = function ($btn) {
                $.ajax({
                    url: "/AjaxLibrary/auth.aspx?act=Recovery",
                    cache: false,
                    type: "POST",
                    data: {
                        "token": $("#pnlLogin").attr("data-token")
                    },
                    success: function (result) {
                        if (result == "error") {
                            swal(obj.msg, {
                                icon: obj.status,
                            });
                            //$.tc.btnLoading('reset', $btn);
                        }
                        else {
                            var obj = JSON.parse(result);
                            switch (obj.status) {
                                case 'error':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    //$.tc.btnLoading('reset', $btn);
                                    break;
                                case 'success':
                                    swal(obj.msg, {
                                        icon: obj.type,
                                    });
                                    //$.tc.btnLoading('reset', $btn);
                                    break;
                            }
                        }
                    },
                    beforeSend: function () {
                        //$.tc.btnLoading('loading', $btn);
                    },
                    error: function () {
                        //$.tc.btnLoading('reset', $btn);
                    }
                });
            }



            login_reg();
            changeSteps();

        }

    };

})(jQuery);</pre></body></html>