PageSourceSearch

https://www.ecr.co.za/east-coast-radio-app/

html ecr.co.za collected 2026-10-01 10:32:28 UTC 34,050 bytes, 1,101 lines download raw bytes

1
2
3
4
5
6
7<!DOCTYPE html>
8<!--[if IE 8]>
9<html class="no-js lt-ie9"> <![endif]-->
10<!--[if gt IE 8]><!-->
11<html class="no-js"> <!--<![endif]-->
12<head itemscope itemtype="http://schema.org/WebSite">
13  
13<script>
14
15    !function (f, b, e, v, n, t, s) {
16      if (f.fbq) return;
17      n = f.fbq = function () {
18        n.callMethod ?
19          n.callMethod.apply(n, arguments) : n.queue.push(arguments)
20      };
21      if (!f._fbq) f._fbq = n;
22      n.push = n;
23      n.loaded = !0;
24      n.version = '2.0';
25      n.queue = [];
26      t = b.createElement(e);
27      t.async = !0;
28      t.src = v;
29      s = b.getElementsByTagName(e)[0];
30      s.parentNode.insertBefore(t, s)
31    }(window, document, 'script',
32      'https://connect.facebook.net/en_US/fbevents.js');
33
34  let key = '1239771019520398';
35  fbq('init', key);
36  fbq('track', 'PageView');
37</script>
37
38<noscript><img height="1" width="1" style="display:none"
39               src="https://www.facebook.com/tr?id=1239771019520398&ev=PageView&noscript=1"
40/></noscript>
41
42  <meta charset="utf-8"/>
43  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
44  <title itemprop='name'>
45    East Coast Radio App | Download | East Coast Radio
46    </title>
47  
48
49  <link rel="canonical" href="https://www.ecr.co.za/east-coast-radio-app/" itemprop="url">
50
51
52  <meta name="keywords" content="
53
54
55    ">
56  <meta name="description" content="
57
58
59    Celebrate 3 decades of East Coast Radio with our new Radio Streaming App! Download today to tune in and stream great music, news and features."/>
60
61  <meta name="viewport" content="width=device-width, initial-scale=1"/>
62
63  
64
65  <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 65-66
65
66<script async src="https://www.googletagmanager.com/gtag/js?id=
66G-M4391TSB60
vendor: 12 bytes, line 66
66"></script>
67<script>
68  
vendor: 144 bytes, lines 68-75
68window.dataLayer = window.dataLayer || [];
69
70  function gtag() {
71    dataLayer.push(arguments);
72  }
73
74  gtag('js', new Date());
75  gtag('config', '
75G-M4391TSB60
vendor: 4 bytes, line 75
75');
76</script>
76
77
78
79
80<!-- Google Tag Manager -->
81<script>
vendor: 327 bytes, lines 81-85
81(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
82new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
83j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
84'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
85})(window,document,'script','dataLayer','
85GTM-PBN8S6P
vendor: 3 bytes, line 85
85');
85</script>
85
86<!-- End Google Tag Manager -->
87
88
89  
89<script>
90    var googletag = googletag || {};
91    googletag.cmd = googletag.cmd || [];
92  </script>
92
93
94  
94<script async="async" src="https://www.googletagservices.com/tag/js/gpt.js"></script>
94
95
96  
97  
97<script type="application/ld+json">
98  {
99    "@context": "http://schema.org",
100    "@type": "Organization",
101    "url": "https://www.ecr.co.za/",
102    "logo": "https://turntable.kagiso.io/core/images/ecr/logo_md_2017.svg",
103    "sameAs": [
104      "https://www.facebook.com/eastcoastradio",
105      "https://www.instagram.com/eastcoastradio/",
106      "https://twitter.com/Ecr9495",
107      "https://www.youtube.com/user/ecronair"
108    ],
109    "contactPoint": [{
110      "@type": "ContactPoint",
111      "telephone": "+27 31 570 9495",
112      "contactType": "customer service"
113    }]
114  }
115</script>
115
116
117
118
119  
120
121
122<meta property="og:locale" content="en_GB"/>
123<meta property="og:type" content="website"/>
124<meta property="og:title" content="East Coast Radio App | Download | East Coast Radio"/>
125<meta property="og:description" content="Celebrate 3 decades of East Coast Radio with our new Radio Streaming App! Download today to tune in and stream great music, news and features."/>
126<meta property="og:url" content="https://m.ecr.co.za/east-coast-radio-app/"/>
127<meta property="og:site_name" content="ECR"/>
128
129    
130  <meta property="og:image" content=""/>
131
132
133
134
135  <meta property="fb:app_id" content="669961536436763" />
136
137
138  
139    
139<script>!function (s, e, t, r) {
140      var a = e.createElement("script");
141      a.async = !0;
142      a.src = "https://app.masslytics.io/masslytics.js";
143      var c = e.getElementsByTagName("script")[0];
144      c.parentNode.insertBefore(a, c);
145      s.masslyticsApiSubdomain = "app";
146      s.masslyticsBrandId = "ML-231622";
147    }(window, document);</script>
147
148  
149
150  
151    <link rel="stylesheet" type="text/css" href="https://turntable.kagiso.io/core/css/main-ecr.css">
152  
153
154  
155  <style>
156    .block-image {
157        padding: 0 15px;
158    }
159  </style>
160
161
162  
163    <link rel="apple-touch-icon" sizes="152x152" href="https://turntable.kagiso.io/core/images/ecr/apple-touch-icon.png">
164  
165  
166    <link rel="shortcut icon" href="https://turntable.kagiso.io/core/images/ecr/favicon.ico">
167  
168
169  <link href="//fonts.googleapis.com/css?family=Open+Sans:300,400,700" type="text/css">
170  <link rel="stylesheet" href="https://turntable.kagiso.io/core/vendor/owlCarousel/dist/assets/owl.carousel.min.css" type="text/css">
171
172  
172<script>
vendor: 115 bytes, lines 172-175
172
173  (function(h,o,t,j,a,r){
174    h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
175    h._hjSettings={hjid:
175329868
vendor: 239 bytes, lines 175-181
175,hjsv:5
176    };
177    a=o.getElementsByTagName('head')[0];
178    r=o.createElement('script');r.async=1;
179    r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
180    a.appendChild(r);
181  })(window,document,'//static.hotjar.com/c/hotjar-','.js?sv=');
182</script>
182
183
184  
184<script async="async" src="https://www.googletagservices.com/tag/js/gpt.js"></script>
184
185
186  
187  
188
189</head>
190
191<body class="">
192
193
194  <!-- Google Tag Manager (noscript) -->
vendor: 75 bytes, lines 194-196
194
195  <noscript>
196    <iframe src="https://www.googletagmanager.com/ns.html?id=
196GTM-PBN8S6P
vendor: 100 bytes, lines 196-199
196"
197            height="0" width="0" style="display:none;visibility:hidden"></iframe>
198  </noscript>
199  
199<!-- End Google Tag Manager (noscript) -->
200
201
202
203
204<div class="spinner-container">
205  <div class="lds-ripple">
206    <div></div>
207    <div></div>
208  </div>
209</div>
210
211
212
213  
214<style>
215    
216</style>
217<header class="header">
218  <div class="container">
219    <div class="nav--right-pan">
220      <a href="#" class="nav-drawer--trigger">
221      <span class="icon-bars"></span>
222    </a>
223    <a href="/" class="header--logo"></a>
224    
225<div class="dropdown dropdown-ll">
226  <a href="/listen-live/"
227     title="Click here to listen live"
228    
229     class="btn-listen-live"
230     target="listen_live"
231    >
232    <span class="icon-listen-live"></span>
233    
234      Stream ECR
235    
236  </a>
237
238  
239</div>
240
241
242  <a href="/ecr-gold-listen-live" target="listen_live"
243     class="btn-listen-live listen-live-gold"
244     title="Click here for East Coast Gold listen live">
245    <span class="icon-play-gold"> <img src="https://turntable.kagiso.io/core/images/ecr/icon_listen_live_gold.png" alt=""></span>
246    Stream EC Gold
247  </a>
248  <a href="https://www.ecr.co.za/big-favour-donate/" class="btn-listen-live btn-upload" title="Click here to donate">
249    Donate
250  </a>
251
252
253
254
255<a href="/weather/" class="btn-listen-live btn-upload weather_page_menu_item" title="Weather"><span
256  class="weather-text">Weather</span></a>
257
258    </div>
259
260    <ul class="header--links">
261      <li><div class="nav-search">
262  <form action="/search/" method="get" class="nav-search--form">
263    <input
264      type="text"
265      name="query"
266      class="search--input"
267      placeholder="Search..."
268      value="">
269    <span class="icon-search"></span>
270    <input type="submit" value="Search" class="search--icon">
271  </form>
272</div>
273</li>
274      <li class="nav-social-icons">
275
276<div class="icons-social icons-social--no-margin">
277  <a href="https://www.facebook.com/eastcoastradio" target="_blank"><span class="icon-facebook"></span></a>
278  <a href="https://twitter.com/Ecr9495" target="_blank">
279    <img src="https://turntable.kagiso.io/core/images/icons/x-twitter.svg" alt="" width="17" style="padding-bottom: 8px">
280  </a>
281  <a href="https://www.instagram.com/eastcoastradio/" target="_blank"><span class="icon-instagram"></span></a>
282  <a href=" https://www.tiktok.com/@eastcoastradiokzn" target="_blank">
283   <img src="https://turntable.kagiso.io/core/images/icons/tiktok-icon.svg" alt="" width="15" style="padding-bottom: 8px">
284  </a>
285  
286    <a href="https://www.youtube.com/user/ecronair" target="_blank">
287      <span class="icon-youtube-play"></span>
288    </a>
289  
290  <a href="/contact-us">
291    <span class="icon-envelope"></span>
292  </a>
293</div>
294</li>
295    </ul>
296  </div>
297  <!-- Todo: Refactor, make this more simple -->
298  
299  
300
301
302
303
304
305
306  <style>
307    .dropdown:hover .dropdown-menu {
308      display: block;
309      margin-top: 0;
310    }
311
312    .dropdown:focus {
313      background-color: #0d0d0d;
314    }
315
316    .dropdown-menu {
317      margin-top: -3px;
318      border: none;
319    }
320    .dropdown-backdrop{
321      z-index: -100 !important;
322    }
323
324    .nav--list a:hover,  .nav--list .dropdown:hover {
325      background-color: #494949 !important;
326    }
327  </style>
328
329
330<div class="sidebar-blackout"></div>
331
332<nav class="nav">
333  <div class="container">
334    <div class="nav--items">
335      <a href="#0" class="mobile-nav-close"><span class="icon-times"></span>Close</a>
336      <!-- Todo: remove and use append -->
337      <ul class="nav--links">
338        <li>
339
340          
341<div class="dropdown dropdown-ll">
342  <a href="/listen-live/"
343     title="Click here to listen live"
344    
345     class="btn-listen-live"
346     target="listen_live"
347    >
348    <span class="icon-listen-live"></span>
349    
350      Stream ECR
351    
352  </a>
353
354  
355</div>
356
357
358  <a href="/ecr-gold-listen-live" target="listen_live"
359     class="btn-listen-live listen-live-gold"
360     title="Click here for East Coast Gold listen live">
361    <span class="icon-play-gold"> <img src="https://turntable.kagiso.io/core/images/ecr/icon_listen_live_gold.png" alt=""></span>
362    Stream EC Gold
363  </a>
364  <a href="" class="btn-listen-live btn-upload" title="Click here to donate">
365    Donate
366  </a>
367
368
369
370
371<a href="/weather/" class="btn-listen-live btn-upload weather_page_menu_item" title="Weather"><span
372  class="weather-text">Weather</span></a>
373
374        </li>
375        <li class="header--links--contact">
376          <a href="/contact-us/contact-details/"><span class="icon-phone"></span>Contact Us</a>
377        </li>
378        <li><div class="nav-search">
379  <form action="/search/" method="get" class="nav-search--form">
380    <input
381      type="text"
382      name="query"
383      class="search--input"
384      placeholder="Search..."
385      value="">
386    <span class="icon-search"></span>
387    <input type="submit" value="Search" class="search--icon">
388  </form>
389</div>
390</li>
391      </ul>
392      <ul class="nav--list">
393        
394          
395            <li class="home ">
396              <a href="/">Home</a>
397              
398                
399                  <li class=" dropdown" style="position: relative">
400                    <a href="/shows/" onclick="window.location.href = /shows/"
401                       data-toggle="dropdown">
402                      Shows</a>
403                    
404                    
405                    <div class="sub-nav-mobile ">
406                      <ul class="sub-nav-mobile--list">
407                        
408                          <li class="">
409                            <a href="/shows/how-to-listen/">
410                              How To Listen To East Coast Radio
411                            </a>
412                          </li>
413                        
414                          <li class="">
415                            <a href="/shows/ecr-competition-scam-alert/">
416                              ECR COMPETITION SCAM ALERT
417                            </a>
418                          </li>
419                        
420                        
421                          
422                        
423                      </ul>
424                    </div>
425                  </li>
426                
427              
428                
429                  <li class=" dropdown" style="position: relative">
430                    <a href="/news/" onclick="window.location.href = /news/"
431                       data-toggle="dropdown">
432                      News &amp; Traffic</a>
433                    
434                    
435                    <div class="sub-nav-mobile ">
436                      <ul class="sub-nav-mobile--list">
437                        
438                          <li class="">
439                            <a href="/news/news/">
440                              News
441                            </a>
442                          </li>
443                        
444                          <li class="">
445                            <a href="/news/traffic/">
446                              Live ECR Traffic Updates
447                            </a>
448                          </li>
449                        
450                          <li class="">
451                            <a href="/news/entertainment/">
452                              Entertainment
453                            </a>
454                          </li>
455                        
456                          <li class="">
457                            <a href="/news/sport/">
458                              Sport
459                            </a>
460                          </li>
461                        
462                          <li class="">
463                            <a href="/news/consumer-hacks/">
464                              Consumer Hacks
465                            </a>
466                          </li>
467                        
468                        
469                          
470                        
471                      </ul>
472                    </div>
473                  </li>
474                
475              
476                
477                  
478                    <li class="
479                      ">
480                      <a href="/comps/">
481                        Win
482                      </a>
483                    </li>
484                  
485                
486              
487                
488                  <li class=" dropdown" style="position: relative">
489                    <a href="/contact-us/" onclick="window.location.href = /contact-us/"
490                       data-toggle="dropdown">
491                      Contact Us</a>
492                    
493                    
494                    <div class="sub-nav-mobile ">
495                      <ul class="sub-nav-mobile--list">
496                        
497                          <li class="">
498                            <a href="/contact-us/map-hq/">
499                              Map to HQ
500                            </a>
501                          </li>
502                        
503                          <li class="">
504                            <a href="/contact-us/advertise-us-portal2025/">
505                              Advertise with us
506                            </a>
507                          </li>
508                        
509                        
510                          
511                        
512                      </ul>
513                    </div>
514                  </li>
515                
516              
517                
518                  <li class=" dropdown" style="position: relative">
519                    <a href="/lifestyle/" onclick="window.location.href = /lifestyle/"
520                       data-toggle="dropdown">
521                      Lifestyle</a>
522                    
523                    
524                    <div class="sub-nav-mobile ">
525                      <ul class="sub-nav-mobile--list">
526                        
527                          <li class="">
528                            <a href="/lifestyle/food/">
529                              Food
530                            </a>
531                          </li>
532                        
533                          <li class="">
534                            <a href="/lifestyle/family/">
535                              Family
536                            </a>
537                          </li>
538                        
539                          <li class="">
540                            <a href="/lifestyle/house-home/">
541                              House &amp; Home
542                            </a>
543                          </li>
544                        
545                        
546                          
547                        
548                      </ul>
549                    </div>
550                  </li>
551                
552              
553                
554                  
555                    <li class="
556                      ">
557                      <a href="/podcasts/">
558                        Podcasts
559                      </a>
560                    </li>
561                  
562                
563              
564                
565                  <li class=" dropdown" style="position: relative">
566                    <a href="/big-favour-with-breakfast/" onclick="window.location.href = /big-favour-with-breakfast/"
567                       data-toggle="dropdown">
568                      Big Favour</a>
569                    
570                    
571                    <div class="sub-nav-mobile ">
572                      <ul class="sub-nav-mobile--list">
573                        
574                          <li class="">
575                            <a href="/big-favour-with-breakfast/want-to-be-a-donor/">
576                              Big Favour Donate - Service
577                            </a>
578                          </li>
579                        
580                          <li class="">
581                            <a href="/big-favour-with-breakfast/i-need-favour-form/">
582                              I need a Favour
583                            </a>
584                          </li>
585                        
586                          <li class="">
587                            <a href="/big-favour-with-breakfast/big-favour-donate/">
588                              Big Favour Done- Cash
589                            </a>
590                          </li>
591                        
592                        
593                          
594                        
595                      </ul>
596                    </div>
597                  </li>
598                
599              
600                
601                  
602                    <li class="
603                      ">
604                      <a href="/ecr-events/">
605                        ECR Events
606                      </a>
607                    </li>
608                  
609                
610              
611                
612                  
613                    <li class="
614                      ">
615                      <a href="/classic-hits/">
616                        Classic Hits
617                      </a>
618                    </li>
619                  
620                
621              
622                
623                  
624                    <li class="
625                      ">
626                      <a href="/east-coast-radio-top-40/">
627                        ECR Top 40
628                      </a>
629                    </li>
630                  
631                
632              
633                
634                  
635                    <li class="
636                      ">
637                      <a href="/kzn-future-50-season-3/">
638                        Future 50 Season 3
639                      </a>
640                    </li>
641                  
642                
643              
644                
645                  
646                    <li class="
647                      ">
648                      <a href="/the-east-coast-radio-fugitive/">
649                        The East Coast Radio Fugitive
650                      </a>
651                    </li>
652                  
653                
654              
655                
656                  
657                    <li class="
658                      ">
659                      <a href="/music-society/">
660                        Music Society
661                      </a>
662                    </li>
663                  
664                
665              
666            </li>
667            </ul>
668            </div>
669            </div>
670          
671        
672          
673        
674</nav>
675
676
677</header>
678
679
680
681<main class="main" role="main">
682  
683
684  
685
686
687  <style>
688    .block-image {
689        padding: 0 15px;
690    }
691  </style>
692
693
694<div class="main-content has-no-padding" style="background-color: white">
695  <header class="page-header">
696    <div class="container">
697      <h1 class="page-header--title">East Coast Radio App</h1>
698    </div>
699  </header>
700  <div class="container">
701    <article class="post">
702      <div class="row">
703          <div class="post--body">
704            <div class="block-image"><img alt="east coast radio app" height="210" src="https://turntable.kagiso.io/images/ecr-728x210.original.jpg" width="728"></div>
705<div class="block-html"><div>
706<a href="https://itunes.apple.com/za/app/east-coast-radio/id1121150571?mt=8" target="_blank"><img src="https://turntable.kagiso.io/core/images/button_app_store.png"></a>
707<a href="https://play.google.com/store/apps/details?id=com.kagiso.ecr&hl=en" target="_blank"><img src="https://turntable.kagiso.io/core/images/button_google_play.png"></a>
708</div></div>
709          </div>
710      </div>
711    </article>
712  </div>
713</div>
714
715
716    <!-- Todo: remove this once PR is merged in django_auth -->
717</main>
718
719
720  
721
722
723
724
725<div class="ad-footer">
726  <div class="ad-container">
727    <div class="hidden-sm-down">
728      <div id="DFP-ads-dfp-663"
729     class="dfp-ads"
730     data-lazy-load="no"
731     data-pos="btf"
732     data-slot="/7938/East_Coast_Radio-Web"
733     data-url="/ecr-home/east-coast-radio-app/">
734    
735        <div data-sizes="[[728, 90], [728, 210]]"
736             data-screen-width="980"
737             data-screen-height="200"></div>
738    
739        <div data-sizes="[[320, 50],[300, 50]]"
740             data-screen-width="468"
741             data-screen-height="240"></div>
742    
743        <div data-sizes="[[320, 50],[300, 50]]"
744             data-screen-width="320"
745             data-screen-height="60"></div>
746    
747</div>
748
749    </div>
750  </div>
751</div>
752
753<footer class="footer" role="contentinfo">
754  <div class="container">
755    <div class="footer--lines"></div>
756    
757
758<div class="footer--column">
759  <div class="footer--column-title">Information</div>
760  <ul class="footer--column-list">
761    <li><a href="/contact-us">Contact Us</a></li>
762    
763      <li><a href="https://kagisomedia.mcidirecthire.com/Eastcoastradio/External/CurrentOpportunities" target="_blank">Careers</a>
764      </li>
765      <li><a href="https://turntable.kagiso.io/documents/PAIA+Manual_Final_June2025_ECR.pdf"
766             class="text
766-dark text-decoration-none" target="_blank">PAIA Manual</a></li>
767    
768    <li><a href="https://turntable.kagiso.io/documents/PAIA+Form+2.pdf" class="text-dark text-decoration-none"
769           target="_blank">PAIA Request for Access to
770      Record</a></li>
771    
772      <li><a href="/terms-of-use/">Terms Of Use</a></li>
773    
774      <li><a href="/privacy-policy/">Privacy Policy</a></li>
775    
776      <li><a href="/east-coast-radio-app/">East Coast Radio App</a></li>
777    
778  </ul>
779</div>
780
781
782    <div class="footer--column column-2">
783      
784        <p><b>Contact our traffic hotline:</b> <br>(031) 570 9400</p>
785      
786      <div class="footer--logos">
787        <a href="http://www.iabsa.net/" target="_blank">
788          <img src="https://turntable.kagiso.io/core/images/logo_iab.png" alt="IAB logo">
789        </a>
790        <a href="https://kagisoconnect.co.za/" target="_blank">
791          <img src="https://turntable.kagiso.io/core/images/kagiso-connect-logo.png" width="109" alt="Kagiso Connect logo">
792        </a>
793      </div>
794      <div class="clear-fix">&nbsp;</div>
795    </div>
796
797    <div class="footer--column column-3">
798      
799  
800
801
802<div class="buttons-app-store">
803    <a href="https://itunes.apple.com/za/app/east-coast-radio/id1121150571?mt=8" target="_blank">
804        <img src="https://turntable.kagiso.io/core/images/button_app_store.png" alt="itunes app store button">
805    </a>
806    <a href="https://play.google.com/store/apps/details?id=com.kagiso.ecr&hl=en" target="_blank">
807        <img src="https://turntable.kagiso.io/core/images/button_google_play.png" alt="google play app store button">
808    </a>
809    <a href="https://appgallery.huawei.com/app/C102807069" target="_blank" >
810        <img src="https://turntable.kagiso.io/core/images/button_app_gallery.png" width="125" alt="app gallery button">
811    </a>
812</div>
813
814
815
816
817      <div style="display: flex; align-items: center;">
818        <h6 style="margin-bottom: 2px">Connect with us</h6>
819        
820
821<div class="icons-social icons-social--no-margin">
822  <a href="https://www.facebook.com/eastcoastradio" target="_blank"><span class="icon-facebook"></span></a>
823  <a href="https://twitter.com/Ecr9495" target="_blank">
824    <img src="https://turntable.kagiso.io/core/images/icons/x-twitter.svg" alt="" width="17" style="padding-bottom: 8px">
825  </a>
826  <a href="https://www.instagram.com/eastcoastradio/" target="_blank"><span class="icon-instagram"></span></a>
827  <a href=" https://www.tiktok.com/@eastcoastradiokzn" target="_blank">
828   <img src="https://turntable.kagiso.io/core/images/icons/tiktok-icon.svg" alt="" width="15" style="padding-bottom: 8px">
829  </a>
830  
831    <a href="https://www.youtube.com/user/ecronair" target="_blank">
832      <span class="icon-youtube-play"></span>
833    </a>
834  
835  <a href="/contact-us">
836    <span class="icon-envelope"></span>
837  </a>
838</div>
839
840      </div>
841    </div>
842  </div>
843</footer>
844<div class="copyright">
845  <div class="container">
846    <p class="copyright--text">&copy; 2026 Kagiso Media Ltd. All rights reserved.</p>
847  </div>
848</div>
849
850
851  
852
853
854
855
856
857<!-- Todo: Insert correct crouton per site -->
858
859
860<script type="text/javascript">
861  window.swfPath = "https://turntable.kagiso.io/core/swf/";
862  window.streamURL = "";
863  window.siteName = "ecr";
864  window.parentRef = this;
865  window.page_id = "49221";
866</script>
866
867
868
869<script charset="utf-8" src="https://cdn.pinpoll.com/global.js" async></script>
vendor: 1 bytes, line 869
869
870<script src="https://cdn.pinpoll.com/sdk.js" async></script>
vendor: 66 bytes, lines 870-872
870
871<script src="https://www.google.com/recaptcha/api.js"></script>
872
873<script charset="utf-8" src="//ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
vendor: 1 bytes, line 873
873
874<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 874
874
875<script charset="utf-8" src="https://hammerjs.github.io/dist/hammer.js"></script>
875
876
877<script>window.jQuery || document.write('
877<script charset="utf-8" src="https://turntable.kagiso.io/core/vendor/jquery/jquery-2.2.0.min.js"><\/script>')</script>
vendor: 1 bytes, line 877
877
878<script charset="utf-8" src="//cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TweenMax.min.js"></script>
vendor: 1 bytes, line 878
878
879<script charset="utf-8" src="//unpkg.com/[email protected]/dist/in-view.min.js"></script>
879
880
881<!-- AdsWizz scripts -->
882<script charset="utf-8" src="//synchrobox.adswizz.com/register2.php"></script>
vendor: 1 bytes, line 882
882
883<script charset="utf-8" src="//cdn.adswizz.com/adswizz/js/SynchroClient2.js"></script>
883
884
885<!-- IONOfm scripts -->
886<script defer charset="utf-8" src="//p2.iono.fm/bundle/0.13.1/player.js"></script>
886
887
888
889  <!-- Facebook Pixel Code -->
890  
890<script>
vendor: 420 bytes, lines 890-897
890
891    !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
892    n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
893    n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
894    t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
895    document,'script','https://connect.facebook.net/en_US/fbevents.js');
896
897    fbq('init', '
8971590266744622825
vendor: 36 bytes, lines 897-899
897');
898    fbq('track', "PageView");
899  
899</script>
899
900  <noscript>
901    <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1590266744622825&ev=PageView&noscript=1"
902  />
903  </noscript>
904  <!-- End Facebook Pixel Code -->
905
906
907
908
909
910<script type="text/javascript" src="https://turntable.kagiso.io/core/vendor/isotope/isotope.pkgd.min.js"></script>
vendor: 1 bytes, line 910
910
911<script type="text/javascript" src="https://turntable.kagiso.io/core/vendor/isotope/isotope.horiz.js"></script>
vendor: 1 bytes, line 911
911
912<script type="text/javascript" src="https://turntable.kagiso.io/core/vendor/isotope/imagesloaded.pkgd.min.js"></script>
vendor: 1 bytes, line 912
912
913<script type="text/javascript" src="https://turntable.kagiso.io/core/js/iframeResizer.min.js"></script>
vendor: 1 bytes, line 913
913
914<script src="https://turntable.kagiso.io/core/vendor/smartbanner/jquery.smartbanner.js"></script>
vendor: 1 bytes, line 914
914
915<script type="text/javascript" src="https://turntable.kagiso.io/core/js/dfp.js"></script>
vendor: 1 bytes, line 915
915
916<script type="text/javascript" src="https://turntable.kagiso.io/core/vendor/jwplayer/jwplayer.js"></script>
vendor: 1 bytes, line 916
916
917<script type="text/javascript" src="https://turntable.kagiso.io/core/js/main.js"></script>
vendor: 1 bytes, line 917
917
918<script type="text/javascript" src="https://turntable.kagiso.io/core/js/shop_results.js"></script>
vendor: 1 bytes, line 918
918
919<script type="text/javascript" src="https://turntable.kagiso.io/core/js/takeover_popup.js"></script>
vendor: 1 bytes, line 919
919
920<script type="text/javascript" src="https://turntable.kagiso.io/core/js/sportslocker.js"></script>
920
921
922
923<!-- 
923<script type="text/javascript" src="https://turntable.kagiso.io/core/js/main.es5.js"></script>
923     -->
924
925
926<script>
927  window.isFacebookLogin = false;
928
929  window.fbAsyncInit = function () {
930    FB.init({
931      appId: 669961536436763,
932      xfbml: true,
933      version: 'v3.2'
934    });
935    FB.AppEvents.logPageView();
936
937    FB.getLoginStatus(function (response) {
938      if (response.status === 'connected') {
939        window.isFacebookLogin = true;
940        $('#leaderboard-fb-logout').css('display', 'block');
941      } else {
942        const isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 &&
943          navigator.userAgent &&
944          navigator.userAgent.indexOf('CriOS') === -1 &&
945          navigator.userAgent.indexOf('FxiOS') === -1;
946
947        
948      }
949    });
950  };
951
952  (function (d, s, id) {
953    var js, fjs = d.getElementsByTagName(s)[0];
954    if (d.getElementById(id)) {
955      return;
956    }
957    js = d.createElement(s);
958    js.id = id;
959    js.src = "https://connect.facebook.net/en_US/sdk.js";
960    fjs.parentNode.insertBefore(js, fjs);
961  }(document, 'script', 'facebook-jssdk'));
962</script>
962
963
964<script>
965  /**
966   * Fetch the latest daily weather icon from rainboo and append it to weather menu item.
967   */
968  $(document).ready(function () {
969
970    let weatherIconTemplate = "<img src='{icon_url}' alt='weather_icon.png' class='weather_icon'/>"
971    let weather_icon_url = '';
972    let el = $('.weather_page_menu_item');
973    let stations = {
974      'jacaranda': 'https://api.rainboo.co.za/api/weather/forecast/ke7fy/8',
975      'ecr': 'https://api.rainboo.co.za/api/weather/forecast/kdwn4/8'
976    };
977
978    $.get(stations[window.siteName], function (data) {
979
980      let item = data.weatherResults[0];
981
982      var nightcode = item.isdaylight ? "" : "N";
983
984      weather_icon_url = 'https://www.rainboo.co.za/images/icons/weather/' + item.pictocode + nightcode + '.png';
985
986      weatherIconTemplate = weatherIconTemplate.replace('{icon_url}', weather_icon_url);
987
988      sessionStorage.setItem('weather_icon', weather_icon_url);
989      // Only show on desktop
990      if (window.innerWidth > 1024) { // Adjust breakpoint as needed
991        el.addClass('weather_button');
992        el.prepend(weatherIconTemplate);
993      }
994    })
995
996  })
997</script>
997
998
999<script>
1000  $(document).ready(function () {
1001    $('input[name=query]').on('input', function () {
1002      $('input[name=query]').prop('value', this.value)
1003    });
1004  });
1005</script>
1005
1006
1007<script src="https://cdn.pinpoll.com/sdk.js" async></script>
vendor: 1 bytes, line 1007
1007
1008<script>
1009      $('.pinpoll-frame iframe').ready(() => {
1010          $('.close-pinpoll-button, .pinpoll-frame').css('display', 'block');
1011      });
1012
1013     window.addEventListener('load', async function() {
1014      const searchParamHid = 'hid';
1015      const searchParamReferer = 'referer';
1016      const searchReferer = 'colony';
1017
1018      // polyfill for URLSearchParams (needed for IE 11)
1019      window.URLSearchParams = window.URLSearchParams || function(searchString) {
1020        var self = this;
1021        self.searchString = searchString;
1022        self.get = function(name) {
1023          var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(self.searchString);
1024          if (results == null) {
1025            return null;
1026          } else {
1027            return decodeURI(results[1]) || 0;
1028          }
1029        };
1030      }
1031      const urlParams = new URLSearchParams(window.location.search);
1032      const hashedUserId = urlParams.get(searchParamHid);
1033      const referer = urlParams.get(searchParamReferer);
1034      const sdk = new PinpollSdk();
1035
1036      if (hashedUserId && referer === searchReferer) {
1037        const attributes = {
1038          userId: hashedUserId,
1039        };
1040        sdk.setAttributes(attributes);
1041        const sleep = (milliseconds) => new Promise(resolve => setTimeout(resolve, milliseconds))
1042        let visitorFound = false;
1043        let tryCount = 0;
1044        const maxTries = 5;
1045        const sleepTime = 200; // ms
1046
1047        // check if visitor cookie is present
1048            do {
1049          tryCount = tryCount + 1;
1050          const response = await sdk.getAudiences();
1051          // In case response object is not empty, we found a visitor
1052          if (! (Object.keys(response).length === 0)) {
1053            visitorFound = true;
1054          }
1055            // otherwise sleep for 200 ms and try it again for 5 times
1056          await sleep(sleepTime);
1057        } while (!visitorFound && tryCount < 5)
1058
1059        // send data only in case visitor was found
1060        if (visitorFound) {
1061            sdk.sendData();
1062        }
1063      }
1064    });
1065</script>
1065
1066
1067<script>
1068  /**
1069   * Terminate answered polls on visited pages.
1070   */
1071  (($)=>{
1072    $(document).ready(() => {
1073      const pinpollData = JSON.parse(localStorage.getItem('my_allVisitorVotes'));
1074      if (pinpollData !== null && typeof pinpollData === 'object') {
1075        pinpollData.map((item) => item.poll_id).forEach((id) => {
1076        $(`#${id}`).remove();
1077        console.info(`#pinpoll-id-${id} answered and removed from DOM`);
1078      });
1079      }
1080    })
1081  })(jQuery);
1082
1083  function hideFrame(frameId, self){
1084    var frame = document.getElementById(frameId);
1085    frame.classList.toggle('hidden');
1086    $(self).toggleClass('closed');
1087    $('.pinpoll-frame').toggleClass('close-parent');
1088
1089    let pollData = JSON.parse(localStorage.getItem('my_allVisitorVotes'));
1090    if(pollData !== null){
1091      pollData.push(JSON.stringify({"poll_id": frameId, "answer_id":0,"question_id":0}));
1092    } else {
1093      pollData = JSON.stringify([{"poll_id": frameId, "answer_id":0,"question_id":0}]);
1094    }
1095    localStorage.setItem('my_allVisitorVotes', pollData)
1096  }
1097</script>
1097
1098
1099<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"42b913acc8304d2f9204361bdaf99ce5","r":1,"spa":2}' crossorigin="anonymous"></script>
1099
1100</body>
1101</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.