/*
 * Vytvori linky na stazeni reply formulare
 * @param element - element, ve kterem se ma vytvorit odkaz
 * @param postIdPref - prefix nazvu ID daneho prvku napr. forum-post-12, prefix je forum-post-
 */
function createForumPostReplyLink(element /* jQuery */, postIdPref /* string */) {
    if (typeof postIdPref == 'undefined' ) postIdPref = 'forum-post-';
    var postDiv = element.parent().parent().parent(); //div element, kde je forum post
    
    postDiv.blockCustom01();
    //vyzereme cislo z konce ID postu - napr. forum-post-12 -> 12
    var id_parent = element.parent().parent().parent().attr('id');
    id_parent = id_parent.substr(postIdPref.length, id_parent.length);
    $.get(baseUrl + '/ajax-tunel/forum/post/getpostreplyform', {
            'id_parent' : id_parent
        }, function(data) {
            postDiv.after(data);
            postDiv.unblock();
        }
    );
    return false;
}

/*
 * Resi hlasovani. Priradi potrebnou akci a zajisti vykresleni odpovedi
 */
function ratingForumPostUp() {
    $("a.forum-post-rating.rating-up-small:not(.rating-up-small-disabled)"
     ).livequery('click',
        function() {
            if (typeof postIdPref == 'undefined' ) postIdPref = 'forum-post-';
            var id_parent = $(this).parent().parent().parent().parent().attr('id');
            id_parent = id_parent.substr(postIdPref.length, id_parent.length);
            var href = baseUrl + '/ajax-tunel/forum/post/rate-up';
            var forumPostAuthor = $(this).parent().next().next().next().next();
            var forumPostBoxes = $(this).parent()
                                    .add($(this).parent().next())
                                    .add($(this).parent().next().next())
                                    .add(forumPostAuthor);

            var forumPostContainer = $(this).parent().parent();                                    
            var loader = $('.loader', forumPostContainer);

            $(forumPostBoxes).fadeOut('fast', function() {
                loader.fadeIn('fast');
                
                $.get(href, {'id_forum_post': id_parent}, function(data) {
                    loader.fadeOut('fast', function() {
                        forumPostAuthor.show();
                        forumPostContainer.prepend(data);
                    });
                });
            });
            return false;
        });
}

/*
 * Resi hlasovani. Priradi potrebnou akci a zajisti vykresleni odpovedi
 */
function ratingForumPostDown() {
    $("a.forum-post-rating.rating-down-small:not(.rating-down-small-disabled)"
     ).livequery('click',
        function() {
            if (typeof postIdPref == 'undefined' ) postIdPref = 'forum-post-';
            var id_parent = $(this).parent().parent().parent().parent().attr('id');
            id_parent = id_parent.substr(postIdPref.length, id_parent.length);
            var href = baseUrl + '/ajax-tunel/forum/post/rate-down/';
            var forumPostAuthor = $(this).parent().next().next().next();
            var forumPostBoxes = $(this).parent()
                                    .add($(this).parent().prev())
                                    .add($(this).parent().next())
                                    .add(forumPostAuthor);

            var forumPostContainer = $(this).parent().parent();
            var loader = $('.loader', forumPostContainer);

            $(forumPostBoxes).fadeOut('fast', function() {
                loader.fadeIn('fast');

                $.get(href, {'id_forum_post': id_parent}, function(data) {
                    loader.fadeOut('fast', function() {
                        forumPostAuthor.show();
                        forumPostContainer.prepend(data);
                    });
                });
            });
            return false;
        });
}

$(document).ready(function() {
    var postIdPref = 'forum-post-'; //prefix pred cislem v ID postu
    $('[id*=' + postIdPref + '] div.foot a.post-reply').one("click", function() {
        createForumPostReplyLink($(this));
    });
    //prvni forum post ma top margin nulovy
    //az se opravi zobrazovani banneru, tak se to tu zrusi
    $('div[id^=forum-post]:first').css('margin-top', '0px');
    //posledni forum post ma bottom margin nulovy
    $('div[id^=forum-post]:last').css('margin-bottom', '0px');
    ratingForumPostUp();
    ratingForumPostDown();
})
