Widget:Quiz Multiple Choice

Infrastructure for building an eXe-like multiple choice quiz  $(function { var i;  function livenQuizzes(n) {    var i, $q,        qn = 'mcq' + n,        rand = ],[;    if ($(this).hasClass('WEquizLive')) return;

$(this).addClass('WEquizLive'); $q = $(this).find('ul:first'); $q.addClass('weQquestion').wrap(' ') .children('li').addClass('weQquestion') .children('ul').addClass('weQoption') .children('li').addClass('weQoption') .children('ul').addClass('weQresponse') .children('li').addClass('weQresponse'); $qs = $('li.weQquestion', $q); // for each of the questions if ($(this).hasClass('WEquizMix')){ for (i=0; i<$qs.length; ++i) { rand.push([]); $('li.weQoption', $qs[i]).each(function(ix) {         var nqn = qn + '_' + i;          rand[i][ix]=' ' + $(this).html + ' ';        }); }     for (i=0; i<$qs.length; ++i) { rand[i].sort(function{return Math.random - 0.5}); $('li.weQoption', $qs[i]).each(function(iy) {         $(this).replaceWith(rand[i][iy]);        }); }   } else { for (i=0; i<$qs.length; ++i) { $('li.weQoption', $qs[i]).each(function(ix) {         var nqn = qn + '_' + i;          $(this).replaceWith(' ' + $(this).html + ' ');        }); }   }    $('li.weQoption', $q).click(function {      $(this).find('ul').show('fast');    }); }

if ($('#WEquizWidgetStyle').length === 0) { $('head').append(''     + 'ul.weQquestion { margin-left: 1em;}'      + 'ul.weQquestion li { list-style-type: decimal; list-style-image: none; }'      + 'ul li.weQoption { list-style-type: none; list-style-image: none;}'      + 'ul.weQresponse { display: none; }'      + 'ul li.weQresponse { list-style-type: none; list-style-image: none; }'      + '.WEQcorrectionWrap { display: inline-block; vertical-align: top; }'      + '.WEQcorrection { display: hidden; }'      + ' '); }

$('.WEquizMultipleChoice').each(livenQuizzes); });