var PostingFacebook = {
    timeout_id : 0,
    ts: '',
    prontus_id: '',
    logStatus: '',
    urlPost: '/cgi-cpn/social_networks/facebook_posting.cgi',

    init: function(ts, prontus_id) {
        PostingFacebook.ts = ts;
        PostingFacebook.prontus_id = prontus_id;
        PostingFacebook.logStatus = "/" + prontus_id + "/cpan/procs/facebook_post/"+ PostingFacebook.ts + "/log.json";

        $('#post_facebook').bind('click', function() {
            if (PostingFacebook.validaCampos()) {
                PostingFacebook.post();
            }
        });
        // mostramos mensajes previos.
        PostingFacebook.getStatus();
    },

    post: function() {
        if (PostingFacebook.ts === '') {
            return false;
        }

        $.ajax({
            type: 'POST',
            url: PostingFacebook.urlPost,
            data: {
                _ts: PostingFacebook.ts,
                _prontus_id: PostingFacebook.prontus_id,
                bajada: $('#facebook_bajada').val(),
                usar_imagen: $('#facebook_usar_img').prop('checked')
            },
            dataType: 'json',
            success: function() {
                PostingFacebook.timeout_id = setTimeout(PostingFacebook.getStatus, 2000);
                $('#fb_last_response').show();
            },
            error: function(jqXHR, textStatus, errorThrown) {
                $('#fb_last_response').show();
                $('facebookResponseText').html('Ocurrió un error: ' + textStatus + "<br>" + errorThrown);
            }
        });
    },

    getStatus: function() {
        if (PostingFacebook.ts === '') {
            return;
        }
        $('#fb_last_response').show();
        $.ajax({
            type: 'GET',
            url: PostingFacebook.logStatus,
            dataType: 'json',
            success: function(response) {
                if (response.status == 0) {
                    response.msg = 'Ocurrió un error: ' + response.msg;
                }
                $('#facebookResponseText').html(response.msg);
                if (response.time) {
                    //$('#facebookTime').val(response.time);
                    $('#facebookTimeText').html(response.time);
                }
                clearTimeout(PostingFacebook.timeout_id);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                let errorMessage = '';
                if(jqXHR.status === 200 && jqXHR.responseText === "") {
                    errorMessage = 'No existe información';
                } else {
                    errorMessage = textStatus + "<br>\n" + errorThrown;
                }
                $('#facebookResponseText').html(errorMessage);
                clearTimeout(PostingFacebook.timeout_id);
            }
        });
    },

    validaCampos: function() {
        var validator = new Validador('_mainFidForm','one','#FDF8C1');
        validator.addconstraint('facebook_bajada','obligatorio','','La descripción es obligatoria para publicar a Facebook.');

        if (validator.validar()) {
            return true;
        } else {
            showModalAlert({
                title: 'Error',
                type: 'red',
                msg: "Error de validación al enviar a Facebook."
            });
            return false;
        }
    }
};
