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