summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/webquiz/www/js/webquiz.js
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/webquiz/www/js/webquiz.js')
-rw-r--r--Master/texmf-dist/doc/latex/webquiz/www/js/webquiz.js1
1 files changed, 1 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/webquiz/www/js/webquiz.js b/Master/texmf-dist/doc/latex/webquiz/www/js/webquiz.js
new file mode 100644
index 00000000000..f919a1c672f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/webquiz/www/js/webquiz.js
@@ -0,0 +1 @@
+var currentB,currentQ,dTotal,quizindex_menu,qTotal,side_closed,side_menu,side_open,correct=[],buttonOrder=[],questionOrder=[],wrongAnswers=[],currentFeedback=null,QuizSpecifications=[],Discussion=[],onePage=!1,QuizTitles=[],blank={content:"",name:"blank"},cross={content:"✘",name:"cross"},star={content:"✭",name:"star"},tick={content:"✔",name:"tick"};function markAnswer(){"undefined"!=typeof Storage&&(sessionStorage.correct=JSON.stringify(correct),sessionStorage.wrongAnswers=JSON.stringify(wrongAnswers))}var quizindex_menu_not_created=!0;function create_quizindex_menu(){if(quizindex_menu_not_created){document.getElementById("quizzes-menu-icon").innerHTML=" &#9776;";var q,quiz_link,max=0,menu=document.createDocumentFragment();for(q=0;q<QuizTitles.length;q++)(quiz_link=document.createElement("li")).innerHTML='<a href="'+QuizTitles[q][1]+'">'+QuizTitles[q][0]+"</a>",menu.appendChild(quiz_link),max=Math.max(max,QuizTitles[q][0].length);quizindex_menu.style.width=Math.round(max)+"ex",quizindex_menu.appendChild(menu),quizindex_menu_not_created=!1}}function MenuEventListener(evnt){var menu_icon=document.getElementById("quzzes-menu-icon");quizindex_menu.contains(evnt.target)||("block"===quizindex_menu.style.display||menu_icon.contains(evnt.target))&&(evnt.stopPropagation(),toggle_quizindex_menu())}function toggle_quizindex_menu(){"block"===quizindex_menu.style.display?quizindex_menu.style.display="none":(quizindex_menu.style.display="block",window.addEventListener("click",MenuEventListener,!0))}function toggle_side_menu(){"block"===side_menu.style.display||""===side_menu.style.display?(side_menu.style.display="none",side_open.style.display="none",side_closed.style.display="block"):(side_menu.style.display="block",side_open.style.display="block",side_closed.style.display="none")}function showQuestion(newB,newQ){onePage||(newQ!=currentQ&&0!=currentQ&&(hideFeedback(),document.getElementById("question"+currentQ).style.display="none",currentB.classList.remove("button-selected")),document.getElementById("question"+newQ).style.display="table",document.getElementById("question-number").innerHTML=0<newQ?(document.getElementById("question-label").style.display="contents",String(newB)):(document.getElementById("question-label").style.display="none",Discussion[-newQ]),(currentB=document.getElementById("button"+newB)).classList.add("button-selected")),currentQ=newQ}function hideFeedback(){currentFeedback&&(currentFeedback.style.display="none")}function showFeedback(tag){hideFeedback(),(currentFeedback=document.getElementById(tag)).style.display="block"}function nextQuestion(increment){if(currentQ<0)gotoQuestion(1===increment?1:qTotal);else{for(var q,b=buttonOrder[currentQ];0===(b+=increment)?b=qTotal:qTotal<b&&(b=1),(q=questionOrder[b])!==currentQ&&correct[q];);b===currentB?alert("There are no more unanswered questions"):gotoQuestion(b)}}var buttons=["blank","cross","star","tick"];function updateQuestionMarker(bnum,qnum){if(0<qnum){var marker,button=document.getElementById("button"+bnum);marker=correct[qnum]?0===wrongAnswers[qnum]?star:tick:0<wrongAnswers[qnum]?cross:blank;for(var b=0;b<buttons.length;b++)button.classList.remove(buttons[b]);button.classList.add(marker.name),button.setAttribute("content",marker.content)}}function gotoQuestion(bnum){var qnum=0<bnum?questionOrder[bnum]:bnum;gotoQuestionHelper(qnum),history.pushState(qnum,null,null)}function gotoQuestionHelper(qnum){var bnum=0<qnum?buttonOrder[qnum]:qnum;updateQuestionMarker(bnum,qnum),showQuestion(bnum,qnum)}var compare={complex:function(ans,val){var a=math.complex(ans),b=math.complex(val);return a.re==b.re&&a.im==b.im},integer:function(ans,val){return parseInt(val)==parseInt(ans)},lowercase:function(ans,val){return val==String(ans).toLowerCase()},number:function(ans,val){return math.eval(val)==math.eval(ans)},string:function(ans,val){return val==String(ans)}};function checkAnswer(qnum){var i,question=QuizSpecifications[qnum],studentAnswer=document.forms["Q"+qnum+"Form"];if("input"==question.type){var answer=studentAnswer.elements[0].value;if(""==answer)return void alert("Please answer the question first!");try{correct[qnum]=compare[question.comparison](answer,question.value)}catch(err){correct[qnum]=False}correct[qnum]?showFeedback("q"+qnum+"true"):showFeedback("q"+qnum+"false")}else if("single"==question.type){var checkedAnswer=0;for(i=0;i<question.length;i++)if(studentAnswer.elements[i].checked){correct[qnum]=question[i],checkedAnswer=i+1;break}showFeedback("q"+qnum+"feedback"+checkedAnswer)}else{var badAnswers=[];for(i=0;i<question.length;i++)if(studentAnswer.elements[i].checked!==question[i]){badAnswers.push(i+1);break}0===badAnswers.length?(correct[qnum]=!0,showFeedback("q"+qnum+"feedback0")):(correct[qnum]=!1,showFeedback("q"+qnum+"feedback"+badAnswers[Math.floor(Math.random()*badAnswers.length)]))}correct[qnum]||(wrongAnswers[qnum]+=1),updateQuestionMarker(buttonOrder[qnum],qnum),markAnswer()}function shuffleQuestions(){var i,j,qi;for(i=questionOrder.length-1;0<i;i--)j=1+Math.floor(Math.random()*i),qi=questionOrder[i],questionOrder[i]=questionOrder[j],questionOrder[j]=qi;for(i=buttonOrder.length-1;0<i;i--)buttonOrder[questionOrder[i]]=i}function initSession(){for("undefined"!=typeof Storage&&(sessionStorage.correct&&(correct=JSON.parse(sessionStorage.correct)),sessionStorage.wrongAnswers&&(wrongAnswers=JSON.parse(sessionStorage.wrongAnswers))),i=0;i<qTotal+1;i++)updateQuestionMarker(buttonOrder[i],i);qnum=0<dTotal?-1:questionOrder[1],history.replaceState(qnum,null,null)}function WebQuizInit(questions,discussions,quizfile){window.addEventListener("popstate",function(e){gotoQuestionHelper(e.state)}),dTotal=discussions,0==(qTotal=questions)&&(document.getElementsByClassName("arrows")[0].style.display="none");var i;currentQ=currentB=0;for(i=0;i<qTotal+1;i++)wrongAnswers[i]=0,correct[i]=!1,questionOrder[i]=i,buttonOrder[i]=i;var script=document.createElement("script");script.src=quizfile+"/wq-"+quizfile+".js",script.type="text/javascript",document.head.appendChild(script),side_menu=document.getElementById("sidemenu"),side_open=document.getElementById("sidelabelopen"),side_closed=document.getElementById("sidelabelclosed"),quizindex_menu=document.getElementById("quizindex-menu"),0<QuizTitles.length&&quizindex_menu&&create_quizindex_menu()} \ No newline at end of file