$(document).ready(function () {

    window.link_id = null;
    window.captcha_callback = null;

    $(".review-btn, .footer-link.site-link, .best-link").click(function (e) {
        window.link_id = $(this).data("id")
        e.preventDefault();
        window.captcha_url = 'rss_content/rest/links';
        window.captcha_data = {};
        window.captcha_callback = function (data) {
            window.location = data[window.link_id]['link'];
        };
        check_captcha_v3();
    });

    // contact
    $(".btn-modal-send").click(function (e) {
        e.preventDefault();
        if ($('#form-contact').valid()) {
            window.captcha_url = 'rss_content/rest/contact';
            window.captcha_data = {
                'contact-name': $('#contact-name').val(),
                'contact-email': $('#contact-email').val(),
                'contact-topic': $('#contact-topic').val(),
                'contact-ask': $('#contact-ask').val()
            };
            window.captcha_callback = function (data) {
                if (data.status === 'success') {
                    $('.contact-result').text(data.res)
                    $('.contact-result').css('color', 'green').addClass('show')
                    setTimeout(function () {
                        $('.contact-result').removeClass('show')
                        $('.btn-modal-close')[0].click()
                        document.getElementsByClassName("btn-modal-close")[3].click()
                    }, 3000)
                } else {
                    $('.contact-result').text(data.res)
                    $('.contact-result').addClass('show')
                    setTimeout(function () {
                        $('.contact-result').removeClass('show')
                        $('.btn-modal-close')[0].click()
                        document.getElementsByClassName("btn-modal-close")[3].click()
                    }, 3000)
                }
                $('#form-contact')[0].reset()
            }
            check_captcha_v3();
        }
    });

    // subscribe
    $(".email-btn").click(function (e) {
        e.preventDefault();
        if ($('#store-email').valid()) {
            window.captcha_url = 'rss_content/rest/subscribe';
            window.captcha_data = {email: $('#email-input').val()};
            window.captcha_callback = function (data) {
                if (data.status === 'success') {
                    $('.email-result').text(data.res)
                    $('.email-result').addClass('show').css('color', 'green')
                    setTimeout(function () {
                        $('.email-result').removeClass('show')
                    }, 3000)
                } else {
                    $('.email-result').text(data.res)
                    $('.email-result').addClass('show')
                    setTimeout(function () {
                        $('.email-result').removeClass('show')
                    }, 3000)
                }
                $('#store-email')[0].reset()
            };
            check_captcha_v3();
        }
        return false;
    });

    $("#form-contact .btn-modal-close").click(function () {
        $('#form-contact')[0].reset()
    });

    $("#form-contact").validate({
        rules: {
            'contact-name': {
                required: true,
            },
            'contact-email': {
                required: true,
                email: true,
            },
            'contact-topic': {
                required: true,
            },
            'contact-ask': {
                required: true,
            }
        }
    });

    $("#store-email").validate({
        rules: {
            'email-input': {
                required: true,
                email: true,
            }
        }
    });

});

function check_captcha_v3(url, data) {
    grecaptcha.ready(function () {
        grecaptcha.execute(window.public_key, {action: 'homepage'}).then(function (token) {
            window.captcha_data.token = token;
            $.ajax({
                url: window.captcha_url,
                method: 'post',
                data: window.captcha_data,
                dataType: 'JSON',
                success: function (data) {
                    if (data.status === 'recheck') {
                        grecaptcha.reset();
                        $('#modal-contact').css('opacity', 0);
                        $('#modal-captcha').modal('show');
                        return false;
                    }
                    window.captcha_callback(data);
                }
            })
        });
    });
}

function check_captcha_v2() {
    window.captcha_data.token = $('#form-captcha #g-recaptcha-response').val();
    window.captcha_data.type = 'v2';
    $.ajax({
        url: window.captcha_url,
        method: 'post',
        data: window.captcha_data,
        dataType: 'JSON',
        success: function (data) {
            window.captcha_callback(data);
            $('#modal-captcha').modal('hide');
            $('#modal-contact').css('opacity', 1);
            window.captcha_url = null;
            window.captcha_data = {};
            window.captcha_callback = null;
        }
    });
}