var presentation = ["Black Widow<\/word>","superhero film<\/word>","Marvel Comics<\/word>","Marvel Studios<\/word>","Walt Disney Studios Motion Pictures<\/word>","24th film<\/word>","Marvel Cinematic Universe<\/word>","Set after<\/word>","Captain America: Civil War<\/word>","Natasha Romanoff<\/word>","on the run<\/word>","confront<\/word>","conspiracy<\/word>","past<\/word>","Black Widow<\/strong> is a 2021 American superhero film<\/strong> based on Marvel Comics<\/strong> featuring the character of the same name. Produced by Marvel Studios<\/strong> and distributed by Walt Disney Studios Motion Pictures<\/strong>, it is the 24th film<\/strong> in the Marvel Cinematic Universe<\/strong>. Set after<\/strong> the events of Captain America: Civil War<\/strong>, the film sees Natasha Romanoff<\/strong> on the run<\/strong> and forced to confront<\/strong> a conspiracy<\/strong> tied to her past<\/strong>.<\/phrase>","Russian undercover agents<\/word>","super-soldier<\/word>","Alexei Shostakov<\/word>","Black Widow<\/word>","Melina Vostokoff<\/word>","pose as a normal family<\/word>","Ohio<\/word>","surrogate daughters<\/word>","Natasha Romanoff<\/word>","Yelena Belova<\/word>","mission<\/word>","steal<\/word>","S.H.I.E.L.D. intel<\/word>","escapes to Cuba<\/word>","rendezvous<\/word>","their boss<\/word>","General Dreykov<\/word>","Natasha and Yelena<\/word>","Red Room<\/word>","Alexei is imprisoned<\/word>","Russia<\/word>","Natasha defects to S.H.I.E.L.D.<\/word>","bombing<\/word>","Dreykov's Budapest office<\/word>","apparently killing him<\/word>","his young daughter<\/word>","Antonia<\/word>","haunts Natasha<\/word>","In 1995, Russian undercover agents<\/strong>-super-soldier<\/strong> Alexei Shostakov<\/strong> and Black Widow<\/strong> Melina Vostokoff<\/strong>-pose as a normal family<\/strong> in Ohio<\/strong> with their surrogate daughters<\/strong> Natasha Romanoff<\/strong> and Yelena Belova<\/strong>. When the mission<\/strong> to steal<\/strong> S.H.I.E.L.D. intel<\/strong> is complete, the family escapes to Cuba<\/strong> and rendezvous<\/strong> with their boss<\/strong>, General Dreykov<\/strong>, who has Natasha and Yelena<\/strong> taken to the Red Room<\/strong> for training. Years pass and Alexei is imprisoned<\/strong> in Russia<\/strong>, while Natasha defects to S.H.I.E.L.D.<\/strong> after bombing<\/strong> Dreykov's Budapest office<\/strong>, apparently killing him<\/strong> and his young daughter<\/strong> Antonia<\/strong>; an act that haunts Natasha<\/strong>.<\/phrase>","Natasha is a fugitive<\/word>","violating<\/word>","Sokovia Accords<\/word>","escapes<\/word>","U.S. Secretary of State<\/word>","Thaddeus Ross<\/word>","flees<\/word>","safehouse<\/word>","Norway<\/word>","Mason<\/word>","Yelena kills<\/word>","rogue former Black Widow<\/word>","contact<\/word>","substance<\/word>","neutralizes<\/word>","Red Room<\/word>","chemical mind-control agent<\/word>","sends the antidote to Natasha<\/word>","return to help<\/word>","free the other Widows<\/word>","Natasha unknowingly drives off with the antidote<\/word>","attacked by<\/word>","Taskmaster<\/word>","after the antidote<\/word>","Natasha manages to escape<\/word>","Budapest<\/word>","Dreykov is still alive<\/word>","Red Room is still active<\/word>","attacked by Black Widows<\/word>","Natasha and Yelena<\/word>","evade the Widows and Taskmaster<\/word>","meeting Mason<\/word>","supplies them<\/word>","helicopter<\/word>","In 2016, Natasha is a fugitive<\/strong> for violating<\/strong> the Sokovia Accords<\/strong>. She escapes<\/strong> from U.S. Secretary of State<\/strong> Thaddeus Ross<\/strong> and flees<\/strong> to a safehouse<\/strong> in Norway<\/strong> set up by Mason<\/strong>. Meanwhile, Yelena kills<\/strong> a rogue former Black Widow<\/strong> but comes in contact<\/strong> with a substance<\/strong> that neutralizes<\/strong> the Red Room<\/strong>'s chemical mind-control agent<\/strong>. Yelena sends the antidote to Natasha<\/strong> in the hopes that she will return to help<\/strong> Yelena free the other Widows<\/strong>. When Natasha unknowingly drives off with the antidote<\/strong>, she is attacked by<\/strong> Taskmaster<\/strong>, who is after the antidote<\/strong>. Natasha manages to escape<\/strong> Taskmaster<\/strong> and realizes that the antidote came from Yelena. The two reunite in Budapest<\/strong>, where Natasha learns Dreykov is still alive<\/strong> and the Red Room is still active<\/strong>. Shortly after, they are attacked by Black Widows<\/strong> and Natasha and Yelena<\/strong> evade the Widows and Taskmaster<\/strong> before meeting Mason<\/strong>, who supplies them<\/strong> with a helicopter<\/strong>.<\/phrase>","Natasha and Yelena<\/word>","break Alexei out of prison<\/word>","learn Dreykov's location<\/word>","speak with Melina<\/word>","lives on a farm<\/word>","St. Petersburg<\/word>","developed<\/word>","chemical mind control process<\/word>","Yelena reveals<\/word>","not a real family<\/word>","believed they were<\/word>","Melina admits<\/word>","giving away their location to Dreykov<\/word>","agents arrive<\/word>","Red Room<\/word>","aerial facility<\/word>","Natasha and Yelena<\/strong> break Alexei out of prison<\/strong> to learn Dreykov's location<\/strong>. He tells them to speak with Melina<\/strong>, who lives on a farm<\/strong> outside St. Petersburg<\/strong>, where she developed<\/strong> the chemical mind control process<\/strong> used on the Widows. There, Yelena reveals<\/strong> that while they were not a real family<\/strong>, she believed they were<\/strong>. Melina admits<\/strong> to giving away their location to Dreykov<\/strong>, whose agents arrive<\/strong> and take them to the Red Room<\/strong>, an aerial facility<\/strong>.<\/phrase>","Melina and Natasha<\/word>","face mask technology<\/word>","switch places<\/word>","Melina to free Alexei and Yelena<\/word>","Natasha confronts Dreykov<\/word>","sees through her disguise<\/word>","Taskmaster<\/word>","Antonia<\/word>","suffered damage so severe<\/word>","put a chip in her head<\/word>","turning her into the perfect soldier<\/word>","mimicking the actions of anyone she witnesses<\/word>","Natasha attempts to kill Dreykov<\/word>","fails to harm him<\/word>","pheromone lock<\/word>","Dreykov reveals<\/word>","controls Widows worldwide<\/word>","Natasha intentionally<\/word>","breaks her nose<\/word>","negate the pheromone<\/word>","attacks Dreykov<\/word>","Alexei battles Taskmaster<\/word>","Melina attempts to take out<\/word>","engines<\/word>","Yelena searches<\/word>","other Widows<\/word>","lock Antonia in a cell<\/word>","Melina and Natasha<\/strong> use face mask technology<\/strong> to switch places<\/strong> before being captured, allowing Melina to free Alexei and Yelena<\/strong> from their restraints. Meanwhile, Natasha confronts Dreykov<\/strong>, who sees through her disguise<\/strong>. Natasha learns Taskmaster<\/strong> is Antonia<\/strong>, who suffered damage so severe<\/strong> that Dreykov had to put a chip in her head<\/strong>, turning her into the perfect soldier<\/strong>, capable of mimicking the actions of anyone she witnesses<\/strong>, including several of the Avengers. Natasha attempts to kill Dreykov<\/strong>, but fails to harm him<\/strong> due to a pheromone lock<\/strong> he has installed in every Widow. Dreykov reveals<\/strong> that he controls Widows worldwide<\/strong> via his desk console. Natasha intentionally<\/strong> breaks her nose<\/strong>, severing a nerve in her nasal passage to negate the pheromone<\/strong> and then attacks Dreykov<\/strong>. Alexei battles Taskmaster<\/strong>, while Melina attempts to take out<\/strong> one of the facility's engines<\/strong> and Yelena searches<\/strong> for the other Widows<\/strong>, who are sent to protect Dreykov. Together, Alexei and Yelena lock Antonia in a cell<\/strong>.<\/phrase>","Dreykov escapes<\/word>","Widows attack Natasha<\/word>","Yelena creates<\/word>","antidote bomb<\/word>","releases the Widows<\/word>","mind control.<\/word>","Natasha gets into<\/word>","control desk<\/word>","copies the locations<\/word>","Widows worldwide<\/word>","facility begins to explode<\/word>","Natasha retrieves<\/word>","two surviving vials of the antidote<\/word>","frees Taskmaster<\/word>","locked cell<\/word>","Melina and Alexei escape<\/word>","Yelena takes out Dreykov's helicopter<\/word>","killing him<\/word>","Natasha gives Yelena a parachute<\/word>","battling Taskmaster<\/word>","freefall<\/word>","Natasha uses a vial of the antidote<\/word>","Taskmaster<\/word>","freed Widows arrive<\/word>","Yelena, Melina, and Alexei<\/word>","say goodbye to Natasha<\/word>","gives Yelena the last antidote vial<\/word>","portable drive<\/word>","find and free the other<\/word>","leave with Antonia<\/word>","Natasha awaits Ross<\/word>","arrived to apprehend her<\/word>","Dreykov escapes<\/strong> as the Widows attack Natasha<\/strong>, but Yelena creates<\/strong> an antidote bomb<\/strong> that releases the Widows<\/strong> from the mind control.<\/strong> Natasha gets into<\/strong> the control desk<\/strong> and copies the locations<\/strong> of the other Widows worldwide<\/strong> just as the facility begins to explode<\/strong> and fall. Natasha retrieves<\/strong> the two surviving vials of the antidote<\/strong> and frees Taskmaster<\/strong> from the locked cell<\/strong>. Melina and Alexei escape<\/strong> via a plane just as Yelena takes out Dreykov's helicopter<\/strong>, killing him<\/strong>. Natasha gives Yelena a parachute<\/strong> before battling Taskmaster<\/strong> in freefall<\/strong>. After landing, Natasha uses a vial of the antidote<\/strong> on Taskmaster<\/strong>, freeing her from servitude. The freed Widows arrive<\/strong> as Yelena, Melina, and Alexei<\/strong> say goodbye to Natasha<\/strong>. She gives Yelena the last antidote vial<\/strong> and the portable drive<\/strong>, telling her to find and free the other<\/strong>, still mind-controlled, Widows. As they leave with Antonia<\/strong>, Natasha awaits Ross<\/strong> and his men, who have arrived to apprehend her<\/strong>.<\/phrase>","Two weeks later<\/word>","Natasha reunites with Mason<\/word>","supplies her<\/word>","Quinjet<\/word>","intending to free<\/word>","detained Avengers<\/word>","Raft<\/word>","Two weeks later<\/strong>, Natasha reunites with Mason<\/strong>, who supplies her<\/strong> with a Quinjet<\/strong>. She leaves, intending to free<\/strong> the detained Avengers<\/strong> on the Raft<\/strong>.<\/phrase>","post-credits scene<\/word>","set after Natasha's death<\/word>","Yelena encounters<\/word>","Contessa Valentina Allegra de Fontaine<\/word>","Natasha's grave<\/word>","tasked to kill<\/word>","Clint Barton<\/word>","Fontaine claims<\/word>","responsible<\/word>","Natasha's death<\/word>","In a post-credits scene<\/strong> set after Natasha's death<\/strong>, Yelena encounters<\/strong> Contessa Valentina Allegra de Fontaine<\/strong> at Natasha's grave<\/strong> and is tasked to kill<\/strong> Clint Barton<\/strong>, the man whom de Fontaine claims<\/strong> is responsible<\/strong> for Natasha's death<\/strong>.<\/phrase>"]; var currentPosition = 0; var totalPositions = 0; var timePerWord = 1500; var timePerPhraseWord = 120 var readAheadPlayerTimer; var autoPlay = true; var setMinimized = false; var wordSpeedOptions = {'Slower':2000,'Moderate':1200,'Fast':800}; var phraseSpeedOptions = {'Slower':280,'Moderate':200,'Fast':80}; var defaultWordSpeedOption = 'Moderate'; var defaultPhraseSpeedOption = 'Moderate'; var logToLTI = false; $(window).load(function(){ totalPositions = presentation.length; if (totalPositions > 0){ $('body').prepend('
'); $('body').prepend('
'); $('#read_ahead_player').prepend('
'); initializeReadAheadControls(); initializeReadAheadSlider(); initializeReadAheadSpeedOptions(); currentReadAheadControls(); resumeReadAheadPlayback(); } }); $(document).keyup(function(e){ switch(e.which) { case 37: pauseReadAheadPresentation(); priorReadAheadPresentationItem(); break; case 39: pauseReadAheadPresentation(); nextReadAheadPresentationItem(); break; default: break; } }); function initializeReadAheadControls(){ var s = ''; s += ''; s += ''; s += ''; s += '
'; s += ''; s += ''; s += ''; s += ''; s += ''; s += ''; s += ''; s += ''; s += ''; s += '
'; $('#read_ahead_player').append(s); } function initializeReadAheadSlider(){ var s = ''; s += '
'; s += '
'; s += '
'; $('#read_ahead_controls').prepend(s); updateReadAheadSliderPosition(); } function initializeReadAheadSpeedOptions(){ var s = '
'; s += '
'; s += ' Word Speed
'; s += '
'; optionCount = 0; for (index in wordSpeedOptions) { optionCount++; } optionWidth = 100 / optionCount; for (index in wordSpeedOptions) { var option = wordSpeedOptions[index]; if (index == defaultWordSpeedOption) { s += ''; updateReadAheadWordSpeed(option); } else { s += ''; } } s += '
'; s += '
'; s += '
'; s += ' Phrase Speed
'; s += '
'; optionCount = 0; for (index in phraseSpeedOptions) { optionCount++; } optionWidth = 100 / optionCount; for (index in phraseSpeedOptions) { var option = phraseSpeedOptions[index]; if (index == defaultWordSpeedOption) { s += ''; updateReadAheadPhraseSpeed(option); } else { s += ''; } } s += '
'; s += '
'; s += '
'; $('#read_ahead_controls').append(s); } function updateReadAheadWordSpeed(microseconds,sender) { microseconds = microseconds != undefined && microseconds > 0 ? microseconds : 0; if (microseconds > 0) { timePerWord = microseconds; } if (sender!=undefined) { $('#slider_control_word_speed').find('a').removeClass('current_speed'); $(sender).addClass('current_speed'); } logReadAheadPlayerAction('updateReadAheadWordSpeed','Presentation',microseconds); } function updateReadAheadPhraseSpeed(microseconds,sender) { microseconds = microseconds != undefined && microseconds > 0 ? microseconds : 0; if (microseconds > 0 ) { timePerPhraseWord = microseconds; } if (sender!=undefined) { $('#slider_control_phrase_speed').find('a').removeClass('current_speed'); $(sender).addClass('current_speed'); } logReadAheadPlayerAction('updateReadAheadPhraseSpeed','Presentation',microseconds); } function updateReadAheadSliderPosition(){ var currentSliderBarWidth = 100 - (100 / totalPositions * (currentPosition + 1)); $('#readAheadSliderBar').css('width',currentSliderBarWidth+'%'); } function currentReadAheadControls(){ $('#read_ahead_player_pause_play').show(); if (currentPosition < totalPositions - 1) { $('#read_ahead_player_next_word').removeClass('disabled'); } else { $('#read_ahead_player_next_word').addClass('disabled'); } if (currentPosition > 0) { $('#read_ahead_player_previous_word').removeClass('disabled'); } else { $('#read_ahead_player_previous_word').addClass('disabled'); } } function restartReadAheadPresentation(){ currentPosition = 0; logReadAheadPlayerAction('restartReadAheadPresentation','Presentation',''); resumeReadAheadPlayback(); } function resumeReadAheadPlayback(){ $('.fa-repeat').removeClass('fa-repeat').addClass('fa-play'); $('#read_ahead_player_pause_play').each(function(){ $(this).find('.fa-play').removeClass('fa-play').addClass('fa-pause'); $(this).off('click'); $(this).attr('onclick','pauseReadAheadPresentation()'); }); logReadAheadPlayerAction('resumeReadAheadPlayback','Presentation',''); playReadAheadPresentation(); } function pauseReadAheadPresentation(){ $('#read_ahead_player_pause_play').each(function(){ $(this).find('.fa-pause').removeClass('fa-pause').addClass('fa-play'); $(this).off('click'); $(this).attr('onclick','resumeReadAheadPlayback()'); }); logReadAheadPlayerAction('pauseReadAheadPresentation','Presentation',''); read_ahead_pause(); } function endReadAheadPresentation(){ $('.fa-play').removeClass('fa-play').addClass('fa-repeat'); $('.fa-pause').removeClass('fa-pause').addClass('fa-repeat'); $('#read_ahead_player_pause_play').each(function(){ $(this).off('click'); $(this).attr('onclick','restartReadAheadPresentation()'); }); logReadAheadPlayerAction('endReadAheadPresentation','Presentation',''); logLTIEndPresentation(); } function playReadAheadPresentation(){ autoPlay=true; currentPosition--; logReadAheadPlayerAction('playReadAheadPresentation','Presentation',''); nextReadAheadPresentationItem(); } function startReadAheadStepper(timeDisplayWord){ clearInterval(readAheadPlayerTimer); readAheadPlayerTimer = setTimeout(function() { read_ahead_step(); },timeDisplayWord); } function stopReadAheadStepper(){ clearInterval(readAheadPlayerTimer); } function read_ahead_step(){ if (autoPlay) { nextReadAheadPresentationItem(); } } function read_ahead_pause(){ autoPlay=false; stopReadAheadStepper(); } function showReadAheadPresentationItem(index){ currentPosition = index; currentPresentationItem = presentation[currentPosition] != undefined ? presentation[currentPosition].trim() : ""; if (currentPresentationItem != "") { currentItemWordCount = presentation[currentPosition].replace("\n","").split(" ").length; if (currentPresentationItem.startsWith("")){ startReadAheadStepper(currentItemWordCount*timePerWord); $('#read_ahead_player_field').html('
'+currentPresentationItem+'
'); logReadAheadPlayerAction('showReadAheadPresentationItem','Word',currentPresentationItem); } else { startReadAheadStepper(currentItemWordCount*timePerPhraseWord); $('#read_ahead_player_field').html('
'+currentPresentationItem.replace("\n","
")+'
'); logReadAheadPlayerAction('showReadAheadPresentationItem','Phrase',''); } } else { if (currentPosition < totalPositions) { nextReadAheadPresentationItem(); } else { endReadAheadPresentation(); read_ahead_minimize(); } } currentReadAheadControls(); updateReadAheadSliderPosition(); saveReadAheadPosition(); } function priorReadAheadPresentationItem(){ stopReadAheadStepper(); logReadAheadPlayerAction('priorReadAheadPresentationItem','Controls',''); showReadAheadPresentationItem(currentPosition-1); } function nextReadAheadPresentationItem(){ stopReadAheadStepper(); logReadAheadPlayerAction('nextReadAheadPresentationItem','Controls',''); showReadAheadPresentationItem(currentPosition+1); } function read_ahead_playAgain(){ currentWordIndex = 0; logReadAheadPlayerAction('read_ahead_playAgain','Controls',''); playReadAheadPresentation(); } function read_ahead_minimize(){ setMinimized = true; logReadAheadPlayerAction('read_ahead_minimize','Controls',''); read_ahead_switch_min_max(); } function read_ahead_maximize(){ setMinimized = false; logReadAheadPlayerAction('read_ahead_maximize','Controls',''); read_ahead_switch_min_max(); } function read_ahead_switch_min_max(forceSwitch){ forceSwitch = forceSwitch != undefined ? forceSwitch : false; if (forceSwitch) { setMinimized = !setMinimized; } if (setMinimized) { $('#read_ahead_player_back').fadeOut(); $('#read_ahead_player').addClass('minimize'); $('.player-icons .fa-stack').removeClass('fa-lg').addClass('fa-sm'); $('.player-icons .fa-minus').removeClass('fa-minus').addClass('fa-expand'); logReadAheadPlayerAction('read_ahead_switch_min_max','Min',''); //$('#read_ahead_player_max_min').each(function(){ // $(this).off('click'); // $(this).attr('onclick','read_ahead_maximize()'); //}); } else { $('#read_ahead_player_back').fadeIn(); $('#read_ahead_player').removeClass('minimize'); $('.player-icons .fa-stack').removeClass('fa-sm').addClass('fa-lg'); $('.player-icons .fa-expand').removeClass('fa-expand').addClass('fa-minus'); logReadAheadPlayerAction('read_ahead_switch_min_max','Max',''); //$('#read_ahead_player_max_min').each(function(){ // $(this).off('click'); // $(this).attr('onclick','read_ahead_minimize()'); //}); } } function saveReadAheadPosition(){ $.ajax({ type:'POST', url:'/ajax/save_user_presentation_position.php', data: { 'id':3205, 'position': currentPosition } }) .done(function(results){ }) .fail(function( jqXHR, textStatus ) { alert( "Request failed: " + textStatus ); }); } function logLTIEndPresentation(action) { if (!logToLTI) { return; } $.ajax({ type:'POST', url:'/lti/presentationEnded.php', data: { 'documentId':3205, 'userId':0, } }) } function logReadAheadPlayerAction(action,area,details){ var d = new Date(); var t = d.getTime(); action = action != undefined ? action.trim() : 'UNKNOWN'; area = area != undefined ? area.trim() : ''; details = details != undefined ? details : ''; // If we are about to show a new word, increase the number of keywords // reinforced so we can log that for the Dashboard page. if (area == 'Word') { window.keywordCount++; } $.ajax({ type:'POST', url:'/logging/logPlayerAction.php', data: { 'documentId':3205, 'userId':0, 'playerAction':action, 'playerArea':area, 'details':details, 'timestamp': t } }) .done(function(results){ }) .fail(function( jqXHR, textStatus ) { alert( "Request failed: " + textStatus ); }); }