1<!-- standard - CustomHeader-NoAds-Site.html --> <!DOCTYPE html> 2<html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"> 3<head> 4 <title>User news from the Your Local Guardian</title> 5 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 9 <meta name="OMG-Verify-V1" content="4389-366acdfc-5224-4c07-bb70-f74d8fbfc2db" /> 10 <meta name="robots" content="max-image-preview:large"> 11 <meta name="format-detection" content="telephone=no"> 12 13 <style> 14 .mar-leaderboard--top { 15 display: none; 16 } 17 </style> 18
18<script> 19 window.doNotAdvertise = true; 20 </script>
20 21 <meta property="fb:pages" content="1376517362570665" /> 22 <meta property="fb:pages" content="159565014080374" /> 23 <meta property="fb:pages" content="555784861221112" /> 24 <meta property="fb:pages" content="286819014775973" /> 25 <meta name="title" content="User news from the Your Local Guardian"/> 26 <meta name="description" content="User news from the Your Local Guardian"/> 27 <meta name="keywords" content=""/> 28
29<script type="application/ld+json"> 30 { 31 "@context": "http://schema.org", 32 "@type": "WebPage", 33 "headline": "User | Login Index", 34 "url": "https://www.yourlocalguardian.co.uk/user/login/?redirect_url=/user/account/" 35 } 36</script>
36 37 38 39 40 41 42 43 44 45 <link id="page_stylesheet_vars" href="/resources/responsive-static/build/mds/css/palette-7-sans-serif-vars.css?r=vjoPdzgg" rel="stylesheet" type="text/css"> 46 47 <link href="/resources/responsive-static/build/mds/css/header-footer.css?r=vjoPdzgg" rel="stylesheet" type="text/css"> 48 49 <link id="page_stylesheet" href="/resources/responsive-static/build/mds/css/useridentity.css?r=vjoPdzgg" rel="stylesheet" type="text/css"> 50 51 <link rel="shortcut icon" href="/resources/images/17416459/" type="image/vnd.microsoft.icon"> 52 <link rel="icon" href="/resources/images/17416459/" type="image/vnd.microsoft.icon"> 53
53<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha384-1H217gwSVyLSIfaLxHbE7dRb3v4mYCKbpQvzx0cegeju1MVsGrX5xXxAvs/HgeFs" crossorigin="anonymous"></script>
vendor: 1 bytes, line 53
53
54<script src="https://code.jquery.com/jquery-migrate-3.6.0.js" integrity="sha384-ekzRTCLAU/LqHRBjnphRAxgZZvGdoP+TfkGGsX+tBJpRdM7r2/89ZZNzC/7YTJXX" crossorigin="anonymous"></script>
vendor: 1 bytes, line 54
54
55<script type="text/javascript" src="/resources/shared/responsive-sync/?r=vjoPdzgg"></script>
55 56
57<script type="text/javascript"> 58 data_layer_helper.setIsArticle(false); 59 data_layer_helper.setCookieDomain('.yourlocalguardian.co.uk'); 60 data_layer_helper.setModuleType('Newsquest\Modules\UserIdentityModule'); 61 data_layer_helper.setLocalInfoFolder(''); 62 data_layer_helper.setHomesData('', '', '', 'user'); 63 data_layer_helper.setPrimaryDomain('www.yourlocalguardian.co.uk'); 64 data_layer_helper.setPath('/user/'); 65 data_layer_helper.setGoogleNetworkCode('154725070'); 66 data_layer_helper.setArticleTimestamp(''); 67 data_layer_helper.setPathOverride(); 68 69 70 var extraTags = []; 71 72 extraTags.push('user_level_anonymous'); 73 74 75 var data_layer = { 76 environment: { 77 is_test_site: 'no', 78 is_live_site: 'yes', 79 is_paywall_site: 'no', 80 is_portable_screen: (data_layer_helper.isMobileScreen()) ? 'yes' : 'no', 81 is_desktop_screen: (data_layer_helper.isMobileScreen()) ? 'no' : 'yes', 82 is_mobile_device: data_layer_helper.getMobileDevice(), 83 is_tablet_device: data_layer_helper.getTabletDevice(), 84 server: 'webapp-857f48ddbd-fx8ld', 85 platform: 'Martini' 86 }, 87 site: { 88 id: '35', 89 comments_subscriber_only: 'no', 90 viafoura_site_id: '00000000-0000-4000-8000-e044ec98dd73', 91 comments_use_viafoura: 'yes', 92 centre_id: '2', 93 centre_name: 'South West London', 94 country: 'England', 95 name: 'Your Local Guardian', 96 name_with_prefix_capitalised_possessive: 'The Your Local Guardian\'s', 97 name_with_prefix_lower_possessive: 'the Your Local Guardian\'s', 98 domain: 'www.yourlocalguardian.co.uk', 99 editor_name: 'Simon Murfitt', 100 onboarding_enabled: 'no', 101 onboarding_flow_id: 'onboarding_disabled', 102 allowing_mr_replacement: '', 103 cookie_domain: '.yourlocalguardian.co.uk', 104 uses_cmp: 'yes', 105 short_domain: 'yourlocalguardian', 106 using_piano_id: 'yes', 107 enable_skimlinks: 'yes', 108 skimlinks_domain_id: '613833', 109 disable_newsletters: 'no', 110 is_archant_site: 'no', 111 shc_merchant_name: '', 112 piano_application_group: 'Forest', 113 piano_site_name: 'Your Local Guardian', 114 piano_site_name_possessive: 'Your Local Guardian\'s', 115 piano_site_name_with_prefix_lower: 'the Your Local Guardian', 116 piano_site_name_with_prefix_capitalised: 'The Your Local Guardian', 117 piano_site_name_with_prefix_capitalised_possessive: 'The Your Local Guardian\'s', 118 piano_site_name_with_prefix_lower_possessive: 'the Your Local Guardian\'s', 119 piano_location_primary: 'Sutton', 120 piano_location_primary_possessive: 'Sutton\'s', 121 piano_location_county: 'Surrey', 122 piano_location_county_possessive: 'Surrey\'s', 123 piano_primary_sports_team: '', 124 piano_primary_sports_team_nickname: '', 125 piano_primary_sports_team_sport: '', 126 piano_primary_sports_team_possessive: '', 127 piano_primary_sports_team_nickname_possessive: '', 128 piano_self_service_cancellation_setting: 'None', 129 has_app: 'no', 130 app_provider: '', 131 app_platform: '', 132 app_store_url_ios: '', 133 app_store_url_google_play: '', 134 cloudflare_turnstyle_site_key: '', 135 }, 136 page: { 137 module: 'Newsquest\Modules\UserIdentityModule', 138 referrer: data_layer_helper.getReferrerHostName(), 139 name: '(www) ' + data_layer_helper.getOmniturePath(), 140 title: document.title, 141 path: data_layer_helper.getOmniturePath(), 142 section: data_layer_helper.getPathFragment(0), 143 subsection: data_layer_helper.getPathFragment(1), 144 subsection_2: data_layer_helper.getPathFragment(2), 145 subsection_3: data_layer_helper.getPathFragment(3), 146 reference: qs.get('ref'), 147 layout: '', 148 ad_timing: data_layer_helper.getCookie('adtiming'), 149 template_namespace: 'standard', 150 template: '', 151 colour_scheme: '', 152 layout_template: '', 153 mds_font: 'sans-serif', 154 user_used_app_last_24hours: '', 155 user_used_app_last_7days: '', 156 user_used_app_last_14days: '', 157 mds_colour_palette: 'palette-7', 158 feature_block_a_enabled: ($('[data-name="Feature Article Block A"]').length > 0) ? 'yes' : 'no', 159 feature_block_b_variant: (typeof $('[data-name="Feature Article Block B"]').data('variant') === 'undefined') ? '' : $('[data-name="Feature Article Block B"]').data('variant'), 160 is_article_list: 'no', 161 error_404: '',
162 top_stories_article_count: '', 163 interstitial_dedupe_top_stories: '', 164 interstitial_desktop_height: '', 165 interstitial_mobile_height: '', 166 interstitial_tablet_height: '', 167 interstitial_piano_module_id: '', 168 interstitial_using_recommendations: '', 169 interstitial_recommendation_header: '', 170 interstitial_article_count: '', 171 news_stories_article_count: '', 172 site_newspaper_archive_enabled: 'no', 173 site_newspaper_archive_number_of_pages: '', 174 site_newspaper_archive_start_year: 0, 175 article_originates_from_this_site: '', 176 article_originates_from_site: '', 177 article_originates_from_url: '' 178 }, 179 user: { 180 id: '', 181 first_name: '', 182 advertising_experience: 'Ad-Full', 183 is_privacy_plus: 'no', 184 is_alist: 'no', 185 level: data_layer_helper.getCookie('nq_ul'), 186 seen_cmp: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true' || data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', 187 given_consent: (data_layer_helper.getCookie('_sp_enable_dfp_personalized_ads') === 'true') ? 'yes' : 'no', 188 consent_string: data_layer_helper.getConsentString(), 189 type: 'anonymous', 190 parsely_type: 'Anonymous', 191 chartbeat_type: 'anon', 192 type_as_int: '1', 193 is_logged_in: 'no', 194 is_admin: 'no', 195 is_internal_admin: '', 196 has_full_admin_link_permissions: '', 197 has_registered: (data_layer_helper.getCookie('nqr') !== null) ? 'yes' : 'no', 198 comments_verified: '', 199 comments_verified_date: '', 200 user_email_is_verified: '', 201 user_email_is_verified_date: '', 202 mobile_number_is_verified: '', 203 mobile_number_is_verified_date: '', 204 user_needs_email_verification: '', 205 user_needs_mobile_verification: '', 206 user_too_many_requests: '', 207 age_decade: '0' , 208 gender: 'u' , 209 is_known: data_layer_helper.getCookie('__siren') ? 'yes' : 'no', 210 hash: '', 211 lr_hash_1: '', 212 lr_hash_2: '', 213 lr_hash_3: '', 214 gender: 'u' , 215 user_decade: '0' , 216 subscription_plan: '', 217 subscription_tier: 'null', 218 subscription_plan_and_frequency: ' - ', 219 commented: (data_layer_helper.isArticle() && qs.get('action') === 'success') ? 'yes' : 'no', 220 time_since_last_visit: 'not implemented (maybe drop)', 221 device: data_layer_helper.getDevice(), 222 using_ad_blocker_sourcepoint: data_layer_helper.getSourcepointAdbockStatus(), 223 admin_user_name: '', 224 is_admin_internal: '', 225 is_admin_external: '', 226 card_expired: '', 227 card_will_expire: '', 228 expires_urgency: '', 229 abandoned_cart: 'no', 230 subscription_expired: 'no', 231 is_archant_site: 'no', 232 signed_up_primary_news_newsletter: 'no', 233 signed_up_primary_sport_newsletter: 'no', 234 played_free_puzzles_last_7days: '', 235 played_paid_puzzles_last_7days: '', 236 commenter_badge: '', 237 upper_role: '', 238 }, 239 analytics: { 240 hierachy: 'newsquest,South West London,www.yourlocalguardian.co.uk,' + data_layer_helper.getPathFragment(3).replace(/\//,','), 241 link_filters: 'javascript:,yourlocalguardian.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk,', 242 tracking_block: data_layer_helper.getTrackingFromCookie('tracking_block', ''), 243 tracking_block_index: data_layer_helper.getTrackingFromCookie('tracking_block_index', ''), 244 previous_page_name: data_layer_helper.getCookie('nq_prev_page'), 245 advert_id: '', 246 position_in_list: data_layer_helper.getTrackingFromCookie('o-prop30', ''), 247 featured_content: data_layer_helper.getTrackingFromCookie('o-ref', qs.get('ref')), 248 account: data_layer_helper.getAccount() 249 }, 250 chartbeat: { 251 enabled: "no", 252 id: "", 253 domain: "", 254 sections: '' 255 }, 256 parsely: { 257 enabled: "yes", 258 site_id: "yourlocalguardian.co.uk", 259 type: 'Anonymous' 260 }, 261 piano: { 262 tags: data_layer_helper.getPianoTags({ 263 piano_domain: 'yourlocalguardian', 264 piano_master: '', 265 breaking_news: false, 266 editorial_opinion: false, 267 free_subscriber: false, 268 free_subscriber: false, 269 has_video: false, 270 is_article: false,
271 article_content_level : '', 272 article_content_level_open_access: false, 273 picture_gallery_id: false, 274 user_is_newsquest: false, 275 user_is_entra_authenticated: false, 276 user_logged_in: false, 277 is_live_article: false, 278 why_free_subscriber: '', 279 extra_tags: extraTags, 280 is_covid_headline: false, 281 is_covid_body: false, 282 is_alist: false, 283 audio_provider_bytecast: false 284 } 285 ), 286 custom_variables: { 287 article_length: '', 288 application_group: 'Forest', 289 content_is_editorial_opinion: 'no', 290 base_url: 'https://www.yourlocalguardian.co.uk', 291 full_url: document.location.href, 292 from_discover: (document.referrer === "android-app://com.google.android.googlequicksearchbox/") ? 'yes' : 'no', 293 mds_font: 'sans-serif', 294 mds_colour_palette: 'palette-7', 295 site_name: 'Your Local Guardian', 296 site_name_possessive: 'Your Local Guardian\'s', 297 site_name_with_prefix_capitalised: 'The Your Local Guardian', 298 site_name_with_prefix_lower: 'the Your Local Guardian', 299 site_name_with_prefix_capitalised_possessive: 'The Your Local Guardian\'s', 300 site_name_with_prefix_lower_possessive: 'the Your Local Guardian\'s', 301 location_primary: 'Sutton', 302 location_primary_possessive: 'Sutton\'s', 303 location_county: 'Surrey', 304 location_county_possessive: 'Surrey\'s', 305 site_has_primary_sports_team: 'no', 306 primary_sports_team: '', 307 primary_sports_team_nickname: '', 308 primary_sports_team_sport: '', 309 primary_sports_team_possessive: '', 310 primary_sports_team_nickname_possessive: '', 311 site_id: '35', 312 content_level: '', 313 content_author: '', 314 content_id: '', 315 content_is_article: 'no', 316 content_primary_topic: '', 317 user_seen_consent_modal: ($.cookie('_sp_enable_dfp_personalized_ads') === 'true' || $.cookie('_sp_enable_dfp_personalized_ads') === 'false') ? 'yes' : 'no', 318 site_section: data_layer_helper.getPathFragment(0, true), 319 article_published_yyyy: '', 320 user_played_free_puzzles_last_7days: '', 321 user_played_paid_puzzles_last_7days: '', 322 anon_user_played_free_puzzles_last_7days: data_layer_helper.untrackedPuzzleCheck(), 323 home_delivery_phone_number: '0800 953 0227', 324 content_is_restricted: data_layer_helper.getRestrictedContent('', '', '', ''), 325 day_of_week: data_layer_helper.getDayOfWeek(), 326 user_card_expired: '', 327 user_card_will_expire: '', 328 user_expires_urgency: '', 329 user_used_app_last_24hours: '', 330 user_used_app_last_7days: '', 331 user_used_app_last_14days: '', 332 user_subscription_tier: 'null', 333 user_is_newsquest: 'no', 334 primary_news_newsletter_id: '740', 335 primary_news_newsletter_name: 'the Morning Briefing', 336 primary_news_newsletter_description: 'The latest stories, in your inbox every morning.', 337 primary_sport_newsletter_id: '741', 338 primary_sport_newsletter_name: 'the Sports AM', 339 primary_sport_newsletter_description: 'Keep up to date with the latest sport headlines.', 340 user_signed_up_primary_news_newsletter: 'no', 341 user_signed_up_primary_sport_newsletter: 'no', 342 newsletter_auto_promote: '', 343 newsletter_auto_promote_name: '', 344 newsletter_auto_promote_description: '', 345 newsletter_auto_promote_ID: '', 346 site_has_app: 'no', 347 site_app_store_url_ios: '', 348 site_app_store_url_google_play: '', 349 subsets_experiment_id: '', 350 site_section1: data_layer_helper.getPathFragment(1, true), // GBL required 351 site_newspaper_archive_enabled: 'no', 352 site_newspaper_archive_number_of_pages: '', 353 site_newspaper_archive_start_year: 0, 354 article_originates_from_this_site: '', 355 article_originates_from_site: '', 356 article_originates_from_url: '' 357 }, 358 native_variables: { 359 setContentCreated: '', 360 setContentIsNative: 'no', 361 setContentAuthor: '', 362 setContentSection: data_layer_helper.getPathFragment(0, true) 363 } 364 }, 365 article: { 366 cscore:'', 367 showing_preview: '', 368 is_article: data_layer_helper.isArticle() ? 'yes' : 'no', 369 id : '', 370 length_type: '', 371 character_count: '', 372 author: ''.toLowerCase(), 373 e_var15: ''.toLowerCase(), 374 context: '', 375 content_level: '', 376 content_level_open_access: '', 377 content_level_combined: ',,no', 378 content_is_restricted: data_layer_helper.getRestrictedContent('', '', '', ''), 379 increment: (data_layer_helper.isArticle()) ? '+1' : '', 380 sponsor: '', 381 contributions: '0', 382 is_sponsored: 'no', 383 headline: '', 384 age: data_layer_helper.getArticleAge(), 385 upload_date: '', 386 publish_date: '', 387 update_date: '', 388 rating: '', 389 source: data_layer_helper.getSource(''), 390 subjects: (typeof articleSubjects === 'object') ? articleSubjects.join(',') : '', 391 context: '', 392 grapeshot_context: (typeof gs_channels !== 'undefined') ? gs_channels : '', 393 allow_comments: 'no', 394 total_comments: '', 395 originating_site_id: '', 396 parent_article_site_id: '', 397 parent_article_id: '', 398 originating_article_id: '', 399 parent_originating_site_id: '', 400 is_original_to_site: '', 401 is_cloned: '', 402 parent_article_url: '', 403 use_skimlinks: 'no', 404 content_primary_topic: '', 405 taxonomy: { 406 article_types: '', 407 topics: '', 408 sports: '', 409 sports_teams: '', 410 locations: '', 411 shared_content: '', 412 free_tags: '', 413 farming: '' 414 }, 415 audio: { 416 has_audio: 'no', 417 provider: '' 418 },
419 article_comments_use_viafoura: '' 420 }, 421 homes: { 422 search_bedrooms_minimum: '', 423 search_location: 'user', 424 search_price_minimum: '', 425 search_price_maximum: '', 426 list: '', 427 id: '' 428 }, 429 video: { 430 exists: 'no', 431 auto_play_enabled: data_layer_helper.getAutoPlay('no') 432 }, 433 contributions: { 434 allow_text: '', 435 allow_image: '', 436 user_contributions_number: '0', 437 has_user_contributions: 'no' 438 }, 439 search: { 440 keywords: qs.get('search'), 441 results: '' 442 }, 443 announcements: { 444 category: '' 445 }, 446 config: { 447 google_analytics_id: 'UA-54396341-26', 448 site_template_set: 'standard', 449 path: '/user/', 450 top_level_section: 'user', 451 polar_property_id: 'NA-YOUR-11238089', 452 gallery_show_advert_after: '5', 453 disable_outbrain_with_ad_light: 'no', 454 disable_outbrain: 'no', 455 }, 456 dfp: { 457 is_landing: 'no', 458 module_path: 'user', 459 weather_band: '11-15', 460 weather_summary: 'sun'.toLowerCase(), 461 id: data_layer_helper.getGoogleId(), 462 display_screen: data_layer_helper.isMobileScreen() ? 'mobile' : 'desktop', 463 can_show_billboard: (window.screen.width > 960) ? 'y' : 'n' 464 }, 465 dates: { 466 date: (new Date()).toLocaleDateString('en-GB'), 467 hour: (new Date()).getHours(), 468 day: data_layer_helper.getDayOfWeek(), 469 weekend: ((new Date()).getDay() === 6 || (new Date()).getDay() === 0) ? 'Weekend' : 'Weekday' 470 }, 471 memorials: { 472 contact_phone_number: '', 473 contact_email_address: '', 474 publications: JSON.parse('' || '[]'), 475 user: { 476 id: '', 477 email_verified: 'no', 478 type: '' 479 }, 480 funeral_director: { 481 id: '', 482 person_urn: '' 483 } 484 } 485 } 486 487 data_layer_helper.storeCurrentPageName(data_layer.page.name); 488 489 window.dispatchEvent(new Event('data-layer-loaded')) 490 491 data_layer.piano.custom_variables.user_used_app_last_24hours = 'no'; 492 data_layer.piano.custom_variables.user_used_app_last_7days = 'no'; 493 data_layer.piano.custom_variables.user_used_app_last_14days = 'no'; 494 if (data_layer.article.is_article !== 'yes') { 495 data_layer.piano.custom_variables.site_module = 'Newsquest\Modules\UserIdentityModule'; 496 data_layer.piano.custom_variables.puzzles_landing_page = 'no'; 497 data_layer.piano.custom_variables.puzzles_display_page = 'no'; 498 } 499</script>
499 500
501<script 502 src="https://assets.adobedtm.com/499440d21de9/54b957ecfb7e/launch-98090dfa3d73.min.js" 503 async 504></script>
504 505 506
507<script>"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",r.title="tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();</script>
507 508
509<script type = "text/javascript"> 510( function () { 511 512 window._sp_ = { 513 config: { 514 baseEndpoint: 'https://a02342.yourlocalguardian.co.uk', 515 accountId: 52, 516 targetingParams:{ 517 subscribed: false, 518 privacy: false 519 }, 520 gdpr: { }, 521 events: { 522 onMessageReady: function (message_type) { 523 trackSPEvents('event76'); 524 }, 525 onMessageChoiceSelect: function (message_type, choice_id, choice_type_id) { 526 console.log('message_type: ', message_type); 527 console.log('choice_id: ', choice_id); 528 console.log('choice_type_id: ', choice_type_id); 529 if ('yes' === 'yes') { 530 if (choice_type_id === 12) { 531 trackSPEvents('event83'); //Consent Banner Reject All 532 trackSPEvents('event82'); //Journalism Message Shown 533 } 534 if (choice_type_id === 11) { 535 trackSPEvents('event78'); 536 } 537 if (choice_type_id === 9) { 538 trackSPEvents('event77'); 539 } 540 } else { 541 // these are the second argument in non-gate 542 if (choice_type_id === 12) { 543 trackSPEvents('event77'); 544 } 545 546 if (choice_type_id === 11) { 547 trackSPEvents('event78'); 548 } 549 550 if (choice_type_id === 13) { 551 trackSPEvents('event83'); 552 } 553 } 554 }, 555 onPrivacyManagerActionStatus: function(message_type, status, actionType) { 556 console.log('message_type: ' + message_type); 557 console.log('status: ' + status); 558 console.log('actionType: ' + actionType); 559 if ('yes' === 'yes') { 560 if (actionType === 11) { 561 trackSPEvents('event79'); //Privacy Manager Accept 562 } 563 if (actionType === 9) { 564 trackSPEvents('event68'); //Privacy Manager Redirect 565 } 566 if (actionType === 1) { 567 trackSPEvents('event75'); //Forced tcf String Change 568 } 569 } else { 570 // these are the second argument in non-gate 571 if (actionType === 13) { 572 trackSPEvents('event81'); //Privacy Manager Reject 573 } 574 if (actionType === 11) { 575 trackSPEvents('event79'); //Privacy Manager Accept 576 } 577 if (actionType === 1) { 578 trackSPEvents('event80'); //Privacy Manager Save & Exit 579 } 580 } 581 }, 582 onPMCancel: function (message_type) { 583 console.log('onPMCancel', message_type); 584 trackSPEvents('event84'); //Privacy Manager Back 585 }, 586 } 587 } 588 } 589 590 if (typeof window.__tcfapi === 'function') { 591 window.__tcfapi('addEventListener', 2, function (tcData, success) { 592 console.log('SP: Event Listen:', tcData, success); 593 if (success && tcData.eventStatus === 'useractioncomplete') { 594 setTcfCookie(tcData.purpose.consents, tcData.purpose.legitimateInterests); 595 596 var csnt = 'none'; 597 if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 598 csnt = 'yes'; 599 } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 600 csnt = 'no'; 601 } 602 googletag.cmd.push(function() { 603 // console.log('DFP: Cookie check - setting dfpcsnt to ', csnt); 604 googletag.pubads().setTargeting('dfpcsnt', csnt); 605 }); 606 // ready to start DFP
607 // console.log('PIANO: setting unrestricted via useractioncomplete'); 608 // runPiano('unrestricted'); 609 startAdvertising(tcData.listenerId); 610 611 var e = new Event('launch:cmp:choice-made'); 612 window.dispatchEvent(e); 613 } else if (success && tcData.eventStatus === 'tcloaded') { 614 // tcloaded means a valid TCF v2.0 string is available 615 // console.log('PIANO: setting unrestricted via tcloaded'); 616 // runPiano('unrestricted'); 617 if (tcData.gdprApplies === false) { 618 $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.yourlocalguardian.co.uk', path: '/', expires: 100}); 619 } 620 startAdvertising(tcData.listenerId); 621 622 } else if (success && tcData.eventStatus === 'useractionnotcomplete') { 623 // do nothing - this means the user has not made a choice yet 624 } else if (success && tcData.eventStatus === 'cmpuishown') { 625 // do nothing - this means the CMP UI has been shown 626 } else if (!success) { 627 // $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.yourlocalguardian.co.uk', path: '/', expires: 100}); 628 // startAdvertising(); 629 } else { 630 // console.log('PIANO: setting restricted'); 631 // runPiano('restricted'); 632 } 633 }); 634 } 635 636 637 638 document.addEventListener('click', function (e) { 639 const option = e.target.closest('.gdpr-option-v2'); 640 641 if (!option) return; 642 643 e.preventDefault(); 644 sendEvent76 = false; 645 646 const id = option.dataset.v2Id; 647 const isGate = option.dataset.isGate; 648 649 if (isGate === 'yes') { 650 trackSPEvents('event87'); 651 _sp_.gdpr.loadPrivacyManagerModal(id); 652 } else { 653 trackSPEvents('event77'); 654 _sp_.gdpr.loadPrivacyManagerModal(id); 655 } 656 }); 657 658 function getTcfData() { 659 if (typeof window.__tcfapi !== 'function') { 660 console.warn('TCF API unavailable'); 661 return; 662 } 663 window.__tcfapi('addEventListener', 2, function(data, success) { 664 if (!data.purpose || !data.purpose.consents || !data.purpose.legitimateInterests) { 665 // console.log('DFP: No TCF data found, not setting cookies'); 666 return; 667 } 668 setTcfCookie(data.purpose.consents, data.purpose.legitimateInterests); 669 }, [755]); 670 } 671 getTcfData(); 672 673 function setTcfCookie(data, legitimateInterests) { 674 var consents = []; 675 $.each(data, function(id, consent) { 676 var c = (consent === true) ? 'yes' : 'no'; 677 consents.push(c) 678 }); 679 // console.log('DFP: consents length: ', consents.length); 680 if (consents.length !== 10) { 681 // consents = consents.fill('no', consents.length, 10); 682 for (var i = consents.length; i < 10; i++) { 683 consents[i] = 'no'; 684 } 685 } 686 // console.log('DFP: Found consents to store in cookie:', consents); 687 $.cookie('prev-tcf-v2', consents.join(','), {domain: '.yourlocalguardian.co.uk', path: '/', expires: 100}); 688 689 var consentEvent4 = 'none'; 690 if (typeof data[4] !== 'undefined') { 691 consentEvent4 = data[4] ? 'true' : 'false'; 692 } 693 $.cookie('_sp_enable_dfp_personalized_ads', consentEvent4, {domain: '.yourlocalguardian.co.uk', path: '/', expires: 100}); 694 695 var legitInterest = 'none'; 696 if (legitimateInterests && typeof legitimateInterests[2] !== 'undefined') { 697 legitInterest = legitimateInterests[2] ? 'true' : 'false'; 698 } 699 700 $.cookie('_sp_legitimate_interests', legitInterest , {domain: '.yourlocalguardian.co.uk', path: '/', expires: 100}); 701 } 702 703 var sendEvent76 = true; 704 705 function trackSPEvents(events) { 706 if (events === 'event76' && !sendEvent76) { 707 return; 708 } else if (events === 'event76') { 709 sendEvent76 = false;
710 } 711 712 if (typeof window.s !== 'object') { 713 // console.log('DFP: No window.s object found, trying again in 1 second'); 714 window.setTimeout(function () { trackSPEvents(events)} , 1000); 715 return; 716 } 717 718 // console.log("ADB: Tracking %s", events); 719 // Re-create the Omniture object so the data can be tracked. 720 var s = window.s; 721 722 if (events.indexOf('event70') !== -1) { 723 // console.log('DFP: Events passed, added evars'); 724 s.eVar35 = 'enabled'; 725 s.prop35 = 'enabled'; 726 } 727 728 s.events = events; 729 s.linkTrackEvents = events; 730 s.linkTrackVars = "eVar2,eVar3,eVar4,eVar5,eVar6,evar7,evar8,evar9,eVar16,eVar19,eVar26,eVar35,eVar43,eVar67,prop35"; 731 s.suppressPageView = true; 732 s.tl(true,'o','Ad Block'); 733 } 734 735 function startAdvertising(id) 736 { 737 if (typeof window.doNotAdvertise !== 'undefined' && window.doNotAdvertise === true) { 738 return; 739 } 740 741 // console.log("DFP: Is the page fully loaded?", window.googleReady); 742 if (window.googleReady !== true) { 743 window.setTimeout(function () { 744 // console.log('DFP: Google not fully loaded yet, pausing quarter of a second before trying again'); 745 startAdvertising(id); 746 }, 250); 747 return; 748 } 749 750 // Ensure that we never run this code twice 751 if (window.advertisingStart === true) { 752 return; 753 } 754 // console.log('DFP: Running advertisement'); 755 window.advertisingStart = true; 756 757 var googletag = window.googletag; 758 // init google objects and array 759 (function() { 760 var gads = document.createElement('script'); 761 gads.async = true; 762 gads.type = 'text/javascript'; 763 gads.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js'; 764 var node = document.getElementsByTagName('script')[0]; 765 node.parentNode.insertBefore(gads, node); 766 })(); 767 768 // launch the exco slideshow player 769 launchExcoSlideshow(); 770 771 // load facebook etc 772 loadSocials(); 773 774 // Checking our decision to use headerbidding (shorterned as prebid) is correct 775 // via system logic, and that we have the simplified consent to do so 776 if (usePrebid && $.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
777 var e = new Event('launch:sourcepoint:consentaccepted'); 778 window.dispatchEvent(e); 779 780 // AP code initialisation 781 // the script is loaded via launch, once we have detected a consent signal via the datalayer. 782 fetchAp(); 783 784 var site = 'desktop'; 785 var _site = 'desktop'; 786 787 // load IAS scripts and set up vars 788 (function() { 789 var ias = document.createElement('script'); 790 ias.async = true; 791 ias.type = 'text/javascript'; 792 ias.src = 'https://cdn.adsafeprotected.com/iasPET.1.js'; 793 var node = document.getElementsByTagName('script')[0]; 794 node.parentNode.insertBefore(ias, node); 795 })(); 796 797 // load the prebid script 798 (function() { 799 var pbs = document.createElement('script'); 800 pbs.async = true; 801 pbs.type = 'text/javascript'; 802 pbs.src = 'https://micro.rubiconproject.com/prebid/dynamic/11022.js?group=newsquest'; 803 var node = document.getElementsByTagName('script')[0]; 804 node.parentNode.insertBefore(pbs, node); 805 })(); 806 807 // tell google to actually get the bids from all relevant vendors when loaded 808 googletag.cmd.push(function () { 809 fetchHeaderBids(); 810 }); 811 } 812 813 // Outbrain 814 if ( 815 (window.data_layer.user.advertising_experience === 'Ad-Free' || window.data_layer.config.disable_outbrain === 'yes') || 816 (window.data_layer.user.advertising_experience === 'Ad-Light' && window.data_layer.config.disable_outbrain_with_ad_light === 'yes') 817 ) { 818 // console.log("No Outbrain script loading due to page settings"); 819 } else { 820 // console.log("Loading Outbrain"); 821 var ob = document.createElement('script'); 822 ob.async = true; 823 ob.type = 'text/javascript'; 824 ob.src = 'https://widgets.outbrain.com/outbrain.js'; 825 var node = document.getElementsByTagName('script')[0]; 826 node.parentNode.insertBefore(ob, node); 827 } 828 829 830 // remove the listener 831 if (id !== null) { 832 window.__tcfapi('removeEventListener', 2, function (success) { }, id); 833 } 834 } 835 836 /** 837 * Wait until we have advertising consent to show this advertising 838 * based replacement for the single image on our article pages 839 * This logic is based on excoSlidshowPlayerID that only appears on the page 840 * if a user is NOT a subscriber (including privacy plus) and the page has the 841 * correct information to show it (doesn't have a video, not in sport etc) 842 */ 843 function launchExcoSlideshow() { 844 const slideShowPlayerId = window.excoSlideshowPlayerId; 845 // if we do not have a player id, we do not need to do anything 846 if (!slideShowPlayerId) { 847 return; 848 } 849 850 // this is exco's supplied code, modified for our use 851 (function (d, s, n) { 852 fjs = d.getElementsByTagName(s)[0]; 853 js = d.createElement(s); 854 js.className = n; 855 js.src = '//player.ex.co/player/' + slideShowPlayerId; 856 js.setAttribute('programmatic', 'true'); 857 js.onload = function () { 858 const playerApi = ExCoPlayer.connect(slideShowPlayerId); 859 playerApi.init({}); 860 861 playerApi.on('player-load', function(data) { 862 $('.mar-article-image').remove(); 863 if (window.screen.width > 800) { 864 $('.article-hero').attr('style', 'order: 1'); 865 } 866 window.hide_overlay_for_exco = true; 867 }); 868 }; 869 fjs.parentNode.insertBefore(js, fjs); 870 }(document, 'script', 'exco-player')); 871 } 872 873 function loadSocials() 874 { 875 const socials = [ 876 'https://platform.twitter.com/widgets.js', 877 'https://connect.facebook.net/en_US/all.js#xfbml=1', 878 'https://www.tiktok.com/embed.js', 879 ]; 880
881 socials.forEach((social) => { 882 var script = document.createElement('script'); 883 script.src = social; 884 script.async = true; 885 document.getElementsByTagName('head')[0].appendChild(script); 886 }); 887 } 888 889 890})(); 891 892</script>
vendor: 1 bytes, line 892
892
893<script src="https://a02342.yourlocalguardian.co.uk/unified/wrapperMessagingWithoutDetection.js"></script>
893 894
895<script> 896window.usePiano = true; 897window.selectedOfferId = null; 898window.selectedTermId = null; 899</script>
vendor: 1 bytes, line 899
899
900<script> 901document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; 902var setNptTechAdblockerCookie = function(adblocker) { 903 var d = new Date(); 904 d.setTime(d.getTime() + 60 * 60 * 24 * 2 * 1000); 905 document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/"; 906} 907var script = document.createElement("script"); 908script.setAttribute("async", true); 909script.setAttribute("src", "//www.npttech.com/advertising.js"); 910script.setAttribute("onerror", "setNptTechAdblockerCookie(true);"); 911document.getElementsByTagName("head")[0].appendChild(script); 912</script>
912 913
914<script> 915// window.pdl = window.pdl || {}; 916// window.pdl.requireConsent = 'v2'; 917 918// Store entry point unless it's a user or subscribe page 919// to redirect after subscription 920const excludedPaths = ['/user/', '/subscribe/']; 921 922const shouldExclude = excludedPaths.some(path => 923 window.location.pathname.includes(path) 924); 925 926if (!shouldExclude) { 927 sessionStorage.setItem( 928 'last_piano_page_interacted_with', 929 window.location.pathname 930 ); 931} 932 933tp = window.tp || []; 934 935function runPiano(restrictedMode) { 936 // console.log('Running Piano with restricted mode:', restrictedMode); 937 // tp.push(['init', function() { 938 // console.log('Piano purpose map, before calling setAllPurposes()', tp.consent.getByPurpose()); 939 // }]); 940 // if (restrictedMode === 'restricted') { 941 // // If we're in restricted mode, we need to set some specific parameters 942 // tp.push(['init', function() { 943 // tp.consent.setAllPurposes('opt-out') 944 // }]); 945 // } else { 946 // tp.push(['init', function() { 947 // tp.consent.setAllPurposes('opt-in') 948 // }]); 949 // } 950 // tp.push(['init', function() { 951 // console.log('Piano purpose map, after calling setAllPurposes()', tp.consent.getByPurpose()); 952 // }]); 953 // init Piano ID 954 tp.push(['init', function() { 955 tp.pianoId.init(); 956 }]); 957 958 const isGooglebot = window.isRobot.googleBot(); 959 960 const isArticle = (data_layer.article.is_article === 'yes'); 961 962 const isCl3 = (parseInt(data_layer.article.content_level, 10) === 3); 963 964 if (isGooglebot) { 965 // we don't load Piano from all non-article pages 966 if (!isArticle) { 967 return; 968 } 969 970 // If we are on an article, we do not load piano on CL0, 1, or 2 971 if (!isCl3) { 972 return; 973 } 974 } 975 Object.keys(data_layer.piano.custom_variables).forEach(function (k) { 976 var v = data_layer.piano.custom_variables[k]; 977 978 if (v != '') { 979 tp.push(["setCustomVariable", k, v]); 980 } 981 }); 982 983 Object.keys(data_layer.piano.native_variables).forEach(function (k) { 984 var v = data_layer.piano.native_variables[k]; 985 if (v != '') { 986 tp.push([k, v]); 987 } 988 }); 989 990 tp.push(['setTags', data_layer.piano.tags]); 991 992 (function(src){ 993 var a=document.createElement("script"); 994 a.type = "text/javascript"; 995 a.async=true; 996 a.src=src; 997 var b=document.getElementsByTagName("script")[0]; 998 b.parentNode.insertBefore(a, b) 999 })("//experience.tinypass.com/xbuilder/experience/load?aid=Ggc1k7bpbB"); 1000} 1001 1002// Init Piano 1003const debug = document.cookie 1004 .split('; ') 1005 .find(row => row.startsWith('debug=')) 1006 ?.split('=')[1]; 1007 1008tp.push(["setDebug", debug === '1']); 1009 1010tp.push(["setApplePayMerchantId", 'merchant.nq.subssites.piano']); 1011 1012tp.push(["setUsePianoIdUserProvider", true ]); 1013 1014tp.push(["addHandler", "loginRequired", function(params) { 1015 // If they're already signed in, we don't need to do anything special. 1016 if (tp.user.isUserValid()) { 1017 return; 1018 } 1019 if (typeof window._overridePianoDefault !== 'undefined' && window._overridePianoDefault !== true) { 1020 console.log("TPL Called") 1021 tp.pianoId.show({ 1022 screen: 'login', 1023 displayMode: 'modal', 1024 loggedIn: (data) => { 1025 pianoId.loggedIn(); 1026 }, 1027 loggedOut: () => { 1028 console.log('TP-TJ: user logged out'); 1029 }, 1030 registrationSuccess: () => { 1031 pianoId.registered(); 1032 }, 1033 width: '500px', 1034 height: '460px', 1035 }); 1036 } 1037}]); 1038 1039tp.push(["addHandler", "checkoutSelectTerm", function (termDetails) { 1040 if (typeof termDetails.termId !== 'undefined') { 1041 window.selectedTermId = termDetails.termId; 1042 } 1043}]); 1044 1045tp.push(["addHandler", "showTemplate", function (templateParams) { 1046 showPianoTarget(templateParams); 1047}]); 1048 1049tp.push(["addHandler", "showOffer", function (offerParams) { 1050 window.shownOffer = true; 1051 1052 // Store some data we might need later. 1053 if (typeof offerParams.offerId !== 'undefined') { 1054 window.selectedOfferId = offerParams.offerId; 1055 } 1056 1057 showPianoTarget(offerParams); 1058}]); 1059 1060function handleFullWidthBanner(selector) { 1061 if (selector === '#po-overlay-articlegate-full-width-full-article-scroll-below') { 1062 document.querySelector(selector).classList.add(selector.replace('#', '')); 1063 } 1064 document.querySelector(selector).style.minHeight = "254px"; 1065 document.querySelector('#subscription-content').style.display = 'none'; 1066 document.querySelectorAll('.send-us-your-news-cta').forEach((el) => { el.style.display = 'none'; }); 1067 document.querySelectorAll('.mega-news-block').forEach((el) => { el.style.display = 'none'; }); 1068 1069 const block = document.querySelector(selector); 1070 const containerBlock = block.parentElement; 1071 const containerBlockHeight = 254; // to prevent abrupt jumping 1072 1073 if (!block) { return; } 1074 1075 block.style.display = 'block'; 1076 1077 const blockRect = block.getBoundingClientRect(); 1078 const startTop = blockRect.top + window.scrollY; 1079 const blockHeight = blockRect.height; 1080 const screenWidth = window.screen.width; 1081 1082 let lastState = ''; // 'top', 'bottom', 'default' 1083 1084 function getScrollbarWidth() { 1085 return window.innerWidth - document.documentElement.clientWidth; 1086 } 1087 1088 function updatePosition() { 1089 const scrollY = window.scrollY;
1090 const viewportHeight = window.innerHeight; 1091 const bottomTrigger = startTop + blockHeight - viewportHeight; 1092 1093 let newState = 'default'; 1094 1095 if (scrollY > startTop && screenWidth >= 768) { 1096 newState = 'top'; 1097 } else if (scrollY < bottomTrigger && screenWidth >= 768) { 1098 newState = 'bottom'; 1099 } else if (scrollY < bottomTrigger + 90 && screenWidth < 768) { 1100 newState = 'bottom-mobile'; 1101 } 1102 1103 const scrollbarWidth = getScrollbarWidth(); 1104 1105 if (newState !== lastState) { 1106 switch (newState) { 1107 case 'top': 1108 block.style.position = 'fixed'; 1109 block.style.top = '0'; 1110 block.style.bottom = 'auto'; 1111 block.style.marginLeft = '0'; 1112 block.style.marginRight = '0'; 1113 containerBlock.style.minHeight = `${containerBlockHeight}px`; 1114 break; 1115 1116 case 'bottom': 1117 block.style.position = 'fixed'; 1118 block.style.bottom = '0'; 1119 block.style.top = 'auto'; 1120 block.style.marginLeft = '0'; 1121 block.style.marginRight = '0'; 1122 block.style.width = `calc(100vw - ${scrollbarWidth}px)`; 1123 containerBlock.style.minHeight = 'unset'; 1124 break; 1125 1126 case 'bottom-mobile': 1127 block.style.position = 'fixed'; 1128 block.style.bottom = '90px'; 1129 block.style.top = 'auto'; 1130 block.style.marginLeft = 'calc(-100vw + 100%)'; 1131 block.style.marginRight = 'calc(-100vw + 100%)'; 1132 containerBlock.style.minHeight = 'unset'; 1133 break; 1134 1135 default: 1136 block.style.position = ''; 1137 block.style.top = ''; 1138 block.style.bottom = ''; 1139 block.style.width = `calc(100vw - ${scrollbarWidth}px)`; 1140 block.style.marginLeft = '-100vw'; 1141 block.style.marginRight = '-100vw'; 1142 containerBlock.style.minHeight = 'unset'; 1143 break; 1144 } 1145 1146 lastState = newState; 1147 } 1148 1149 requestAnimationFrame(updatePosition); 1150 } 1151 1152 updatePosition(); 1153 window.addEventListener('resize', updatePosition); 1154} 1155 1156function trackLocation(forceValidLocation = false) { 1157 var currentLocation = window.location.pathname; 1158 1159 let valid = false; 1160 1161 if (currentLocation.indexOf('puzzles') > -1) { 1162 valid = true; 1163 } 1164 1165 if (currentLocation.indexOf('pagesuite') > -1) { 1166 valid = true; 1167 } 1168 1169 var articleMatch = currentLocation.match(/(\d+)\.[^\/]+\/(r\/)?$/); 1170 if (articleMatch != null) { 1171 valid = true; 1172 } 1173 1174 if (forceValidLocation) { 1175 valid = true; 1176 } 1177 1178 if (currentLocation.indexOf('subscribe') > -1) { 1179 valid = false; 1180 } 1181 1182 if (!valid) { 1183 return; 1184 } 1185 1186 $.cookie('last-piano-page-interacted-with', currentLocation, {path: '/', domain: window.data_layer.site.cookie_domain}); 1187} 1188 1189function trackPianoWithNewRelic(templateName) { 1190 if (this.newrelic && typeof this.newrelic === 'object') { 1191 newrelic.setCustomAttribute('user_was_shown_piano_experience', templateName); 1192 } 1193} 1194 1195function handleOfferShow(params) { 1196 console.log('Piano params', params); 1197 1198 // If on the subscription page and the URL has a term ID and offer ID, show the relevant offer. 1199 if (typeof location.pathname !== 'undefined' && location.pathname === '/subscribe/') { 1200 var offerId = location.search.match(/offer_id=([A-Z0-9]+)/); 1201 if (offerId !== null && offerId.length > 1) { 1202 offerId = offerId[1]; 1203 } 1204 var termId = location.search.match(/term_id=([A-Z0-9]+)/); 1205 if (termId !== null && termId.length > 1) { 1206 termId = termId[1]; 1207 } 1208 if (offerId !== null && termId !== null) { 1209 tp.offer.show({'termId': termId, 'offerId': offerId}); 1210 } 1211 } 1212 1213 // we are only tracking 1214 var templateId = params.templateId; 1215 var variantId = params.templateVariantId; 1216 if (params.containerSelector !== '#po-inline-articlegate-fullarticle' && 1217 params.containerSelector !== '#po-overlay-articlegate-full-width-full-article-scroll-below' && 1218 params.containerSelector !== '#po-inline-articlegate-partialarticle' && 1219 params.containerSelector !== '#po-overlay-articlegate-full-width-scroll-below' 1220 ) { 1221 $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { 1222 trackPianoSimplified(params, response.name); 1223 }); 1224 return; 1225 } 1226 1227 1228 $.get('/ws/piano/templatename/', {template_id: templateId, variant_id: variantId}, function (response) { 1229 trackPiano(params, response.name); 1230 }); 1231} 1232 1233function trackPiano(params, templateName) { 1234 trackPianoWithNewRelic(templateName); 1235 1236 if (typeof params.activeMeters === 'string') { 1237 activeMeters = JSON.parse(params.activeMeters); 1238 } else { 1239 activeMeters = params.activeMeters; 1240 } 1241 1242 var s = window.s; 1243 if (!s || !s.pageName) { 1244 // console.log("ADB: Setting s from backup"); 1245 s = window.backupAdobe; 1246 window.s = s; 1247 } 1248 1249 // this would call when CL3 is a hard gate 1250 if (!activeMeters && data_layer.article.content_level === '3') { 1251 s.eVar59 = templateName; 1252 s.eVar58 = data_layer.article.content_level; 1253 s.events = "event91"; 1254 s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar15,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,eVar79,eVar104,eVar106,eVar107,eVar108,eVar118,prop63,list3,events"; 1255 s.linkTrackEvents="event91"; 1256 s.tl(document, 'o', 'Metered Access Notice'); 1257 s.events = ''; 1258 return; 1259 } 1260 1261 if (!activeMeters) { 1262 return; 1263 } 1264 1265 var meterData = activeMeters[0]; 1266 1267 var meterName = meterData.meterName.toLowerCase(); 1268 1269 // track event 5 1270 if (meterName.indexOf('cl1') !== -1 || meterName.indexOf('cl2') !== -1 || meterName.indexOf('cl3') !== -1 || params.containerSelector === '#po-inline-articlegate-partialarticle' || params.containerSelector === '#po-overlay-articlegate-full-width-scroll-below') { 1271 s.eVar58 = data_layer.article.content_level; 1272 s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; 1273 s.eVar59 = templateName; 1274 s.events = "event5"; 1275 s.linkTrackVars="eVar58,eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events"; 1276 s.linkTrackEvents="event5"; 1277 } else { 1278 s.eVar80 = meterData.meterName + ',' + meterData.views + ',' + meterData.totalViews + ',' + meterData.viewsLeft + ',' + meterData.maxViews; 1279 s.eVar59 = templateName; 1280 s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3, events"; 1281 } 1282 s.tl(document, 'o', 'Metered Access Notice'); 1283 s.events = ''; 1284 1285} 1286 1287/** 1288 * Just track the template name in 78 for non-article-interrupts/gates 1289 */ 1290function trackPianoSimplified(params, templateName) 1291{ 1292 trackPianoWithNewRelic(templateName); 1293 1294 var s = window.s; 1295 if (!s || !s.pageName) { 1296 // console.log("ADB: Setting s from backup"); 1297 s = window.backupAdobe; 1298 window.s = s; 1299 } 1300 s.eVar78 = templateName; 1301 s.events = 'event90'; 1302 s.linkTrackEvents="event90"; 1303 s.linkTrackVars="eVar2,eVar3,eVar4,eVar5,eVar6,eVar16,eVar19,eVar25,eVar26,eVar28,eVar43,eVar59,eVar61,eVar62,prop63,eVar80,eVar79,eVar118,list3,eVar78, events"; 1304 s.tl(document, 'o', 'Piano Template'); 1305} 1306 1307function raiseLaunchEvent(name) {
1308 var e = new Event('launch:piano:' + name); 1309 window.dispatchEvent(e); 1310} 1311 1312function removePianoToast() { 1313 setTimeout(() => { 1314 document.getElementById('po-overlay-toast-left').remove() 1315 }, 30000) 1316} 1317 1318function showPianoTarget(params) { 1319 handleOfferShow(params); 1320 trackLocation(); 1321 1322 if ($(params.containerSelector).length > 0) { 1323 const displayType = $(params.containerSelector).attr('data-display'); 1324 1325 if (displayType) { 1326 $(params.containerSelector).addClass(`shown-${displayType}`); 1327 } else { 1328 $(params.containerSelector).addClass('shown').show(); 1329 } 1330 1331 if ($(params.containerSelector).hasClass('piano--block-level') || $(params.containerSelector).hasClass('piano--inside-block')) { 1332 $(params.containerSelector).show(); 1333 } 1334 1335 if ( 1336 params.containerSelector === '#po-overlay-articlegate-full-width-scroll-below' || 1337 params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below' 1338 ) { 1339 handleFullWidthBanner(params.containerSelector); 1340 } 1341 1342 if ($(params.containerSelector) === '#po-inline-subscribe-page') { 1343 $(params.containerSelector).show(); 1344 } 1345 1346 if (['#po-inline-blocksystem-target-e'].includes(params.containerSelector)) { 1347 $('#po-inline-blocksystem-target-e').show(); 1348 $('.piano-promo-container').show(); 1349 } 1350 1351 if (params.containerSelector === '#po-overlay-toast-left') { 1352 removePianoToast() 1353 } 1354 1355 if (params.containerSelector === '#po-overlay-toast-main-navigation') { 1356 removePianoToast() 1357 } 1358 1359 if (params.containerSelector === '#po-inline-articlewall-partialarticle-closable') { 1360 $('#po-inline-articlegate-partialarticle').css('display', 'none'); 1361 } 1362 1363 if (params.containerSelector === '#po-inline-articlewall-fullarticle-closable') { 1364 $('#po-inline-articlegate-fullarticle').css('display', 'none'); 1365 } 1366 1367 if (params.containerSelector === '#po-overlay-articlegate-full-width-full-article-scroll-below-closable') { 1368 $('#po-overlay-articlegate-full-width-full-article-scroll-below').css('display', 'none'); 1369 } 1370 } 1371} 1372 1373tp.push(["addHandler", "checkoutComplete", function(conversion) { 1374 var s = window.s; 1375 s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. 1376 s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. 1377 s.products = "Subscription : Metered Access;" + conversion.termId + ";1;"+conversion.chargeAmount; 1378 s.linkTrackEvents = "event4,purchase"; 1379 s.purchaseID = conversion.termConversionId; 1380 s.pageName = '(www) /subscribe/complete/'; 1381 // wipe out errors 1382 s.eVar31 = ''; 1383 s.linkTrackVars="eVar2,eVar3,eVar5,eVar6,eVar7,eVar8,eVar9,eVar10,eVar15,eVar16,eVar17,eVar18,eVar19,eVar20,eVar22,eVar23,eVar24,eVar25,eVar26,eVar61,eVar62,events,products,purchaseID"; 1384 1385 s.tl(true, 'o', 'Subscription'); 1386 1387 $.cookie('resourceConverted', conversion.rid, {path: '/', domain: window.data_layer.site.cookie_domain}); 1388 $.cookie('pianoConverted', '1', {path: '/', domain: window.data_layer.site.cookie_domain}); 1389 raiseLaunchEvent('checkoutComplete'); 1390 1391 // Clean Session Storage 1392 sessionStorage.removeItem('nq_selected_offer_id'); 1393 sessionStorage.removeItem('nq_selected_term_id'); 1394 sessionStorage.removeItem('nq_adobe_tracking_article_dimensions'); 1395 sessionStorage.removeItem('nq_adobe_tracking_visiting_dimensions'); 1396 1397 // Show Onboarding modal after subscription 1398 const lastPage = sessionStorage.getItem('last_piano_page_interacted_with'); 1399 const baseUrl = lastPage || window.location.href; 1400 1401 const url = new URL(baseUrl, window.location.origin); 1402 url.searchParams.set('show-onboarding', 'yes'); 1403 1404 setTimeout(() => { 1405 window.location.href = url.pathname + url.search; 1406 }, 2000); 1407}]); 1408 1409tp.push(["addHandler", "checkoutPaymentError", function(errorData) { 1410 var s = window.s; 1411 s.pageName = '(www) /subscribe/error/'; 1412 s.eVar31 = errorData.message; 1413 s.tl(true, 'o', 'CheckoutPaymentError'); 1414 1415 raiseLaunchEvent('checkoutPaymentError'); 1416}]); 1417 1418tp.push(["addHandler", "checkoutError", function(errorData) { 1419 var s = window.s; 1420 s.pageName = '(www) /subscribe/error/'; 1421 s.eVar31 = errorData.message; 1422 s.tl(true, 'o', 'CheckoutError'); 1423 raiseLaunchEvent('checkoutError'); 1424}]); 1425 1426tp.push(["addHandler", "startCheckout", function(options) { 1427 sessionStorage.setItem("nq_selected_offer_id", options.offerId); 1428 sessionStorage.setItem("nq_selected_term_id", options.termId); 1429 1430 if (!tp.user.isUserValid()) { 1431 window.location = '/user/create-account/subscribe/'; 1432 return; 1433 } 1434 1435 var s = window.s; 1436 s.eVar2 = '(www) /subscribe/payment/'; 1437 s.pageName = '(www) /subscribe/payment/'; 1438 const storedAdobeArticleDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions'); 1439 const storedAdobeVisitingDimensions = sessionStorage.getItem('nq_adobe_tracking_visiting_dimensions'); 1440 if (storedAdobeVisitingDimensions) { 1441 const storedAdobeVisitingDimensionsObj = JSON.parse(storedAdobeVisitingDimensions); 1442 s.eVar10 = storedAdobeVisitingDimensionsObj.eVar10; 1443 s.eVar22 = storedAdobeVisitingDimensionsObj.eVar22; 1444 s.eVar23 = storedAdobeVisitingDimensionsObj.eVar23; 1445 s.eVar24 = storedAdobeVisitingDimensionsObj.eVar24; 1446 } 1447 if (storedAdobeArticleDimensions) { 1448 const storedAdobeArticleDimensionsObj = JSON.parse(storedAdobeArticleDimensions); 1449 s.eVar10 = storedAdobeArticleDimensionsObj.eVar10; 1450 s.eVar15 = storedAdobeArticleDimensionsObj.eVar15; 1451 s.eVar22 = storedAdobeArticleDimensionsObj.eVar22; 1452 s.eVar23 = storedAdobeArticleDimensionsObj.eVar23; 1453 s.eVar24 = storedAdobeArticleDimensionsObj.eVar24; 1454 s.eVar25 = storedAdobeArticleDimensionsObj.eVar25; 1455 } 1456 // wipe out errors 1457 s.eVar31 = ''; 1458 s.events = ''; 1459 raiseLaunchEvent('startCheckout'); 1460 s.linkTrackVars="eVar10,eVar15,eVar22,eVar23,eVar24,eVar25"; 1461 s.t(); 1462}]); 1463 1464tp.push(["addHandler", "checkoutClose", function(conversion) { 1465 raiseLaunchEvent('checkoutClose'); 1466 1467 // Did they abandon the cart? If so: was anything in their cart?
1468 if (typeof conversion.state === 'undefined' || conversion.state !== 'close') { 1469 return; 1470 } 1471 if (window.selectedOfferId === null || window.selectedTermId === null) { 1472 return; 1473 } 1474 $.post('/ws/piano/abandoned-cart/', {offer_id: window.selectedOfferId, term_id: window.selectedTermId}); 1475}]); 1476 1477tp.push(["addHandler", "meterExpired", function(meterData){ 1478 var msg = "<div><b>meterName:</b> " + meterData.meterName 1479 + " | <b>views:</b> " + meterData.views 1480 + " | <b>totalViews:</b> " + meterData.totalViews 1481 + " | <b>viewsLeft:</b> " + meterData.viewsLeft 1482 + " | <b>maxViews:</b> " + meterData.maxViews 1483 + " | <b>callback:</b> " + meterData.callback + '</div>'; 1484 if ($.cookie('nq-show-piano-viewer') === 'yes') { 1485 $('#piano-meter-value').html(msg); 1486 $('#piano-meter-display').show(); 1487 $('#piano-meter-display-content').append(msg); 1488 } 1489 var cVal = window.location.href; 1490 1491 trackLocation(true); 1492 1493 console.log("Piano Meter Expired:", meterData.meterName); 1494 if (meterData.meterName === 'CL1 Meter') { 1495 console.log("Piano: Setting meter expired cookie"); 1496 $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1497 } 1498 1499 raiseLaunchEvent('meterExpired'); 1500 1501}]); 1502 1503tp.push(["addHandler", "meterActive", function(meterData){ 1504 var msg = "<div><b>meterName:</b> " + meterData.meterName 1505 + " | <b>views:</b> " + meterData.views 1506 + " | <b>totalViews:</b> " + meterData.totalViews 1507 + " | <b>viewsLeft:</b> " + meterData.viewsLeft 1508 + " | <b>maxViews:</b> " + meterData.maxViews 1509 + " | <b>callback:</b> " + meterData.callback + '</div>'; 1510 if ($.cookie('nq-show-piano-viewer') === 'yes') { 1511 $('#piano-meter-value').html(msg); 1512 $('#piano-meter-display').show(); 1513 $('#piano-meter-display-content').append(msg); 1514 } 1515 1516 console.log("Piano Meter running total:", meterData.meterName, meterData.totalViews, meterData.maxViews, meterData); 1517 if (meterData.meterName === 'CL1 Meter' && meterData.totalViews >= meterData.maxViews) { 1518 $.cookie('isMeterExpired', 'yes', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1519 } else { 1520 $.cookie('isMeterExpired', 'no', {path: '/', domain: window.data_layer.site.cookie_domain, expires: 1}); 1521 } 1522}]); 1523 1524 1525 1526runPiano('unrestricted'); 1527 1528</script>
1528 1529 1530 1531 1532 <link rel="apple-touch-icon" href="/resources/images/17416461/"> 1533 <link rel="apple-touch-icon" sizes="72x72" href="/resources/images/17416460/"> 1534 <link rel="apple-touch-icon" sizes="114x114" href="/resources/images/17416462/"> 1535 1536 1537 <!-- Add iconify --> 1538
1538<script src="https://code.iconify.design/1/1.0.7/iconify.min.js" integrity="sha384-jQq64HqdQD5xg0PPkpkCOW3x8Nsfx5UT1qWOpoJxLYy6Ef+5i+8xPoAj/I3B+ZMm" crossorigin="anonymous"></script>
1538 1539</head> 1540<body class="sticky-footer" data-cache-buster="vjoPdzgg" data-template="" data-template-colour="Blue" data-namespace="standard"> 1541 <!-- 1542 ##+ +## ##: `#####. ####### ### ### ###### `#####. ####### ### ,## +##### 1543 +## ###' ## ####### ######## ### ### ###### ####### ######## ### ,## ######: 1544 .## #### ## ### ### ### ### ###### ##, ### ### ### ### ### ,## ##` 1545 ##,#+##:## ### ### ####### ###### #####+ ### ### ####### ### ,## +##### 1546 ####`####+ ### ### ###### ####### #####+ ### ### ###### ### ,## #### 1547 #### .###. '## ##' ### ### ### ,##: ##, '## ##' ### ### ### ### '## +## 1548 :### ### ####### ### `##+ ### ### ##, ####### ### `##+ `####### ######+ 1549 ##: ### ##### ### ### ### ,### ##, ##### ### ### ##### ####+ 1550 1551Developers, designers, testers - interested in working for us? 1552Contact this guy....https://uk.linkedin.com/in/hillsimon 1553--> 1554 1555 1556 <div style="height: 0px"><div id="DFP_out_of_page"></div></div> 1557 1558 <div id="paywallWindowOverlay"></div> 1559 1560 1561 1562 <div id="takeover"> 1563 <div id="martini-config" class="layout"> 1564 <div id="header-content"> 1565 <!-- standard - header-2a.html --> <header id="site-header" class="site-header site-header--2a " > 1566 <div class="site-brand container-inner-width"> 1567 <div class="site-brand__container"> 1568 <a href="/"> 1569 <img src="/resources/images/small_site_logo/" alt="Your Local Guardian" class="site-brand__brand-image"/> 1570 </a> 1571 </div> 1572 <div class="simple-header-top-navigation"> 1573 <div class="simple-header-top-navigation__links"> 1574 1575 <div class="simple-header-top-navigation__links--primary-links header-primary-links"> 1576 1577 1578 1579 <ul class="list-style-none top-nav-overflow"> 1580 <li><a href="/newsletters/" class="mar-btn mar-btn--promo-primary">Newsletters</a></li> 1581 </ul> 1582 1583 </div> 1584 1585 1586 1587 <div class="simple-header-top-navigation__links--classifieds"> 1588 1589 </div> 1590 1591 1592 1593 </div> 1594 1595 <div class="simple-header-top-navigation__links--account"> 1596 1597 <a id="user-login-not-loggedin" href="/user/login/?redirect_url=/user/account/" class="simple-header-top-navigation__user-login mar-btn" title="User Account"> 1598 <div aria-label="User Account Button" id="headerUserAccountButton"> 1599 <svg xmlns="http://www.w3.org/2000/svg " width="14" height="16" viewBox="0 0 10 14" fill="none"> 1600<circle cx="5" cy="3.85718" r="3" fill="black"/> 1601<ellipse cx="5" cy="10.2857" rx="5" ry="2.85714" fill="black"/> 1602</svg> 1603 </div> 1604 </a> 1605 1606 </div> 1607 1608 1609 <button aria-expanded="false" aria-label="Open the menu" class="simple-header-top-navigation__mega-menu-btn primary-nav__menu--more-btn"> 1610 <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M3 6h18M3 12h18M3 18h18"/></svg> 1611 </button> 1612 1613</div> 1614 </div> 1615 <div id="mega-menu" class="mega-menu" style="display: none;"> 1616 <div class="mega-menu__container mega-menu__wrapper"> 1617 <div class="mega-menu__cancel-button"> 1618 <i aria-expanded="true" aria-hidden="true" aria-label="Close the menu" class="mega-menu__cancel-button--icon"> 1619 <span class="iconify" data-icon="eva:close-fill" data-inline="false"></span> 1620 <div>Close</div> 1621 </i> 1622 </div> 1623 1624 1625 1626 1627 <div class="mega-menu__features expanded-sub-nav"> 1628 <div class="mega-menu__features--links"> 1629 1630 <h4 class="prefix mega-menu__features--prefix link-item">Featured newsletters</h4> 1631 1632 <a href="/newsletters/740/" class="col link-item">Morning Briefing</a> 1633 1634 1635 <a href="/newsletters/" class="col link-item">Breaking News Alerts</a> 1636 1637 1638 <a href="/newsletters/2446/" class="col link-item">Crime and Court</a> 1639 1640 1641 <a href="/newsletters/263/" class="col link-item">Crystal Palace News</a> 1642 1643 1644 <a href="/newsletters/741/" class="col link-item">Sports AM</a> 1645 1646 1647 <a href="/newsletters/262/" class="col link-item">Vibe - Your leisure round-up</a> 1648 1649 </div> 1650 <hr class="divider none"> 1651 </div> 1652 1653 1654 <div class="mega-menu__search"> 1655 <form method="get" action="/search/"> 1656 <label class="mega-menu__search--title" for="searchbar-input">Search</label> 1657 <div class="mega-menu__search--bar"> 1658 <input id="searchbar-input" class="searchbar-input" type="text" name="search" placeholder="Search Your Local Guardian"> 1659 <button class="searchbar-btn mira-search-button" type="submit"><span class="iconify" data-icon="fe:search" data-inline="false"></span></button> 1660 </div> 1661 </form> 1662 </div> 1663 1664 <div class="mega-menu__main-list link-list"> 1665 <div class="mega-menu__main-list--list-item"> 1666 <div> 1667 <div> 1668 <a href="/news/"> 1669 <h3><span class="mega-menu__main-list--parent-link">News</span></h3> 1670 </a> 1671 </div> 1672 1673 <div class="mega-menu__main-list--child-links"> 1674 <div class="child-item"> 1675 <a href="/news/croydonnews/">Croydon</a> 1676 </div> 1677 1678 1679 <div class="child-item"> 1680 <a href="/news/richmond-twickenham/">Richmond & Twickenham</a> 1681 </div> 1682 1683 1684 <div class="child-item"> 1685 <a href="/news/suttonnews/">Sutton</a> 1686 </div> 1687 1688 1689 <div class="child-item"> 1690 <a href="/news/wandsworthnews/">Wandsworth</a> 1691 </div> 1692 1693 1694 <div class="child-item"> 1695 <a href="/news/wimbledonnews/">Wimbledon</a> 1696 </div> 1697 1698 1699 <div class="child-item"> 1700 <a href="/news/surrey/">Surrey</a> 1701 </div> 1702 1703 1704 <div class="child-item"> 1705 <a href="/news/young-reporter/">Young Reporter</a> 1706 </div> 1707 </div> 1708 1709 </div> 1710 <div class="divider"></div> 1711 </div> 1712 1713 1714 <div class="mega-menu__main-list--list-item"> 1715 <div> 1716 <div> 1717 <a href="/sport/"> 1718 <h3><span class="mega-menu__main-list--parent-link">Sport</span></h3> 1719 </a> 1720 </div> 1721 1722 <div class="mega-menu__main-list--child-links"> 1723 <div class="child-item"> 1724 <a href="/sport/crystalpalace/">Crystal Palace</a> 1725 </div> 1726 1727 1728 <div class="child-item"> 1729 <a href="/sport/afcwimbledon/">AFC Wimbledon</a> 1730 </div> 1731 1732 1733 <div class="child-item"> 1734 <a href="/sport/suttonunited/">Sutton United</a> 1735 </div> 1736 1737 1738 <div class="child-item"> 1739 <a href="/sport/nonleague/">Non-League Football</a> 1740 </div> 1741 1742 1743 <div class="child-item"> 1744 <a href="/sport/rugby/">Rugby Union</a> 1745 </div> 1746 1747 1748 <div class="child-item"> 1749 <a href="/sport/other_sport/">Other Sport</a> 1750 </div> 1751 1752 1753 <div class="child-item"> 1754 <a href="/sport/national/">UK Sport News</a> 1755 </div> 1756 </div> 1757 1758 </div> 1759 <div class="divider"></div> 1760 </div> 1761 1762 1763 <div class="mega-menu__main-list--list-item"> 1764 <div> 1765 <div> 1766 <a href="/leisure/"> 1767 <h3><span class="mega-menu__main-list--parent-link">What's On</span></h3> 1768 </a> 1769 </div> 1770 1771 <div class="mega-menu__main-list--child-links"> 1772 <div class="child-item"> 1773 <a href="/leisure/local-events/">Local Events</a> 1774 </div> 1775 1776 1777 <div class="child-item"> 1778 <a href="/leisure/london-calling/">London Calling</a> 1779 </div> 1780 1781 1782 <div class="child-item"> 1783 <a href="/leisure/filmandtv/">Film & TV</a> 1784 </div> 1785 1786 1787 <div class="child-item"> 1788 <a href="/leisure/theatre/">Theatre</a> 1789 </div> 1790 1791 1792 <div class="child-item"> 1793 <a href="/leisure/music/">Music</a> 1794 </div> 1795 1796 1797 <div class="child-item"> 1798 <a href="/leisure/food/">Food</a> 1799 </div> 1800 </div> 1801 1802 </div> 1803 <div class="divider"></div> 1804 </div> 1805 1806 1807 <div class="mega-menu__main-list--list-item"> 1808 <div> 1809 <div> 1810 <a href="/offers/"> 1811 <h3><span class="mega-menu__main-list--parent-link">Offers</span></h3> 1812 </a> 1813 </div> 1814 1815 </div> 1816 <div class="divider"></div> 1817 </div> 1818 1819 1820 <div class="mega-menu__main-list--list-item"> 1821 <div> 1822 <div> 1823 <a href="/education/"> 1824 <h3><span class="mega-menu__main-list--parent-link">Education</span></h3> 1825 </a> 1826 </div> 1827 1828 </div> 1829 <div class="divider"></div> 1830 </div> 1831 1832 1833 <div class="mega-menu__main-list--list-item"> 1834 <div> 1835 <div> 1836 <a href="/notices/"> 1837 <h3><span class="mega-menu__main-list--parent-link">Notices</span></h3> 1838 </a> 1839 </div> 1840 1841 <div class="mega-menu__main-list--child-links"> 1842 <div class="child-item"> 1843 <a href="/notices/bereavement-guide/">Bereavement Guide</a> 1844 </div> 1845 </div> 1846 1847 </div> 1848 <div class="divider"></div> 1849 </div> 1850 1851 1852 <div class="mega-menu__main-list--list-item"> 1853 <div> 1854 <div> 1855 <a href="/enewspaper/"> 1856 <h3><span class="mega-menu__main-list--parent-link">E-Newspaper</span></h3> 1857 </a> 1858 </div> 1859 1860 </div> 1861 <div class="divider"></div> 1862 </div> 1863 1864 1865 <div class="mega-menu__main-list--list-item"> 1866 <div> 1867 <div> 1868 <a href="/youngreporter/"> 1869 <h3><span class="mega-menu__main-list--parent-link">Young Reporter</span></h3> 1870 </a> 1871 </div> 1872 1873 </div> 1874 <div class="divider"></div> 1875 </div> 1876 </div> 1877 </div> 1878 1879 <div class="mega-menu__sticky"> 1880 <ul class="list-style-none mega-menu__sticky--list"> 1881 <div class="mega-menu__sticky--primary-links"> 1882 1883 <li><a href="/newsletters/" class="mar-btn mar-btn--promo-primary">Newsletters</a></li> 1884 </div> 1885 <li><a class="mar-nav--promo-link" href="/announcements/public_notices/">Public notices</a></li> <li><a class="mar-nav--promo-link" href="/newsletters/">Newsletters</a></li> <li><a class="mar-nav--promo-link" href="/jobs/">Jobs</a></li> <li><a class="mar-nav--promo-link" href="/advertising/">Book an ad</a></li> <li><a class="mar-nav--promo-link" href="/cars/">Cars</a></li> <li><a class="mar-nav--promo-link" href="/homes/">
1885Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.yourlocalguardian.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 1886 </ul> 1887 </div> 1888</div> 1889 1890</header> 1891 </div> 1892 1893 <div id="redesign-content"> 1894 <div id="module-content" class="content"> 1895 <div class="piano--block-level block-bottom-margin" id="po-inline-banner-top-hero-content"></div> 1896 1897 1898 <!-- standard - PianoIdLogin.html --> <div class="piano-form-container login-page block block-bottom-margin mar-my-5" id="form-container"> 1899 <div id="form-container__header"> 1900 <h1 class="heading login-heading mar-mb-3">Sign in</h1> 1901 <div class="heading-container"> 1902 <p>Not registered?</p> 1903 <a class="mar-btn mar-btn--promo-secondary button-lite" id="create_account" href="/user/create-account/"> 1904 Create an account 1905 </a> 1906 </div> 1907 </div> 1908 <form class="piano-form-container__form" id="login_form" data-redirect-url="/user/account/"> 1909 <div class="form-input"> 1910 <label for="email">Email</label> 1911 <input id="email" type="email" class="piano-form-elements form-control" name="email"> 1912 <span class="form-input__error">Please enter a valid email address</span> 1913 </div> 1914 1915 <div> 1916 <div class="form-input mar-mt-1"> 1917 <label for="password">Password</label> 1918 <div class="password-container"> 1919 <input class="piano-form-elements form-control" id="password" name="password" pattern="[a-z0-9]{8,}" type="password"> 1920 <div id="toggle-password" class="toggle-password"> 1921 <img class="iconify eye-open" src="/resources/responsive-static/images/password_toggle.svg" alt="Toggle password o
1921pen" /> 1922 <span display="none" height="25" class="iconify eye-closed" data-icon="formkit:eyeclosed" data-inline="false"></span> 1923 </div> 1924 <span class="form-input__error mar-mb-1">Password must be at least 8 characters long</span> 1925 </div> 1926 </div> 1927 <div class="row-flex mar-mt-2"> 1928 <div class="form-check"> 1929 <input type="checkbox" name="remember_me" id="remember_me" checked> 1930 <label class="label-light" for="remember_me">Keep me logged in</label> 1931 </div> 1932 <a href="/user/login/forgotten-password/" class="forgot-password">Forgot password?</a> 1933 </div> 1934 </div> 1935 <button id="login_sign_in" type="submit" class="cta-button mar-btn mar-btn--light mar-mt-2" aria-label="Sign In">Sign in</button> 1936 <div class="socials mar-mt-2"> 1937 <div class="social-text mar-mb-2">or sign in with a social account:</div> 1938 <div class="socials__button-container"> 1939 <button class="facebook-button social-button" type="button" id="facebook_button" aria-label="Sign in with a Facebook account"> 1940 <img src="/resources/responsive-static/mds/images/icons/icon-facebook.svg" height="50" width="50" alt="Facebook Logo"> 1941 </button> 1942 <button class="google-button social-button" type="button" id="google_button" aria-label="Sign in with a Google account"> 1943 <img src="/resources/responsive-static/mds/images/icons/icon-google.svg" height="50" width="50" alt="Google Logo"> 1944 </button> 1945 </div> 1946 </div> 1947 </form> 1948</div> 1949 </div> 1950 </div> 1951 1952 <footer class="site-footer" aria-label="site-footer"> 1953 <div class="container-inner-width"> 1954 <div class="links-grid" aria-label="site-footer-links"> 1955 <section class="get-in-touch-section"> 1956 <h2>Get in Touch</h2> 1957 <a href="/contact/">Contact Us</a><a href="/advertising/">Advertise</a><a href="/homedelivery/">Newspaper Home Delivery</a><a href="/send-us-your-news/">Send Us Your News</a><a href="/submit-an-event/">Add Your Event For Free</a><a href="/publications/">Our Publications</a> 1958 </section> 1959 <section class="follow-us-section"> 1960 <h2>Follow Us</h2> 1961<a 1962 class="footer__social-media--link" 1963 href="https://www.facebook.com/yourlocalguardian" 1964 title="Your Local Guardian" 1965 role="link" 1966 data-media-type="facebook" 1967 > 1968 <i class="footer__social-media--icon iconify"></i> 1969 Your Local Guardian 1970 </a> 1971 1972 1973 <a 1974 class="footer__social-media--link" 1975 href="http://www.twitter.com/localguardian" 1976 title="@localguardian" 1977 role="link" 1978 data-media-type="twitter" 1979 > 1980 <i class="footer__social-media--icon iconify"></i> 1981 @localguardian 1982 </a> 1983 </section> 1984 <section class="useful-links-section"> 1985 <h2>Useful Links</h2> 1986 <div class="useful-links"> 1987 <section> 1988 <a href="/subscribe/">Subscriptions</a><a href="/newsletters/">Newsletters</a><a href="/notices/">Death Notices</a><a href="/announcements/">Announcements</a><a href="/announcements/public_notices/">Public Notices</a> 1989 </section> 1990 <section> 1991 <a href="https://www.exchangeandmart.co.uk/" target="_blank">Exchange and Mart</a><a href="https://newsquest.newsprints.co.uk/" target="_blank">Photo Sales</a><a href="http://leap.croydonguardian.co.uk" target="_block">Leap</a><a href="/archive/" style="display: inline-block">Archive</a> | <a href="/misc/sitemap/" style="display: inline-block">Sitemap</a><a href="/gdpr/" class="gdpr-option-v2" data-v2-id="1170586" data-is-gate="yes" rel="nofollow">
1991Manage Consent</a><a href="https://www.newsquest.co.uk/legal/ai-notice/" target="_blank">AI Notice</a> 1992 </section> 1993 </div> 1994 </section> 1995 <section class="ipso-terms"> 1996 <img class="ipso-logo" src="/resources/responsive-static/mds/images/ipso-regulated.png" alt="IPSO Regulated image" /> 1997 <p class="ipso-copy">This website and associated newspapers adhere to the Independent Press Standards Organisation's 1998 Editors' Code of Practice. If you have a complaint about the editorial content which relates to 1999 inaccuracy or intrusion, then please <a class="footer__ipso-terms--link" href="/contact"> 2000 contact the editor here</a>. 2001 If you are dissatisfied with the response provided you can 2002 <a class="footer__ipso-terms--link" href="https://www.ipso.co.uk/contact-us/" target="_block">contact IPSO here</a></p> 2003 </section> 2004 </div> 2005 <div class="notice" aria-label="site-footer-notice"> 2006 <img src="/resources/responsive-static/mds/images/newsquest.png" alt="Newsquest" style="width: 193px"/> 2007 <p><strong>© 2001-2026. The Your Local Guardian</strong> is owned and operated by Newsquest Media Group Ltd, an audited local newspaper network.</p> 2008 <p>Visit <a href="https://www.newsquest.co.uk/" target="_blank">newsquest.co.uk</a> to view our <a href="https://www.newsquest.co.uk/our-policies/" target="_blank">policies</a>, <a href="https://www.newsquest.co.uk/legal/" target="_blank" >terms</a> and <a href="https://www.newsquest.co.uk/legal/" target="_blank" >legal agreements</a>.</p> 2009 <p>The Echo Building, 18 Albert Road, Bournemouth, England BH1 1BZ. Registered in England & Wales | 01676637</p> 2010 </div> 2011 </div> 2012</footer> 2013 2014 2015 <div id="fb-root"></div> 2016 2017 2018 </div> 2019 </div> 2020 2021 2022 2023 <div class="mar-modal-container mar-modal-container--animate mar-modal-container--animate-out visually-hidden"> 2024 <div class="mar-modal-overlay" data-uses-js="close-modal"></div> 2025 2026 <div aria-label="Pop up dialog" class="mar-modal" tabindex="-1" role="dialog"> 2027 <div class="mar-modal__header"> 2028 <h3 class="mar-modal__title">Modal headline</h3> 2029 2030 <div class="mar-modal__close" data-uses-js="close-modal"> 2031<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 2032 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.60714 6L11.6518 10.0446C11.7589 10.1518 11.8438 10.2768 11.9062 10.4196C11.9688 10.5625 12 10.7143 12 10.875C12 11.1786 11.8884 11.442 11.6652 11.6652C11.442 11.8884 11.1696 12 10.8482 12C10.6875 12 10.5357 11.9688 10.3929 11.9062C10.25 11.8438 10.1339 11.7589 10.0446 11.6518L6 7.60714L1.95536 11.6518C1.84821 11.7589 1.72321 11.8438 1.58036 11.9062C1.4375 11.9688 1.28572 12 1.125 12C0.821427 12 0.558037 11.8884 0.334821 11.6652C0.111606 11.442 0 11.1786 0 10.875C0 10.7143 0.0312497 10.5625 0.09375 10.4196C0.15625 10.2768 0.241071 10.1518 0.348214 10.0446L4.36607 6L0.348214 1.95536C0.241071 1.84821 0.15625 1.72768 0.09375 1.59375C0.0312497 1.45982 0 1.3125 0 1.15179C0 0.830355 0.111606 0.558037 0.334821 0.334821C0.558037 0.111606 0.821427 0 1.125 0C1.28572 0 1.4375 0.0312497 1.58036 0.09375C1.72321 0.15625 1.84821 0.241071 1.95536 0.348214L6 4.39286L10.0446 0.348214C10.1339 0.241071 10.25 0.15625 10.3929 0.09375C10.5357 0.0312497 10.6875 0 10.8482 0C11.1696 0 11.442 0.111606 11.6652 0.334821C11.8884 0.558037 12 0.830355 12 1.15179C12 1.3125 11.9688 1.45982 11.9062 1.59375C11.8438 1.72768 11.7589 1.84821 11.6518 1.95536L7.60714 6Z" fill="#9DA0A4"/> 2033</svg> 2034 2035 2036 <span>Close</span> 2037 </div> 2038 </div> 2039 2040 <div class="mar-modal__body">Automatically injected HTML goes here</div> 2041 2042 <div class="mar-modal__actions"> 2043<!-- standard - Buttons.html --> 2044 2045<button 2046 type="button" 2047 data-uses-js="modal-submit" 2048 2049 class=" mar-btn 2050 mar-btn--light 2051 mar-btn--md 2052 2053 2054 " 2055> 2056 Submit 2057</button> 2058 2059 2060 2061 2062<!-- standard - Buttons.html --> 2063 2064<button 2065 type="button" 2066 data-uses-js="modal-cancel" 2067 2068 class=" mar-btn 2069 mar-btn--outline 2070 mar-btn--md 2071 2072 2073 " 2074> 2075 Cancel 2076</button> 2077 2078 2079 2080 </div> 2081 </div> 2082</div> 2083 2084</body> 2085 2086<div id="outbrain-holder"> 2087 <div id="DFP_standard_mpu_3"></div> 2088 <div id="DFP_standard_mpu_4"></div> 2089 <div id="DFP_standard_mpu_5"></div> 2090 <div id="DFP_standard_mpu_6"></div> 2091 <div id="DFP_standard_mpu_7"></div> 2092</div>
2093<script> 2094 2095const elementToObserve = document.querySelector("#outbrain-holder"); 2096 2097// create a new instance of `MutationObserver` named `observer`, 2098// passing it a callback function 2099const observer = new MutationObserver(function(e) { 2100 $.each(e, function(j, obs) { 2101 $.each(obs.removedNodes, function (i, node) { 2102 var id = $(node).attr('id'); 2103 addAdSlot(id, id.replace('DFP_', '')); 2104 }); 2105 }); 2106}); 2107 2108// call `observe()` on that MutationObserver instance, 2109// passing it the element to observe, and the options object 2110observer.observe(elementToObserve, {subtree: true, childList: true}); 2111</script>
2111 2112
2113<script> 2114window.domComplete = performance.now(); 2115</script>
2115 2116
2117<script type="text/javascript"> 2118path = document.location.href.split("/"); 2119var prop30 = qs.get('lp'); 2120var prop43 = qs.get('ref'); 2121var pType="Newsquest\Modules\UserIdentityModule" 2122 2123if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { 2124 pType = 'ArticleModule'; 2125} 2126for(x=4; x<7; x++) 2127{ 2128 if (typeof path[x] == 'undefined') 2129 { 2130 path[x] = ''; 2131 } 2132 if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) 2133 { 2134 path[x] = path[x-1]; 2135 } 2136 else 2137 { 2138 path[x] = path[x-1] + "/" + path[x]; 2139 } 2140 path[x] = path[x].replace(/\/undefined/g,""); 2141} 2142sitename = path[2].split("."); 2143 2144pathN= unescape(document.location.pathname.toString()); 2145matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); 2146detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); 2147if (detailMatches !== null && detailMatches.length > 1) 2148{ 2149 matches = detailMatches; 2150} 2151 2152if (matches !== null && matches.length > 1) 2153{ 2154 var subfolder = ''; 2155 path[3] = 'li'; 2156 path[4] = 'li/'+subfolder; 2157 path[5] = 'li/'+subfolder+'/'+matches[1]; 2158 path[6] = 'li/'+subfolder+'/'+matches[1]; 2159} 2160if (pathN === '/') 2161{ 2162 path[3] = 'homepage'; 2163 path[4] = 'homepage'; 2164 path[5] = 'homepage'; 2165 path[6] = 'homepage'; 2166} 2167 2168 2169function filterArray(arr) { 2170 var retArr = []; 2171 $.each(arr, function(i, part) { 2172 if (part !== '') { 2173 retArr.push(part); 2174 } 2175 }); 2176 2177 return retArr; 2178} 2179</script>
2179 2180 2181
2182<script type="text/javascript"> 2183var known = $.cookie('__siren') ? '1' : '0' ; 2184</script>
2184 2185
2186<script type="text/javascript"> 2187 2188var known = $.cookie('__siren') ? '1' : '0' ; 2189var ref = document.referrer; 2190var parser = document.createElement('a'); 2191parser.href = ref; 2192 2193// values in the below MUST be strings 2194var targeting = { 2195 'context': '', 2196 2197 'domain': 'www.yourlocalguardian.co.uk', 2198 'isLanding': 'no', 2199 'top_path': 'user', 2200 'weather': 'sun'.toLowerCase(), 2201 'jbsjs': ''.toLowerCase(), 2202 'site_search': '', 2203 'bmd_cat': '', 2204 'wt': '11-15', 2205 'cmpid': qs.get('cmpid'), 2206 'refdm': parser.hostname, 2207 'k': known, 2208 'g': 'u' , 2209 'a': '0' , 2210 'topic': '', 2211 'publication': '', 2212 'primary_tag_future_use': '', 2213 'site': (isMobile()) ? 'mobile': 'desktop', 2214 'r': data_layer.user.subscription_plan !== '' 2215 ? '2' // 2 = subscribed 2216 : data_layer.user.is_logged_in == 'yes' 2217 ? '1' // 1 = registered 2218 : '0', // 0 = anonymous 2219}; 2220 2221if (!usePrebid) { 2222 targeting.adrq = 'adl'; 2223} 2224 2225if (data_layer.video.exists === 'yes') { 2226 targeting.ptype = 'video'; 2227} 2228 2229if ($.cookie('isMeterExpired') === 'yes' && window.data_layer.article.is_article) { 2230 var articleContentLevel = parseInt(window.data_layer.article.content_level, 10) || 0; // account for NaN 2231 if (articleContentLevel !== 0 && window.data_layer.article.content_level_open_access === 'no') { 2232 targeting.ao = 'y'; 2233 } 2234} 2235 2236if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 2237 targeting.dfpcsnt = 'yes'; 2238} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 2239 targeting.dfpcsnt = 'no'; 2240} else { 2241 targeting.dfpcsnt = 'none'; 2242} 2243 2244if (typeof MobileDetect !== "undefined") { 2245 targeting.canbb = (window.screen.width > 960) ? 'y' : 'n'; 2246} 2247 2248if (typeof module_targeting === "object") { 2249 targeting = addToTargeting(targeting, module_targeting); 2250} 2251 2252// $.each(apData, function (k, v) { 2253// targeting[k] = v; 2254// }); 2255 2256// if (typeof gs_channels !== 'undefined') { 2257// targeting.gs_channels = gs_channels; 2258// } 2259 2260targeting = addToTargeting(targeting, data_layer_helper.homesData); 2261 2262targeting.article_id = ''; 2263var googleSiteName = 'www.yourlocalguardian.co.uk'; 2264var googlePath = '/user/'; 2265 2266var googleNetworkCode = 154725070; 2267 2268var googleChildNetworkCode = 22694024870; 2269var googleId = '/'+googleNetworkCode + ',' + googleChildNetworkCode + '/' + googleSiteName+googlePath; 2270 2271if (googleId.charAt(googleId.length - 1) === '/') { 2272 googleId = googleId.slice(0, -1); 2273} 2274 2275var googletag = googletag || {}; 2276googletag.cmd = googletag.cmd || []; 2277 2278googletag.cmd.push(function () { 2279 var _YB = _YB || { 2280 ab: function () { 2281 return _YB.dool ? "b" : "a" + Math.floor(Math.random() * 10); 2282 }, 2283 dool: Math.random() >= 0.1, 2284 }; 2285 var yb_ab; 2286 if (Math.random() <= 0.9) { 2287 yb_ab = _YB.ab(); 2288 } else { 2289 yb_ab = "c"; 2290 } 2291 googletag.pubads().setTargeting("yb_ab", yb_ab); 2292}); 2293 2294googletag.cmd.push(function() { 2295 googletag.pubads().set("adsense_background_color", "FFFFFF"); 2296 googletag.pubads().setTargeting('rfs', "0"); 2297 $.each(targeting, function (key, value) { 2298 2299 // No real value so exclude 2300 if (value === 0 || value === '' || value === null) { 2301 return; 2302 } 2303 googletag.pubads().setTargeting(key, value); 2304 }); 2305 2306}); 2307 2308if (isMobile() && '' === 'top') { 2309 $('.desktop-standard-leaderboard').remove(); 2310 $('.mobile-top-leaderboard').show(); 2311 $('#DFP_top_leaderboard_mobile').attr('id', 'DFP_top_leaderboard'); 2312} else { 2313 $('.mobile-top-leaderboard').remove(); 2314} 2315// Ads 2316var adUnits = []; 2317 2318hideAdsByScreensize(); 2319 2320if (blackListAds.length > 0) { 2321 removeBlacklistAds(blackListAds); 2322} 2323 2324$.each(unfilteredAdUnits, function (i, unit) { 2325 removeWhitelistAds(unit); 2326}); 2327 2328// set up a holder for all the adverts so we can do things with them later 2329var dfpHolder = {}; 2330// the set up code 2331googletag.cmd.push(function() { 2332 $.each(adUnits, function(i, data) { 2333 2334 // check if the dom exists 2335 if ($('#'+data.domName).length === 0) { 2336 return; 2337 } 2338 2339 var dfp = null; 2340 2341 if (data.slotType === 'standard') 2342 { 2343 // get the correct sizes, using the alternate_sizes if they exist and we are on a mobile site 2344 var sizes = data.sizes; 2345 if (data.alternate_mobile_size && isMobile()) { 2346 sizes = data.alternate_mobile_size; 2347 } 2348 // push this ad slot through 2349 dfp = googletag.defineSlot(googleId, sizes, data.domName) 2350 .addService(googletag.pubads()) 2351 .setTargeting("position", data.positionName) 2352 .setCollapseEmptyDiv(data.collapseContainer); 2353 // check if we have an array of targets, and assign them as a companion if we do 2354 if (data.targets instanceof Array && data.targets.length > 0 ) { 2355 dfp.setTargeting('companion', data.targets); 2356 } 2357 2358 } 2359 else if (data.slotType === 'outofpage') 2360 { 2361 dfp = googletag.defineOutOfPageSlot(googleId, data.domName) 2362 .addService(googletag.pubads()) 2363 .setTargeting("position", data.positionName) 2364 .setCollapseEmptyDiv(data.collapseContainer); 2365 // check if we have an array of targets, and assign them as a companion if we do 2366 if (data.targets instanceof Array && data.targets.length > 0 ) { 2367 dfp.setTargeting('companion', data.targets); 2368 } 2369 } 2370 2371 // store 2372 dfpHolder[data.domName] = dfp; 2373 2374 }); 2375 2376 if (adLight === true) { 2377 googletag.pubads().setCategoryExclusion('adlight'); 2378 // var adlightexplanation = '<div class="adlight-explanation">I\'m a subscriber <a href="#" class="adlight-explanation-link">Why am I seeing this advert?</a></div>'; 2379 // if ($('#DFP_premium_mpu').length > 0) { 2380 // $('#DFP_premium_mpu').before(adlightexplanation); 2381 // } 2382 2383 // if ($('#DFP_standard_mpu_1').length > 0) { 2384 // $('#DFP_standard_mpu_1').before(adlightexplanation); 2385 // } 2386 2387 // var imageIds = [11497497, 11497535, 11497536, 11497541, 11497542, 11497545, 11497546, 11497547]; 2388 // var imageId = imageIds[Math.floor(Math.random() * imageIds.length)]; 2389 // $('.adlight-explanation-link').click(function(e) { 2390 // e.preventDefault(); 2391 // $('#adlight-explanation-modal-image').attr('src', '/resources/images/' + imageId + '/').show(); 2392 // $('#adlight-explanation-modal').modal(); 2393 // }); 2394 } 2395 2396 // send the request 2397 googletag.pubads().enableSingleRequest(); 2398 2399 googletag.enableServices(); 2400 2401 googletag.pubads().addEventListener('slotVisibilityChanged', function(event) { 2402 if (event.slot.getResponseInformation().creativeTemplateId === 828288 || 2403 event.slot.getResponseInformation().creativeTemplateId === 12383216 ) { 2404 console.log('DFP: Magic template id detected, not refreshing'); 2405 return; 2406 } 2407 var slotName = ''; 2408 $.each(dfpHolder, function (a, e) { 2409 if (e == event.slot) { 2410 slotName = a; 2411 } 2412 }); 2413 if (typeof window.advertisingTimer !== 'undefined') { 2414 var perc = event.inViewPercentage; 2415 window.advertisingTimer.timer(slotName, perc); 2416 } 2417 }); 2418}); 2419 2420// the display code 2421$.each(adUnits, function(i, data) { 2422 2423 // check if the dom exists 2424 if ($('#'+data.domName).length === 0) { 2425 return; 2426 } 2427 2428 if (data.domName === 'DFP_interstitial_mpu') { 2429 if (!inter.checkVisit()) { 2430 return; 2431 } 2432 } 2433 2434 // are we manually loading it? 2435 if ($('#'+data.domName).attr('data-manual-loading') === "yes") { 2436 return; 2437 } 2438 // for mobile, we check if the dom element has the data-delay-loading attribute set to "1" 2439 else if ($('#'+data.domName).attr('data-delay-loading') === "yes") { 2440 2441 // load it 2442 $('#'+data.domName).appear(); 2443 $(document.body).on('appear', '#'+data.domName, function(e, allElement) { 2444 2445 // don't call it many times 2446 if ($(this).attr('data-processed') === 'yes') { 2447 return; 2448 } 2449 2450 $(this).attr('data-processed', 'yes'); 2451 2452 // display the google ad 2453 googletag.display(data.domName); 2454 googletag.pubads().refresh([dfpHolder[data.domName]]); 2455 }); 2456 return; 2457 } 2458 googletag.cmd.push(function() { 2459 googletag.display(data.domName); 2460 }); 2461}); 2462window.googleComplete = performance.now(); 2463window.googleReady = true; 2464 2465// METHODS 2466function addToTargeting(targeting, data) { 2467 if (!data) { 2468 return targeting; 2469 } 2470 $.each(data, function (key, value) { 2471 if (!value) { 2472 return; 2473 } 2474 targeting[key] = value; 2475 }); 2476 return targeting; 2477} 2478 2479function addAdSlot(slotName, slot, initHidden) { 2480 console.log("Add ad slot called for %s %s", slotName, slot); 2481 // check if item already exists 2482 if (typeof window.dfpHolder[slotName] !== 'undefined') { 2483 return; 2484 } 2485 2486 if (window.adLight === true) { 2487 return; 2488 } 2489 window.googletag.cmd.push(function() { 2490 var dfp = googletag.defineSlot(window.googleId, [[300,250]], slotName) 2491 .setTargeting('position', [slot]) 2492 .addService(googletag.pubads()); 2493 window.dfpHolder[slotName] = dfp; 2494 2495 if (!initHidden) { 2496 googletag.pubads().refresh([dfp]); 2497 2498 return; 2499 } 2500 }); 2501} 2502 2503function hideAdsByScreensize() { 2504 if (window.screen.width < 728 && $('#BlockArticleContainer').length > 0) { 2505 if ('35' === '1147') { 2506 $('#DFP_out_of_page').remove(); 2507 } else { 2508 $('#DFP_premium_mpu').remove(); 2509 } 2510 $('#DFP_on_scroll').remove(); 2511 } else if (window.screen.width < 728 && 2512 ( $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='9']").length > 0 || 2513 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='12']").length > 0 || 2514 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='18']").length > 0 || 2515 $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='24']").length > 0 ) 2516 ) { 2517 const adElement = document.querySelector('#high_vis_container'); 2518 $('.omnicard[data-position="5"]').after(adElement); 2519 } 2520 2521 if ('35' === '1147' && window.screen.width > 450) { 2522 $('#DFP_bottom_leaderboard').remove(); 2523 } 2524 2525 if ('35' === '1147' && window.screen.width < 728) { 2526 $('#DFP_top_leaderboard').remove(); 2527 } 2528 2529 if ('35' === '1147') { 2530 $('#DFP_teads').remove(); 2531 $('#DFP_out_of_page').remove(); 2532 } 2533 2534 if ($('#comments-in-page').length === 1 && window.screen.width > 450) { 2535 $('#DFP_top_leaderboard').parent().remove(); 2536 $('#DFP_bottom_leaderboard').parent().remove(); 2537 // $('#DFP_standard_mpu_1').parent().remove(); 2538 } 2539} 2540 2541function removeBlacklistAds(blackListAds) { 2542 $.each(blackListAds, function(i, name) { 2543 removeAdContainer(name); 2544 }); 2545} 2546 2547function removeWhitelistAds(unit) { 2548 // VAST (video) ad units never get displayed in here. 2549 if (unit.isVast) { 2550 return; 2551 } 2552 2553 // if we have an ad-light experience 2554 if (whiteList === true) { 2555 if (typeof whiteListAds[unit.positionName] === 'undefined') { 2556 removeAdContainer(unit.domName) 2557 return; 2558 } 2559 } 2560 2561 adUnits.push(unit); 2562} 2563 2564function removeAdContainer(name) { 2565 const element = document.getElementById(name); 2566 // doesn't exist? exit 2567 if(!element) { 2568 return; 2569 } 2570 2571 const parent = element.parentElement; 2572 if (parent && parent.classList.contains('block-bottom-margin')) { 2573 // if immediate parent contains block-bottom-margin as a class, remove the parent as well 2574 parent.classList.remove('block-bottom-margin'); 2575 } 2576 if (parent && parent.classList.contains('mar-leaderboard--top')) { 2577 // in case of leaderboard, remove as has min-height 2578 parent.remove(); 2579 return; 2580 } 2581 2582 if (parent && parent.classList.contains('mar-leaderboard--bottom')) { 2583 // in case of article ad container, remove as has min-height 2584 parent.remove(); 2585 return; 2586 } 2587 2588 element.remove(); 2589} 2590</script>
2590 2591 2592
2593<script src="/resources/responsive-static/build/mds/js/global.js?cb=vjoPdzgg"></script>
2593 2594 2595 2596 2597 2598
2599<script src="/__siren/"></script>
2599 2600 2601 2602
2603<script type="text/javascript"> 2604 var s_account="newsquestgroupprod"; 2605</script>
2605 2606
2607<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/VisitorAPI.js?cb=vjoPdzgg"></script>
vendor: 1 bytes, line 2607
2607
2608<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/omniture.js?cb=vjoPdzgg"></script>
2608 2609
2610<script type="text/javascript"> 2611 2612function getOmniturePath() { 2613 var path = ''; 2614 if ($('#gallery-base-url').length === 1) { 2615 path = $('#gallery-base-url').val(); 2616 } 2617 else { 2618 path = window.location.pathname; 2619 } 2620 return path; 2621} 2622 2623function getPositionFromCookie() { 2624 const cookieName = 'tracking_block_index'; 2625 2626 const ref = document.cookie 2627 .split('; ') 2628 .find(row => row.startsWith(`${cookieName}=`)) 2629 ?.slice(cookieName.length + 1); 2630 2631 document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`; 2632 2633 return ref ? decodeURIComponent(ref) : undefined; 2634} 2635function getRefFromCookie() { 2636 const cookieName = 'tracking_block'; 2637 2638 const ref = document.cookie 2639 .split('; ') 2640 .find(row => row.startsWith(`${cookieName}=`)) 2641 ?.split('=')[1]; 2642 2643 // Remove the cookie 2644 document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`; 2645 2646 return ref; 2647} 2648 2649function getOmnitureTrackingFromCookie(key, preExistingValue) { 2650 var ref = $.cookie('o-' + key); 2651 if(typeof(ref) === 'undefined') { 2652 ref = preExistingValue 2653 } else { 2654 ref = decodeURIComponent(ref); 2655 $.removeCookie('o-' + key, { 2656 path: '/', 2657 domain: window.data_layer.site.cookie_domain, 2658 }); 2659 } 2660 return ref; 2661} 2662 2663function getValidatedAPList() { 2664 2665 var validList = [1100, 1101, 1002, 1006, 1010, 1014, 1018, 1022, 1200, 1202, 1205, 1300, 1602, 1605, 1608, 1612, 1616, 1500, 1503, 1507, 1509, 1512, 1402, 1406, 1409, 1412, 1416, 14331, 14333, 14335, 14336, 14339, 14342, 14344, 14345, 14346, 14350, 14351, 14353, 14359, 14366, 14370, 14371, 14377, 14388, 14394, 14396, 14399, 14407, 14221, 14423, 15679, 15681, 15682, 15683, 15684, 15686, 15687, 15688, 15975]; 2666 2667 var data = getAudienceProjectTargetingData(); 2668 if (!data || !data.ap_x) { 2669 return ''; 2670 } 2671 2672 validData = []; 2673 $.each(data.ap_x, function(i, td) { 2674 if ($.inArray(parseInt(td, 10), validList) !== -1) { 2675 validData.push(td); 2676 } 2677 }); 2678 2679 return validData.join(','); 2680} 2681 2682path = document.location.href.split("/"); 2683 2684var qs = new URLSearchParams(window.location.search); 2685 2686var prop30 = qs.get('lp'); 2687var prop43 = qs.get('ref'); 2688var pType="Newsquest\Modules\UserIdentityModule" 2689 2690if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') { 2691 pType = 'ArticleModule'; 2692} 2693 2694for(x=4; x<7; x++) 2695{ 2696 if (typeof path[x] == 'undefined') 2697 { 2698 path[x] = ''; 2699 } 2700 if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1)) 2701 { 2702 path[x] = path[x-1]; 2703 } 2704 else 2705 { 2706 path[x] = path[x-1] + "/" + path[x]; 2707 } 2708 path[x] = path[x].replace(/\/undefined/g,""); 2709} 2710pathN= unescape(document.location.pathname.toString()); 2711matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/); 2712detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/); 2713if (detailMatches !== null && detailMatches.length > 1) 2714{ 2715 matches = detailMatches; 2716} 2717 2718if (matches !== null && matches.length > 1) 2719{ 2720 var subfolder = ''; 2721 path[3] = 'li'; 2722 path[4] = 'li/'+subfolder; 2723 path[5] = 'li/'+subfolder+'/'+matches[1]; 2724 path[6] = 'li/'+subfolder+'/'+matches[1]; 2725} 2726if (pathN === '/') 2727{ 2728 path[3] = 'homepage'; 2729 path[4] = 'homepage'; 2730 path[5] = 'homepage'; 2731 path[6] = 'homepage'; 2732} 2733 2734 2735/* You may give each page an identifying name, server, and channel on 2736the next lines. */ 2737s.pageName="(www) "+getOmniturePath(); 2738s.pageName = s.pageName.toLowerCase(); 2739s.server="martini"; 2740s.channel=""; 2741s.pageType=""; 2742s.prop1= qs.get('search'); 2743s.prop2=""; 2744s.prop3=document.title; 2745s.prop4=""; 2746s.prop5="Newsquest\Modules\UserIdentityModule"; /* get from Martini */ 2747s.prop6=path[3].toLowerCase(); 2748s.prop7=path[4].toLowerCase(); 2749s.prop8=path[5].toLowerCase(); 2750s.prop9=path[6].toLowerCase(); 2751s.prop10=""; 2752 2753s.prop16=path[2].toLowerCase(); 2754s.prop17="South West London"; 2755s.prop18="Martini"; 2756s.prop19="1"; 2757s.prop20 = s.getPreviousValue(s.pageName, 'gpv_pn'); 2758s.prop42 = ""; 2759s.prop53 = 'standard'; 2760s.prop54 = ''; 2761s.prop55 = ''; 2762s.prop56 = ""; 2763s.prop57 = ($('[data-name="Feature Article Block A"]').length > 0) ? 'Enabled' : 'Disabled'; 2764s.prop58 = document.querySelector('[data-name="Feature Article Block B"]')?.dataset.variant; 2765s.prop59 = getRefFromCookie(); 2766s.prop60 = getPositionFromCookie(); 2767s.prop73 = document.cookie.split('; ').find(row => row.startsWith('adtiming='))?.split('=')[1] || null; 2768 2769var eVar67 = []; 2770 2771if ($.cookie('consentUUID')) { 2772 eVar67.push('yes'); 2773} else { 2774 eVar67.push('no'); 2775} 2776if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') { 2777 eVar67.push('yes'); 2778} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') { 2779 eVar67.push('no'); 2780} else { 2781 eVar67.push('none'); 2782} 2783 2784if ($.cookie('_sp_legitimate_interests') === 'true') { 2785 eVar67.push('yes'); 2786} else if ($.cookie('_sp_legitimate_interests') === 'false') { 2787 eVar67.push('no'); 2788} else { 2789 eVar67.push('none'); 2790} 2791 2792//if ($.cookie('euconsent')) { 2793// eVar67.push($.cookie('euconsent')); 2794//} else { 2795// eVar67.push('none'); 2796//} 2797 2798s.eVar67 = eVar67.join(','); 2799// console.log('ADB: setting eVar67 to %s', eVar67.join(',')); 2800 2801if ($.cookie('prev-tcf-v2')) { 2802 // console.log('ADB: Setting eVar68 to ', $.cookie('prev-tcf-v2')); 2803 s.eVar68 = $.cookie('prev-tcf-v2'); 2804} 2805 2806if (typeof iabNames !== 'undefined') { 2807 s.prop29 = iabNames.join(','); 2808} else if (typeof iabIds !== 'undefined') { 2809 s.prop29 = iabIds.join(','); 2810} 2811 2812if (s.prop20 && s.prop20 !== 'no value') { 2813 s.prop21 = s.getPercentPageViewed(); 2814} else { 2815 s.prop21 = ''; 2816} 2817 2818if (typeof __siren !== 'undefined') { 2819 s.eVar27 = __siren; 2820} 2821 2822s.prop22 = s.getDaysSinceLastVisit('s_lv'); 2823 2824 2825s.prop43=getOmnitureTrackingFromCookie('ref', prop43); 2826s.prop25 = '' 2827 2828s.prop27 = ''; 2829 2830s.prop30 = getOmnitureTrackingFromCookie('prop30', prop30); 2831s.linkInternalFilters="javascript:,yourlocalguardian.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk," 2832s.eVar61=(new Date()).toLocaleDateString("en-GB"); 2833/* s.eVar62=(new Date()).toLocaleDateString("en-GB"); */ 2834 2835 2836 2837 2838 2839 2840/* Article-site-cloning data */ 2841s.eVar90 = window.data_layer.article.parent_originating_site_id; 2842s.eVar91 = window.data_layer.article.originating_article_id; 2843s.eVar92 = window.data_layer.article.is_original_to_site; 2844s.eVar95 = window.data_layer.site.using_piano_id; 2845s.eVar106 = ''; 2846
2847s.eVar109 = ''; 2848 2849/* Uber block article counts */ 2850s.eVar93 = window.data_layer.page.top_stories_article_count + ':' + window.data_layer.page.interstitial_article_count + ':' + window.data_layer.page.news_stories_article_count; 2851 2852/* Conversion Variables */ 2853s.campaign="" 2854s.state="" 2855s.zip="" 2856s.events="" 2857s.products="" 2858s.purchaseID="" 2859s.eVar14="" 2860try { 2861 s.list3=getValidatedAPList(); 2862} catch (e) { 2863 // do nothing 2864} 2865 2866 2867 2868 2869// Initial fotorama tracking. 2870var moduleType = null; 2871if (s.prop5 === 'ArticleModule' || s.prop5 == 'PropertyModuleReplacement' || s.prop5 === 'BlockArticleModule') { 2872 moduleType = 'article'; 2873} else if (s.prop5 === 'PictureGalleryModule') { 2874 moduleType = 'gallery'; 2875} 2876 2877if ($('#comments-in-page').length === 1) { 2878 moduleType = 'comments'; 2879} 2880 2881if (moduleType === 'article' || moduleType === 'gallery' || moduleType === 'comments') { 2882 var imagePath = ''; 2883 2884 if ($('.fotorama').length > 0) { 2885 // Get the first Fotorama image. 2886 try { 2887 var el = $('.fotorama').data('fotorama').data[0].html; 2888 var url = $(el).find('div').css('background-image'); 2889 imagePath = url.replace('url(','').replace(')','').replace(/\"/gi, ""); 2890 } catch (e) { 2891 } 2892 } else { 2893 // If there's just one image (i.e. it's not a gallery), find its path. 2894 var imagePathSingle = $('#mainImage').attr('src'); 2895 if (typeof imagePathSingle !== 'undefined') { 2896 imagePath = imagePathSingle.split('.')[0] + '/'; 2897 } 2898 } 2899 var imageParts = imagePath.split('/'); 2900 if (imageParts.length > 1) { 2901 s.eVar37 = imageParts[imageParts.length - 2]; 2902 s.prop37 = imageParts[imageParts.length - 2]; 2903 s.events = s.apl(s.events, 'event7', ',', 2); 2904 } 2905 s.eVar36 = moduleType; 2906 s.prop36 = moduleType; 2907} 2908 2909 2910 2911// Education pages. 2912if (s.prop5 === 'ResponsiveEducationModule') { 2913 // School profile page. 2914 if ($('#eduOverview').length > 0) { 2915 s.eVar40 = $('#eduOverview').data('school-status'); 2916 s.prop40 = s.eVar40; 2917 s.prop41 = 'edu-' + $('#eduOverview').data('school-urn'); 2918 s.prop46 = $('#town').text(); 2919 } 2920 2921 // Comparison page. 2922 if ($('#eduComparisonTable').length > 0) { 2923 s.list1 = ''; 2924 } 2925 2926 // Results page. 2927 if ($('.school-results').length > 0) { 2928 s.list1 = ''; 2929 2930 // Track the search criteria. 2931 s.prop44 = ''; 2932 s.prop45 = "".toLowerCase(); 2933 s.prop46 = "".toLowerCase(); 2934 s.prop49 = ''; 2935 s.prop50 = ''; 2936 s.prop51 = ''; 2937 s.eVar2 = s.prop50; 2938 2939 var newSearch = false; 2940 if (newSearch) { 2941 s.events = s.apl(s.events, 'event17', ',', 1); 2942 } 2943 } 2944} 2945 2946// Notices Module 2947if (s.prop5 === 'NewsquestModulesNoticesModule') { 2948 // Notices Find page. 2949 if (s.pageName.includes('notices/find')) { 2950 s.pageName = '(www) /notices/find/'; 2951 s.eVar50 = ''; 2952 const noticesURL = new URL(window.location.href); 2953 const noticesParams = new URLSearchParams(noticesURL.search); 2954 2955 s.eVar1 = noticesParams.has('keyword') ? noticesParams.get('keyword') : 'None'; 2956 s.eVar51 = noticesParams.has('sort') ? noticesParams.get('sprt') : 'best'; 2957 s.eVar52 = noticesParams.has('p') ? (parseInt(noticesParams.get('p'), 10) + 1) : 1; 2958 s.eVar53 = noticesParams.has('type') ? noticesParams.get('type') : 'All'; 2959 s.eVar54 = noticesParams.has('nearby') ? noticesParams.get('nearby') : 'no'; 2960 s.eVar55 = noticesParams.has('daterange') ? noticesParams.get('daterange') : 'last-month'; 2961 2962 if (noticesParams.has('sort')) { 2963 switch (noticesParams.get('sort')) { 2964 case 'date_asc': 2965 s.eVar51 = 'oldest'; 2966 break; 2967 case 'date_desc': 2968 s.eVar51 = 'newest'; 2969 break; 2970 case 'best_match': 2971 s.eVar51 = 'best'; 2972 break; 2973 default: 2974 s.eVar51 = noticesParams.get('sort'); 2975 break; 2976 } 2977 } 2978 2979 // Concatenate all search params into eVar44 2980 if (noticesParams.size > 0) { 2981 const searchParams = new URL(window.location.href).searchParams; 2982 s.eVar44 = '';
2983 searchParams.forEach((value, key) => { 2984 s.eVar44 += `${key}=${value},`; 2985 }); 2986 } else { 2987 s.eVar44 = ''; 2988 } 2989 2990 // Adobe Search Event triggering 2991 const setNoticePaginationClicked = (value) => { 2992 localStorage.setItem("isNoticePaginationClicked", value); 2993 }; 2994 2995 const noticeSearchInput = document.getElementById("notices-search"); 2996 const noticeSearchBtn = document.getElementById("notice-search-find"); 2997 const noticePaginationBtns = document.querySelectorAll('.notice-find__pagination .pagination-btn'); 2998 const noticePaginationBtnPrev = document.querySelector('.pagination-btn-previous svg'); 2999 const noticePaginationBtnNext = document.querySelector('.pagination-btn-next svg'); 3000 3001 noticeSearchInput?.addEventListener('change', () => setNoticePaginationClicked('false')); 3002 noticeSearchBtn?.addEventListener('click', () => setNoticePaginationClicked('false')); 3003 3004 noticePaginationBtns.forEach(btn => { 3005 btn.addEventListener('click', () => setNoticePaginationClicked('true')); 3006 }); 3007 3008 noticePaginationBtnPrev?.addEventListener('click', () => setNoticePaginationClicked('true')); 3009 noticePaginationBtnNext?.addEventListener('click', () => setNoticePaginationClicked('true')); 3010 3011 if (localStorage.getItem("isNoticePaginationClicked") === 'false') { 3012 s.events = s.apl(s.events, 'event1', ',', 1); 3013 } 3014 } 3015 3016 if (/notices\/funeral-directors\/(\d+)\.([a-zA-Z0-9-?]+)?/.test(s.pageName)) { 3017 s.pageName = '(www) /notices/funeral-director/'; 3018 s.eVar41 = ''; 3019 } 3020} 3021 3022if (s.prop5 === 'NewsquestModulesNoticeModule') { 3023 s.eVar41 = ''; 3024 const type = window.announcement_data?.details?.type || ''; 3025 const subCategory = window.announcement_data?.details?.sub_category || ''; 3026 s.eVar40 = type !== 'Tribute' ? type : `${type} - ${subCategory}`; 3027 s.eVar42 = window.announcement_data?.details?.id || ''; 3028 s.eVar107 = ''; 3029 s.eVar119 = ''; 3030 s.eVar120 = ''; 3031 s.eVar2 = "(www) /notice/"; 3032} 3033 3034//New Property module 3035if (s.prop5 === 'ResponsivePropertyModule') { 3036 /* 3037 Use prop42 for single and list pages, for list pages use hyphen separate lists of id's 3038 */ 3039 3040 3041 //Property's all over the place (homepage, searches etc - HOM-133 3042 3043 //Property Detail - HOM-131, HOM-134, HOM-130 3044 3045 //Contact us submissions - HOM-137 3046 if($('#propertyModule.agent-details').length > 0) { 3047 //Add a click handler for a.contact-detail 3048 } 3049 3050 3051} 3052 3053// is their a video tag on the page? 3054if ($('.exco-embed').length > 0) { 3055 console.log('VID: setting tracking for event50'); 3056 s.events = s.apl(s.events, 'event50', ',', 1); 3057} 3058 3059var foundAutoPlayVid = false; 3060$('.jw-outer').each(function (a, domEle) { 3061 if ($(this).data('multimedia-block') === 'no' && !foundAutoPlayVid) { 3062 console.log('VID: setting tracking for event51'); 3063 s.events = s.apl(s.events, 'event51', ',', 1); 3064 foundAutoPlayVid = true; 3065 } 3066}); 3067 3068 3069 3070 3071 3072 3073 3074s.eVar66 = 'Ad-Full'; 3075s.eVar114 = ''; 3076 3077 3078 3079 // var eVar65Copy = s.getValOnce(s.eVar65, "ev65", 0); 3080 // if (eVar65Copy !== '' && s.prop20.indexOf("/my/subscription/activate/") > -1) { 3081 // s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event. 3082 // s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event. 3083 // s.products = "Subscription : Metered Access;" + eVar65Copy + ";1;"; 3084 // s.purchaseID = ""; 3085 // } 3086 3087 3088if(qs.get('action') === 'success' && (s.prop5 === 'ArticleModule' || s.prop5 === 'BMDModule' || s.prop5 === 'BlockArticleModule')) { 3089 s.events=s.apl(s.events,'event9',',',2) 3090} 3091/* Hierarchy Variables */ 3092s.hier1="newsquest," + "South West London" + ",www.yourlocalguardian.co.uk," + path[6].replace(/\//,","); 3093 3094if (typeof MartiniFotorama !== 'undefined') { 3095 MartiniFotorama.loadOmniture(s); 3096} 3097s.prop39 = "0"; 3098 3099 3100 3101// Tracking usage of Bytecast audio embeds in articles. 3102s.eVar82 = 'no'; 3103s.eVar83 = ''; 3104 3105 console.log('ADB: starting'); 3106 console.log('Google Bot Browser: ', window.isRobot.googleBot()); //TODO Remove this log after QA 3107 3108// Tracking of Commenting Registration FLow 3109if (s.prop5 !== 'BlockArticleModule') { 3110 const storedAdobeDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions'); 3111 if (storedAdobeDimensions) { 3112 const storedAdobeDimensionObj = JSON.parse(storedAdobeDimensions); 3113 s.eVar10 = storedAdobeDimensionObj.eVar10; 3114 s.eVar15 = storedAdobeDimensionObj.eVar15; 3115 s.eVar22 = storedAdobeDimensionObj.eVar22; 3116 s.eVar23 = storedAdobeDimensionObj.eVar23; 3117 s.eVar24 = storedAdobeDimensionObj.eVar24; 3118 s.eVar25 = storedAdobeDimensionObj.eVar25; 3119 s.eVar28 = storedAdobeDimensionObj.eVar28; 3120 s.eVar60 = storedAdobeDimensionObj.eVar60; 3121 s.eVar104 = storedAdobeDimensionObj.eVar104; 3122 s.eVar106 = storedAdobeDimensionObj.eVar106; 3123 s.eVar107 = storedAdobeDimensionObj.eVar107; 3124 s.eVar108 = storedAdobeDimensionObj.eVar108; 3125 s.prop63 = storedAdobeDimensionObj.prop63; 3126 } 3127} 3128 3129if (window.location.href.includes("/user/create-account/commenting/")) { 3130 s.eVar2 = '(www) /user/create-account/commenting/'; 3131} 3132 3133/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ 3134if (qs.get('callback') !== 'in' && !window.isRobot.googleBot()) { 3135 var s_code=s.t(); 3136 var backupAdobe = s; 3137 3138 if(s_code)document.write(s_code) 3139} 3140 3141// Storing the visiting dimensions 3142if (s.eVar10 || s.eVar22 || s.eVar23 || s.eVar24) { 3143 const adobeTrackingVisitingDimensions = { 3144 eVar10: s.eVar10, 3145 eVar22: s.eVar22, 3146 eVar23: s.eVar23, 3147 eVar24: s.eVar24, 3148 } 3149 sessionStorage.setItem('nq_adobe_tracking_visiting_dimensions', JSON.stringify(adobeTrackingVisitingDimensions)); 3150} 3151 3152//--></script>
3152 3153<!-- End SiteCatalyst code version: H.19.3. --> 3154 3155 3156 3157 3158
3158<script src="/resources/responsive-static/build/mds/js/piano-id-login.js?cb=vjoPdzgg"></script>
3158 3159 3160
3161<script> 3162 if ('' !== '') { 3163 setTimeout(function() { 3164 data_layer_helper.loadScript( 3165 "/resources/responsive-static/build/mds-next/js/.js?cb=vjoPdzgg", 3166 true, 3167 null, 3168 "module" 3169 ) 3170 }, 500); 3171 } 3172</script>
3172 3173 3174 3175</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.