In 3.x versions, you will need to deactivate AJAX in the survey theme options and use this code:
Code:
<script type="text/javascript" charset="utf-8">
$(document).on('ready pjax:scriptcomplete',function(){
// Identify the questions
var qHidden = $('#question{QID}');
var qHiddenID = $(qHidden).attr('id').replace(/question/, '');
// Hide the checkbox question
qHidden.css({
'position': 'absolute',
'left': '-9999em'
});
// The ranking answer codes relevant for the various values of "Branch"
// EDIT HERE AS REQUIRED
var answerCodes = {
1: ['101', '102', '103', '104'], // Seen by "Rangers"
2: ['101', '102', '103', '104', '105', '106'], // Seen by "Pathfinders"
3: ['101', '102', '103', '104', '105', '106', '107', '108'] // Seen by everybody else
}
// Get the value of the "Branch" question
var branch = '{Branch}';
// Define which set of ranking answer codes to display
if(branch == 'Ranger') {
var codeArray = answerCodes[1];
}
else if(branch == 'Pathfinder') {
var codeArray = answerCodes[2];
}
else {
var codeArray = answerCodes[3];
}
// Toggle the appropriate checkboxes and fire Expression Manager
$('.question-item input:hidden', qHidden).val('');
$('input:checkbox[id$="X'+qHiddenID+this+'"]').prop('checked', false).trigger('change');
$(codeArray).each(function(i) {
var thisInput = $('input:checkbox[id$="X'+qHiddenID+this+'"]');
thisInput.nextAll('input:hidden').val('Y');
thisInput.prop('checked', true).trigger('change');
});
});
</script>