﻿var selectAnswer = "Выберите ответ!";
var enterCode = "Введите код!";

var selectedAnswer = null;
var currentPoll = null;
var errorContainer = null;

jQuery(document).ready(
     function() {
         ResultDecorationShift();
         ResetRadioButtons();
         errorContainer = document.getElementById('PollError');
         ClearErrorContainer();
     }
);

function ClearErrorContainer() {
    if (errorContainer) {
        errorContainer.innerHTML = "";
        jQuery(errorContainer).hide();
    }
}

function ResetRadioButtons() {
    var rb = jQuery('.radio');
    if (rb.length > 0) {
        rb.each(
            function() {
                this.checked = false;
            });
    }
    return false;
}

function SelectAnswer(sender) {
    if (sender) {
        selectedAnswer = sender.id;
    }
}

function AnswerPoll() {
    ClearErrorContainer();
    var cText = document.getElementById('captchaText');
    var cBlock = document.getElementById('PollCaptcha');
    if (selectedAnswer == null || typeof (selectedAnswer) == 'undefine') {
        WriteInfoMessage('<span style="color:red">' + selectAnswer + '</span>');
        return false;
    }
    else if (cText.value == '' && cBlock.style.display == '') {
        WriteInfoMessage('<span style="color:red">' + enterCode + '</span>');
        return false;
    }
    else if (cText.value == '') {
        cBlock.style.display = '';
        return false;
    }
    else {
        var currentPoll = document.getElementById("PollId").value;
        getVote(currentPoll, selectedAnswer, cText.value);
    }
}


function getSelectedAnswers(buttonGroup) {
    // returns the array number of the selected radio button or -1 if no button is selected
    if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
        for (var i = 0; i < buttonGroup.length; i++) {
            if (buttonGroup[i].checked) {
                return i
            }
        }
    } else {
        if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
    }
    return -1;
}

function getVote(pol, answer, captcha) {
    // Сохранение ответа
    if (selectedAnswer != '') {
        var pollContainer = document.getElementById("formPoll").parentNode;
        var pollContainerId = pollContainer.id;
        var bp = jQuery(pollContainer).attr('class');
        var Thread = new AjaxThread();
        Thread.addPostParameter("pollId", pol);
        Thread.addPostParameter("answerId", answer);
        Thread.addPostParameter("captchaText", captcha);
        Thread.addPostParameter("bp", bp);
        Thread.startThread({ url: '/poll/', header: "application/x-www-form-urlencoded" }, { containerId: pollContainerId });

        // Ответ
        Thread.endThread = function(text, xml, args, headers) {
            //var notice = {};
            //notice = JSON.parse(text);
            var notice = jQuery.parseJSON(text);
            if (notice) {
                if (notice.HasError == true) {
                    WriteInfoMessage('<span style="color:red">' + notice.ErrorText + '</span>');
                } else {
                    var pollContainer = document.getElementById(args.containerId);
                    pollContainer.innerHTML = notice.ErrorText;
                    WriteInfoMessage('<span style="color:red">Спасибо. Ваш ответ отправлен на обработку</span>');
                }
            }
        }
    }
}

function WriteInfoMessage(message) {
    if (errorContainer) {
        jQuery(errorContainer).show();
        errorContainer.innerHTML = message;
    }
}

function ResultDecorationShift() {
    //var liPoll = jQuery('.liPoll');
    var liPoll = jQuery('.resultContainer');
    if (liPoll.length > 0) {
        liPoll.each(
            function() {
                var _this = jQuery(this);
                var chart = _this.find('.chart');
                var chartValue = _this.find('.chartValue');
                if (chart.length > 0 && chartValue.length > 0) {
                    var chartWidth = chart.width();
                    var chartValueWidth = chartValue.outerWidth(true);
                    if (chartWidth > chartValueWidth) {
                        chartValue.css('right', '2px');
                        chartValue.css('position', 'absolute');
                        chartValue.css('color', 'white');
                    }
                }
            }
        );
    }
    return false;
}
