1const $ = jQuery; 2 3questions.forEach((question, index) => { 4 question.ID = index; 5}) 6 7function calculateResults() { 8 let calculatedResults = {}; 9 answerData.forEach((answer, index) => { 10 if (!calculatedResults[answer.answer_tally_id]) { 11 calculatedResults[answer.answer_tally_id] = answer.point_value; 12 } 13 else { 14 calculatedResults[answer.answer_tally_id] += answer.point_value; 15 } 16 }) 17 calculatedResults.winner = Object.keys(calculatedResults).reduce((a, b) => calculatedResults[a] > calculatedResults[b] ? a : b); 18 return calculatedResults; 19} 20function showResults() { 21 22 let calculatedResults = calculateResults(); 23 let winnerID = calculatedResults.winner; 24 let winner = results.find(result => result.result_id === winnerID); 25 let resultText = winner.result_to_display; 26 calculatedResults.result_text = $(resultText).text(); 27 let resultHTML = `<div class="result">${resultText}</div><div id="hs-form-wrapper" class="hs-form-iframe"></div>`; 28 let quiz_name = $('.custom-quiz-block h3').text(); 29 30 31 var data = { 32 action: 'quiz_submission', 33 security: custom_quiz_ajax.security, 34 quiz_name: quiz_name, 35 //answer_data: answerData, 36 result: calculatedResults 37 }; 38 39 // Post to get attachmnet url from id 40 $.post(custom_quiz_ajax.ajaxurl, data, function(response) { 41 $('.eyebrow-text').empty(); 42 $('#answers').empty(); 43 $('#result-content').html(resultHTML); 44 $('#results-container').show(); 45 $('#quiz-content').hide(); 46 $('.quiz-container .loading').fadeOut(); 47 $('.question-text').empty(); 48 }); 49} 50 51 52function goToNextQuestion() { 53 54 const currentQuestion = questions[currentQuestionIndex]; 55 56 $('#question-text').text(currentQuestion.question_text); 57 $('#eyebrow-text').text(currentQuestion.eyebrow_text); 58 59 $('#answers').html(currentQuestion.answers.map(answer => `<button data-question-id="${currentQuestion.ID}" data-answer-id="${answer.answer_tally_id}" data-answer-weight="${answer.point_value}" class="answer-button"><span>${answer.answer_text}</span></button>`).join('')); 60 61 $('#results-container').hide(); 62 $('#quiz-content').show(); 63 64 $('.answer-button').on('click', function() { 65 const questionId = $(this).data('question-id'); 66 const answerId = $(this).data('answer-id'); 67 const answerWeight = $(this).data('answer-weight'); 68 answerData[questionId].answer_tally_id = answerId; 69 answerData[questionId].point_value = answerWeight; 70 answerData[questionId].question_text = $('#question-text').text(); 71 answerData[questionId].answer_text = $('span', $(this)).text(); 72 // console.log(answerData); 73 currentQuestionIndex++; 74 if (currentQuestionIndex < questions.length) { 75 goToNextQuestion(); 76 $('.back-button').css('left', '0'); 77 } else { 78 $('.quiz-container .loading').fadeIn(); 79 showResults(); 80 } 81 }); 82 83 84} 85 86function goToPreviousQuestion() { 87 currentQuestionIndex--; 88 goToNextQuestion(); 89 if (currentQuestionIndex === 0) { 90 $('.back-button').css('left', '-100px'); 91 } 92} 93 94let answerData = []; 95let currentQuestionIndex = 0; 96 97questions.forEach(question => { 98 answerData[question.ID] = { 99 answer_tally_id: "", 100 point_value: 0, 101 } 102}) 103 104$('#fs-wrap').hide(); 105 106$('#start-button').on('click', function() { 107 $('#fs-wrap').show(); 108 //$('#masthead, .anchor-nav.sticky').fadeOut(); 109 hide_menu($('#masthead')); 110 hide_menu($('.anchor-nav.sticky')); 111}); 112$('.exit-button').on('click', function() { 113 $('#fs-wrap').hide(); 114 //$('#masthead, .anchor-nav.sticky').fadeIn(); 115 show_menu($('#masthead')); 116 show_menu($('.anchor-nav.sticky')); 117}); 118$('.back-button').on('click', function() { 119 goToPreviousQuestion(); 120}); 121 122function hide_menu(section) { 123 var top = parseInt(section.css('top'), 10); 124 section.data('top', top); 125 var new_top = top - 200; 126 section.animate({ 127 top: new_top 128 }, 800); 129} 130 131function show_menu(section) { 132 var top = section.data('top'); 133 section.animate({ 134 top: top 135 }, 800); 136} 137 138 139goToNextQuestion();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.