var startTime=new Date(); var endTime=new Date(); var startPressed=false; var bgChangeStarted=false; var maxWait=20; var timerID; function startTest() { document.bgColor=document.response.bgColorChange.options[document.response.bgColorChange.selectedIndex].text; bgChangeStarted=true; startTime=new Date(); } function remark(responseTime) { var responseString=""; if (responseTime < 0.10) responseString="Well done!"; if (responseTime >= 0.10 && responseTime < 0.20) responseString="Nice!"; if (responseTime >=0.20 && responseTime < 0.30) responseString="Could be better..."; if (responseTime >=0.30 && responseTime < 0.60) responseString="Keep practising!"; if (responseTime >=0.60 && responseTime < 1) responseString="Have you been drinking?"; if (responseTime >=1) responseString="Did you fall asleep?"; return responseString; } function stopTest() { if(bgChangeStarted) { endTime=new Date(); var responseTime=(endTime.getTime()-startTime.getTime())/1000; document.bgColor="black"; alert("Your response time is: " + responseTime + " seconds " + "\n" + remark(responseTime)); startPressed=false; bgChangeStarted=false; } else { if (!startPressed) { alert("Press start first to start test."); } else { clearTimeout(timerID); startPressed=false; alert("You pressed STOP too early!"); } } } var randMULTIPLIER=0x015a4e35; var randINCREMENT=1; var today=new Date(); var randSeed=today.getSeconds(); function randNumber() { randSeed = (randMULTIPLIER * randSeed + randINCREMENT) % (1 << 31); return((randSeed >> 15) & 0x7fff) / 32767; } function startit() { if(startPressed) { alert("Already started. Press stop to stop"); return; } else { startPressed=true; timerID=setTimeout('startTest()', 6000*randNumber()); } }