PageSourceSearch

https://www.redditchadvertiser.co.uk/contact/

html redditchadvertiser.co.uk collected 2026-10-02 06:17:04 UTC 136,723 bytes, 3,490 lines download raw bytes

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 &amp; Help | Redditch 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.redditchadvertiser.co.uk/contact/" />
22	<meta property="fb:pages" content="394628833903112" />
23	<meta name="title" content="Contact & Help | Redditch Advertiser"/>
24	<meta name="description" content="Get help, support and contact information for Redditch 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 | Redditch Advertiser",
32        "url": "https://www.redditchadvertiser.co.uk/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/17398679/" type="image/vnd.microsoft.icon">
50    <link rel="icon" href="/resources/images/17398679/" 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('.redditchadvertiser.co.uk');
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.redditchadvertiser.co.uk');
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: 'no',
78            is_portable_screen: (data_layer_helper.isMobileScreen()) ? 'yes' : 'no',
79            is_desktop_screen: (data_layer_helper.isMobileScreen()) ? 'no' : 'yes',
80            is_mobile_device: data_layer_helper.getMobileDevice(),
81            is_tablet_device: data_layer_helper.getTabletDevice(),
82            server: 'webapp-857f48ddbd-9d2rt',
83            platform: 'Martini'
84        },
85        site: {
86            id: '159',
87            comments_subscriber_only: 'no',
88            viafoura_site_id: '00000000-0000-4000-8000-0a918142a22e',
89            comments_use_viafoura: 'yes',
90            centre_id: '3',
91            centre_name: 'Stourbridge',
92            country: 'England',
93            name: 'Redditch Advertiser',
94            name_with_prefix_capitalised_possessive: 'The Redditch Advertiser\'s',
95            name_with_prefix_lower_possessive: 'the Redditch Advertiser\'s',
96            domain: 'www.redditchadvertiser.co.uk',
97            editor_name: 'Stephanie Preece',
98            onboarding_enabled: 'no',
99            onboarding_flow_id: 'onboarding_disabled',
100            allowing_mr_replacement: '',
101            cookie_domain: '.redditchadvertiser.co.uk',
102            uses_cmp: 'yes',
103            short_domain: 'redditchadvertiser',
104            using_piano_id: 'yes',
105            enable_skimlinks: 'yes',
106            skimlinks_domain_id: '613753',
107            disable_newsletters: 'no',
108            is_archant_site: 'no',
109            shc_merchant_name: '',
110            piano_application_group: 'Forest',
111            piano_site_name: 'Redditch Advertiser',
112            piano_site_name_possessive: 'Redditch Advertiser\'s',
113            piano_site_name_with_prefix_lower: 'the Redditch Advertiser',
114            piano_site_name_with_prefix_capitalised: 'The Redditch Advertiser',
115            piano_site_name_with_prefix_capitalised_possessive: 'The Redditch Advertiser\'s',
116            piano_site_name_with_prefix_lower_possessive: 'the Redditch Advertiser\'s',
117            piano_location_primary: 'Redditch',
118            piano_location_primary_possessive: 'Redditch\'s',
119            piano_location_county: 'Worcestershire',
120            piano_location_county_possessive: 'Worcestershire\'s',
121            piano_primary_sports_team: '',
122            piano_primary_sports_team_nickname: '',
123            piano_primary_sports_team_sport: '',
124            piano_primary_sports_team_possessive: '',
125            piano_primary_sports_team_nickname_possessive: '',
126            piano_self_service_cancellation_setting: 'None',
127            has_app: 'no',
128            app_provider: '',
129            app_platform: '',
130            app_store_url_ios: '',
131            app_store_url_google_play: '',
132            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,Stourbridge,www.redditchadvertiser.co.uk,' + data_layer_helper.getPathFragment(3).replace(/\//,','),
239            link_filters: 'javascript:,redditchadvertiser.co.uk,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: "redditchadvertiser.co.uk",
257            type: 'Anonymous'
258        },
259        piano: {
260            tags: data_layer_helper.getPianoTags({
261                      piano_domain: 'redditchadvertiser',
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: 'Forest',
287                content_is_editorial_opinion: 'no',
288                base_url: 'https://www.redditchadvertiser.co.uk',
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: 'Redditch Advertiser',
294                site_name_possessive: 'Redditch Advertiser\'s',
295                site_name_with_prefix_capitalised: 'The Redditch Advertiser',
296                site_name_with_prefix_lower: 'the Redditch Advertiser',
297                site_name_with_prefix_capitalised_possessive: 'The Redditch Advertiser\'s',
298                site_name_with_prefix_lower_possessive: 'the Redditch Advertiser\'s',
299                location_primary: 'Redditch',
300                location_primary_possessive: 'Redditch\'s',
301                location_county: 'Worcestershire',
302                location_county_possessive: 'Worcestershire\'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: '159',
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: '1052',
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: '1053',
336                primary_sport_newsletter_name: 'the Sports AM',
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: '',
446            site_template_set: 'standard',
447            path: '/contact/',
448            top_level_section: 'contact',
449            polar_property_id: 'NA-REDD-11238149',
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: 'sun'.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.redditchadvertiser.co.uk',
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: '.redditchadvertiser.co.uk', 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: '.redditchadvertiser.co.uk', 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: '.redditchadvertiser.co.uk', 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: '.redditchadvertiser.co.uk', 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: '.redditchadvertiser.co.uk', 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.redditchadvertiser.co.uk/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=HtwTxSjqpu");
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        + "&nbsp; | &nbsp;<b>views:</b> " + meterData.views
1478        + "&nbsp; | &nbsp;<b>totalViews:</b> " + meterData.totalViews
1479        + "&nbsp; | &nbsp;<b>viewsLeft:</b> " + meterData.viewsLeft
1480        + "&nbsp; | &nbsp;<b>maxViews:</b> " + meterData.maxViews
1481        + "&nbsp; | &nbsp;<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        + "&nbsp; | &nbsp;<b>views:</b> " + meterData.views
1504        + "&nbsp; | &nbsp;<b>totalViews:</b> " + meterData.totalViews
1505        + "&nbsp; | &nbsp;<b>viewsLeft:</b> " + meterData.viewsLeft
1506        + "&nbsp; | &nbsp;<b>maxViews:</b> " + meterData.maxViews
1507        + "&nbsp; | &nbsp;<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", "3608832627821874621"]);
1524
1525
1526runPiano('unrestricted');
1527
1528</script>
1528
1529
1530
1531
1532    <link rel="apple-touch-icon" href="/resources/images/17399578/">
1533    <link rel="apple-touch-icon" sizes="72x72" href="/resources/images/17399577/">
1534    <link rel="apple-touch-icon" sizes="114x114" href="/resources/images/17399579/">
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.redditchadvertiser.co.uk/" 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.redditchadvertiser.co.uk/" 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="Redditch 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
1609            
1610            <ul class="list-style-none top-nav-overflow">
1611                <li><a  href="/newsletters/" class="mar-btn mar-btn--promo-primary">Newsletters</a></li> 
1612            </ul>
1613            
1614        </div>
1615
1616        
1617        
1618        <div class="simple-header-top-navigation__links--classifieds">
1619            
1620        </div>
1621        
1622        
1623
1624    </div>
1625    
1626    <div class="simple-header-top-navigation__links--account">
1627        
1628        <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">
1629            <div aria-label="User Account Button" id="headerUserAccountButton">
1630                <svg xmlns="http://www.w3.org/2000/svg " width="14" height="16" viewB
1630ox="0 0 10 14" fill="none">
1631<circle cx="5" cy="3.85718" r="3" fill="black"/>
1632<ellipse cx="5" cy="10.2857" rx="5" ry="2.85714" fill="black"/>
1633</svg>
1634            </div>
1635        </a>
1636        
1637    </div>
1638    
1639
1640    <button aria-expanded="false" aria-label="Open the menu" class="simple-header-top-navigation__mega-menu-btn primary-nav__menu--more-btn">
1641        <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>
1642    </button>
1643
1644</div>
1645    </div>
1646
1647    <div id="mega-menu" class="mega-menu" style="display: none;">
1648    <div class="mega-menu__container mega-menu__wrapper">
1649        <div class="mega-menu__cancel-button">
1650            <i aria-expanded="true" aria-hidden="true" aria-label="Close the menu" class="mega-menu__cancel-button--icon">
1651                <span class="iconify" data-icon="eva:close-fill" data-inline="false"></span>
1652                <div>Close</div>
1653            </i>
1654        </div>
1655
1656    
1657
1658    
1659        <div class="mega-menu__features expanded-sub-nav">
1660        <div class="mega-menu__features--links">
1661            
1662                <h4 class="prefix mega-menu__features--prefix link-item">featured</h4>
1663            
1664            <a href="https://www.worcesternews.co.uk/health-and-social-care-awards/" target="_blank" class="col link-item">Health &amp; Social Care Awards</a>
1665            
1666
1667                <a href="https://www.worcesternews.co.uk/worcestershireeducationawards/" target="_blank" class="col link-item">Education Awards</a>
1668            
1669            </div>
1670            <hr class="divider none">
1671        </div>
1672    
1673
1674        <div class="mega-menu__search">
1675          <form method="get" action="/search/">
1676              <label class="mega-menu__search--title" for="searchbar-input">Search</label>
1677              <div class="mega-menu__search--bar">
1678                  <input id="searchbar-input" class="searchbar-input" type="text" name="search" placeholder="Search Redditch Advertiser">
1679                  <button class="searchbar-btn mira-search-button" type="submit"><span class="iconify" data-icon="fe:search" data-inline="false"></span></button>
1680              </div>
1681          </form>
1682        </div>
1683
1684        <div class="mega-menu__main-list link-list">
1685      <div class="mega-menu__main-list--list-item">
1686                <div>
1687                    <div>
1688                        <a href="/news/">
1689                            <h3><span class="mega-menu__main-list--parent-link">News</span></h3>
1690                        </a>
1691                    </div>
1692        
1693                    <div class="mega-menu__main-list--child-links">
1694                      <div class="child-item">
1695                          <a href="/news/local/">Local</a>
1696                      </div>
1697                  
1698
1699                      <div class="child-item">
1700                          <a href="/news/yourletters/">Letters</a>
1701                      </div>
1702                  
1703
1704                      <div class="child-item">
1705                          <a href="/news/crime/">Crime</a>
1706                      </div>
1707                    </div>
1708        
1709                </div>
1710                <div class="divider"></div>
1711            </div>
1712      
1713
1714            <div class="mega-menu__main-list--list-item">
1715                <div>
1716                    <div>
1717                        <a href="/sport/">
1718                            <h3><span class="mega-menu__main-list--parent-link">Sport</span></h3>
1719                        </a>
1720                    </div>
1721        
1722                    <div class="mega-menu__main-list--child-links">
1723                      <div class="child-item">
1724                          <a href="/sport/wccc/">WCCC</a>
1725                      </div>
1726                  
1727
1728                      <div class="child-item">
1729                          <a href="/sport/warriors/">Warriors</a>
1730                      </div>
1731                  
1732
1733                      <div class="child-item">
1734                          <a href="/sport/national/">UK Sport News</a>
1735                      </div>
1736                    </div>
1737        
1738                </div>
1739                <div class="divider"></div>
1740            </div>
1741      
1742
1743            <div class="mega-menu__main-list--list-item">
1744                <div>
1745                    <div>
1746                        <a href="/eeditions/">
1747                            <h3><span class="mega-menu__main-list--parent-link">E-editions</span></h3>
1748                        </a>
1749                    </div>
1750        
1751                    <div class="mega-menu__main-list--child-links">
1752                      <div class="child-item">
1753                          <a href="/eeditions/all/">All</a>
1754                      </div>
1755                  
1756
1757                      <div class="child-item">
1758                          <a href="/eeditions/connect/">Connect</a>
1759                      </div>
1760                  
1761
1762                      <div class="child-item">
1763                          <a href="/eeditions/living/">Living Magazine</a>
1764                      </div>
1765                  
1766
1767                      <div class="child-item">
1768                          <a href="/eeditions/prime/">Prime</a>
1769                      </div>
1770                  
1771
1772                      <div class="child-item">
1773                          <a href="/eeditions/tcf/">Three Counties Farmer</a>
1774                      </div>
1775                    </div>
1776        
1777                </div>
1778                <div class="divider"></div>
1779            </div>
1780      
1781
1782            <div class="mega-menu__main-list--list-item">
1783                <div>
1784                    <div>
1785                        <a href="/leisure/">
1786                            <h3><span class="mega-menu__main-list--parent-link">What's On</span></h3>
1787                        </a>
1788                    </div>
1789        
1790                    <div class="mega-menu__main-list--child-links">
1791                      <div class="child-item">
1792                          <a href="/leisure/local-events/">Local Events</a>
1793                      </div>
1794                  
1795
1796                      <div class="child-item">
1797                          <a href="/leisure/whats_on/">What's On</a>
1798                      </div>
1799                  
1800
1801                      <div class="child-item">
1802                          <a href="/leisure/base_sessions/">Base Sessions</a>
1803                      </div>
1804                  
1805
1806                      <div class="child-item">
1807                          <a href="/leisure/showbiz/">Showbiz</a>
1808                      </div>
1809                    </div>
1810        
1811                </div>
1812                <div class="divider"></div>
1813            </div>
1814      
1815
1816            <div class="mega-menu__main-list--list-item">
1817                <div>
1818                    <div>
1819                        <a href="/notices/">
1820                            <h3><span class="mega-menu__main-list--parent-link">Notices</span></h3>
1821                        </a>
1822                    </div>
1823        
1824                    <div class="mega-menu__main-list--child-links">
1825                      <div class="child-item">
1826                          <a href="/notices/bereavement-guide/">Bereavement Guide</a>
1827                      </div>
1828                    </div>
1829        
1830                </div>
1831                <div class="divider"></div>
1832            </div>
1833      
1834
1835            <div class="mega-menu__main-list--list-item">
1836                <div>
1837                    <div>
1838                        <a href="/advertising/">
1839                            <h3><span class="mega-menu__main-list--parent-link">Book an ad</span></h3>
1840                        </a>
1841                    </div>
1842        
1843                </div>
1844                <div class="divider"></div>
1845            </div>
1846      
1847
1848            <div class="mega-menu__main-list--list-item">
1849                <div>
1850                    <div>
1851                        <a href="/travellatest/">
1852                            <h3><span class="mega-menu__main-list--parent-link">Travel Update</span></h3>
1853                        </a>
1854                    </div>
1855        
1856                </div>
1857                <div class="divider"></div>
1858            </div>
1859      
1860
1861            <div class="mega-menu__main-list--list-item">
1862                <div>
1863                    <div>
1864                        <a href="/young-reporter/">
1865                            <h3><span class="mega-menu__main-list--parent-link">Young Reporter</span></h3>
1866                        </a>
1867                    </div>
1868        
1869                </div>
1870                <div class="divider"></div>
1871            </div>
1872      
1873
1874            <div class="mega-menu__main-list--list-item">
1875                <div>
1876                    <div>
1877                        <a href="/newspaper-archive/">
1878                            <h3><span class="mega-menu__main-list--parent-link">Newspaper Archive</span></h3>
1879                        </a>
1880                    </div>
1881        
1882                </div>
1883                <div class="divider"></div>
1884            </div>
1885        </div>
1886    </div>
1887
1888    <div class="mega-menu__sticky">
1889        <ul class="list-style-none mega-menu__sticky--list">
1890            <div class="mega-menu__sticky--primary-links">
1891                
1892                <li><a  href="/newsletters/" class="mar-btn mar-btn--promo-primary">Newsletters</a></li> 
1893            </div>
1894            <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/">
1894Homes</a></li> <li><a class="mar-nav--promo-link" href="https://directory.redditchadvertiser.co.uk/" target="blank">Local listings</a></li> <li><a class="mar-nav--promo-link" href="/li/">Local info</a></li> 
1895        </ul>
1896    </div>
1897</div>
1898
1899
1900    <!-- standard - SimplePrimaryNavigation.html --> <nav aria-label="Main navigation" id="primary-nav" class="primary-nav">
1901    <div class="primary-nav__container container-inner-width">
1902        <span class="primary-nav__left">
1903          <nav class="primary-nav__menu">
1904              <div class="primary-nav__menu-container">
1905  <div class="primary-nav__menu--item">
1906                      <a class="primary-nav__menu--link" href="/news/">News</a>
1907                  </div>
1908  
1909
1910                  <div class="primary-nav__menu--item">
1911                      <a class="primary-nav__menu--link" href="/sport/">Sport</a>
1912                  </div>
1913  
1914
1915                  <div class="primary-nav__menu--item">
1916                      <a class="primary-nav__menu--link" href="/eeditions/">E-editions</a>
1917                  </div>
1918  
1919
1920                  <div class="primary-nav__menu--item">
1921                      <a class="primary-nav__menu--link" href="/leisure/">What's On</a>
1922                  </div>
1923  
1924
1925                  <div class="primary-nav__menu--item">
1926                      <a class="primary-nav__menu--link" href="/notices/">Notices</a>
1927                  </div>
1928  
1929
1930                  <div class="primary-nav__menu--item">
1931                      <a class="primary-nav__menu--link" href="/advertising/">Book an ad</a>
1932                  </div>
1933  
1934
1935                  <div class="primary-nav__menu--item">
1936                      <a class="primary-nav__menu--link" href="/travellatest/">Travel Update</a>
1937                  </div>
1938  
1939
1940                  <div class="primary-nav__menu--item">
1941                      <a class="primary-nav__menu--link" href="/young-reporter/">Young Reporter</a>
1942                  </div>
1943  
1944
1945                  <div class="primary-nav__menu--item">
1946                      <a class="primary-nav__menu--link" href="/newspaper-archive/">Newspaper Archive</a>
1947                  </div>
1948              </div>
1949          </nav>
1950        </span>
1951        <span class="primary-nav__right">
1952            <div class="primary-nav__menu--more-btn">
1953                <button aria-expanded="false" aria-label="Open the menu" class="more-link more-burger-icon">
1954                    <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>
1955                </button>
1956            </div>
1957            <div class="primary-nav__right--search">
1958                <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>
1959            </div>
1960        </span>
1961    </div>
1962</nav>
1963
1964
1965
1966    
1967
1968
1969</header>
1970            </div>
1971
1972            <div id="redesign-content">
1973                <div id="module-content" class="content">
1974                    <div class="piano--block-level block-bottom-margin" id="po-inline-banner-top-hero-content"></div>
1975
1976
1977                    <!-- standard - ContactUs.html --> <div class="block-contact-us" aria-labelledby="contact-help-heading">
1978    <h1 id="contact-help-heading" class="block-heading">Contact &amp; Help</h1>
1979    <p class="block-contact-us__intro">
1980        In need of help, support, or need to contact us, hopefully you’ll find the information you need below...
1981    </p>
1982
1983    <h2 class="block-heading" id="customer-support-heading">Customer Support</h2>
1984    <div class="block-contact-us__cta-section" aria-labelledby="customer-support-heading">
1985
1986        
1987        
1988        
1989        
1990        
1991
1992        
1993
1994        
1995        <div class="cta-item">
1996            <a href="/contact/faq/general-support/" class="mar-btn mar-btn--md mar-btn--dark">General Support</a>
1997            <p>Help &amp; questions about technical, account, or any other issues you may be experiencing with any of
1998                our products</p>
1999        </div>
2000    </div>
2001
2002    <div class="block-contact-us__grid_container">
2003        <div>
2004            <div class="social-field" style="display: none;">
2005                <p class="social-field-text">Follow us</p>
2006                <!-- standard - SocialBar.html --> <div class="social-bar  ">
2007  <!-- standard - SocialShareButton.html --> <div 
2008    aria-label="Share"
2009    class="social-share-button mar-btn"
2010    id="social-share-button">
2011    <p class="social-share-button__text" aria-label="Share">Share</p>
2012    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
2012ox="0 0 16 16" fill="none">
2013        <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"/>
2014    </svg>
2015</div>
2016
2017  
2018    
2019  
2020</div>
2021
2022            </div>
2023            <div class="block-contact-us__grid_container--card" aria-labelledby="main-details-heading">
2024                <div id="main-details-heading" class="block-contact-us__grid_container--card-heading block-heading">Main
2025                    Details</div>
2026                
2027                <div class="block-contact-us__grid_container--card-title">Address:</div>
2028                <address class="block-contact-us__grid_container--card-small-text">
2029                    
2030                    Redditch Advertiser,
2031                    
2032                    
2033                    Dudley Court South,
2034                    
2035                    
2036                    Level Street,
2037                    
2038                    
2039                    Brierley Hill,
2040                    
2041                    
2042                    West Midlands,
2043                    
2044                    
2045                    DY5 1XN
2046                    
2047                </address>
2048                
2049                <div class="block-contact-us__grid_container--card-title  block-contact-us__spacing ">Telephone:</div>
2050                <div class="block-contact-us__grid_container--card-small-text">
2051                    <a href="tel:(01384) 358050"
2052                        aria-label="Call (01384) 358050">(01384) 358050</a>
2053                </div>
2054                
2055                
2056
2057                <div class="block-contact-us__grid_container--card-panel">
2058                    Inside the newsroom -
2059                    <a href="/author/journalists/">&nbsp;View all our journalists</a>
2060                </div>
2061                
2062                <div class="block-contact-us__grid_container--card-title block-contact-us__spacing">Editor:</div>
2063                <div
2064                    class="block-contact-us__grid_container--card-small-text block-contact-us__grid_container--card-link">
2065                    Alicia Kelly
2066                    <a href="mailto:[email protected]">[email protected]</a>
2067                    <span aria-label="Editor telephone"></span>
2068                </div>
2069                
2070
2071                
2072                <div class="block-contact-us__grid_container--card-title block-contact-us__spacing">News desk:</div>
2073                <div
2074                    class="block-contact-us__grid_container--card-small-text block-contact-us__grid_container--card-link">
2075                    <a href="mailto:[email protected]">[email protected]</a>
2076                    <span aria-label="News desk telephone">(01384) 358223</span>
2077                </div>
2078                
2079
2080            </div>
2081
2082            <div class="block-contact-us__grid_container--banner" aria-labelledby="get-involved-heading">
2083                <div id="get-involved-heading" class="block-contact-us__grid_container--banner-heading block-heading">
2084                    Get <em>involved</em> with the news
2085                </div>
2086                <div class="block-contact-us__grid_container--banner-content">
2087                    <div class="block-contact-us__grid_container--banner-text">
2088                        Got a story, lead, picture, or video you would like to share with us?
2089                    </div>
2090                    <div>
2091                        <a href="/send-us-your-news/" class="mar-btn mar-btn--md mar-btn--light">
2092                            Send us your news
2093                        </a>
2094                    </div>
2095                </div>
2096            </div>
2097            
2098            <div class="block-contact-us__grid_container--card" aria-labelledby="newspaper-sales-heading">
2099                <div id="newspaper-sales-heading" class="block-contact-us__grid_container--card-heading block-heading">
2100                    Newspaper Sales</div>
2101                <div
2102                    class="block-contact-us__grid_container--card-small-text block-contact-us__grid_container--card-link">
2103                    <a href="mailto:[email protected]">[email protected]</a>
2104                    <span aria-label="Newspaper sales telephone">(01905) 742207</span>
2105                </div>
2106            </div>
2107            
2108            
2109            <div class="block-contact-us__grid_container--card" aria-labelledby="commercial-heading">
2110                <div id="commercial-heading" class="block-contact-us__grid_container--card-heading block-heading">
2111                    Commercial</div>
2112                <p>
2113                    <a href="/advertising/" class="mar-btn mar-btn--md mar-btn--dark">Book an advert</a>
2114                </p>
2115                <div class="block-contact-us__grid_container--card-title block-contact-us__spacing ">Advertising:</div>
2116                <div class="block-contact-us__grid_container--card-small-text">
2117                    <div class="block-contact-us__grid_container--card-link">
2118                        <a href="mailto:[email protected]">
2119                            [email protected]
2120                        </a>
2121                        <span aria-label="Advertising telephone">(01905) 742372</span>
2122                    </div>
2123                </div>
2124                
2125                <div class="block-contact-us__grid_container--card-title block-contact-us__spacing">Recruitment:</div>
2126                <div class="block-contact-us__grid_container--card-small-text">
2127                    <div class="block-contact-us__grid_container--card-link">
2128                        <a href="mailto:[email protected]">
2129                            [email protected]
2130                        </a>
2131                        <span aria-label="Recruitment telephone">(0800) 9520111</span>
2132                    </div>
2133                </div>
2134                
2135            </div>
2136            
2137            
2138            <div class="block-contact-us__grid_container--card" aria-labelledby="other-info-heading">
2139                <div id="other-info-heading" class="block-contact-us__grid_container--card-heading block-heading">Other
2140                    Information</div>
2141                <div class="block-contact-us__grid_container--card-text"><p>
2142  <br>
2143  <strong>Family Announcements</strong><br>
2144  01384 358000<br>
2145  <a href="mailto:[email protected]?subject=BMD%20Query%20Redditch%20Advertiser">[email protected]</a><br>
2146  <br>
2147  <strong>Public Notices (inc Goods Vehicle and Premises Licence Applications)</strong><br>
2148  01905 748300
2149</p>
2150<p>
2151  <a href="mailto:[email protected]">[email protected]</a>
2152</p></div>
2153            </div>
2154            
2155
2156        </div>
2157        <!-- end of grid 1 container -->
2158        <div>
2159            
2160            <div class="block-contact-us__seo-section" aria-labelledby="localiq-heading">
2161                <img src="/resources/responsive-static/images/LocaliQ.svg" alt="LOCALiQ logo">
2162                <h2 id="localiq-heading">Digital Marketing Services from LOCALiQ in
2163                    <a href="https://localiq.co.uk/locations/worcester?utm_source=Redditch_Advertiser&utm_medium=referral&utm_campaign=Contact_Us_Page" target="_blank" rel="nofollow">Worcester
2164                    </a>
2165                </h2>
2166                <p>
2167                    <strong>LOCALiQ</strong>
2168                    is an award-winning Digital Marketing Agency, specialising in local marketing and accelerating
2169                    growth for UK businesses.
2170                    Part of <strong> Newsquest Media Group Ltd,</strong> publisher of The Redditch Advertiser, LOCALiQ is
2171                    based in over
2172                    <strong>
2173                        <a href="https://localiq.co.uk/locations?utm_source=NQ&utm_medium=referral++&utm_campaign=contact"
2174                            rel="nofollow" target="_blank">
2175                            35 UK locations
2176                        </a>
2177                    </strong> and delivers exceptional results for B2B, B2C, e-commerce and services businesses.
2178                </p>
2179
2180                <div class="extra-text">
2181                    <a href="https://localiq.co.uk/digital-marketing-services/ppc?utm_source=NQ&utm_medium=referral++&utm_campaign=contact"
2182                        target="_blank" rel="nofollow">PPC,</a>
2183                    <a href="https://localiq.co.uk/digital-marketing-services/seo?utm_source=NQ&utm_medium=referral++&utm_campaign=contact"
2184                        target="_blank" rel="nofollow"> SEO,</a> and
2185                    <a href="https://localiq.co.uk/digital-marketing-services/web-design?utm_source=NQ&utm_medium=referral++&utm_campaign=contact"
2186                        target="_blank" rel="nofollow"> Website Design</a> are just some of the solutions LOCALiQ can
2187                    support your business with.
2188                </div>
2189                <div class="cta-section">
2190                    <div class="mar-btn mar-btn--md mar-btn--dark">
2191                        <a href="https://localiq.co.uk/digital-marketing-services?utm_source=NQ&utm_medium=referral++&utm_campaign=contact"
2192                            target="_blank" rel="nofollow">View our digital marketing services
2193                        </a>
2194                    </div>
2195                    <p> or
2196                        <strong>
2197                            <a href="https://localiq.co.uk/contact-us?utm_source=NQ&utm_medium=referral++&utm_campaign=contact"
2198                                target="_blank" rel="nofollow" class="contact-us-link">Contact us</a>
2199                        </strong>
2200                    </p>
2201                </div>
2202            </div>
2203            
2204            <div class="block-contact-us__grid_container--card" aria-labelledby="notices-heading">
2205                <div id="notices-heading" class="block-contact-us__grid_container--card-heading block-heading">Notices
2206                    and Announcements
2207                </div>
2208                <div class="block-contact-us__grid_container--card-text">
2209                    <p>
2209Remember the life of a loved one with a notice in the newspaper and an online notice page for
2210                        friends and
2211                        family, or celebrate a happy occasion</p>
2212                </div>
2213                <a href="/notices/self-service/category"
2214                    class="mar-btn mar-btn--md mar-btn--dark block-contact-us__spacing">
2215                    Book a death notice
2216                </a>
2217                <a href="https://selfservice.newsquest.co.uk/TouchpointSS/SDE#/"
2218                    class="mar-btn mar-btn--md mar-btn--promo-secondary block-contact-us__spacing">
2219                    Book a celebration announcement
2220                </a>
2221            </div>
2222            <div class="block-contact-us__grid_container--card" aria-labelledby="careers-heading">
2223                <div id="careers-heading" class="block-contact-us__grid_container--card-heading block-heading">Careers
2224                </div>
2225                <div class="block-contact-us__grid_container--card-text">
2226                    <p>
2227                        <strong>The Redditch Advertiser</strong> is part of
2228                        <strong><a class="nq-link" href="https://www.newsquest.co.uk/">Newsquest Media
2229                                Group</a></strong>,
2230                        a leading local news &amp; magazine publisher
2231                        with a portfolio of more than 200 brands.
2232                    </p>
2233                    <div class="block-contact-us__grid_container--card-other-link">
2234                        <a href="https://www.newsquest.co.uk/careers">What we offer</a>
2235                        <a href="https://careers.newsquest.co.uk/#js-careers-jobs-block">Current vacancies</a>
2236                    </div>
2237                </div>
2238            </div>
2239            <div class="block-contact-us__grid_container--card" aria-labelledby="policies-heading">
2240                <div id="policies-heading" class="block-contact-us__grid_container--card-heading block-heading">Policies
2241                    &amp; T&amp;Cs</div>
2242                <div class="block-contact-us__grid_container--card-text">
2243                    <p>
2244                        To view our full policies including
2245                        <a class="nq-link" href="https://www.newsquest.co.uk/legal/terms-conditions/">Terms &amp;
2246                            Conditions</a>,
2247                        <a class="nq-link" href="https://www.newsquest.co.uk/terms-of-advertising">Terms of
2248                            Advertising</a>,
2249                        <a class="nq-link" href="https://www.newsquest.co.uk/legal/contributor-terms/">Contributor
2250                            Terms</a>,
2251                        <a class="nq-link" href="https://www.newsquest.co.uk/domains">Information for Domain Name
2252                            Customers</a>,
2253                        use the links provided.
2254                        For more...
2255
2256                    </p>
2257                    <div class="block-contact-us__grid_container--card-other-link">
2258                        <span>Visit</span> <a href="https://www.newsquest.co.uk/">www.newsquest.co.uk</a>
2259                    </div>
2260                </div>
2261            </div>
2262        </div>
2263        <!-- end of grid 1 container -->
2264    </div>
2265</div>
2266                </div>
2267            </div>
2268
2269            <footer class="site-footer" aria-label="site-footer">
2270    <div class="container-inner-width">
2271        <div class="links-grid" aria-label="site-footer-links">
2272            <section class="get-in-touch-section">
2273                <h2>Get in Touch</h2>
2274                <a href="/contact/">Contact Us</a><a href="/advertising/">Advertise</a><a href="/homedelivery/">Newspaper Home Delivery</a><a href="/send-us-your-news/">Send Us Your News</a><a href="/submit-an-event/">Add Your Event For Free</a><a href="/publications/">Our Publications</a>
2275            </section>
2276            <section class="follow-us-section">
2277                <h2>Follow Us</h2>
2278<a
2279                        class="footer__social-media--link"
2280                        href="https://twitter.com/Redd_Advertiser"
2281                        title="Redditch Advertiser"
2282                        role="link"
2283                        data-media-type="twitter"
2284                    >
2285                        <i class="footer__social-media--icon iconify"></i>
2286                        Redditch Advertiser
2287                    </a>
2288
2289
2290                    <a
2291                        class="footer__social-media--link"
2292                        href="https://www.facebook.com/TheRedditchAdvertiser/"
2293                        title="Redditch Advertiser"
2294                        role="link"
2295                        data-media-type="facebook"
2296                    >
2297                        <i class="footer__social-media--icon iconify"></i>
2298                        Redditch Advertiser
2299                    </a>
2300            </section>
2301            <section class="useful-links-section">
2302                <h2>Useful Links</h2>
2303                <div class="useful-links">
2304                    <section>
2305                        <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>
2306                    </section>
2307                    <section>
2308                        <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.redditchadvertiser.co.uk" target="_block">Leap</a><a href="/archive/" style="display: inline-block">Archive</a> | <a href="/misc/sitemap/" style="display: inline-block">Sitemap</a><a href="/gdpr/" class="gdpr-option-v2" data-v2-id="1170586" data-is-gate="yes" rel="nofollow">Manage Consent</a><a href="https://www.newsquest.co.uk/legal/ai-notice/" target="_blank">AI Notice</a>
2309                    </section>
2310                </div>
2311            </section>
2312            <section class="ipso-terms">
2313                <img class="ipso-logo" src="/resources/responsive-static/mds/images/ipso-regulated.png" alt="IPSO Regulated image" />
2314                <p class="ipso-copy">This website and associated newspapers adhere to the Independent Press Standards Organisation's
2315    Editors' Code of Practice. If you have a complaint about the editorial content which relates to
2316    inaccuracy or intrusion, then please <a class="footer__ipso-terms--link" href="/contact">
2317    contact the editor here</a>.
2318    If you are dissatisfied with the response provided you can
2319    <a class="footer__ipso-terms--link" href="https://www.ipso.co.uk/contact-us/" target="_block">contact IPSO here</a></p>
2320            </section>
2321        </div>
2322        <div class="notice" aria-label="site-footer-notice">
2323            <img src="/resources/responsive-static/mds/images/newsquest.png" alt="Newsquest" style="width: 193px"/>
2324            <p><strong>&copy; 2001-2026. The Redditch Advertiser</strong> is owned and operated by Newsquest Media Group Ltd, an audited local newspaper network.</p>
2325            <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>
2326            <p>The Echo Building, 18 Albert Road, Bournemouth, England BH1 1BZ. Registered in England & Wales | 01676637</p>
2327        </div>
2328    </div>
2329</footer>
2330
2331
2332            <div id="fb-root"></div>
2333
2334
2335        </div>
2336    </div>
2337
2338
2339
2340    <div class="mar-modal-container mar-modal-container--animate mar-modal-container--animate-out visually-hidden">
2341    <div class="mar-modal-overlay" data-uses-js="close-modal"></div>
2342
2343    <div aria-label="Pop up dialog" class="mar-modal" tabindex="-1" role="dialog">
2344        <div class="mar-modal__header">
2345            <h3 class="mar-modal__title">Modal headline</h3>
2346
2347            <div class="mar-modal__close" data-uses-js="close-modal">
2348<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2349    <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
2349C1.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"/>
2350</svg>
2351
2352
2353                <span>Close</span>
2354            </div>
2355        </div>
2356
2357        <div class="mar-modal__body">Automatically injected HTML goes here</div>
2358
2359        <div class="mar-modal__actions">
2360<!-- standard - Buttons.html --> 
2361    
2362<button
2363    type="button"
2364    data-uses-js="modal-submit"
2365    
2366    class=" mar-btn
2367    mar-btn--light
2368    mar-btn--md
2369    
2370    
2371    "
2372>
2373    Submit
2374</button>
2375    
2376
2377
2378
2379<!-- standard - Buttons.html --> 
2380    
2381<button
2382    type="button"
2383    data-uses-js="modal-cancel"
2384    
2385    class=" mar-btn
2386    mar-btn--outline
2387    mar-btn--md
2388    
2389    
2390    "
2391>
2392    Cancel
2393</button>
2394    
2395
2396
2397        </div>
2398    </div>
2399</div>
2400
2401</body>
2402
2403<div id="outbrain-holder">
2404    <div id="DFP_standard_mpu_3"></div>
2405    <div id="DFP_standard_mpu_4"></div>
2406    <div id="DFP_standard_mpu_5"></div>
2407    <div id="DFP_standard_mpu_6"></div>
2408    <div id="DFP_standard_mpu_7"></div>
2409</div>
2410<script>
2411
2412const elementToObserve = document.querySelector("#outbrain-holder");
2413
2414// create a new instance of `MutationObserver` named `observer`,
2415// passing it a callback function
2416const observer = new MutationObserver(function(e) {
2417    $.each(e, function(j, obs) {
2418        $.each(obs.removedNodes, function (i, node) {
2419            var id = $(node).attr('id');
2420            addAdSlot(id, id.replace('DFP_', ''));
2421        });
2422    });
2423});
2424
2425// call `observe()` on that MutationObserver instance,
2426// passing it the element to observe, and the options object
2427observer.observe(elementToObserve, {subtree: true, childList: true});
2428</script>
2428
2429
2430<script>
2431window.domComplete = performance.now();
2432</script>
2432
2433
2434<script type="text/javascript">
2435path = document.location.href.split("/");
2436var prop30 = qs.get('lp');
2437var prop43 = qs.get('ref');
2438var pType="Newsquest\Modules\ContactUsModule"
2439
2440if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') {
2441    pType = 'ArticleModule';
2442}
2443for(x=4; x<7; x++)
2444{
2445    if (typeof path[x] == 'undefined')
2446    {
2447        path[x] = '';
2448    }
2449    if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1))
2450    {
2451        path[x] = path[x-1];
2452    }
2453    else
2454    {
2455        path[x] = path[x-1] + "/" + path[x];
2456    }
2457    path[x] = path[x].replace(/\/undefined/g,"");
2458}
2459sitename = path[2].split(".");
2460
2461pathN= unescape(document.location.pathname.toString());
2462matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/);
2463detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/);
2464if (detailMatches !== null && detailMatches.length > 1)
2465{
2466    matches = detailMatches;
2467}
2468
2469if (matches !== null && matches.length > 1)
2470{
2471    var subfolder = '';
2472    path[3] = 'li';
2473    path[4] = 'li/'+subfolder;
2474    path[5] = 'li/'+subfolder+'/'+matches[1];
2475    path[6] = 'li/'+subfolder+'/'+matches[1];
2476}
2477if (pathN === '/')
2478{
2479    path[3] = 'homepage';
2480    path[4] = 'homepage';
2481    path[5] = 'homepage';
2482    path[6] = 'homepage';
2483}
2484
2485
2486function filterArray(arr) {
2487    var retArr = [];
2488    $.each(arr, function(i, part) {
2489        if (part !== '') {
2490            retArr.push(part);
2491        }
2492    });
2493
2494    return retArr;
2495}
2496</script>
2496
2497
2498
2499<script type="text/javascript">
2500var known = $.cookie('__siren') ? '1' : '0' ;
2501</script>
2501
2502
2503<script type="text/javascript">
2504
2505var known = $.cookie('__siren') ? '1' : '0' ;
2506var ref = document.referrer;
2507var parser = document.createElement('a');
2508parser.href = ref;
2509
2510// values in the below MUST be strings
2511var targeting = {
2512    'context': '',
2513    
2514    'domain': 'www.redditchadvertiser.co.uk',
2515    'isLanding': 'yes',
2516    'top_path': 'contact',
2517    'weather': 'sun'.toLowerCase(),
2518    'jbsjs': ''.toLowerCase(),
2519    'site_search': '',
2520    'bmd_cat': '',
2521    'wt': '11-15',
2522    'cmpid': qs.get('cmpid'),
2523    'refdm': parser.hostname,
2524    'k': known,
2525    'g':  'u' ,
2526    'a':  '0' ,
2527    'topic': '',
2528    'publication': '',
2529    'primary_tag_future_use': '',
2530    'site': (isMobile()) ? 'mobile': 'desktop',
2531    'r': data_layer.user.subscription_plan !== ''
2532        ? '2'       // 2 = subscribed
2533        : data_layer.user.is_logged_in == 'yes'
2534            ? '1'   // 1 = registered
2535            : '0',  // 0 = anonymous
2536};
2537
2538if (!usePrebid) {
2539    targeting.adrq = 'adl';
2540}
2541
2542if (data_layer.video.exists === 'yes') {
2543    targeting.ptype = 'video';
2544}
2545
2546if ($.cookie('isMeterExpired') === 'yes' && window.data_layer.article.is_article) {
2547    var articleContentLevel = parseInt(window.data_layer.article.content_level, 10) || 0; // account for NaN
2548    if (articleContentLevel !== 0 && window.data_layer.article.content_level_open_access === 'no') {
2549        targeting.ao = 'y';
2550    }
2551}
2552
2553if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
2554    targeting.dfpcsnt = 'yes';
2555} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') {
2556    targeting.dfpcsnt = 'no';
2557} else {
2558    targeting.dfpcsnt = 'none';
2559}
2560
2561if (typeof MobileDetect !== "undefined") {
2562    targeting.canbb = (window.screen.width > 960) ? 'y' : 'n';
2563}
2564
2565if (typeof module_targeting === "object") {
2566    targeting = addToTargeting(targeting, module_targeting);
2567}
2568
2569// $.each(apData, function (k, v) {
2570//     targeting[k] = v;
2571// });
2572
2573// if (typeof gs_channels !== 'undefined') {
2574//     targeting.gs_channels = gs_channels;
2575// }
2576
2577targeting = addToTargeting(targeting, data_layer_helper.homesData);
2578
2579targeting.article_id = '';
2580var googleSiteName = 'www.redditchadvertiser.co.uk';
2581var googlePath = '/contact/';
2582
2583var googleNetworkCode = 154725070;
2584
2585var googleChildNetworkCode = 22694024870;
2586var googleId = '/'+googleNetworkCode + ',' + googleChildNetworkCode + '/' + googleSiteName+googlePath;
2587
2588if (googleId.charAt(googleId.length - 1) === '/') {
2589    googleId = googleId.slice(0, -1);
2590}
2591
2592var googletag = googletag || {};
2593googletag.cmd = googletag.cmd || [];
2594
2595googletag.cmd.push(function () {
2596    var _YB = _YB || {
2597        ab: function () {
2598            return _YB.dool ? "b" : "a" + Math.floor(Math.random() * 10);
2599        },
2600        dool: Math.random() >= 0.1,
2601    };
2602    var yb_ab;
2603    if (Math.random() <= 0.9) {
2604        yb_ab = _YB.ab();
2605    } else {
2606        yb_ab = "c";
2607    }
2608    googletag.pubads().setTargeting("yb_ab", yb_ab);
2609});
2610
2611googletag.cmd.push(function() {
2612    googletag.pubads().set("adsense_background_color", "FFFFFF");
2613    googletag.pubads().setTargeting('rfs', "0");
2614    $.each(targeting, function (key, value) {
2615
2616        // No real value so exclude
2617        if (value === 0 || value === '' || value === null) {
2618            return;
2619        }
2620        googletag.pubads().setTargeting(key, value);
2621    });
2622
2623});
2624
2625if (isMobile() && '' === 'top') {
2626    $('.desktop-standard-leaderboard').remove();
2627    $('.mobile-top-leaderboard').show();
2628    $('#DFP_top_leaderboard_mobile').attr('id', 'DFP_top_leaderboard');
2629} else {
2630    $('.mobile-top-leaderboard').remove();
2631}
2632// Ads
2633var adUnits = [];
2634
2635hideAdsByScreensize();
2636
2637if (blackListAds.length > 0) {
2638    removeBlacklistAds(blackListAds);
2639}
2640
2641$.each(unfilteredAdUnits, function (i, unit) {
2642    removeWhitelistAds(unit);
2643});
2644
2645// set up a holder for all the adverts so we can do things with them later
2646var dfpHolder = {};
2647// the set up code
2648googletag.cmd.push(function() {
2649    $.each(adUnits, function(i, data) {
2650
2651        // check if the dom exists
2652        if ($('#'+data.domName).length === 0) {
2653            return;
2654        }
2655
2656        var dfp = null;
2657
2658        if (data.slotType === 'standard')
2659        {
2660            // get the correct sizes, using the alternate_sizes if they exist and we are on a mobile site
2661            var sizes = data.sizes;
2662            if (data.alternate_mobile_size && isMobile()) {
2663                sizes = data.alternate_mobile_size;
2664            }
2665            // push this ad slot through
2666            dfp = googletag.defineSlot(googleId, sizes, data.domName)
2667                .addService(googletag.pubads())
2668                .setTargeting("position", data.positionName)
2669                .setCollapseEmptyDiv(data.collapseContainer);
2670            // check if we have an array of targets, and assign them as a companion if we do
2671            if (data.targets instanceof Array && data.targets.length > 0 ) {
2672                dfp.setTargeting('companion', data.targets);
2673            }
2674
2675        }
2676        else if (data.slotType === 'outofpage')
2677        {
2678            dfp = googletag.defineOutOfPageSlot(googleId, data.domName)
2679                .addService(googletag.pubads())
2680                .setTargeting("position", data.positionName)
2681                .setCollapseEmptyDiv(data.collapseContainer);
2682            // check if we have an array of targets, and assign them as a companion if we do
2683            if (data.targets instanceof Array && data.targets.length > 0 ) {
2684                dfp.setTargeting('companion', data.targets);
2685            }
2686        }
2687
2688        // store
2689        dfpHolder[data.domName] = dfp;
2690
2691    });
2692
2693    if (adLight === true) {
2694        googletag.pubads().setCategoryExclusion('adlight');
2695        // var adlightexplanation = '<div class="adlight-explanation">I\'m a subscriber <a href="#" class="adlight-explanation-link">Why am I seeing this advert?</a></div>';
2696        // if ($('#DFP_premium_mpu').length > 0) {
2697        //     $('#DFP_premium_mpu').before(adlightexplanation);
2698        // }
2699
2700        // if ($('#DFP_standard_mpu_1').length > 0) {
2701        //     $('#DFP_standard_mpu_1').before(adlightexplanation);
2702        // }
2703
2704        // var imageIds = [11497497, 11497535, 11497536, 11497541, 11497542, 11497545, 11497546, 11497547];
2705        // var imageId = imageIds[Math.floor(Math.random() * imageIds.length)];
2706        // $('.adlight-explanation-link').click(function(e) {
2707        //     e.preventDefault();
2708        //     $('#adlight-explanation-modal-image').attr('src', '/resources/images/' + imageId + '/').show();
2709        //     $('#adlight-explanation-modal').modal();
2710        // });
2711    }
2712
2713    // send the request
2714    googletag.pubads().enableSingleRequest();
2715
2716    googletag.enableServices();
2717
2718    googletag.pubads().addEventListener('slotVisibilityChanged', function(event) {
2719        if (event.slot.getResponseInformation().creativeTemplateId === 828288 ||
2720            event.slot.getResponseInformation().creativeTemplateId === 12383216 ) {
2721            console.log('DFP: Magic template id detected, not refreshing');
2722            return;
2723        }
2724        var slotName = '';
2725        $.each(dfpHolder, function (a, e) {
2726            if (e == event.slot) {
2727                slotName = a;
2728            }
2729        });
2730        if (typeof window.advertisingTimer !== 'undefined') {
2731            var perc = event.inViewPercentage;
2732            window.advertisingTimer.timer(slotName, perc);
2733        }
2734    });
2735});
2736
2737// the display code
2738$.each(adUnits, function(i, data) {
2739
2740    // check if the dom exists
2741    if ($('#'+data.domName).length === 0) {
2742        return;
2743    }
2744
2745    if (data.domName === 'DFP_interstitial_mpu') {
2746        if (!inter.checkVisit()) {
2747            return;
2748        }
2749    }
2750
2751    // are we manually loading it?
2752    if ($('#'+data.domName).attr('data-manual-loading') === "yes") {
2753        return;
2754    }
2755    // for mobile, we check if the dom element has the data-delay-loading attribute set to "1"
2756    else if ($('#'+data.domName).attr('data-delay-loading') === "yes") {
2757
2758        // load it
2759        $('#'+data.domName).appear();
2760        $(document.body).on('appear', '#'+data.domName, function(e, allElement) {
2761
2762            // don't call it many times
2763            if ($(this).attr('data-processed') === 'yes') {
2764                return;
2765            }
2766
2767            $(this).attr('data-processed', 'yes');
2768
2769            // display the google ad
2770            googletag.display(data.domName);
2771            googletag.pubads().refresh([dfpHolder[data.domName]]);
2772        });
2773        return;
2774    }
2775    googletag.cmd.push(function() {
2776        googletag.display(data.domName);
2777    });
2778});
2779window.googleComplete = performance.now();
2780window.googleReady = true;
2781
2782// METHODS
2783function addToTargeting(targeting, data) {
2784    if (!data) {
2785        return targeting;
2786    }
2787    $.each(data, function (key, value) {
2788        if (!value) {
2789            return;
2790        }
2791        targeting[key] = value;
2792    });
2793    return targeting;
2794}
2795
2796function addAdSlot(slotName, slot, initHidden) {
2797    console.log("Add ad slot called for %s %s", slotName, slot);
2798    // check if item already exists
2799    if (typeof window.dfpHolder[slotName] !== 'undefined') {
2800        return;
2801    }
2802
2803    if (window.adLight === true) {
2804        return;
2805    }
2806    window.googletag.cmd.push(function() {
2807        var dfp = googletag.defineSlot(window.googleId, [[300,250]], slotName)
2808            .setTargeting('position', [slot])
2809            .addService(googletag.pubads());
2810        window.dfpHolder[slotName] = dfp;
2811
2812        if (!initHidden) {
2813            googletag.pubads().refresh([dfp]);
2814
2815            return;
2816        }
2817    });
2818}
2819
2820function hideAdsByScreensize() {
2821    if (window.screen.width < 728 && $('#BlockArticleContainer').length > 0) {
2822        if ('159' === '1147') {
2823            $('#DFP_out_of_page').remove();
2824        } else {
2825            $('#DFP_premium_mpu').remove();
2826        }
2827        $('#DFP_on_scroll').remove();
2828    } else if (window.screen.width < 728 &&
2829        ( $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='9']").length > 0 ||
2830        $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='12']").length > 0  ||
2831        $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='18']").length > 0  ||
2832        $(".article-grid__uber[data-top-stories-articles='7'][data-news-list-articles='24']").length > 0 )
2833    ) {
2834        const adElement = document.querySelector('#high_vis_container');
2835        $('.omnicard[data-position="5"]').after(adElement);
2836    }
2837
2838    if ('159' === '1147' && window.screen.width > 450) {
2839        $('#DFP_bottom_leaderboard').remove();
2840    }
2841
2842    if ('159' === '1147' && window.screen.width < 728) {
2843        $('#DFP_top_leaderboard').remove();
2844    }
2845
2846    if ('159' === '1147') {
2847        $('#DFP_teads').remove();
2848        $('#DFP_out_of_page').remove();
2849    }
2850
2851    if ($('#comments-in-page').length === 1 && window.screen.width > 450) {
2852        $('#DFP_top_leaderboard').parent().remove();
2853        $('#DFP_bottom_leaderboard').parent().remove();
2854        // $('#DFP_standard_mpu_1').parent().remove();
2855    }
2856}
2857
2858function removeBlacklistAds(blackListAds) {
2859    $.each(blackListAds, function(i, name) {
2860        removeAdContainer(name);
2861    });
2862}
2863
2864function removeWhitelistAds(unit) {
2865    // VAST (video) ad units never get displayed in here.
2866    if (unit.isVast) {
2867        return;
2868    }
2869
2870    // if we have an ad-light experience
2871    if (whiteList === true) {
2872        if (typeof whiteListAds[unit.positionName] === 'undefined') {
2873            removeAdContainer(unit.domName)
2874            return;
2875        }
2876    }
2877
2878    adUnits.push(unit);
2879}
2880
2881function removeAdContainer(name) {
2882    const element = document.getElementById(name);
2883    // doesn't exist? exit
2884    if(!element) {
2885        return;
2886    }
2887
2888    const parent = element.parentElement;
2889    if (parent && parent.classList.contains('block-bottom-margin')) {
2890        // if immediate parent contains block-bottom-margin as a class, remove the parent as well
2891        parent.classList.remove('block-bottom-margin');
2892    }
2893    if (parent && parent.classList.contains('mar-leaderboard--top')) {
2894        // in case of leaderboard, remove as has min-height
2895        parent.remove();
2896        return;
2897    }
2898
2899    if (parent && parent.classList.contains('mar-leaderboard--bottom')) {
2900        // in case of article ad container, remove as has min-height
2901        parent.remove();
2902        return;
2903    }
2904
2905    element.remove();
2906}
2907</script>
2907
2908
2909
2910<script src="/resources/responsive-static/build/mds/js/global.js?cb=vjoPdzgg"></script>
2910
2911
2912
2913
2914
2915
2916<script src="/__siren/"></script>
2916
2917
2918
2919
2920<script type="text/javascript">
2921    var s_account="newsquestgroupprod";
2922</script>
2922
2923
2924<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/VisitorAPI.js?cb=vjoPdzgg"></script>
vendor: 1 bytes, line 2924
2924
2925<script type="text/javascript" src="/resources/responsive-static/vendor/adobe/omniture.js?cb=vjoPdzgg"></script>
2925
2926
2927<script type="text/javascript">
2928
2929function getOmniturePath() {
2930    var path = '';
2931    if ($('#gallery-base-url').length === 1) {
2932        path = $('#gallery-base-url').val();
2933    }
2934    else {
2935        path = window.location.pathname;
2936    }
2937    return path;
2938}
2939
2940function getPositionFromCookie() {
2941    const cookieName = 'tracking_block_index';
2942
2943    const ref = document.cookie
2944        .split('; ')
2945        .find(row => row.startsWith(`${cookieName}=`))
2946        ?.slice(cookieName.length + 1);
2947
2948    document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`;
2949
2950    return ref ? decodeURIComponent(ref) : undefined;
2951}
2952function getRefFromCookie() {
2953    const cookieName = 'tracking_block';
2954
2955    const ref = document.cookie
2956        .split('; ')
2957        .find(row => row.startsWith(`${cookieName}=`))
2958        ?.split('=')[1];
2959
2960    // Remove the cookie
2961    document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.data_layer.site.cookie_domain}`;
2962
2963    return ref;
2964}
2965
2966function getOmnitureTrackingFromCookie(key, preExistingValue) {
2967    var ref = $.cookie('o-' + key);
2968    if(typeof(ref) === 'undefined') {
2969    	ref  = preExistingValue
2970    } else {
2971    	ref = decodeURIComponent(ref);
2972    	$.removeCookie('o-' + key, {
2973            path: '/',
2974            domain: window.data_layer.site.cookie_domain,
2975        });
2976    }
2977    return ref;
2978}
2979
2980function getValidatedAPList() {
2981
2982    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];
2983
2984    var data = getAudienceProjectTargetingData();
2985    if (!data || !data.ap_x) {
2986        return '';
2987    }
2988
2989    validData = [];
2990    $.each(data.ap_x, function(i, td) {
2991        if ($.inArray(parseInt(td, 10), validList) !== -1) {
2992            validData.push(td);
2993        }
2994    });
2995
2996    return validData.join(',');
2997}
2998
2999path = document.location.href.split("/");
3000
3001var qs = new URLSearchParams(window.location.search);
3002
3003var prop30 = qs.get('lp');
3004var prop43 = qs.get('ref');
3005var pType="Newsquest\Modules\ContactUsModule"
3006
3007if (pType === 'BlockArticleModule' || pType === 'NationalNewsModule' || pType === 'BlockWhatsOnModule') {
3008    pType = 'ArticleModule';
3009}
3010
3011for(x=4; x<7; x++)
3012{
3013    if (typeof path[x] == 'undefined')
3014    {
3015        path[x] = '';
3016    }
3017    if(path[x] == "" || (pType == "ArticleModule" && path[x].match(/[0-9]+\./)) || (path[x].indexOf('?') > -1))
3018    {
3019        path[x] = path[x-1];
3020    }
3021    else
3022    {
3023        path[x] = path[x-1] + "/" + path[x];
3024    }
3025    path[x] = path[x].replace(/\/undefined/g,"");
3026}
3027pathN= unescape(document.location.pathname.toString());
3028matches = pathN.match(/(\w+)\.(in|near|compare)\.([\,a-zA-Z0-9\ _-]+)[\/]?$/);
3029detailMatches = pathN.match(/(\w+)\.detail\.(.*)$/);
3030if (detailMatches !== null && detailMatches.length > 1)
3031{
3032    matches = detailMatches;
3033}
3034
3035if (matches !== null && matches.length > 1)
3036{
3037    var subfolder = '';
3038    path[3] = 'li';
3039    path[4] = 'li/'+subfolder;
3040    path[5] = 'li/'+subfolder+'/'+matches[1];
3041    path[6] = 'li/'+subfolder+'/'+matches[1];
3042}
3043if (pathN === '/')
3044{
3045    path[3] = 'homepage';
3046    path[4] = 'homepage';
3047    path[5] = 'homepage';
3048    path[6] = 'homepage';
3049}
3050
3051
3052/* You may give each page an identifying name, server, and channel on
3053the next lines. */
3054s.pageName="(www) "+getOmniturePath();
3055s.pageName = s.pageName.toLowerCase();
3056s.server="martini";
3057s.channel="";
3058s.pageType="";
3059s.prop1= qs.get('search');
3060s.prop2="";
3061s.prop3=document.title;
3062s.prop4="";
3063s.prop5="Newsquest\Modules\ContactUsModule"; /* get from Martini */
3064s.prop6=path[3].toLowerCase();
3065s.prop7=path[4].toLowerCase();
3066s.prop8=path[5].toLowerCase();
3067s.prop9=path[6].toLowerCase();
3068s.prop10="";
3069
3070s.prop16=path[2].toLowerCase();
3071s.prop17="Stourbridge";
3072s.prop18="Martini";
3073s.prop19="1";
3074s.prop20 = s.getPreviousValue(s.pageName, 'gpv_pn');
3075s.prop42 = "";
3076s.prop53 = 'standard';
3077s.prop54 = '';
3078s.prop55 = '';
3079s.prop56 = "";
3080s.prop57 = ($('[data-name="Feature Article Block A"]').length > 0) ? 'Enabled' : 'Disabled';
3081s.prop58 = document.querySelector('[data-name="Feature Article Block B"]')?.dataset.variant;
3082s.prop59 = getRefFromCookie();
3083s.prop60 = getPositionFromCookie();
3084s.prop73 = document.cookie.split('; ').find(row => row.startsWith('adtiming='))?.split('=')[1] || null;
3085
3086var eVar67 = [];
3087
3088if ($.cookie('consentUUID')) {
3089    eVar67.push('yes');
3090} else {
3091    eVar67.push('no');
3092}
3093if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') {
3094    eVar67.push('yes');
3095} else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') {
3096    eVar67.push('no');
3097} else {
3098    eVar67.push('none');
3099}
3100
3101if ($.cookie('_sp_legitimate_interests') === 'true') {
3102    eVar67.push('yes');
3103} else if ($.cookie('_sp_legitimate_interests') === 'false') {
3104    eVar67.push('no');
3105} else {
3106    eVar67.push('none');
3107}
3108
3109//if ($.cookie('euconsent')) {
3110//    eVar67.push($.cookie('euconsent'));
3111//} else {
3112//    eVar67.push('none');
3113//}
3114
3115s.eVar67 = eVar67.join(',');
3116// console.log('ADB: setting eVar67 to %s', eVar67.join(','));
3117
3118if ($.cookie('prev-tcf-v2')) {
3119    // console.log('ADB: Setting eVar68 to ', $.cookie('prev-tcf-v2'));
3120    s.eVar68 = $.cookie('prev-tcf-v2');
3121}
3122
3123if (typeof iabNames !== 'undefined') {
3124    s.prop29 = iabNames.join(',');
3125} else if (typeof iabIds !== 'undefined') {
3126    s.prop29 = iabIds.join(',');
3127}
3128
3129if (s.prop20 && s.prop20 !== 'no value') {
3130    s.prop21 = s.getPercentPageViewed();
3131} else {
3132    s.prop21 = '';
3133}
3134
3135if (typeof __siren !== 'undefined') {
3136    s.eVar27 = __siren;
3137}
3138
3139s.prop22 = s.getDaysSinceLastVisit('s_lv');
3140
3141
3142s.prop43=getOmnitureTrackingFromCookie('ref', prop43);
3143s.prop25 = ''
3144
3145s.prop27 = '';
3146
3147s.prop30 = getOmnitureTrackingFromCookie('prop30', prop30);
3148s.linkInternalFilters="javascript:,redditchadvertiser.co.uk,fish4.co.uk,adsys.newsquest.co.uk,www.exchangeandmart.co.uk,www.communigate.co.uk,"
3149s.eVar61=(new Date()).toLocaleDateString("en-GB");
3150/* s.eVar62=(new Date()).toLocaleDateString("en-GB"); */
3151
3152
3153
3154
3155
3156
3157/* Article-site-cloning data */
3158s.eVar90 = window.data_layer.article.parent_originating_site_id;
3159s.eVar91 = window.data_layer.article.originating_article_id;
3160s.eVar92 = window.data_layer.article.is_original_to_site;
3161s.eVar95 = window.data_layer.site.using_piano_id;
3162s.eVar106 = '';
3163
3164s.eVar109 = '';
3165
3166/* Uber block article counts */
3167s.eVar93 = window.data_layer.page.top_stories_article_count + ':' + window.data_layer.page.interstitial_article_count + ':' + window.data_layer.page.news_stories_article_count;
3168
3169/* Conversion Variables */
3170s.campaign=""
3171s.state=""
3172s.zip=""
3173s.events=""
3174s.products=""
3175s.purchaseID=""
3176s.eVar14=""
3177try {
3178    s.list3=getValidatedAPList();
3179} catch (e) {
3180    // do nothing
3181}
3182
3183
3184
3185
3186// Initial fotorama tracking.
3187var moduleType = null;
3188if (s.prop5 === 'ArticleModule' || s.prop5 == 'PropertyModuleReplacement' || s.prop5 === 'BlockArticleModule') {
3189    moduleType = 'article';
3190} else if (s.prop5 === 'PictureGalleryModule') {
3191    moduleType = 'gallery';
3192}
3193
3194if ($('#comments-in-page').length === 1) {
3195    moduleType = 'comments';
3196}
3197
3198if (moduleType === 'article' || moduleType === 'gallery' || moduleType === 'comments') {
3199    var imagePath = '';
3200
3201    if ($('.fotorama').length > 0) {
3202        // Get the first Fotorama image.
3203        try {
3204            var el = $('.fotorama').data('fotorama').data[0].html;
3205            var url = $(el).find('div').css('background-image');
3206            imagePath = url.replace('url(','').replace(')','').replace(/\"/gi, "");
3207        } catch (e) {
3208        }
3209    } else {
3210        // If there's just one image (i.e. it's not a gallery), find its path.
3211        var imagePathSingle = $('#mainImage').attr('src');
3212        if (typeof imagePathSingle !== 'undefined') {
3213            imagePath = imagePathSingle.split('.')[0] + '/';
3214        }
3215    }
3216    var imageParts = imagePath.split('/');
3217    if (imageParts.length > 1) {
3218        s.eVar37 = imageParts[imageParts.length - 2];
3219        s.prop37 = imageParts[imageParts.length - 2];
3220        s.events = s.apl(s.events, 'event7', ',', 2);
3221    }
3222    s.eVar36 = moduleType;
3223    s.prop36 = moduleType;
3224}
3225
3226
3227
3228// Education pages.
3229if (s.prop5 === 'ResponsiveEducationModule') {
3230    // School profile page.
3231    if ($('#eduOverview').length > 0) {
3232        s.eVar40 = $('#eduOverview').data('school-status');
3233        s.prop40 = s.eVar40;
3234        s.prop41 = 'edu-' + $('#eduOverview').data('school-urn');
3235        s.prop46 = $('#town').text();
3236    }
3237
3238    // Comparison page.
3239    if ($('#eduComparisonTable').length > 0) {
3240        s.list1 = '';
3241    }
3242
3243    // Results page.
3244    if ($('.school-results').length > 0) {
3245        s.list1 = '';
3246
3247        // Track the search criteria.
3248        s.prop44 = '';
3249        s.prop45 = "".toLowerCase();
3250        s.prop46 = "".toLowerCase();
3251        s.prop49 = '';
3252        s.prop50 = '';
3253        s.prop51 = '';
3254        s.eVar2 = s.prop50;
3255
3256        var newSearch = false;
3257        if (newSearch) {
3258            s.events = s.apl(s.events, 'event17', ',', 1);
3259        }
3260    }
3261}
3262
3263// Notices Module
3264if (s.prop5 === 'NewsquestModulesNoticesModule') {
3265    // Notices Find page.
3266    if (s.pageName.includes('notices/find')) {
3267        s.pageName = '(www) /notices/find/';
3268        s.eVar50 = '';
3269        const noticesURL = new URL(window.location.href);
3270        const noticesParams = new URLSearchParams(noticesURL.search);
3271
3272        s.eVar1 = noticesParams.has('keyword') ? noticesParams.get('keyword') : 'None';
3273        s.eVar51 = noticesParams.has('sort') ? noticesParams.get('sprt') : 'best';
3274        s.eVar52 = noticesParams.has('p') ? (parseInt(noticesParams.get('p'), 10) + 1) : 1;
3275        s.eVar53 = noticesParams.has('type') ? noticesParams.get('type') : 'All';
3276        s.eVar54 = noticesParams.has('nearby') ? noticesParams.get('nearby') : 'no';
3277        s.eVar55 = noticesParams.has('daterange') ? noticesParams.get('daterange') : 'last-month';
3278
3279        if (noticesParams.has('sort')) {
3280            switch (noticesParams.get('sort')) {
3281                case 'date_asc':
3282                    s.eVar51 = 'oldest';
3283                    break;
3284                case 'date_desc':
3285                    s.eVar51 = 'newest';
3286                    break;
3287                case 'best_match':
3288                    s.eVar51 = 'best';
3289                    break;
3290                default:
3291                    s.eVar51 = noticesParams.get('sort');
3292                    break;
3293            }
3294        }
3295
3296        // Concatenate all search params into eVar44
3297        if (noticesParams.size > 0) {
3298            const searchParams = new URL(window.location.href).searchParams;
3299            s.eVar44 = '';
3300            searchParams.forEach((value, key) => {
3301                s.eVar44 += `${key}=${value},`;
3302            });
3303        } else {
3304            s.eVar44 = '';
3305        }
3306
3307        // Adobe Search Event triggering
3308        const setNoticePaginationClicked = (value) => {
3309            localStorage.setItem("isNoticePaginationClicked", value);
3310        };
3311
3312        const noticeSearchInput = document.getElementById("notices-search");
3313        const noticeSearchBtn = document.getElementById("notice-search-find");
3314        const noticePaginationBtns = document.querySelectorAll('.notice-find__pagination .pagination-btn');
3315        const noticePaginationBtnPrev = document.querySelector('.pagination-btn-previous svg');
3316        const noticePaginationBtnNext = document.querySelector('.pagination-btn-next svg');
3317
3318        noticeSearchInput?.addEventListener('change', () => setNoticePaginationClicked('false'));
3319        noticeSearchBtn?.addEventListener('click', () => setNoticePaginationClicked('false'));
3320
3321        noticePaginationBtns.forEach(btn => {
3322            btn.addEventListener('click', () => setNoticePaginationClicked('true'));
3323        });
3324
3325        noticePaginationBtnPrev?.addEventListener('click', () => setNoticePaginationClicked('true'));
3326        noticePaginationBtnNext?.addEventListener('click', () => setNoticePaginationClicked('true'));
3327
3328        if (localStorage.getItem("isNoticePaginationClicked") === 'false') {
3329            s.events = s.apl(s.events, 'event1', ',', 1);
3330        }
3331    }
3332
3333    if (/notices\/funeral-directors\/(\d+)\.([a-zA-Z0-9-?]+)?/.test(s.pageName)) {
3334        s.pageName = '(www) /notices/funeral-director/';
3335        s.eVar41 = '';
3336    }
3337}
3338
3339if (s.prop5 === 'NewsquestModulesNoticeModule') {
3340    s.eVar41 = '';
3341    const type = window.announcement_data?.details?.type || '';
3342    const subCategory = window.announcement_data?.details?.sub_category || '';
3343    s.eVar40 = type !== 'Tribute' ? type : `${type} - ${subCategory}`;
3344    s.eVar42 = window.announcement_data?.details?.id || '';
3345    s.eVar107 = '';
3346    s.eVar119 = '';
3347    s.eVar120 = '';
3348    s.eVar2 = "(www) /notice/";
3349}
3350
3351//New Property module
3352if (s.prop5 === 'ResponsivePropertyModule') {
3353    /*
3354        Use prop42 for single and list pages, for list pages use hyphen separate lists of id's
3355    */
3356    
3357    
3358    //Property's all over the place (homepage, searches etc - HOM-133
3359
3360    //Property Detail - HOM-131, HOM-134, HOM-130
3361
3362    //Contact us submissions - HOM-137
3363    if($('#propertyModule.agent-details').length > 0) {
3364        //Add a click handler for a.contact-detail
3365    }
3366
3367
3368}
3369
3370// is their a video tag on the page?
3371if ($('.exco-embed').length > 0) {
3372    console.log('VID: setting tracking for event50');
3373    s.events = s.apl(s.events, 'event50', ',', 1);
3374}
3375
3376var foundAutoPlayVid = false;
3377$('.jw-outer').each(function (a, domEle) {
3378    if ($(this).data('multimedia-block') === 'no' && !foundAutoPlayVid) {
3379        console.log('VID: setting tracking for event51');
3380        s.events = s.apl(s.events, 'event51', ',', 1);
3381        foundAutoPlayVid = true;
3382    }
3383});
3384
3385
3386
3387
3388
3389
3390
3391s.eVar66 = 'Ad-Full';
3392s.eVar114 = '';
3393
3394
3395
3396    // var eVar65Copy = s.getValOnce(s.eVar65, "ev65", 0);
3397    // if (eVar65Copy !== '' && s.prop20.indexOf("/my/subscription/activate/") > -1) {
3398    //     s.events = s.apl(s.events, "event4", ",", 1); // Set the subscription counter event.
3399    //     s.events = s.apl(s.events, "purchase", ",", 1); // Set the purchase event.
3400    //     s.products = "Subscription : Metered Access;" + eVar65Copy + ";1;";
3401    //     s.purchaseID = "";
3402    // }
3403
3404
3405if(qs.get('action') === 'success' && (s.prop5 === 'ArticleModule' || s.prop5 === 'BMDModule' || s.prop5 === 'BlockArticleModule')) {
3406    s.events=s.apl(s.events,'event9',',',2)
3407}
3408/* Hierarchy Variables */
3409s.hier1="newsquest," + "Stourbridge" + ",www.redditchadvertiser.co.uk," + path[6].replace(/\//,",");
3410
3411if (typeof MartiniFotorama !== 'undefined') {
3412    MartiniFotorama.loadOmniture(s);
3413}
3414s.prop39 = "0";
3415
3416
3417
3418// Tracking usage of Bytecast audio embeds in articles.
3419s.eVar82 = 'no';
3420s.eVar83 = '';
3421
3422    console.log('ADB: starting');
3423    console.log('Google Bot Browser: ', window.isRobot.googleBot()); //TODO Remove this log after QA
3424
3425// Tracking of Commenting Registration FLow
3426if (s.prop5 !== 'BlockArticleModule') {
3427    const storedAdobeDimensions = sessionStorage.getItem('nq_adobe_tracking_article_dimensions');
3428    if (storedAdobeDimensions) {
3429        const storedAdobeDimensionObj = JSON.parse(storedAdobeDimensions);
3430        s.eVar10 = storedAdobeDimensionObj.eVar10;
3431        s.eVar15 = storedAdobeDimensionObj.eVar15;
3432        s.eVar22 = storedAdobeDimensionObj.eVar22;
3433        s.eVar23 = storedAdobeDimensionObj.eVar23;
3434        s.eVar24 = storedAdobeDimensionObj.eVar24;
3435        s.eVar25 = storedAdobeDimensionObj.eVar25;
3436        s.eVar28 = storedAdobeDimensionObj.eVar28;
3437        s.eVar60 = storedAdobeDimensionObj.eVar60;
3438        s.eVar104 = storedAdobeDimensionObj.eVar104;
3439        s.eVar106 = storedAdobeDimensionObj.eVar106;
3440        s.eVar107 = storedAdobeDimensionObj.eVar107;
3441        s.eVar108 = storedAdobeDimensionObj.eVar108;
3442        s.prop63 = storedAdobeDimensionObj.prop63;
3443    }
3444}
3445
3446if (window.location.href.includes("/user/create-account/commenting/")) {
3447    s.eVar2 = '(www) /user/create-account/commenting/';
3448}
3449
3450/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
3451if (qs.get('callback') !== 'in' && !window.isRobot.googleBot()) {
3452    var s_code=s.t();
3453    var backupAdobe = s;
3454
3455    if(s_code)document.write(s_code)
3456}
3457
3458// Storing the visiting dimensions
3459if (s.eVar10 || s.eVar22 || s.eVar23 || s.eVar24) {
3460    const adobeTrackingVisitingDimensions = {
3461        eVar10: s.eVar10,
3462        eVar22: s.eVar22,
3463        eVar23: s.eVar23,
3464        eVar24: s.eVar24,
3465    }
3466    sessionStorage.setItem('nq_adobe_tracking_visiting_dimensions', JSON.stringify(adobeTrackingVisitingDimensions));
3467}
3468
3469//--></script>
3469
3470<!-- End SiteCatalyst code version: H.19.3. -->
3471
3472
3473
3474
3475
3476<script>
3477    if ('' !== '') {
3478        setTimeout(function() {
3479            data_layer_helper.loadScript(
3480                "/resources/responsive-static/build/mds-next/js/.js?cb=vjoPdzgg",
3481                true,
3482                null,
3483                "module"
3484            )
3485        }, 500);
3486    }
3487</script>
3487
3488
3489
3490</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.