/* reviewdesu.js this scripts proceeds to doing a review of the things you should know */ // UTILITY (copied from about.com) // thank you the internets Array.prototype.shuffle = function() { var s = []; while (this.length) s.push(this.splice(Math.random() * this.length, 1)[0]); while (s.length) this.push(s.pop()); return this; } var questions = []; var results = []; var question = []; var score = 0; var total = 0; var question_nb = 0; function start_review() { prepare_questions(); next_question(); } function prepare_questions() { for (var j = 0; j < batch_data.questions.length; j++) { var tq = []; var q = batch_data.questions[j]; for (var i = 0; i < batch_data.items.length; i++) { if (q.col) { var answer = ''; for (var k = 0; k < batch_data.items[i].length; k++) { answer += '

' + batch_data.columns[k] + '' + batch_data.items[i][k] + "

"; } tq.push({ "question": '

' + batch_data.items[i][q.col] + '

', "answer": answer, "key": batch_data.items[i][0], }); } else { var qu = q.q; var an = q.a; for (var k = 0; k < batch_data.items[i].length; k++) { qu = qu.replace('%' + k, batch_data.items[i][k]); an = an.replace('%' + k, batch_data.items[i][k]); } tq.push({ "question": qu, "answer": an, "key": batch_data.items[i][0], }); } } tq.shuffle(); // first question asked is the last in array questions, so just put them in reverse order. questions = tq.concat(questions); } total = questions.length; } function next_question() { if (questions.length == 0) { score = Math.ceil(score * 100 / total); $("core").innerHTML = '

Finished. Score : ' + score + '/100. Saving data...

'; new Ajax.Request('index.php?p=brresults-study-' + batchid, { method: 'post', parameters: { score: score, results: Object.toJSON(results), }, onSuccess: function(transport) { $("core").innerHTML = '

Finished. Score : ' + score + '/100. ' + transport.responseText + '. back to batch

'; }, }); } else { question = questions[questions.length - 1]; questions.pop(); question_nb++; html = '

Question ' + question_nb + ' of ' + total + '

'; html += '
'; html += '
' + question.question + '
'; html += '

'; html += '
'; $("core").innerHTML = html; $("flipbtn").focus(); } } function show_answer() { html = '

Question ' + question_nb + ' of ' + total + '

'; html += '
'; html += '
' + question.answer + '
'; html += '
' + (notes[question.key] || 'click to add note...').replace(/\|\|/g, '
') + '
'; html += '

'; html += ''; html += '

'; html += '
'; $("core").innerHTML = html; $("winbtn").focus(); } function answer_question(a) { results.push([question.key, a]); score += a; next_question(); } function edit_note() { var idd = question.key; var note = prompt("Add note for item:\n(you might want to add a long note, so I'm adding this text to make the prompt box bigger)", notes[idd] || ''); if (note != null) notes[idd] = note; if (notes[idd] == '') delete notes[idd]; $("notebox").innerHTML = (notes[idd] || 'click to add note...').replace(/\|\|/g, '
'); new Ajax.Request('index.php?p=brresults-study-' + batchid, { method: 'post', parameters: { notes: Object.toJSON(notes), }, onSuccess: function(transport) { // nothing... }, }); }