var currentPageID;
function showFormStep(no) {
    currentPageID = no;
    document.getElementById('formstep' + no).style.display = 'block';
    document.getElementById('btn' + no).className = 'paging_on';
    var i;
    for (i = 1; i <= 4; i++) {
        validateForm(i);
        if (i != no) {
            document.getElementById('formstep' + i).style.display = 'none';
            document.getElementById('btn' + i).className = '';
        }
    }
}
function showFormNextStep() {
    showFormStep(currentPageID + 1);
}

//JKS - 11/08/2009 - Changed to check if getCheckedValue return value is an array and if loop though the array to find the 'Other' item
function updateOtherInputEnabledState(radio, input) {

    var checkedItems = getCheckedValue(radio);

    if (checkedItems.length == undefined) {
        if (checkedItems == "Other") {
            input.disabled = false;
        }
        else {
            input.disabled = true;
            input.value = "";
        }
    }
    else {
        for (var i = 0; i < checkedItems.length; i++) {
            if (checkedItems[i] == "Other") {
                input.disabled = false;
                return;
            }
        }
        input.disabled = true;
        input.value = "";
    }
}
function validateForm(no) {
    var formCheck = false;
    switch (no) {
        case 1:
            updateOtherInputEnabledState(document.forms[0].elements['hearAbout'], document.getElementById('hearAboutOther'));
            formCheck = getCheckedValue(document.forms[0].elements['hearAbout']) != "" && getCheckedValue(document.forms[0].elements['hearAbout']) != "Other" ? true : formCheck;
            formCheck = document.getElementById('hearAboutOther').value != "" ? true : formCheck;
            formCheck = getCheckedValue(document.forms[0].elements['infouseful']) != "" ? true : formCheck;
            formCheck = document.getElementById('siteFeedback').value != "" ? true : formCheck;
            if (formCheck) {
                document.getElementById('btn2Active').style.display = 'block';
                document.getElementById('btn2Disabled').style.display = 'none';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'block';
                }
            } else {
                document.getElementById('btn2Active').style.display = 'none';
                document.getElementById('btn2Disabled').style.display = 'block';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'none';
                }
            }
            break;
        case 2:
            if (getCheckedValue(document.forms[0].elements['previousTherapy']) == "Yes") {
                for (i = 0; i < document.forms[0].elements["previousTherapyType"].length; i++) {
                    document.forms[0].elements["previousTherapyType"][i].disabled = false;
                }
                document.getElementById('previousTherapyTypeOther').disabled = false;
                updateOtherInputEnabledState(document.forms[0].elements['previousTherapyType'], document.getElementById('previousTherapyTypeOther'));
                for (i = 0; i < document.forms[0].elements["previousTherapyCount"].length; i++) {
                    document.forms[0].elements["previousTherapyCount"][i].disabled = false;
                }
                document.getElementById('previousTherapyCountOther').disabled = false;
                updateOtherInputEnabledState(document.forms[0].elements['previousTherapyCount'], document.getElementById('previousTherapyCountOther'));
            }
            else {
                for (i = 0; i < document.forms[0].elements["previousTherapyType"].length; i++) {
                    document.forms[0].elements["previousTherapyType"][i].disabled = true;
                    document.forms[0].elements["previousTherapyType"][i].checked = false;
                }
                document.getElementById('previousTherapyTypeOther').disabled = true;
                document.getElementById('previousTherapyTypeOther').value = "";
                for (i = 0; i < document.forms[0].elements["previousTherapyCount"].length; i++) {
                    document.forms[0].elements["previousTherapyCount"][i].disabled = true;
                    document.forms[0].elements["previousTherapyCount"][i].checked = false;
                }
                document.getElementById('previousTherapyCountOther').disabled = true;
                document.getElementById('previousTherapyCountOther').value = "";
            }
            formCheck = getCheckedValue(document.forms[0].elements['previousTherapy']) != "" ? true : formCheck;
            formCheck = getCheckedValue(document.forms[0].elements['previousTherapyType']) != "" && getCheckedValue(document.forms[0].elements['previousTherapyType']) != "Other" ? true : formCheck;
            formCheck = document.getElementById('previousTherapyTypeOther').value != "" ? true : formCheck;
            formCheck = getCheckedValue(document.forms[0].elements['previousTherapyCount']) != "" && getCheckedValue(document.forms[0].elements['previousTherapyCount']) != "Other" ? true : formCheck;
            formCheck = document.getElementById('previousTherapyCountOther').value != "" ? true : formCheck;
            if (formCheck) {
                document.getElementById('btn3Active').style.display = 'block';
                document.getElementById('btn3Disabled').style.display = 'none';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'block';
                }
            } else {
                document.getElementById('btn3Active').style.display = 'none';
                document.getElementById('btn3Disabled').style.display = 'block';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'none';
                }
            }
            break;
        case 3:
            updateOtherInputEnabledState(document.forms[0].elements['goals'], document.getElementById('goalsOther'));
            formCheck = getCheckedValue(document.forms[0].elements['discussOptions']) != "" ? true : formCheck;
            formCheck = document.getElementById('discussOptionsComments').value != "" ? true : formCheck;
            formCheck = getCheckedValue(document.forms[0].elements['receivedCounselling']) != "" ? true : formCheck;
            formCheck = document.getElementById('receivedCounsellingComments').value != "" ? true : formCheck;
            formCheck = getCheckedValue(document.forms[0].elements['goals']) != "" ? true : formCheck;
            formCheck = document.getElementById('goalsOther').value != "" ? true : formCheck;
            if (formCheck) {
                document.getElementById('btn4Active').style.display = 'block';
                document.getElementById('btn4Disabled').style.display = 'none';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'block';
                }
            } else {
                document.getElementById('btn4Active').style.display = 'none';
                document.getElementById('btn4Disabled').style.display = 'block';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'none';
                }
            }
            break;
        case 4:
            updateOtherInputEnabledState(document.forms[0].elements['medicalFacilityType'], document.getElementById('medicalFacilityTypeOther'));
            formCheck = getCheckedValue(document.forms[0].elements['sex']) != "" ? true : formCheck;
            formCheck = getCheckedValue(document.forms[0].elements['medicalFacilityType']) != "" ? true : formCheck;
            formCheck = document.getElementById('medicalFacilityTypeOther').value != "" ? true : formCheck;
            formCheck = getCheckedValue(document.forms[0].elements['state']) != "" ? true : formCheck;
            if (formCheck) {
                document.getElementById(btnSubmitId).style.display = 'block';
                document.getElementById('disabledSubmit').style.display = 'none';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'block';
                }
            } else {
                document.getElementById(btnSubmitId).style.display = 'none';
                document.getElementById('disabledSubmit').style.display = 'block';
                if (no == currentPageID) {
                    document.getElementById('btnNext').style.display = 'none';
                }
            }
            break;
    }
}

//JKS - 11/08/2009 - Amended to return an array of checked value to allow use with checkbox and radiobutton
function getCheckedValue(radioObj) {
    if (!radioObj) {
        return "";
    }

    var radioLength = radioObj.length;
    if (radioLength == undefined) {
        if (radioObj.checked) {
            return radioObj.value;
        }
        else {
            return "";
        }
    }
    var checkedItems = new Array();
    for (var i = 0; i < radioLength; i++) {
        if (radioObj[i].checked) {
            checkedItems[i] = radioObj[i].value;
        }
    }
    if (checkedItems.length > 0) {
        return checkedItems;
    }
    return "";
}
