After Two-Year Deployment, Army Soldier Surprises Mother at Work, Leaving Mom Crying Tears of Joy

A 22-year-old U.S. Army soldier pulled off an idea he had been hatching for years by surprising his mother at work after a two-year deployment.

U.S. Army Spc. Shakir Aquil joined the military right out of high school. After completing basic training in Oklahoma, Aquil continued training in Virginia and was then deployed to South Korea.

Inspired by military reunion videos he had watched while still in high school, Aquil knew that one day, he wanted to be the one in the video, surprising his own family.

“I’ve always wanted to do it, even since high school when I was looking into going into the Army and always watched the coming-home videos,” Aquil told ABC’s Good Morning America.

“I’ve been planning this for years.”

TRENDING: Angry Father Confronts Stunned Elizabeth Warren over Student Loan Plan – ‘Am I Going To Get My Money Back?’

Aquil got his chance last week, when he surprised his mother, school resource officer L.J. Williamson, while she was at work.

Williamson, a retired Atlanta police officer who now works at D.M. Therrell High School in Atlanta, Georgia, thought she was being honored at a pep rally for work she had done with vulnerable children over Christmas.

While the student body applauded Williamson for her ongoing work in the Atlanta community, a brief video of her son in his Army fatigues was displayed on a massive gymnasium screen.

In the video, Aquil thanked his mother for all her hard work. He was proud of her, he said, and wished he could be there in person.

Williamson became emotional while watching the video, not knowing that her son was about to make a grand entrance in person.

The student body erupted with cheers and applause as Aquil casually jogged into the gym behind the boys’ basketball team, a moment he had been waiting for since he left for South Korea.

RELATED: Firefighters Issue Warning After New Teen Challenge on TikTok Goes Viral

When Williamson saw her son, she rushed into his arms for an emotional, long-awaited embrace.

“I don’t like showing emotion in front of people, and I try my best not to,” Williamson told GMA. “As a police officer you’re expected to be stern, and I thought, ‘Why did he do this in front of all these people?’”

“I’m so happy,” she said. “I’m still floating.”

Aquil has some time off until February, which he said he plans to spend alongside his family doing things they love like dancing, singing, cooking and just being together.

We are committed to truth and accuracy in all of our journalism. Read our editorial standards.

","rendering_script":"(function() {rnvar referer="";try{if(referer=document.referrer,"undefined"==typeof referer||""==referer)throw"undefined"}catch(exception){referer=document.location.href,(""==referer||"undefined"==typeof referer)&&(referer=document.URL)}referer=referer.substr(0,700);rnvar rcds = document.getElementById("rcjsload_229d40");rnvar rcel = document.createElement("script");rnrcel.id = 'rc_' + Math.floor(Math.random() * 1000);rnrcel.type = 'text/javascript';rnrcel.src = "https://trends.revcontent.com/serve.js.php?w=81120&t="+rcel.id+"&c="+(new Date()).getTime()+"&width="+(window.outerWidth || document.documentElement.clientWidth)+"&referer="+referer;rnrcel.async = true;rnrcds.appendChild(rcel);rn})();"}]},"SB3":{"ad_type":"dfp_prebid","size_mappings":[{"screen_width":"944","creative_sizes":[{"size":"300x250"},{"size":"300x600"}]}],"bidders":[{"name":"appnexus","device_category":"desktop","adyoulike_placement":null,"appnexus_placementid":"12212212","audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"pubmatic","device_category":"desktop","adyoulike_placement":null,"appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":"158410","pubmatic_adslot":"sb3_lt","rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"adyoulike","device_category":"all","adyoulike_placement":"161949a474b094a7ea8d8254ad82e1fa","appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null}]},"BA1":{"ad_type":"custom","custom_ads":[{"code":"

rn

","rendering_script":"let fbs = document.createElement( 'script' );rnfbs.src = 'https://connect.facebook.net/en_US/fbadnw60-tag.js';rnfbs.async = 'async';rndocument.head.appendChild( fbs );rnwindow.ADNW = window.ADNW || {};rnwindow.ADNW.v60 = window.ADNW.v60 || {};rnwindow.ADNW.v60.slots = window.ADNW.v60.slots || [];rnwindow.ADNW.v60.slots.push({rntrootElement: document.getElementById( 'fb_ba1' ),rntplacementid: window.innerWidth > 943 ? '1521975967886043_2109685419115092' : '1521975967886043_2109684779115156',rntformat: 'recirculation',rnttestmode: false,rntonAdLoaded: function(rootElement) {rnttconsole.log('Audience Network [ba1] ad loaded');rnttrootElement.style.display = 'block';rnt},rntonAdError: function(errorCode, errorMessage) {rnttconsole.log('Audience Network [ba1] error (' + errorCode + ') ' + errorMessage);rnt},rntrecirculation: {rnttdesktop: {rntttlayout: 'grid'rntt}rnt}rn});rnrn(function() {rnvar referer="";try{if(referer=document.referrer,"undefined"==typeof referer||""==referer)throw"undefined"}catch(exception){referer=document.location.href,(""==referer||"undefined"==typeof referer)&&(referer=document.URL)}referer=referer.substr(0,700);rnvar rcds = document.getElementById("rcjsload_98a549");rnvar rcel = document.createElement("script");rnrcel.id = 'rc_' + Math.floor(Math.random() * 1000);rnrcel.type = 'text/javascript';rnrcel.src = "https://trends.revcontent.com/serve.js.php?w=110584&t="+rcel.id+"&c="+(new Date()).getTime()+"&width="+(window.outerWidth || document.documentElement.clientWidth)+"&referer="+encodeURIComponent(referer);rnrcel.async = true;rnrcds.appendChild(rcel);rn})();"}]},"BB1":{"ad_type":"dfp_prebid"},"IC4":{"ad_type":"dfp_prebid","lazy_load":"yes","size_mappings":[{"screen_width":"944"},{"screen_width":"1","creative_sizes":[{"size":"300x250"},{"size":"336x280"},{"size":"320x50"},{"size":"320x100"}]}],"bidders":[{"name":"appnexus","device_category":"desktop","adyoulike_placement":null,"appnexus_placementid":"13833593","audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"ix","device_category":"all","adyoulike_placement":null,"appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":"193616","ix_size":[{"size":"300"},{"size":"250"}],"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"ix","device_category":"all","adyoulike_placement":null,"appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":"193616","ix_size":[{"size":"336"},{"size":"280"}],"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"ix","device_category":"mobile","adyoulike_placement":null,"appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":"193616","ix_size":[{"size":"320"},{"size":"100"}],"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"ix","device_category":"mobile","adyoulike_placement":null,"appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":"193616","ix_size":[{"size":"320"},{"size":"50"}],"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"appnexus","device_category":"mobile","adyoulike_placement":null,"appnexus_placementid":"16115425","audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"pubmatic","device_category":"mobile","adyoulike_placement":null,"appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":"158410","pubmatic_adslot":"ic4_lt","rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"adyoulike","device_category":"all","adyoulike_placement":"bf3c5da79213913059f1620d35be7df5","appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null}],"repeating":true},"SB5":{"ad_type":"dfp_prebid","lazy_load":"yes"},"WP1":{"ad_type":"dfp_prebid"},"SA1":{"ad_type":"dfp_prebid","size_mappings":[{"screen_width":"944"},{"screen_width":"1","creative_sizes":[{"size":"1x1"},{"size":"320x100"},{"size":"320x50"}]}],"bidders":[{"name":"appnexus","device_category":"mobile","adyoulike_placement":null,"appnexus_placementid":"12207463","audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"pubmatic","device_category":"mobile","adyoulike_placement":null,"appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":"158410","pubmatic_adslot":"sa1_lt","rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null},{"name":"adyoulike","device_category":"mobile","adyoulike_placement":"61af893ef55c20abf2d49dae7cf3081b","appnexus_placementid":null,"audiencenetwork_placementid":null,"audiencenetwork_format":null,"ix_siteid":null,"justpremium_zone":null,"onedisplay_placement":null,"onedisplay_network":null,"onedisplay_bidfloor":null,"pubmatic_publisherid":null,"pubmatic_adslot":null,"rubicon_accountid":null,"rubicon_siteid":null,"rubicon_zoneid":null,"sovrn_tagid":null,"triplelift_inventorycode":null,"underdogmedia_siteid":null}]}},"ad_type":"dfp_prebid","custom_unit_code":"LT","use_fixed_containers":"yes","lazy_load":"yes","scaling_sheet_id":"535537944","replace_ict":"document.querySelector( '.article-extras.trending' ).outerHTML = '

'; (function (d,s,n,id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.className = n; js.src = "https://stream.playbuzz.com/embed/sdk.js?embedId=2efe60c1-beeb-43ac-b2ba-d19760efa428"; fjs.parentNode.insertBefore(js, fjs); }(document,'script','playbuzz-stream','stream-sdk-jssdk_westernjournal.com/lt_RSS'));","cat":"lifestyle"};

FFADS.debug = function( msg ) { if( document.location.href.search( 'ffads_debug=true' ) !== -1 ) { if( typeof msg !== 'undefined' ) console.log( JSON.parse( JSON.stringify( msg ) ) ); else console.log( 'undefined' ); } }

FFADS.content_order = ["SA1","WP1","BB1","Top","IC1","IC2","IC3","IC4","BA1"]; FFADS.sidebar_order = ["SB1","SB2","SB3","SB4","SB5"];

for( let ad_unit in FFADS.units ) if( ( FFADS.units[ad_unit].ad_type == 'dfp_prebid' || FFADS.units[ad_unit].ad_type == 'hybrid' ) && FFADS.units[ad_unit].size_mappings ) for( let i = 0; i < FFADS.units[ad_unit].size_mappings.length; i++ ) if( window.innerWidth >= FFADS.units[ad_unit].size_mappings[i].screen_width ) { if( FFADS.units[ad_unit].size_mappings[i].creative_sizes && FF_EXCLUDE_ADS.indexOf( ad_unit ) == -1 ) FFADS.units[ad_unit].sizes = FFADS.units[ad_unit].size_mappings[i].creative_sizes.map( function( sizeObj ) { return sizeObj.size.split( 'x' ).map( function( numString ) { return parseInt( numString ); } ); } ); break; }

let new_unit_obj = {}; for( let i in FFADS.content_order ) { FFADS.debug( 'Checking if ' + FFADS.content_order[i] + ' is valid on this page' ); let ad_unit = FFADS.content_order[i].split( '_' )[0]; if( FFADS.units[ad_unit] && ( FFADS.units[ad_unit].ad_type == 'custom' || FFADS.units[ad_unit].sizes ) ) new_unit_obj[ad_unit] = FFADS.units[ad_unit]; else { FFADS.debug( FFADS.content_order[i] + ' is not valid on this page. Removing it from content_order.' ); FFADS.content_order[i] = false; } } FFADS.content_order = FFADS.content_order.filter( function( ad_unit ) { return ad_unit && FFADS.units[ad_unit.split( '_' )[0]].lazy_load; } ); if( window.innerWidth >= 944 ) for( let i in FFADS.sidebar_order ) { FFADS.debug( 'Checking if ' + FFADS.sidebar_order[i] + ' is valid on this page' ); if( FFADS.units[FFADS.sidebar_order[i]].ad_type == 'custom' || FFADS.units[FFADS.sidebar_order[i]].sizes ) new_unit_obj[FFADS.sidebar_order[i]] = FFADS.units[FFADS.sidebar_order[i]]; else { FFADS.debug( FFADS.sidebar_order[i] + ' is not valid on this page. Removing it from sidebar_order.' ); FFADS.sidebar_order[i] = false; } } FFADS.sidebar_order = FFADS.sidebar_order.filter( function( ad_unit ) { return ad_unit && FFADS.units[ad_unit].lazy_load; } ); FFADS.units = new_unit_obj;

FFADS.all_bidders = {"adyoulike":{"nicename":"Adyoulike","params":["placement"]},"appnexus":{"nicename":"AppNexus","params":["placementId"]},"audienceNetwork":{"nicename":"Audience Network","params":["placementId","format"]},"ix":{"nicename":"Index Exchange","params":["siteId"],"array_params":["size"]},"justpremium":{"nicename":"JustPremium","params":["zone"],"array_params":["allow","exclude"]},"onedisplay":{"nicename":"Oath","params":["placement","network","bidFloor"]},"pubmatic":{"nicename":"PubMatic","params":["publisherId","adSlot"]},"rubicon":{"nicename":"Rubicon","params":["accountId","siteId","zoneId"]},"sovrn":{"nicename":"Sovrn","params":["tagid"]},"triplelift":{"nicename":"TripleLift","params":["inventoryCode"]},"underdogmedia":{"nicename":"Underdog Media","params":["siteId"]}};

FFADS.pb_units = []; for( let bidder in FFADS.all_bidders ) { FFADS.all_bidders[bidder].param_map = {}; for( let param in FFADS.all_bidders[bidder].params ) FFADS.all_bidders[bidder].param_map[FFADS.all_bidders[bidder].params[param].toLowerCase()] = FFADS.all_bidders[bidder].params[param]; for( let param in FFADS.all_bidders[bidder].array_params ) FFADS.all_bidders[bidder].param_map[FFADS.all_bidders[bidder].array_params[param].toLowerCase()] = FFADS.all_bidders[bidder].array_params[param]; } for( let ad_unit in FFADS.units ) { FFADS.debug( ad_unit + ' type: ' + FFADS.units[ad_unit].ad_type ); FFADS.debug( ad_unit + ' size mappings:' ); FFADS.debug( FFADS.units[ad_unit].size_mappings ); if( ( FFADS.units[ad_unit].ad_type == 'dfp_prebid' || FFADS.units[ad_unit].ad_type == 'hybrid' ) && FFADS.units[ad_unit].size_mappings ) { FFADS.debug( 'creating PB unit(s) for ' + ad_unit ); let bids = []; for( let i in FFADS.units[ad_unit].bidders ) if( FFADS.units[ad_unit].bidders[i].device_category == 'all' || FFADS.units[ad_unit].bidders[i].device_category == 'desktop' && window.innerWidth >= 944 || FFADS.units[ad_unit].bidders[i].device_category == 'mobile' && window.innerWidth < 944 ) { let params = {}; for( let param in FFADS.units[ad_unit].bidders[i] ) if( param.search( FFADS.units[ad_unit].bidders[i].name.toLowerCase() + '_' ) === 0 ) { let param_name_lower = param.split( '_' ).splice( 1 ).join( '_' ); let param_name = FFADS.all_bidders[FFADS.units[ad_unit].bidders[i].name].param_map[param_name_lower]; if( typeof FFADS.units[ad_unit].bidders[i][param] == 'object' ) { params[param_name] = []; for( let j in FFADS.units[ad_unit].bidders[i][param] ) params[param_name].push( parseInt( FFADS.units[ad_unit].bidders[i][param][j][param_name_lower] ) || FFADS.units[ad_unit].bidders[i][param][j][param_name_lower] ); } else params[param_name] = FFADS.units[ad_unit].bidders[i][param]; } bids.push( { bidder: FFADS.units[ad_unit].bidders[i].name, params: params } ); } if( FFADS.units[ad_unit].repeating ) for( let i = 0; i < FF_REP_COUNT; i++ ) FFADS.pb_units.push( { sizes: FFADS.units[ad_unit].sizes, bids: bids, code: 'REP_' + i } ); else if( FFADS.units[ad_unit].rep_count ) for( let i = 0; i < FFADS.units[ad_unit].rep_count; i++ ) FFADS.pb_units.push( { sizes: FFADS.units[ad_unit].sizes, bids: bids, code: ad_unit + '_' + i } ); else FFADS.pb_units.push( { sizes: FFADS.units[ad_unit].sizes, bids: bids, code: ad_unit } ); } FFADS.units[ad_unit].instances = {}; if( FFADS.units[ad_unit].repeating ) for( let i = 0; i < FF_REP_COUNT; i++ ) FFADS.units[ad_unit].instances['REP_' + i] = {}; else if( FFADS.units[ad_unit].rep_count ) for( let i = 0; i < FFADS.units[ad_unit].rep_count; i++ ) FFADS.units[ad_unit].instances[ad_unit + '_' + i] = {}; else FFADS.units[ad_unit].instances[ad_unit] = {}; } FFADS.prebid_timeout = window.innerWidth > 943 ? FFADS.desktop_bidding_timeout : FFADS.mobile_bidding_timeout;

FFADS.get_unit_path = function( ad_unit ) { return '/' + ( this.dfp_account_id || 101957818 ) + '/' + ad_unit + '_' + ( this.custom_unit_code || 'WJ' ) + ( typeof this.use_sx_units != 'undefined' && this.use_sx_units == 'yes' ? ( window.innerWidth > 943 ? '_LGSX' : '_SMSX' ) : '' ); } FFADS.pbjs_bids_back = function() { FFADS.debug( 'PB bids back for initial units' ); FFADS.pbjs_ready = true; if( FFADS.a9_ready ) return sendInitialAdserverRequest(); } FFADS.render_ad = function( ad_unit, div_id = false ) { div_id = div_id || ad_unit; this.debug( 'refreshing ' + ad_unit + ' into #' + div_id ); this.units[ad_unit].instances[div_id].displayed = true; if( this.units[ad_unit].ad_type == 'custom' ) eval( this.units[ad_unit].custom_ads[0].rendering_script ); else googletag.cmd.push( this.request_bids.bind( this, ad_unit, div_id ) ); } FFADS.request_bids = function( ad_unit, div_id = false ) { div_id = div_id || ad_unit;

this.debug( 'requesting bids for ' + ad_unit + ' in #' + div_id );

FFADS.units[ad_unit].instances[div_id].gt_slot = googletag.defineSlot( this.get_unit_path( ad_unit ), this.units[ad_unit].sizes, div_id ).addService( googletag.pubads() ); window['firefly_pbjs_ready' + div_id] = false, window['firefly_a9_ready' + div_id] = false;

pbjs.requestBids( { bidsBackHandler: firefly_pbjs_bids_back_single.bind( null, ad_unit, div_id ), adUnitCodes: [div_id] } );

setTimeout( sendSingleAdserverRequest.bind( FFADS, ad_unit, div_id ), FFADS.prebid_timeout );

apstag.fetchBids( { slots: [ { slotID: div_id, slotName: this.get_unit_path( ad_unit ), sizes: this.units[ad_unit].sizes } ] }, firefly_a9_bids_back_single.bind( null, ad_unit, div_id ) ); };

FFADS.lazy_load_check = function() { FFADS.debug( 'checking lazy load' );

let wnhc_j = jQuery( '#wj-network-header-container' + ( window.innerWidth < 944 ? ', .jw-above-container.stuck:not( .never-stick ) .jw-sticky-container' : '' ) ).last(); let wnhc = wnhc_j.length ? wnhc_j.offset().top + wnhc_j.outerHeight() : 0; FFADS.debug( 'WNHC bottom is ' + wnhc ); let slide_units = document.querySelectorAll( '.sponsor > div.fixed-size.sliding > div' ); for( let i = 0; i < slide_units.length; i++ ) { FFADS.debug( 'checking margin for' ); FFADS.debug( slide_units[i] ); if( ! slide_units[i].firstElementChild ) break; this_unit_j = jQuery( slide_units[i] ); let max_margin = slide_units[i].parentElement.offsetHeight - slide_units[i].firstElementChild.offsetHeight; FFADS.debug( 'max margin is ' + max_margin ); let distance = wnhc - this_unit_j.parent().offset().top; if( distance > max_margin ) { slide_units[i].style.position = 'static'; slide_units[i].style.paddingTop = max_margin + 'px'; } else if( distance < 0 ) { slide_units[i].style.position = 'static'; slide_units[i].style.paddingTop = '0px'; } else if( slide_units[i].style.position != 'fixed' ) { slide_units[i].style.left = jQuery( slide_units[i].firstChild ).offset().left + 'px'; slide_units[i].style.position = 'fixed'; slide_units[i].style.paddingTop = '0px'; slide_units[i].style.top = jQuery( '#wpadminbar' ).outerHeight() + jQuery( '#wj-network-header-container' ).outerHeight() + ( window.innerWidth < 944 ? jQuery( '.jw-above-container.stuck:not( .never-stick ) .jw-sticky-container' ).outerHeight() : 0 ) + 'px'; } } for( let i = 0; i < FFADS.content_order.length; i++ ) { let ad_unit_id = FFADS.content_order[i]; let ad_unit = ad_unit_id.split( '_' )[0]; if( ! FFADS.units[ad_unit].repeating ) { if( checkAlmostVisible( document.getElementById( ad_unit_id ), FFADS.lazy_load_threshold ) ) { FFADS.debug( ad_unit_id + ' is almost visible' ); FFADS.content_order.splice( i, 1 ); // splice first in case render_ad fails FFADS.render_ad( ad_unit, ad_unit_id ); } else break; } else for( var j = 0; j < FF_REP_COUNT; j++ ) { let div_id = 'REP_' + j; if( ! FFADS.units[ad_unit].instances[div_id].displayed ) { if( checkAlmostVisible( document.getElementById( div_id ), FFADS.lazy_load_threshold ) ) { FFADS.debug( div_id + ' is almost visible' ); if( j == FF_REP_COUNT - 1 ) FFADS.content_order.splice( i, 1 ); // splice first in case render_ad fails FFADS.render_ad( ad_unit, div_id ); } else break; } } } if( typeof ffsid != 'undefined' && ! FFADS.spot_im_displayed && checkAlmostVisible( document.getElementById( 'respond' ), FFADS.lazy_load_threshold ) ) { var ffrespond = document.getElementById( 'respond' ); var simscript1 = document.createElement( 'script' ); var simscript2 = document.createElement( 'script' ); simscript1.async = simscript2.async = 'async'; simscript1.type = simscript2.type = 'text/javascript'; simscript1.src = 'https://recirculation.spot.im/spot/' + ffsid; simscript2.src = 'https://launcher.spot.im/spot/' + ffsid; simscript2.dataset.spotimModule = 'spotim-launcher'; simscript2.dataset.postUrl = simscript2.dataset.facebookUrl = ffsurl; simscript2.dataset.postId = ffspid; ffrespond.appendChild( simscript1 ); ffrespond.appendChild( simscript2 ); FFADS.spot_im_displayed = true; } if( window.innerWidth > 943 ) for( let i = 0; i < FFADS.sidebar_order.length; i++ ) { let ad_unit_code = FFADS.sidebar_order[i]; if( checkAlmostVisible( document.getElementById( ad_unit_code ), FFADS.lazy_load_threshold ) ) { FFADS.debug( ad_unit_code + ' is almost visible' ); FFADS.sidebar_order.splice( i, 1 ); FFADS.render_ad( ad_unit_code ); } else break; } } var pbjs = pbjs || {}; pbjs.que = pbjs.que || [ function() { FFADS.debug( 'pbjs.que starting' ); } ]; pbjs.bidderSettings = { standard: { bidCpmAdjustment: function( bidCpm, bid ) { let screen_size = window.innerWidth < 944 ? 'SMSX' : 'LGSX'; let factor = 1.0; if( typeof FFADS.units[bid.adUnitCode].scales[screen_size][bid.bidderCode] != 'undefined' ){ factor -= FFADS.units[bid.adUnitCode].scales[screen_size][bid.bidderCode]; FFADS.debug( 'factor for ' + bid.bidderCode + ' in ' + bid.adUnitCode + ' set to ' + factor + '; bid changed from ' + bidCpm + ' to ' + ( bidCpm *= factor ) ); } return bidCpm; } } }; pbjs.que.push(function() { pbjs.enableAnalytics( { provider: 'roxot', options: { publisherIds: ["556182c7-ac68-4d56-8c66-4b4336e28e5e"] } } ); pbjs.setConfig( { priceGranularity: "high", userSync: { iframeEnabled: true, filterSettings: { iframe: { bidders: ['openx', 'pubmatic'], filter: 'include' } } } } ); FFADS.debug( 'adding units to PB' ); FFADS.debug( FFADS.pb_units ); pbjs.addAdUnits( FFADS.pb_units ); let adUnitCodes = []; for( let ad_unit in FFADS.units ) if( ! FFADS.units[ad_unit].lazy_load ) adUnitCodes.push( ad_unit ); FFADS.debug( 'requesting PB bids for initial units' ); pbjs.requestBids({ bidsBackHandler: FFADS.pbjs_bids_back, adUnitCodes: adUnitCodes }); }); function sendInitialAdserverRequest() { if( FFADS.initialAdserverRequestSent ) return; FFADS.initialAdserverRequestSent = true; FFADS.debug( 'queuing DFP request for initial units' ); googletag.cmd.push(function() { pbjs.que.push(function() { FFADS.debug( 'sending DFP request for initial units' ); let adUnitCodes = []; let dfpAdUnits = []; for( let ad_unit in FFADS.units ) if( ! FFADS.units[ad_unit].lazy_load ) { if( FFADS.units[ad_unit].ad_type == 'hybrid' ) { let pb_bid = pbjs.getHighestCpmBids( ad_unit ); pb_bid = pb_bid.length ? pb_bid[0].cpm : 0; FFADS.debug( 'Prebid bid ' + pb_bid + ' for ' + ad_unit ); if( pb_bid < FFADS.units[ad_unit].custom_ads[0].cpm ) { FFADS.debug( 'Custom code won for ' + ad_unit ); let el = false; if( el = document.getElementById( ad_unit ) ) { el.innerHTML = FFADS.units[ad_unit].custom_ads[0].code; eval( FFADS.units[ad_unit].custom_ads[0].rendering_script ); } else FFADS.debug( 'failed to render custom code in ' + ad_unit + ' since the unit is not on this page' ); continue; } } adUnitCodes.push( ad_unit ); dfpAdUnits.push( FFADS.units[ad_unit].instances[ad_unit].gt_slot ); } pbjs.setTargetingForGPTAsync( adUnitCodes ); apstag.setDisplayBids(); googletag.pubads().refresh( dfpAdUnits ); }); }); } FFADS.debug( 'scheduling DFP request for initial units' ); setTimeout( function() { sendInitialAdserverRequest(); }, FFADS.prebid_timeout ); (function () { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); var googletag = googletag || {}; googletag.cmd = googletag.cmd || [ function() { FFADS.debug( 'googletag.cmd starting' ); } ]; googletag.cmd.push( function() { googletag.pubads().disableInitialLoad(); for( let ad_unit in FFADS.units ) if( ! FFADS.units[ad_unit].lazy_load && ( FFADS.units[ad_unit].ad_type == 'dfp_prebid' || FFADS.units[ad_unit].ad_type == 'hybrid' ) ) { FFADS.debug( 'defining slot for ' + ad_unit + ' #' + ad_unit ); FFADS.units[ad_unit].instances[ad_unit].gt_slot = googletag.defineSlot( FFADS.get_unit_path( ad_unit ), FFADS.units[ad_unit].sizes, ad_unit ).addService( googletag.pubads() ); } googletag.pubads().enableSingleRequest(); firefly_setTargeting(); googletag.pubads().setCentering(true); googletag.enableServices(); } ); function sendSingleAdserverRequest( ad_unit, div_id = false ) { div_id = div_id || ad_unit; if( FFADS.units[ad_unit].instances[div_id].adserverRequestSent ) return; FFADS.units[ad_unit].instances[div_id].adserverRequestSent = true; if( FFADS.units[ad_unit].ad_type == 'hybrid' ) { let pb_bid = pbjs.getHighestCpmBids( div_id ); pb_bid = pb_bid.length ? pb_bid[0].cpm : 0; FFADS.debug( 'Prebid bid ' + pb_bid + ' for #' + div_id ); if( pb_bid < FFADS.units[ad_unit].custom_ads[0].cpm ) { FFADS.debug( 'Custom code won for #' + div_id ); document.getElementById( div_id ).innerHTML = FFADS.units[ad_unit].custom_ads[0].code; eval( FFADS.units[ad_unit].custom_ads[0].rendering_script ); return; } } apstag.setDisplayBids(); pbjs.setTargetingForGPTAsync( [div_id] ); FFADS.debug( 'sending DFP request for ' + ad_unit + ' #' + div_id ); googletag.pubads().refresh( [FFADS.units[ad_unit].instances[div_id].gt_slot] ); } function firefly_pbjs_bids_back_single( ad_unit, div_id = false ) { div_id = div_id || ad_unit; FFADS.debug( 'PB bids back for ' + ad_unit + ' #' + div_id ); window['firefly_pbjs_ready' + ad_unit] = true; if( window['firefly_a9_ready' + ad_unit] ) return sendSingleAdserverRequest( ad_unit, div_id ); } function firefly_a9_bids_back_single( ad_unit, div_id = false ) { div_id = div_id || ad_unit; FFADS.debug( 'A9 bids back for ' + ad_unit + ' #' + div_id ); window['firefly_a9_ready' + ad_unit] = true; if( window['firefly_pbjs_ready' + ad_unit] ) return sendSingleAdserverRequest( ad_unit, div_id ); } !function(a9,a,p,s,t,A,g){if(a[a9])return;function q(c,r){a[a9]._Q.push([c,r])}a[a9]={init:function(){q("i",arguments)},fetchBids:function(){q("f",arguments)},setDisplayBids:function(){},targetingKeys:function(){return[]},_Q:[]};A=p.createElement(s);A.async=!0;A.src=t;g=p.getElementsByTagName(s)[0];g.parentNode.insertBefore(A,g)}("apstag",window,document,"script","//c.amazon-adsystem.com/aax2/apstag.js"); apstag.init({ pubID: 'da224ee9-07c8-4a80-87e4-528df4ac939e', adServer: 'googletag', bidTimeout: FFADS.prebid_timeout }); var a9_slot_arr = []; for( var ad_unit in FFADS.units ) { if( ! FFADS.units[ad_unit].lazy_load ) var a9_slot_arr = a9_slot_arr.concat( [ { slotID: ad_unit, slotName: FFADS.get_unit_path( ad_unit ), sizes: FFADS.units[ad_unit].sizes } ] ); }; FFADS.debug( 'requesting A9 bids for initial units' ); apstag.fetchBids( { slots: a9_slot_arr }, function( bids ) { FFADS.debug( 'A9 bids back for initial units' ); FFADS.a9_ready = true; if( FFADS.pbjs_ready ) return sendInitialAdserverRequest(); } );

Loading...