{"id":11546,"date":"2026-08-22T16:30:50","date_gmt":"2026-08-22T13:30:50","guid":{"rendered":"https:\/\/lingualand.gr\/new\/exercises\/b-junior-listening-05-tonys-week\/"},"modified":"2026-08-22T17:02:57","modified_gmt":"2026-08-22T14:02:57","slug":"b-junior-listening-05-tonys-week","status":"publish","type":"page","link":"https:\/\/lingualand.gr\/new\/exercises\/b-junior-listening-05-tonys-week\/","title":{"rendered":"B Junior Listening 5 \u2013 Tony&#8217;s Week"},"content":{"rendered":"<!-- lingualand-listening-access:bj:lesson:start -->\n<div id=\"accessGate-lesson-bj\" class=\"lingualand-listening-access-gate\" style=\"min-height:320px;display:grid;place-items:center;padding:20px;background:#eef3f8;color:#172033;font-family:Arial,sans-serif\"><form id=\"accessForm-lesson-bj\" style=\"width:min(420px,100%);background:#fff;border-radius:14px;padding:24px;box-shadow:0 4px 16px #243a8f22\"><h4 style=\"margin:0 0 10px;color:#243a8f;font-size:1.45rem\">B Junior Listening Access<\/h4><p style=\"margin:0 0 16px\">Enter your access key to open the exercises.<\/p><input id=\"accessKey-lesson-bj\" type=\"password\" autocomplete=\"off\" style=\"width:100%;padding:12px;border:1px solid #aab3c2;border-radius:9px;font-size:1rem\" aria-label=\"Access key\"><button type=\"submit\" style=\"margin-top:14px;width:100%;padding:12px;border:0;border-radius:9px;background:#243a8f;color:white;font-weight:bold;cursor:pointer\">Open exercises<\/button><div id=\"accessMessage-lesson-bj\" style=\"min-height:22px;margin-top:12px;color:#b91c1c;font-weight:bold\" aria-live=\"polite\"><\/div><\/form><\/div><div id=\"exerciseApp-lesson-bj\" hidden><!-- lingualand-listening-exercise:bj:5:start -->\n<div class=\"lingualand-bj-listening-exercise-page\" style=\"max-width:1100px;margin:20px auto;\"><iframe title=\"B Junior Listening 5 \u2013 Tony's Week\" srcdoc=\"&lt;!doctype html&gt;\n&lt;html lang=&quot;en&quot;&gt;\n&lt;head&gt;\n  &lt;meta charset=&quot;utf-8&quot;&gt;\n  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1&quot;&gt;\n  &lt;title&gt;B Junior Listening 5 \u2013 Tony's Week&lt;\/title&gt;\n  &lt;style&gt;\n    :root{--navy:#20385f;--blue:#3678bd;--gold:#f4bd43;--green:#27864a;--red:#c43d3d;--orange:#bd7200;--ink:#26344a;--pale:#eef6ff}\n    *{box-sizing:border-box}\n    body{margin:0;min-height:100vh;padding:24px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:linear-gradient(145deg,#eaf5ff,#fff7e6)}\n    .page{width:min(1080px,100%);margin:auto;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 16px 45px #20385f22}\n    header{padding:25px 28px;text-align:center;color:#fff;background:var(--navy)}\n    .brand{margin:0 0 6px;color:var(--gold);font-weight:800;letter-spacing:1.5px;text-transform:uppercase;font-size:.84rem}\n    h1{margin:0;font-size:clamp(1.65rem,4vw,2.35rem)}\n    header p{margin:8px 0 0;opacity:.92}\n    main{padding:28px}\n    .instructions{margin-bottom:18px;padding:15px 18px;border-left:5px solid var(--blue);border-radius:10px;background:var(--pale);line-height:1.5}\n    .audio-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:18px 0 22px}\n    button{border:0;border-radius:11px;padding:12px 17px;font-size:.96rem;font-weight:800;cursor:pointer;transition:.15s}\n    button:hover{transform:translateY(-1px);filter:brightness(.97)}\n    button:disabled{opacity:.55;cursor:not-allowed;transform:none}\n    .listen-all{background:var(--blue);color:#fff}.stop{background:#e7edf4;color:var(--navy)}\n    #audioStatus{min-width:190px;color:var(--blue);font-weight:800;text-align:center}\n    .table-wrap{overflow-x:auto;border:2px solid #e3eaf3;border-radius:16px}\n    table{width:100%;min-width:850px;border-collapse:separate;border-spacing:0}\n    th,td{border-right:1px solid #dce4ee;border-bottom:1px solid #dce4ee;padding:10px}\n    tr:last-child th,tr:last-child td{border-bottom:0}th:last-child,td:last-child{border-right:0}\n    thead th{background:var(--navy);color:#fff;text-align:center}\n    thead th:first-child{min-width:145px}\n    tbody th{background:#f5f9fe;text-align:center;color:var(--navy);font-size:1rem}\n    .day-icon{display:block;font-size:1.45rem;margin-bottom:4px}\n    .day-listen{margin-top:8px;padding:7px 11px;border-radius:8px;background:var(--blue);color:#fff;font-size:.78rem}\n    td{background:#fff;transition:.15s}\n    .choice{display:flex;align-items:center;gap:10px;min-height:62px;padding:9px;border:3px solid #d2deeb;border-radius:13px;background:#fff;cursor:pointer;font-weight:800;line-height:1.25}\n    .choice:hover{border-color:#82b7e0;background:#f5faff}\n    .choice input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--blue)}\n    .activity-icon{font-size:1.75rem;line-height:1}.activity-text{font-size:.9rem}\n    td.correct .choice{border-color:var(--green);background:#edfbf3;color:#176739}\n    td.wrong .choice{border-color:var(--red);background:#fff0f0;color:#9d2929}\n    td.answer .choice{border-color:var(--green);box-shadow:0 0 0 2px #27864a33 inset}\n    tr.missing th{background:#fff4d9;color:var(--orange)}\n    .actions{display:flex;justify-content:center;gap:11px;margin-top:24px}\n    .check{background:var(--green);color:#fff}.reset{background:#e7edf4;color:var(--navy)}\n    #result{min-height:38px;margin:18px 0 0;text-align:center;font-size:1.16rem;font-weight:900}\n    footer{text-align:center;padding:0 20px 22px;color:#748096;font-size:.83rem}\n    @media(max-width:650px){body{padding:10px}main{padding:18px}.actions{flex-direction:column}.actions button{width:100%}.audio-bar{align-items:stretch}.audio-bar button{flex:1 1 140px}}\n  &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;section class=&quot;page&quot;&gt;\n    &lt;header&gt;\n      &lt;p class=&quot;brand&quot;&gt;Lingualand \u00b7 Est. 1972&lt;\/p&gt;\n      &lt;h1&gt;Tony's Week&lt;\/h1&gt;\n      &lt;p&gt;B Junior \u00b7 Simple Present Listening&lt;\/p&gt;\n    &lt;\/header&gt;\n    &lt;main&gt;\n      &lt;div class=&quot;instructions&quot;&gt;&lt;strong&gt;Listen to the boy and the girl.&lt;\/strong&gt; For each day, choose the activity Tony really does. The question may mention a different activity, so listen carefully to the girl\u2019s answer!&lt;\/div&gt;\n      &lt;div class=&quot;audio-bar&quot;&gt;\n        &lt;button class=&quot;listen-all&quot; id=&quot;listenAll&quot; type=&quot;button&quot;&gt;\u25b6 Listen to all&lt;\/button&gt;\n        &lt;button class=&quot;stop&quot; id=&quot;stopAudio&quot; type=&quot;button&quot; disabled&gt;\u25a0 Stop&lt;\/button&gt;\n        &lt;span id=&quot;audioStatus&quot; aria-live=&quot;polite&quot;&gt;Ready to listen&lt;\/span&gt;\n      &lt;\/div&gt;\n      &lt;div class=&quot;table-wrap&quot; aria-label=&quot;Tony's weekly timetable&quot;&gt;\n        &lt;table&gt;\n          &lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Day&lt;\/th&gt;&lt;th scope=&quot;col&quot;&gt;Option A&lt;\/th&gt;&lt;th scope=&quot;col&quot;&gt;Option B&lt;\/th&gt;&lt;th scope=&quot;col&quot;&gt;Option C&lt;\/th&gt;&lt;\/tr&gt;&lt;\/thead&gt;\n          &lt;tbody id=&quot;scheduleBody&quot;&gt;&lt;\/tbody&gt;\n        &lt;\/table&gt;\n      &lt;\/div&gt;\n      &lt;div class=&quot;actions&quot;&gt;\n        &lt;button class=&quot;check&quot; id=&quot;checkAnswers&quot; type=&quot;button&quot;&gt;Check answers&lt;\/button&gt;\n        &lt;button class=&quot;reset&quot; id=&quot;resetExercise&quot; type=&quot;button&quot;&gt;Try again&lt;\/button&gt;\n      &lt;\/div&gt;\n      &lt;p id=&quot;result&quot; aria-live=&quot;polite&quot;&gt;&lt;\/p&gt;\n    &lt;\/main&gt;\n    &lt;footer&gt;The listening transcript is hidden during the activity.&lt;\/footer&gt;\n  &lt;\/section&gt;\n\n  &lt;script&gt;\n    const days=[\n      {day:&quot;Monday&quot;,question:&quot;Does Tony go swimming on Mondays?&quot;,answer:&quot;No, he doesn't. He plays football.&quot;,correct:0,options:[[&quot;\u26bd&quot;,&quot;Play football&quot;],[&quot;\ud83c\udfca&quot;,&quot;Go swimming&quot;],[&quot;\ud83c\udfae&quot;,&quot;Play video games&quot;]]},\n      {day:&quot;Tuesday&quot;,question:&quot;Does Tony go to English classes on Tuesdays?&quot;,answer:&quot;Yes, he does.&quot;,correct:1,options:[[&quot;\ud83d\udeb2&quot;,&quot;Ride his bike&quot;],[&quot;\ud83d\udcda&quot;,&quot;Go to English classes&quot;],[&quot;\ud83c\udfb9&quot;,&quot;Play the piano&quot;]]},\n      {day:&quot;Wednesday&quot;,question:&quot;Does he play the piano on Wednesdays?&quot;,answer:&quot;No, he doesn't. He goes swimming.&quot;,correct:2,options:[[&quot;\ud83e\udd4b&quot;,&quot;Do karate&quot;],[&quot;\ud83c\udfb9&quot;,&quot;Play the piano&quot;],[&quot;\ud83c\udfca&quot;,&quot;Go swimming&quot;]]},\n      {day:&quot;Thursday&quot;,question:&quot;Does Tony ride his bike on Thursdays?&quot;,answer:&quot;Yes, he does.&quot;,correct:0,options:[[&quot;\ud83d\udeb2&quot;,&quot;Ride his bike&quot;],[&quot;\u26bd&quot;,&quot;Play football&quot;],[&quot;\ud83d\udcda&quot;,&quot;Go to English classes&quot;]]},\n      {day:&quot;Friday&quot;,question:&quot;Does he have a piano lesson on Fridays?&quot;,answer:&quot;Yes, he does.&quot;,correct:1,options:[[&quot;\ud83c\udfae&quot;,&quot;Play video games&quot;],[&quot;\ud83c\udfb9&quot;,&quot;Have a piano lesson&quot;],[&quot;\ud83e\udd4b&quot;,&quot;Do karate&quot;]]},\n      {day:&quot;Saturday&quot;,question:&quot;Does Tony play football on Saturdays?&quot;,answer:&quot;No, he doesn't. He does karate.&quot;,correct:2,options:[[&quot;\ud83d\udcda&quot;,&quot;Go to English classes&quot;],[&quot;\u26bd&quot;,&quot;Play football&quot;],[&quot;\ud83e\udd4b&quot;,&quot;Do karate&quot;]]},\n      {day:&quot;Sunday&quot;,question:&quot;Does he do karate on Sundays?&quot;,answer:&quot;No, he doesn't. He plays video games.&quot;,correct:0,options:[[&quot;\ud83c\udfae&quot;,&quot;Play video games&quot;],[&quot;\ud83c\udfca&quot;,&quot;Go swimming&quot;],[&quot;\ud83d\udeb2&quot;,&quot;Ride his bike&quot;]]}\n    ];\n\n    const tbody=document.getElementById(&quot;scheduleBody&quot;);\n    days.forEach((item,index)=&gt;{\n      const row=document.createElement(&quot;tr&quot;);\n      row.dataset.dayIndex=index;\n      const choices=item.options.map((option,optionIndex)=&gt;`&lt;td data-option=&quot;${optionIndex}&quot;&gt;&lt;label class=&quot;choice&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;day-${index}&quot; value=&quot;${optionIndex}&quot;&gt;&lt;span class=&quot;activity-icon&quot;&gt;${option[0]}&lt;\/span&gt;&lt;span class=&quot;activity-text&quot;&gt;${option[1]}&lt;\/span&gt;&lt;\/label&gt;&lt;\/td&gt;`).join(&quot;&quot;);\n      row.innerHTML=`&lt;th scope=&quot;row&quot;&gt;&lt;span class=&quot;day-icon&quot;&gt;\ud83d\udcc5&lt;\/span&gt;${item.day}&lt;br&gt;&lt;button type=&quot;button&quot; class=&quot;day-listen&quot; data-listen-day=&quot;${index}&quot;&gt;\u25b6 Listen&lt;\/button&gt;&lt;\/th&gt;${choices}`;\n      tbody.appendChild(row);\n    });\n\n    const boyProfile={names:[&quot;Oliver&quot;,&quot;Daniel&quot;,&quot;Jamie&quot;,&quot;Tom&quot;,&quot;Fred&quot;],pitch:1.04,rate:.82};\n    const girlProfile={names:[&quot;Serena&quot;,&quot;Samantha&quot;,&quot;Karen&quot;,&quot;Ava&quot;,&quot;Tessa&quot;,&quot;Sandy&quot;],pitch:1.07,rate:.8};\n    const listenAll=document.getElementById(&quot;listenAll&quot;);\n    const stopAudio=document.getElementById(&quot;stopAudio&quot;);\n    const audioStatus=document.getElementById(&quot;audioStatus&quot;);\n    const result=document.getElementById(&quot;result&quot;);\n    let playToken=0;\n\n    function findVoice(profile,excluded=&quot;&quot;){\n      const voices=speechSynthesis.getVoices();\n      const english=voices.filter(v=&gt;\/^en[-_]\/i.test(v.lang));\n      return profile.names.map(name=&gt;english.find(v=&gt;v.name.toLowerCase().includes(name.toLowerCase())&amp;&amp;v.name!==excluded)).find(Boolean)\n        || english.find(v=&gt;v.name!==excluded)||english[0]||voices[0];\n    }\n    function setAudioState(playing,status){\n      listenAll.disabled=playing;stopAudio.disabled=!playing;\n      document.querySelectorAll(&quot;.day-listen&quot;).forEach(button=&gt;button.disabled=playing);\n      audioStatus.textContent=status;\n    }\n    function speakLine(text,profile,voice,onDone,token){\n      const utterance=new SpeechSynthesisUtterance(text);\n      if(voice){utterance.voice=voice;utterance.lang=voice.lang}else utterance.lang=&quot;en-GB&quot;;\n      utterance.pitch=profile.pitch;utterance.rate=profile.rate;utterance.volume=1;\n      utterance.onend=()=&gt;{if(token===playToken)onDone()};\n      utterance.onerror=()=&gt;{if(token===playToken)onDone()};\n      speechSynthesis.speak(utterance);\n    }\n    function speakDay(index,onDone,token){\n      if(!(&quot;speechSynthesis&quot; in window)){setAudioState(false,&quot;Audio is unavailable&quot;);return}\n      const item=days[index],boyVoice=findVoice(boyProfile),girlVoice=findVoice(girlProfile,boyVoice?.name||&quot;&quot;);\n      audioStatus.textContent=`Listening: ${item.day}`;\n      speakLine(item.question,boyProfile,boyVoice,()=&gt;setTimeout(()=&gt;speakLine(item.answer,girlProfile,girlVoice,onDone,token),350),token);\n    }\n    listenAll.addEventListener(&quot;click&quot;,()=&gt;{\n      if(!(&quot;speechSynthesis&quot; in window)){setAudioState(false,&quot;Audio is unavailable&quot;);return}\n      speechSynthesis.cancel();const token=++playToken;setAudioState(true,&quot;Starting...&quot;);\n      function next(index){\n        if(token!==playToken)return;\n        if(index===days.length){setAudioState(false,&quot;Ready to listen again&quot;);return}\n        speakDay(index,()=&gt;setTimeout(()=&gt;next(index+1),650),token);\n      }\n      next(0);\n    });\n    document.addEventListener(&quot;click&quot;,event=&gt;{\n      const button=event.target.closest(&quot;.day-listen&quot;);if(!button)return;\n      if(!(&quot;speechSynthesis&quot; in window)){setAudioState(false,&quot;Audio is unavailable&quot;);return}\n      speechSynthesis.cancel();const token=++playToken,index=Number(button.dataset.listenDay);\n      setAudioState(true,`Starting ${days[index].day}...`);\n      speakDay(index,()=&gt;setAudioState(false,&quot;Ready to listen again&quot;),token);\n    });\n    stopAudio.addEventListener(&quot;click&quot;,()=&gt;{playToken++;speechSynthesis.cancel();setAudioState(false,&quot;Stopped&quot;)});\n\n    document.getElementById(&quot;checkAnswers&quot;).addEventListener(&quot;click&quot;,()=&gt;{\n      let score=0,answered=0;\n      document.querySelectorAll(&quot;#scheduleBody tr&quot;).forEach((row,index)=&gt;{\n        row.classList.remove(&quot;missing&quot;);row.querySelectorAll(&quot;td&quot;).forEach(cell=&gt;cell.classList.remove(&quot;correct&quot;,&quot;wrong&quot;,&quot;answer&quot;));\n        const selected=row.querySelector(&quot;input:checked&quot;),correct=days[index].correct;\n        if(!selected){row.classList.add(&quot;missing&quot;);row.querySelector(`td[data-option=&quot;${correct}&quot;]`).classList.add(&quot;answer&quot;);return}\n        answered++;const chosen=Number(selected.value);\n        if(chosen===correct){score++;row.querySelector(`td[data-option=&quot;${chosen}&quot;]`).classList.add(&quot;correct&quot;)}\n        else{row.querySelector(`td[data-option=&quot;${chosen}&quot;]`).classList.add(&quot;wrong&quot;);row.querySelector(`td[data-option=&quot;${correct}&quot;]`).classList.add(&quot;answer&quot;)}\n      });\n      result.textContent=`Score: ${score}\/7 (${Math.round(score\/7*100)}%) \u2014 Answered: ${answered}\/7`;\n      result.style.color=score===7?&quot;#27864a&quot;:&quot;#20385f&quot;;\n    });\n    document.getElementById(&quot;resetExercise&quot;).addEventListener(&quot;click&quot;,()=&gt;{\n      playToken++;if(&quot;speechSynthesis&quot; in window)speechSynthesis.cancel();setAudioState(false,&quot;Ready to listen&quot;);\n      document.querySelectorAll(&quot;input[type=radio]&quot;).forEach(input=&gt;input.checked=false);\n      document.querySelectorAll(&quot;#scheduleBody tr&quot;).forEach(row=&gt;{row.classList.remove(&quot;missing&quot;);row.querySelectorAll(&quot;td&quot;).forEach(cell=&gt;cell.classList.remove(&quot;correct&quot;,&quot;wrong&quot;,&quot;answer&quot;))});\n      result.textContent=&quot;&quot;;window.scrollTo({top:0,behavior:&quot;smooth&quot;});\n    });\n    window.addEventListener(&quot;beforeunload&quot;,()=&gt;{playToken++;if(&quot;speechSynthesis&quot; in window)speechSynthesis.cancel()});\n  &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n\" style=\"width:100%;min-height:1850px;border:0;border-radius:8px;background:#f8fafc;display:block;\" loading=\"eager\" allow=\"autoplay\"><\/iframe><\/div>\n<!-- lingualand-listening-exercise:bj:5:end --><\/div><script>(function(){const expectedHash=\"54c6e6001970489b11bc97cf0986b7b9f1684d10c293be936a975466a86f94b1\";const storageKey=\"lingualandListeningAccess:bj\";const form=document.getElementById(\"accessForm-lesson-bj\"),keyInput=document.getElementById(\"accessKey-lesson-bj\"),msg=document.getElementById(\"accessMessage-lesson-bj\"),gate=document.getElementById(\"accessGate-lesson-bj\"),app=document.getElementById(\"exerciseApp-lesson-bj\");async function sha256(text){const bytes=new TextEncoder().encode(text);const digest=await crypto.subtle.digest(\"SHA-256\",bytes);return Array.from(new Uint8Array(digest)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\");}function deny(text){msg.textContent=text;app.hidden=true;gate.style.display=\"grid\";}function allow(){try{sessionStorage.setItem(storageKey,\"1\");}catch(e){} gate.style.display=\"none\";app.hidden=false;keyInput.value=\"\";}try{if(sessionStorage.getItem(storageKey)===\"1\") allow();}catch(e){}form.addEventListener(\"submit\",async function(e){e.preventDefault();const entered=keyInput.value.trim();if(!entered){deny(\"Please enter the access key.\");return;}try{const hash=await sha256(entered);if(hash===expectedHash){allow();}else{deny(\"Incorrect access key.\");}}catch(err){deny(\"Access check is unavailable in this browser.\");}});})();<\/script>\n<!-- lingualand-listening-access:bj:lesson:end -->","protected":false},"excerpt":{"rendered":"<p>B Junior Listening Access Enter your access key to open the exercises. Open exercises<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":9619,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-11546","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/comments?post=11546"}],"version-history":[{"count":1,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11546\/revisions"}],"predecessor-version":[{"id":11574,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11546\/revisions\/11574"}],"up":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/9619"}],"wp:attachment":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/media?parent=11546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}