﻿
/// <reference path="jquery-1.4.1.min.js" />

$(function () {
    $("#pollList #divPollResult").add("#divPollResult").hide();
    $(".backPollGroup").hide();
})

function sendPollAnswers(id, isMultiChoose, answersId) {
    if (!isMultiChoose) {
        var selectedRadioButton = $(id).find('input[id*=' + answersId + ']:radio:checked').val();
        if (selectedRadioButton == undefined) {
            alert(noItemSelectedErrorMessage);
        } else {
            submitPollValues(id, selectedRadioButton);
        }
    } else {
        var selectedCheckBoxes = '';
        var i = 0;
        $(id).find('input[id*=' + answersId + ']:checkbox:checked').each(function () {
            selectedCheckBoxes += (i != 0) ? '-' + $(this).val() : $(this).val();
            i++;
        });
        if (i == 0) {
            alert(noItemSelectedErrorMessage);
        } else {
            submitPollValues(id, selectedCheckBoxes);
        }
    }
}
function submitPollValues(id, selectedValues) {
    var pollId = $(id).find('input[id*=hfPollId]').val();
    var showResultAfterSubmit = $(id).find('input[id*=hfShowResultAfterSubmit]').val();
    $.ajax({
        type: "POST",
        url: rootUrl + "PollPort.aspx/Submit",
        data: "{'pollIdString':'" + pollId + "','selectedValues':'" + selectedValues + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            switch (result.d) {
                case 'Error':
                    alert(errorMessage);
                    break;
                case 'AlreadyPolled':
                    alert(alreadyPolledMessage);
                    break;
                case 'AccessDenied':
                    alert(pollAccessDeniedMessage);
                    break;
                default:
                    alert(pollSuccessMessage);
                    if (showResultAfterSubmit) {
                        showResults(id);
                    }
            }
        }
    });
}
function showResults(id) {
    var pollId = $(id).find('input[id*=hfPollId]').val();
    $(id).find("#divPollResult").show('slow');
    $.ajax({
        type: "POST",
        url: rootUrl + "PollPort.aspx/GetPollResult",
        data: "{'pollIdString': '" + pollId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            switch (result.d) {
                case 'Error':
                    alert(errorMessage);
                    break;
                case 'AccessDenied':
                    alert(pollAccessDeniedMessage);
                    break;
                default:
                    drawResult(id, result.d);
            }
        }
    });
}
function drawResult(id, datas) {
    var resultInnerHtml = "<table>"
    for (i in datas) {
        resultInnerHtml += "<tr>";
        resultInnerHtml += "  <td style='width:20px'>" + datas[i].Percent + "%";
        resultInnerHtml += "  </td>";
        resultInnerHtml += "  <td style='position:relative'>";
        resultInnerHtml += "      <div class='sPollCntrl5' style='width:" + datas[i].Percent + "%;'></div>";
        resultInnerHtml += "      <span style='display: inline-block; position:relative'>" + datas[i].Title + "</span></td>";
        resultInnerHtml += "  <td style='width:20px'>" + datas[i].NumPolled;
        resultInnerHtml += "  </td>";
        resultInnerHtml += "</tr>";
    }
    resultInnerHtml += "<tr>";
    resultInnerHtml += "  <td colspan='3' style='text-align:center'>" + pollTotalText+" : " + datas[0].Total;
    resultInnerHtml += "  </td>";
    resultInnerHtml += "</tr>";
    resultInnerHtml += "</table>";
    $(id).find("#divpollQuestion").hide('slow');
    $(id).find("#divPollResultBars").html(resultInnerHtml);
    animateResults(id);
}
function animateResults(id) {
    $(id).find("#divPollResultBars div").each(function () {
        var percentage = $(this).css("width");
        $(this).css({ width: "0%" }).animate({ width: percentage }, 'slow');
    });
}
function showPoll(id) {
    $(id).find("#divPollResult").hide('slow');
    $(id).find("#divpollQuestion").show('slow');
}

//Poll Group
function showAllPollsResults(pollGroupDivId) {
    $(pollGroupDivId).find("div[id*=_divPoll_]").each(function () {
        showResults("#"+$(this).attr("id"));
    });
    $(pollGroupDivId).find(".showAndSendPollGroup").hide();
    $(pollGroupDivId).find(".backPollGroup").show();
}
function showAllPolls(pollGroupDivId) {
    $(pollGroupDivId).find("div[id*=_divPoll_]").each(function () {
        showPoll("#" + $(this).attr("id"));
    });
    $(pollGroupDivId).find(".backPollGroup").hide();
    $(pollGroupDivId).find(".showAndSendPollGroup").show();
}

function sendAllPollAnswers(pollGroupDivId) {
    var selectedRadioButton='';
    var i = 0;
    $(pollGroupDivId).find('input:radio:checked').each(function () {
        selectedRadioButton += (i != 0) ? '-' + $(this).val() : $(this).val();
        i++;
    });
    i = 0;
    var selectedCheckBoxes = '';
    $(pollGroupDivId).find('input:checkbox:checked').each(function () {
        selectedCheckBoxes += (i != 0) ? '-' + $(this).val() : $(this).val();
        i++;
    });

    var pollGroupId = $(pollGroupDivId).find('input[id*=hfPollGroupId]').val();
    var showResultAfterSubmit = $(pollGroupDivId).find('input[id*=hfShowResultAfterSubmit]').val();
    $.ajax({
        type: "POST",
        url: rootUrl + "PollPort.aspx/SubmitAllPolls",
        data: "{'pollGroupIdString':'" + pollGroupId + "','selectedRadioValues':'" + selectedRadioButton + "','selectedCheckBoxeValues':'" + selectedCheckBoxes + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            switch (result.d) {
                case 'Error':
                    alert(errorMessage);
                    break;
                case 'AlreadyPolled':
                    alert(alreadyPolledMessage);
                    break;
                case 'AccessDenied':
                    alert(pollAccessDeniedMessage);
                    break;
                default:
                    alert(pollSuccessMessage);
                    if (showResultAfterSubmit) {
                        showAllPollsResults(pollGroupDivId);
                    }
            }
        }
    });
}

