var CaptchaCallback = function () {
    $('.g-recaptcha').each(function (index, el) {
        var siteKey = $(this).data('sitekey');
        if ($(this).data('size') == "invisible") {
            grecaptcha.render(el, { 'sitekey': siteKey, 'size' : "invisible" });
            grecaptcha.execute();
        }
        else {
            grecaptcha.render(el, { 'sitekey': siteKey });
        }
    });
};

//Ferme le menu si on clique en dehors de celui-ci
$(document).click(function (e) {
    e.stopPropagation();
    var container = $(".dropdown");

    if (container.has(e.target).length === 0) {
        $(".login-menu-btn").attr('aria-expanded', "false");
    }
});

$(document).ready(function () {

    var checkingAttempts;
    // Gestion menu déroulant
    $('.login-menu-btn').on('click', function () {
        let $self = $(this);
        var menuExpanded = $self.attr('aria-expanded');
        if (menuExpanded === "false") {
            menuExpanded = "true";
            $(".accountModule.dropdown").addClass("open");
        }
        else {
            menuExpanded = "false";
            $(".accountModule.dropdown").removeClass("open");
        }
        $self.attr('aria-expanded', menuExpanded);
    });
    // Ferme le menu au esc 
    $(".login-menu-btn, .login-submenu").on('keydown', function (e) {
        if (e.which == 27 && $(".login-menu-btn").attr('aria-expanded') === "true") {
            $(".login-menu-btn").attr('aria-expanded', "false");
        }
    });

    $(".login-form input").on('keypress', function (e) {
        if (e.which == 13 && $("#password").val() != "") {
            $(this).closest("form").submit();
        }
    });

    // MOT DE PASSE OUBLIE

    //On affiche le formulaire "Mdp oublié" si un message d'erreur est à afficher ...
    if ($('.forget-form').find('.ticket-warning').length) {
        $('.login-form-content').hide();
        $('.login-field').prop('disabled', true);
        $('.forget-form-content').show();
    }

    if ($('.formitem').find('.error.ticket-warning').length) {
        // Ajout d'une classe error au body si une erreur est présente
        $('body').addClass('error');
    }

    $('#forget-password').on('click', function () {
        $('.login-form-content').hide();
        $('.login-field').prop('disabled', true);
        $('.forget-form-content').show();
    });

    $('body').on('click', '#send-email-validation', function () {
        $.ajax({
            url: "/API/" + $("#logout-hidden").data("guid") + "/SendEmailValidation",
            data: {
            },
            type: "POST",
            success: function (data) {
                $('#dialogmodal_content').html(data.message);
                $('#dialogmodal').modal('show');
            },
            error: function () {
            }
        });
    });

    $('body').on('click', '#reset-password-button', function () {
        var contactEmail = $("input[name=email]").val();
        var captchaResponse = $("textarea[name=g-recaptcha-response]").val();
        $.ajax({
            url: "/API/" + $("form.login-form").data("guid") + "/ResetPassword",
            data: {
                "contactEmail": contactEmail,
                "captchaResponse": captchaResponse,
            },
            type: "POST",
            success: function (data) {
                if (data.status == 'success') {
                    console.log('success');
                    $('#error-reset').addClass("hide");
                    //on ouvre la popup 
                    $('.modal-body strong').text(contactEmail);
                    $("#reset-pwd").modal({
                        backdrop: 'static',
                        keyboard: false
                    });
                } else {
                    console.log(data);
                    //on affiche le message d'erreur
                    $('#error-reset').empty();
                    $('#error-reset').append(data.error);
                    $('#error-reset').addClass("ticket-warning").addClass("alert").addClass("alert-danger");
                    $('#error-reset').removeClass("hide");
                    
                }
            },
        });
    });

    // MODIFICATION DE MOT DE PASSE 
    $('body').on('click', '#edit-password-button', function (e) {
        var oldPwd = "";
        if ($("#oldPwd").length) {
            oldPwd = $("#oldPwd").val();
        }
        var newPwd = $("#newPwd").val();
        var login = $("#email").val();
        var newPwdConfirm = $("#newPwdConfirm").val();
        var captchaResponse = $("textarea[name=g-recaptcha-response]").val();
        $.ajax({
            url: "/API/" + $("form.edit-form").data("guid") + "/EditPassword",
            data: {
                "oldPwd": oldPwd,
                "newPwd": newPwd,
                "newPwdConfirm": newPwdConfirm,
                "noCheckOld": $(this).hasClass('reset-password'),
                "captchaResponse": captchaResponse,
                "login": login,
                "token": $('input[name="__RequestVerificationToken"]').val()
            },
            type: "POST",
            beforeSend: function () {
                $('.loading-component').show();
            },
            success: function (data) {
                $('.loading-component').hide();
                if (data.status == 'success') {
                    $('#error-edit').addClass("hide");
                    $("#edit-pwd").modal('show');
                    $('#edit-pwd').on('hidden.bs.modal', function () {
                        window.location.replace("/");
                    })
                } else {
                    //on affiche le message d'erreur
                    $('#error-edit').empty();
                    $('#error-edit').append(data.error);
                    $('#error-edit').addClass("ticket-warning").addClass("alert").addClass("alert-danger");
                    $('#error-edit').removeClass("hide");
                }
            },
            error: function (data) {
            }
        });
    });

    if ($("#cms-container")) {
        $("#cms-container").css("min-height", $(window).height());
    }
    $(window).on('resize', function () {
        if ($("#cms-container")) {
            $("#cms-container").css("min-height", $(window).height());
        }
    });

    $("#logout").on('click', function (e) {
        e.preventDefault();
        $(this).closest('form').submit();
    });

    $('#username').on('input change focusout', function () {
        //mettre à jour le nb de tentatives restantes     
        var username = $("#username").val();
        if (checkingAttempts)
            checkingAttempts.abort();
        checkingAttempts = $.ajax({
            url: "/API/" + $("form.login-form").data("guid") + "/CheckPasswordAttempts",
            data: {
                "username": username,
            },
            type: "POST",
            success: function (data) {
                if (data.status == 'success') {
                    console.log('success');
                    $("#leftattempts").html(data.attempts);
                }
            },
            error: function (data) {
            }
        });
    });

    if (!$().uniform) {
        return;
    }

    var test = $("input[type=checkbox]:not(.toggle), input[type=radio]:not(.toggle, .star)");
    if (test.length > 0) {
        test.each(function () {
            if ($(this).parents(".checker").length == 0) {
                $(this).show();
                $(this).uniform();
            }
        });
    }

    var lcid = $("form.login-form.logout").data("lcid");
    if (lcid != undefined) {
        $.each(document.cookie.split("; "), function (k, v) {
            if (/^_ga=/.test(v)) {
                var ncid = v.substr(4);
                var url = "/API/" + $("form.login-form.logout").data("guid") + "/SetLcid";
                if (ncid != lcid) $.post(url, { cid: ncid });
            }
        });
    }
});;
