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