const wordCountOfTestText = 779; resultButtonPoints = [ {"name" : "question-points-1", "points" : 0}, {"name" : "question-points-2", "points" : 0}, {"name" : "question-points-3", "points" : 0}, {"name" : "question-points-4", "points" : 0}, {"name" : "question-points-5", "points" : 0}, {"name" : "question-points-6", "points" : 0}, {"name" : "question-points-7", "points" : 0}, ]; const classifications = [ {"sum":373,"rank":"1","points":23}, {"sum":397,"rank":"1","points":22}, {"sum":421,"rank":"1","points":21}, {"sum":445,"rank":"1","points":20}, {"sum":469,"rank":"1","points":19}, {"sum":493,"rank":"1","points":18}, {"sum":517,"rank":"1","points":17}, {"sum":541,"rank":"1","points":16}, {"sum":565,"rank":"1","points":15}, {"sum":589,"rank":"1","points":14}, {"sum":613,"rank":"1","points":13}, {"sum":637,"rank":"1","points":12}, {"sum":661,"rank":"1","points":11}, {"sum":685,"rank":"1","points":10}, {"sum":709,"rank":"1","points":9}, {"sum":733,"rank":"1","points":8}, {"sum":757,"rank":"1","points":7}, {"sum":781,"rank":"1","points":6}, {"sum":805,"rank":"1","points":5}, {"sum":829,"rank":"1","points":4}, {"sum":853,"rank":"1","points":3}, {"sum":877,"rank":"1","points":2}, {"sum":901,"rank":"1","points":1}, {"sum":925,"rank":"1","points":0}, {"sum":323,"rank":"2","points":23}, {"sum":347,"rank":"2","points":22}, {"sum":371,"rank":"2","points":21}, {"sum":395,"rank":"2","points":20}, {"sum":419,"rank":"2","points":19}, {"sum":443,"rank":"2","points":18}, {"sum":467,"rank":"2","points":17}, {"sum":491,"rank":"2","points":16}, {"sum":515,"rank":"2","points":15}, {"sum":539,"rank":"2","points":14}, {"sum":563,"rank":"2","points":13}, {"sum":587,"rank":"2","points":12}, {"sum":611,"rank":"2","points":11}, {"sum":635,"rank":"2","points":10}, {"sum":659,"rank":"2","points":9}, {"sum":683,"rank":"2","points":8}, {"sum":707,"rank":"2","points":7}, {"sum":731,"rank":"2","points":6}, {"sum":755,"rank":"2","points":5}, {"sum":779,"rank":"2","points":4}, {"sum":803,"rank":"2","points":3}, {"sum":827,"rank":"2","points":2}, {"sum":851,"rank":"2","points":1}, {"sum":875,"rank":"2","points":0}, {"sum":273,"rank":"3","points":23}, {"sum":297,"rank":"3","points":22}, {"sum":321,"rank":"3","points":21}, {"sum":345,"rank":"3","points":20}, {"sum":369,"rank":"3","points":19}, {"sum":393,"rank":"3","points":18}, {"sum":417,"rank":"3","points":17}, {"sum":441,"rank":"3","points":16}, {"sum":465,"rank":"3","points":15}, {"sum":489,"rank":"3","points":14}, {"sum":513,"rank":"3","points":13}, {"sum":537,"rank":"3","points":12}, {"sum":561,"rank":"3","points":11}, {"sum":585,"rank":"3","points":10}, {"sum":609,"rank":"3","points":9}, {"sum":633,"rank":"3","points":8}, {"sum":657,"rank":"3","points":7}, {"sum":681,"rank":"3","points":6}, {"sum":705,"rank":"3","points":5}, {"sum":729,"rank":"3","points":4}, {"sum":753,"rank":"3","points":3}, {"sum":777,"rank":"3","points":2}, {"sum":801,"rank":"3","points":1}, {"sum":825,"rank":"3","points":0}, {"sum":223,"rank":"4","points":23}, {"sum":247,"rank":"4","points":22}, {"sum":271,"rank":"4","points":21}, {"sum":295,"rank":"4","points":20}, {"sum":319,"rank":"4","points":19}, {"sum":343,"rank":"4","points":18}, {"sum":367,"rank":"4","points":17}, {"sum":391,"rank":"4","points":16}, {"sum":415,"rank":"4","points":15}, {"sum":439,"rank":"4","points":14}, {"sum":463,"rank":"4","points":13}, {"sum":487,"rank":"4","points":12}, {"sum":511,"rank":"4","points":11}, {"sum":535,"rank":"4","points":10}, {"sum":559,"rank":"4","points":9}, {"sum":583,"rank":"4","points":8}, {"sum":607,"rank":"4","points":7}, {"sum":631,"rank":"4","points":6}, {"sum":655,"rank":"4","points":5}, {"sum":679,"rank":"4","points":4}, {"sum":703,"rank":"4","points":3}, {"sum":727,"rank":"4","points":2}, {"sum":751,"rank":"4","points":1}, {"sum":775,"rank":"4","points":0}, {"sum":173,"rank":"5","points":23}, {"sum":197,"rank":"5","points":22}, {"sum":221,"rank":"5","points":21}, {"sum":245,"rank":"5","points":20}, {"sum":269,"rank":"5","points":19}, {"sum":293,"rank":"5","points":18}, {"sum":317,"rank":"5","points":17}, {"sum":341,"rank":"5","points":16}, {"sum":365,"rank":"5","points":15}, {"sum":389,"rank":"5","points":14}, {"sum":413,"rank":"5","points":13}, {"sum":437,"rank":"5","points":12}, {"sum":461,"rank":"5","points":11}, {"sum":485,"rank":"5","points":10}, {"sum":509,"rank":"5","points":9}, {"sum":533,"rank":"5","points":8}, {"sum":557,"rank":"5","points":7}, {"sum":581,"rank":"5","points":6}, {"sum":605,"rank":"5","points":5}, {"sum":629,"rank":"5","points":4}, {"sum":653,"rank":"5","points":3}, {"sum":677,"rank":"5","points":2}, {"sum":701,"rank":"5","points":1}, {"sum":725,"rank":"5","points":0}, {"sum":123,"rank":"6","points":23}, {"sum":147,"rank":"6","points":22}, {"sum":171,"rank":"6","points":21}, {"sum":195,"rank":"6","points":20}, {"sum":219,"rank":"6","points":19}, {"sum":243,"rank":"6","points":18}, {"sum":267,"rank":"6","points":17}, {"sum":291,"rank":"6","points":16}, {"sum":315,"rank":"6","points":15}, {"sum":339,"rank":"6","points":14}, {"sum":363,"rank":"6","points":13}, {"sum":387,"rank":"6","points":12}, {"sum":411,"rank":"6","points":11}, {"sum":435,"rank":"6","points":10}, {"sum":459,"rank":"6","points":9}, {"sum":483,"rank":"6","points":8}, {"sum":507,"rank":"6","points":7}, {"sum":531,"rank":"6","points":6}, {"sum":555,"rank":"6","points":5}, {"sum":579,"rank":"6","points":4}, {"sum":603,"rank":"6","points":3}, {"sum":627,"rank":"6","points":2}, {"sum":651,"rank":"6","points":1}, {"sum":675,"rank":"6","points":0} ] var startTime = null; var wordsPerMinute = 0; function startReadingTest() { document.getElementById("reading-text").style.display='block'; startTime = new Date(); } function stopReadingTest() { var endTime = new Date(); var seconds = (endTime.getTime() - startTime.getTime()) / 1000; wordsPerMinute = calculateWordsPerTime(seconds) document.getElementById("reading-speed").innerHTML = wordsPerMinute document.getElementById("reading-result").style.display='block'; } function showCorrectAnswers() { for (i = 1; i<8; i++) { try { document.getElementById("correct-answers-" + i).style.display='block'; } catch (e) { // the hardcoed index could be wrong } } document.getElementById("show-correct-answers-button").style.display='none'; document.getElementById("show-result-button").style.display='block'; document.getElementById("question-1").scrollIntoView(); } function showResult() { result = document.getElementById("result"); result.style.display='inline'; testresult = document.getElementById("test-result"); testresult.style.display='block'; var reachedPoints = calculateTestPoints() testresult.innerHTML = reachedPoints + " von 23"; var rank = getReadingClassification(wordsPerMinute, reachedPoints) for (i = 1; i<7; i++) { document.getElementById("potential-" + i).className = "wrapper-ergebnis-1-col trans"; // set to transparent document.getElementById("potential-text-" + i).innerHTML = ""; // empty innerhtml } if (rank == 1) { document.getElementById("potential-" + rank).className = "wrapper-ergebnis-1-col orange"; // set to transparent document.getElementById("potential-text-" + rank).innerHTML = "
Ihre momentane Kompetenzstufe
"; } else { step = rank == 2 ? 1 : 2; document.getElementById("potential-" + rank).className = "wrapper-ergebnis-1-col orange"; // set to transparent document.getElementById("potential-text-" + rank).innerHTML = "
Ihre momentane Kompetenzstufe
"; var potential = rank - step; document.getElementById("potential-" + potential).className = "wrapper-ergebnis-1-col"; // set to transparent document.getElementById("potential-text-" + potential).innerHTML = "
Ihr Potenzial durch Deep Reading Training
"; } } function addPoints(btn) { btnId = btn.id btnId = btnId.substring(0, btnId.length - 2); console.log(btnId) for( var i = 0, l = resultButtonPoints.length; i < l; i++ ) { idx = resultButtonPoints[i]; if (idx.name == btnId) { var p = btn.id.substring(btn.id.length-1); idx.points = p; } } for (var i = 0; i < 10; i++) { try { document.getElementById(btnId + "-" + i).className = "point" } catch (e) { break } } for (var i = 0; i < 10; i++) { currentBtnId = btnId + "-" + i if (currentBtnId == btn.id) { try { document.getElementById(currentBtnId).className = "point point_selected" } catch (e) { break } } } } function calculateTestPoints() { points = 0; for( var i = 0, l = resultButtonPoints.length; i < l; i++ ) { idx = resultButtonPoints[i]; points += parseInt(idx.points); } return points; } function calculateWordsPerTime(seconds) { minutes = (seconds % 3600) / 60 return Math.round(wordCountOfTestText / minutes); } function displayTime (seconds) { const format = val => `0${Math.floor(val)}`.slice(-2) const minutes = (seconds % 3600) / 60 return [minutes, seconds % 60].map(format).join(':') } function getReadingClassification(wpm, points) { let sum = wpm + points; var obj = null; var results = []; for (i = 0; i < classifications.length; i++) { if (classifications[i].points == points) { results.push(classifications[i].sum); } } var closest = results.reduce(function(prev, curr) { return (Math.abs(curr - sum) < Math.abs(prev - sum) ? curr : prev); }); for (i = 0; i < classifications.length; i++) { if (classifications[i].sum == closest) { obj = classifications[i]; } } if (obj == null) { //fallback return 6; // the last rank } return parseInt(obj.rank); }