$(function(){
    var req_query = $(".ajax-info a.req-query").attr('href');
    var empty_comment_nag = '<div class="ajax-msg">Prázdné komentáře nejsou k ničemu, radši něco napiš.</div>';
    var button_place = $('#hook-add-comment-preview-button');
    var preview_place = $('#hook-add-comment-preview-place');
    function show_preview(preview_place, dom_fragment) {
        var prev_content = preview_place.find('>*');
        prev_content.animate(
            {height: 0, opacity: 0},
            {
                duration: 500,
                complete: function(){
                    prev_content.remove();
                }
            }
        );
        var wrapper = $('<div><div class="ajax-comment-loader"></div></div>');
        wrapper.find('div').append(dom_fragment);
        wrapper.hide().prependTo(preview_place).slideDown(500);
    }
    function get_data_or_nag() {
        var data = $('#comment-input').val().replace(/^\s*|\s*$/, "");
        if(!data) {
            show_preview(preview_place, $(empty_comment_nag));
        }
        return data;
    }
    if(button_place && preview_place) {
        $("<input type='button' class='button preview' value='Náhled'>").click(
            function() {
                var data = get_data_or_nag();
                if(data) {
                    $.fanart.ajax({
                        spintype: 'star-prep',
                        notify_place: button_place,
                        data: {comment: data, preview: 1},
                        url: '/actions/rendercomments.php' + req_query,
                        error: function(XMLHttpRequest, textStatus, errorThrown) {
                            show_preview(preview_place, $(
                                '<div class="ajax-msg">Náhled se nepovedlo vytvořit, takže jsi bez náhledu. Žmolka.</div>'+
                                '<div class="ajax-msg">Můžeš to zkusit znovu, třeba se to povede.</div>'
                            ));
                        },
                        success: function(data, textStatus) {
                            show_preview(preview_place, $(data).find('.comment'));
                        }
                    });
                }
            }
        ).appendTo(button_place);
    }
    var form = $('#commentform');
    var button = form.find('#hook-add-comment-submit-button');
    var picid_query = $(".ajax-info a.picture-id").attr('href');
    if(button) {
        form.submit(function() {
            button.attr('disabled', 'disabled');
            show_preview(preview_place, $('<span></span>'));
            if(form.hasClass('ajax-submit-failed')) {
                return true;
            }
            var data = get_data_or_nag();
            if(data) {
                var error_func = function(XMLHttpRequest, textStatus, errorThrown) {
                    show_preview(preview_place, $(
                        '<div class="ajax-msg">Komentář se odesílá...</div>'
                    ));
                    form.addClass('ajax-submit-failed');
                    form.submit();
                };
                $.fanart.ajax({
                    spintype: 'star-app',
                    notify_place: button,
                    data: {comment: data, addcomment: true},
                    url: '/actions/addcomment.php' + picid_query,
                    error: error_func,
                    success: function(data, textStatus) {
                        if($(data).find('.result').is('.ok')) {
                            show_preview(preview_place, $(
                                '<div class="ajax-msg">Komentář přidán!</div>'
                            ));
                            form.slideUp(500);
                            $.fanart.update();
                        }else{
                            error_func();
                        }
                    }
                });
            }
            return false;
        });
    }
});

