if (typeof($) !== 'undefined') {
function enhanceQuestion(questionId, configuration) {
var question = $('#' + questionId);
var questionWrapper = $('
', {class: 'question-wrapper wrapper'}).insertBefore(question);
var questionHeader = $('#' + questionId + ' > h3').appendTo(questionWrapper).addClass('question-header header unwraped');
questionHeader.append($('', {class: 'plus-minus'}).text('-'));
var questionBody = $('', {class: 'question-body body '});
questionHeader.appendTo(questionWrapper);
questionBody.appendTo(questionWrapper);
question.appendTo(questionBody);
var showAnswer = false;
if (typeof(configuration) !== 'undefined') {
var toggledItems = [];
showAnswer = configuration.showAnswer;
$.each(configuration, function (type, configurationItem) {
var content = configurationItem.content;
var showInitially = configurationItem.showInitially;
var wrapper;
if (type === 'keywords') {
wrapper = $('', {class: 'keywords-wrapper wrapper'}).appendTo(questionBody);
var header = $('', {class: 'keywords-header header'}).appendTo(wrapper);
header[0].innerHTML = '' + type.toUpperCase() + '+';
var body = $('', {class: 'keywords-body body'}).appendTo(wrapper);
var ul = $('', {class: 'keywords'});
$.each(content, function (i, k) {
$('').text(k).appendTo(ul);
});
body.append(ul);
body.toggle(false);
} else if (type === 'showFeedback' && configurationItem) {
wrapper = $('', {class: 'feedback-wrapper wrapper'}).insertAfter(question);
var header = $('', {class: 'feedback-header header unwraped'}).appendTo(wrapper);
header[0].innerHTML = 'FEEDBACK-';
var body = $('', {class: 'feedback-body body'}).appendTo(wrapper);
showInitially = false;
} else if (typeof(content) === 'string') {
wrapper = $('', {class: type + '-wrapper wrapper'}).appendTo(questionBody);
var header = $('', {class: type + '-header header'}).appendTo(wrapper);
header[0].innerHTML = '' + type.toUpperCase() + '+';
var body = $('', {class: type + '-body body'}).appendTo(wrapper);
body[0].innerHTML = content;
body.toggle(false);
}
if (wrapper && !showInitially) {
wrapper.css('display', 'none');
toggledItems.push(wrapper);
}
});
var waiting = setInterval(function () {
var submitButton = question.find('.question_submit_button');
if (submitButton.length > 0) {
clearInterval(waiting);
setContent(question, configuration);
var submitted = false;
var preSubmitHook = function () {
if (showAnswer && !submitted) {
question.find('.query_mc_correct_choice input')[0].checked = 'checked';
submitted = true;
submitButton.click();
return;
} else if (showAnswer)
question.find('.points_awarded_div').remove();
setContent(question, configuration);
$.each(toggledItems, function (i, item) {
item.css('display', 'block');
});
question.find('.query_mc_feedback_correct_incorrect').remove();
if (configuration.showFeedback) {
var idx
if (question.find('.query_mc_incorrect_user_choice').length > 0)
idx = question.find('.query_mc_incorrect_user_choice input').val();
else
idx = question.find('.query_mc_correct_choice input').val();
questionWrapper.find('.feedback-body').html(configuration.choices[idx].feedback);
}
};
var waitingSubmitButton = setInterval(function () {
if (submitButton.css('display') === 'none')
{
clearInterval(waitingSubmitButton);
preSubmitHook();
}
}, 500);
submitButton.click(preSubmitHook);
if (showAnswer)
submitButton.click();
}
}, 100);
}
var toggle = function () {
if ($(this).hasClass('unwraped')) {
$(this).find('.plus-minus').text('+');
$(this).removeClass('unwraped');
}
else {
$(this).find('.plus-minus').text('-');
$(this).addClass('unwraped');
}
$(this).next('.body').stop().slideToggle();
};
questionWrapper.find('.wrapper > .header').click(toggle);
questionHeader.click(toggle);
}
function setContent(question, configuration) {
question.find('.query_text').html(configuration.question);
$.each(configuration.choices, function (i, c) {
var id = question.find('.query_mc_choice_radio[value=' + i + ']').attr('id');
question.find('label[for=' + id + ']').html(c.choice);
});
}
}