﻿var surveys = new Array();
function LoadSurvey(id) {
    if (id > 0) {
        IMO.Modules.Surveys.Service.SurveyAjax.GetSurvey(id, SurveyLoaded);
    }
}

function SurveyLoaded(result) {
    var res = eval("(" + result + ")");
    surveys[res.Id] = res;
    ShowSurvey(res);
}
function ShowSurvey(survey) {
    var surveyRoot = document.getElementById("Survey_" + survey.Id);
    var surveyDiv = document.createElement("div");
    if (surveyDiv) {
        var head = document.createElement("p");
        head.setAttribute("class", "title");
        head.innerHTML = survey.Name;
        var desc = document.createElement("p");
        desc.setAttribute("class", "desc");
        desc.innerHTML = survey.Desc;
        surveyDiv.appendChild(head);
        surveyDiv.appendChild(desc);
        if (survey.Questions.length > 0) {
            for (var i = 0; i < survey.Questions.length; i++) {
               ShowQuestion(survey.Questions[i], surveyDiv, i + 1);
            }
        }
        var voteButton = document.createElement("a");
        voteButton.innerHTML = "Głosuj";
        voteButton.setAttribute("class", "vote");
        voteButton.setAttribute("onclick", "Vote(" + survey.Id + ");");
        surveyDiv.appendChild(voteButton);
        surveyRoot.innerHTML = surveyDiv.innerHTML;

    }
}
function ShowQuestion(question, div, no) {
    var pq = document.createElement("p");
    pq.setAttribute("class", "question");
    var qTable = document.createElement("table");
    qTable.setAttribute("class", "answers");
    var qTbody = document.createElement("tbody");
    pq.innerHTML = no + ". " + question.Text;
    qTable.appendChild(qTbody);
    div.appendChild(pq);
    div.appendChild(qTable);
    var alter = false;
    var isFirst = true;
    if (question.Answers.length > 0) {
        for (var i = 0; i < question.Answers.length; i++) {
            ShowAnswer(question.Answers[i], question.Type, qTbody, alter, question.Id, isFirst);
            alter = !alter;
            isFirst = false;
        }
    }
}
function ShowAnswer(answer, type, table, alter, questionId, isFirst) {
    var tr = document.createElement("tr");
    if (alter)
        tr.setAttribute("class", "ai");
    else
        tr.setAttribute("class", "i");
    var tdInput = document.createElement("td");
    var input = null;
    tdInput.setAttribute("class", "input");
    var tdText = document.createElement("td");
    tdText.setAttribute("class", "text");
    tdText.innerHTML = answer.Text;
    try {
        if (type == 0) {
            if (isFirst) {
                input = document.createElement("<input type='" + GetInputType(type) + "' checked='checked' name='" + "answer" + questionId + "' id='" + "ans" + answer.Id + "' />");
            }
            else {
                input = document.createElement("<input type='" + GetInputType(type) + "' name='" + "answer" + questionId + "' id='" + "ans" + answer.Id + "' />");
            }
        }
        else {
            input = document.createElement("<input type='" + GetInputType(type) + "' id='" + "ans" + answer.Id + "' />");
        }
    }
    catch (err) {
        input = document.createElement("input");
        if (type == 0) {
            input.setAttribute("type", "radio");
            if (isFirst) {
                input.setAttribute("checked", "checked");
            }
        }
        else {
            input.setAttribute("type", "checkbox");
        }
        input.setAttribute("name", "answer" + questionId);
         input.name = "answer" + questionId;
    }
    tdInput.appendChild(input);
    input.setAttribute("id", "ans" + answer.Id);
    tr.appendChild(tdInput);
    tr.appendChild(tdText);
    table.appendChild(tr);
}
function GetInputType(type) {
    if (type == 0)
        return "radio";
    else
        return "checkbox";
}
function Vote(id) {
    var sur = surveys[id];
    SetCookie("Survey_" + id, "foo", 7);
    IMO.Modules.Surveys.Service.SurveyAjax.VoteSurvey(id, GetAnswers(sur), Voted);
}
function GetAnswers(survey) {
    var result = "";
    if (survey.Questions.length > 0) {
        for (var i = 0; i < survey.Questions.length; i++) {
            var q = survey.Questions[i];
            if (q.Answers.length > 0) {
                for (var j = 0; j < q.Answers.length > 0; j++) {
                    var ans = q.Answers[j];
                    var ansInput = document.getElementById("ans" + ans.Id);
                    if (ansInput.checked)
                        result = result + "" + ans.Id + ",";
                }
            }
        }
    }
    return result;
}
function Voted(result) {
    var res = eval("(" + result + ")");
    var div = document.getElementById("Survey_" + res.Id);
    div.innerHTML = res.Content;
}
function ShowSurveyResults(id) {
    IMO.Modules.Surveys.Service.SurveyAjax.GetSurveyResult(id, Voted);
}
function SetCookie(cookieName, cookieValue, nDays) {
    var today = new Date();
    var expire = new Date();
    if (nDays == null || nDays == 0) nDays = 1;
    expire.setTime(today.getTime() + 3600000 * 24 * nDays);
    document.cookie = cookieName + "=" + escape(cookieValue)
                 + ";expires=" + expire.toGMTString();
}

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();