_getSurveyForm = function ( nSurveyId ) { var oField = document.getElementById( "surveyId_" + nSurveyId ); if( oField ) { return oField.form; } else { return null; } } _getQuestionPrompt = function ( nSurveyId, nQuestionId ) { var oElement = document.getElementById( "questionPrompt_" + nSurveyId + "_" + nQuestionId ); if( oElement ) { return oElement.innerHTML; } else { return null; } }; _setQuestionHighlight = function ( nSurveyId, nQuestionId, bHighlight ) { var oDiv = document.getElementById( "surveyQuestion_" + nSurveyId + "_" + nQuestionId ); if( oDiv ) { if( bHighlight ) { YAHOO.util.Dom.addClass( oDiv, "highlighted" ); } else { YAHOO.util.Dom.removeClass( oDiv, "highlighted" ); } } } _questions = function( nSurveyId ) { var oForm = _getSurveyForm( nSurveyId ); return oForm.elements.questionId.value.split( "," ); }; _questionsWithoutResponses = function ( nSurveyId ) { var oForm = _getSurveyForm( nSurveyId ); // var aQuestionId = oForm.elements.questionId.value.split( "," ); var aQuestionId = _questions( nSurveyId ); var aQuestionsWithoutResponses = []; for( var x = 0; x < aQuestionId.length; x++ ) { var nQuestionId = aQuestionId[x]; var bHasResponse = false; var aChoiceId = oForm.elements[ "ChoiceIDList_" + nQuestionId ].value.split( "," ); for( var y = 0; y < aChoiceId.length; y++ ) { var nChoiceId = aChoiceId[y]; // this is by id instead of by name because the radio buttons all share the same name var oChoice = document.getElementById( "Choice_" + nQuestionId + "_" + nChoiceId ); if( oChoice && oChoice.checked ) { bHasResponse = true; break; } } if( ! bHasResponse ) { // add it to the list of questions without a response aQuestionsWithoutResponses[aQuestionsWithoutResponses.length] = nQuestionId; } } return aQuestionsWithoutResponses; }; var _enableFreeForm = function( oCheckable ) { var sId = oCheckable.getAttribute( "id" ); var aParts = sId.split( "_" ); aParts[0] = "FreeForm"; var sFreeFormId = aParts.join( "_" ); var oFreeForm = document.getElementById( sFreeFormId ); if( oFreeForm ) { if( oCheckable.checked ) { oFreeForm.setAttribute( "fse:required", "true" ); oFreeForm.disabled = false; } else { oFreeForm.removeAttribute( "fse:required" ); oFreeForm.disabled = true; } } }; var _choiceClicked = function( oCheckable ) { if( oCheckable.type == "radio" ) { var aFieldParts = oCheckable.getAttribute("id").split( "_" ); var sField = aFieldParts[0] + "_" + aFieldParts[1]; var oForm = oCheckable.form; if( oForm.elements[sField].length ) { // more than 1 for( var f = 0; f < oForm.elements[sField].length; f++ ) { oField = oForm.elements[sField][f]; _enableFreeForm( oField ); /* var sId = oField.getAttribute( "id" ); var aParts = sId.split( "_" ); aParts[0] = "FreeForm"; var sFreeFormId = aParts.join( "_" ); var oFreeForm = document.getElementById( sFreeFormId ); if( oFreeForm ) { if( oField.checked ) { oFreeForm.setAttribute( "fse:required", "true" ); oFreeForm.disabled = false; } else { oFreeForm.removeAttribute( "fse:required" ); oFreeForm.disabled = true; } } */ } } else { // only 1 _enableFreeForm( oCheckable ); /* var sId = oCheckable.getAttribute( "id" ); var aParts = sId.split( "_" ); aParts[0] = "FreeForm"; var sFreeFormId = aParts.join( "_" ); var oFreeForm = document.getElementById( sFreeFormId ); if( oFreeForm ) { if( oCheckable.checked ) { oFreeForm.setAttribute( "fse:required", "true" ); oFreeForm.disabled = false; } else { oFreeForm.removeAttribute( "fse:required" ); oFreeForm.disabled = true; } } */ } } else if ( oCheckable.type == "select-one" ){ var oSelectable = oCheckable; var sId = oCheckable.getAttribute( "id" ).replace("Select_","Choice_"); var oCheckable = document.getElementById( sId ); // Check corresponding Checkbox if ( oSelectable.options[oSelectable.selectedIndex].value == "Y" ){ oCheckable.checked = true; } else{ oCheckable.checked = false; } // checkboxes _enableFreeForm( oCheckable ); var aParts = sId.split( "_" ); var nQuestionId = aParts[1]; var nChoiceId = aParts[2]; var sLinkedChoiceId = oCheckable.getAttribute( "fse:linkedChoiceId" ); if( sLinkedChoiceId != null ) { var aChoiceId = sLinkedChoiceId.split( "," ); for( var c = 0; c < aChoiceId.length; c++ ) { var nLinkedChoiceId = aChoiceId[c]; var bInverse = false; if( nLinkedChoiceId < 0 ) { bInverse = true; nLinkedChoiceId = nLinkedChoiceId * -1; } if ( oSelectable.options[oSelectable.selectedIndex].value == "Y" ){ oCheckable.checked = true; _checked = true; } else{ oCheckable.checked = false; _checked = false; } if( nLinkedChoiceId != nChoiceId ) { oChoice = document.getElementById( "Choice_" + nQuestionId + "_" + nLinkedChoiceId ); oSelect = document.getElementById( "Select_" + nQuestionId + "_" + nLinkedChoiceId ); if( bInverse ) { oChoice.checked = ! _checked; if ( ! _checked ) { oSelectable.value = "N"; if ( oSelect != null) oSelect.value = "Y"; } else { oSelectable.value = "Y"; if ( oSelect != null) oSelect.value = "N"; } } else { oChoice.checked = _checked; if ( _checked ) { oSelectable.value = "Y"; if ( oSelect != null) oSelect.value = "N"; } else { oSelectable.value = "N"; if ( oSelect != null) oSelect.value = "Y"; } } _enableFreeForm( oChoice ); } } } } else { // checkboxes _enableFreeForm( oCheckable ); /* var sId = oCheckable.getAttribute( "id" ); var aParts = sId.split( "_" ); var nQuestionId = aParts[1]; var nChoiceId = aParts[2]; aParts[0] = "FreeForm"; var sFreeFormId = aParts.join( "_" ); var oFreeForm = document.getElementById( sFreeFormId ); if( oFreeForm ) { if( oCheckable.checked ) { oFreeForm.setAttribute( "fse:required", "true" ); oFreeForm.disabled = false; } else { oFreeForm.removeAttribute( "fse:required" ); oFreeForm.disabled = true; } } */ var sId = oCheckable.getAttribute( "id" ); var aParts = sId.split( "_" ); var nQuestionId = aParts[1]; var nChoiceId = aParts[2]; var sLinkedChoiceId = oCheckable.getAttribute( "fse:linkedChoiceId" ); if( sLinkedChoiceId != null ) { var aChoiceId = sLinkedChoiceId.split( "," ); for( var c = 0; c < aChoiceId.length; c++ ) { var nLinkedChoiceId = aChoiceId[c]; var bInverse = false; if( nLinkedChoiceId < 0 ) { bInverse = true; nLinkedChoiceId = nLinkedChoiceId * -1; } if( nLinkedChoiceId != nChoiceId ) { oChoice = document.getElementById( "Choice_" + nQuestionId + "_" + nLinkedChoiceId ); if( bInverse ) { oChoice.checked = ! oCheckable.checked; } else { oChoice.checked = oCheckable.checked; } _enableFreeForm( oChoice ); } } } } };