﻿var validationItems = new Array();
var validationFailed = false;

function setSubmitButton(obj) {
    var isChecked = false;
    var question = document.getElementById(obj);
    var responses = getElementsByClassName(question, "div", "response");
    for (i = 0; i < responses.length; i++) {
        children = responses[i].getElementsByTagName('INPUT');
        for (j = 0; j < children.length; j++) {
            if (children[j].checked) {
                isChecked = true;
                break;
            }
        }
    }

    var objButtonContainer = document.getElementById('ctl00_ContentPlaceHolder1_surveyViewer_pnlSubmitContainer');
    if (objButtonContainer != null && isChecked)
        objButtonContainer.style.display = 'block';
    else
        objButtonContainer.style.display = 'none';
}

function setSummary(isValid) {
    var summary = document.getElementById("Summary");
    if (summary != null)
        summary.style.display = !isValid ? "block" : "none";
}

function validate() {
    validationItems = getInvalidItems();
    if (validationItems == null || validationItems.length == 0)
        return true;

    var numItems = validationItems.length;
   
    for (i = 0; i < numItems; i++) {
        var label = document.getElementById(validationItems[i]);
        if (label != null)
            label.style.color = "red";
    }

    var isValid = (numItems < 1);

    validationFailed = !isValid;

    setSummary(isValid);

    return isValid;
}

function getInvalidItems() {


    var items = new Array();
    var i = 0;
    var question;
    var responses;
    var labels;
    var childControl;
    var isAnswered;
    var numQuestions = 0;
    var numAnswered = 0;

    var sections = getElementsByClassName(document.getElementById("right-content"), "div", "section");
    if (sections == null)
        return false;

    for (i = 0; i < sections.length; i++) {
        section = sections[i];

        var questions = getElementsByClassName(section, "div", "question");

        if (questions == null)
            return false;

        for (y = 0; y < questions.length; y++) {
            question = questions[y];

            isAnswered = false;

            responses = getElementsByClassName(question, "div", "response");
            if (responses == null)
                break;

            labels = getElementsByClassName(question, "span", "questiontext");

            if (question.style.display == 'block') {

                response = responses[0];
                children = response.getElementsByTagName('INPUT');
                for (z = 0; z < children.length; z++) {
                    childControl = children[z];
                    if (childControl.checked) {
                        isAnswered = true;
                        break;
                    }
                }


                if (!isAnswered) {
                    items[i] = labels[0].id;
                    i++;
                }
            }

        }
    }

    return items;
}

function resetValidation(questionID) {
    var labels = getElementsByClassName(document.getElementById(questionID), "span", "questiontext");
    if (labels == null) return;

    var item = null;

    if (validationFailed) {
        for (x = 0; x < labels.length; x++) {
            item = labels[x];
            item.style.color = "black";
            removeItem(item.id);
        }
    }

    setSummary(validationItems.length < 1);
}

function removeItem(item) {
    if (validationItems == null || validationItems.length == 0)
        return;

    var i = 0;

    for (x = 0; x < validationItems.length; x++) {
        if (item == validationItems[x]) {
            i = x;
            break;
        }
    }

    validationItems.splice(i, 1);
}

function executeChildRules(questionID) {
    var question = document.getElementById(questionID);
    if (question != null) {
        var childQuestion = null;
        var displayRule = '';
        var showQuestion = false;

        var children = getElementsByClassName(question, "div", "question");
        if (children.length == 0)
            return;

        var i = children.length;
        while (i > 0) {
            childQuestion = children[i - 1];
            displayRule = childQuestion.getAttribute('displayrule');
            if (displayRule != null) {
                displayRule = displayRule.replace("&amp;&amp;", "&&");
                showQuestion = eval(displayRule);
                if (!showQuestion) {
                    clearChildControls(childQuestion.id);
                    childQuestion.style.display = 'none';
                }

                childQuestion.style.display = showQuestion ? 'block' : 'none';
            }

            i--;
        }
    }
}

function isSelectedValue(questionID, operator, answerChoiceID) {
    var isSelected = false;
    var question = document.getElementById(questionID);

    if (question == null)
        return false;

    var responses = getElementsByClassName(question, "div", "response");
    if (responses == null)
        return false;

    var response = responses[0];
    var control;

    var answerChoices = response.getElementsByTagName('INPUT');
    for (i = 0; i < answerChoices.length; i++) {
        control = answerChoices[i];
        if (control.checked && control.id == answerChoiceID)
            isSelected = true;

        if (isSelected)
            break;
    }

    return isSelected;
}

