// функция добавляет или удаляет голос к отзыву
// Входные параметры:
//      checked_object - нажатый объект (кнопка)
//      is_add - добавление или удаление голоса
function add_remove_resp_vote(checked_object, is_add) {
    // 1. Получаем идентификатор отзыва за который отдаётся голос
    var resp_id = checked_object.parent().parent().parent().parent().parent().attr('id'); // получаем строку вида: resp-39
    resp_id = resp_id.replace("resp-", "");  // удаляем часть строки: resp-

    // 2.
    $.post("/resp-ajax.php",                        // бакенд
        {'resp_id': resp_id , 'is_add': is_add},    // параметры в JSON
        function(data){                             // функция обработчик ответа. Куда вставить ответ ($('div#conteiner').html(data);)
            //alert(data);
            if ((data == 'TRUE') || (data == 'TRUE_AND_BLOCK_ALL_RESPS') ) { // голос записан в БД успешно
                // 3. Визуально увеличиваем/уменьшаем счетчик голосов
                var vote_count_span = checked_object.parent().find('span.vote_count');
                // получаем текущее кол-во голосов за комментарий
                var votes_count = vote_count_span.text();
                var votes_count_int = parseInt(votes_count);   // преобразуем строку в int
                if (is_add) {
                    votes_count_int++;                         // увеличиваем кол-во отданных голосов за комментарий
                } else {
                    votes_count_int--;                         // уменьшаем кол-во отданных голосов за комментарий
                }

                votes_count = votes_count_int+'';              // преобразуем в строку
                if (votes_count_int > 0) {
                    votes_count = '+'+votes_count;
                    vote_count_span.removeClass('negative').removeClass('zero').addClass('positive');
                } else if (votes_count_int < 0) {
                    vote_count_span.removeClass('positive').removeClass('zero').addClass('negative');
                } else if (votes_count_int == 0) {
                    vote_count_span.removeClass('positive').removeClass('negative').addClass('zero');
                }
                vote_count_span.text(votes_count);

                // 4. Запрещаем повторно голосовать
                checked_object.parent().find('a.resp_plus').removeClass('resp_plus').addClass('plus_disabled');
                checked_object.parent().find('a.resp_minus').removeClass('resp_minus').addClass('minus_disabled');

                // 5. Визуально уменьшаем количество голосов пользователя
                var votes_span = $("#logged_user_resp_votes");
                var user_votes = parseInt(votes_span.text()) - 1;
                votes_span.text(user_votes);

                // если PHP сообщил, что голосов не осталось
                if (data == 'TRUE_AND_BLOCK_ALL_RESPS') {
                    // голосов у пользователя больше нет, блокируем все кнопки голосования за комментарии на странице
                    $('a.resp_plus').removeClass('resp_plus').addClass('plus_disabled');
                    $('a.resp_minus').removeClass('resp_minus').addClass('minus_disabled');
                }
            } else if (data == 'FALSE') {
                alert("Sorry: "+data);
            }
        },
        "html");                                      // тип вставки как html
}
