1 2<!doctype html> 3 4<html lang="el"> 5<head> 6
6<script> 7 window.onerror = function (msg, url, lineNo, columnNo, error) { 8 console.error("msg:", msg, " url: ", url, " lineNo: ", lineNo, " columnNo", columnNo, " error: ", error); 9 return true; 10 } 11 </script>
11 12 13
13<script> 14 var reconsent = window.localStorage.getItem('reconsent3'); 15 if (!reconsent) { 16 window.localStorage.clear(); 17 window.localStorage.setItem('reconsent3', 'enforced'); 18 (function () { 19 var cookies = document.cookie.split("; "); 20 for (var c = 0; c < cookies.length; c++) { 21 var d = window.location.hostname.split("."); 22 while (d.length > 0) { 23 var cookieBase = encodeURIComponent(cookies[c].split(";")[0].split("=")[0]) + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=' + d.join('.') + ' ;path='; 24 var p = location.pathname.split('/'); 25 document.cookie = cookieBase + '/'; 26 while (p.length > 0) { 27 document.cookie = cookieBase + p.join('/'); 28 p.pop(); 29 }; 30 d.shift(); 31 } 32 } 33 })(); 34 } 35 </script>
35 36 37
38<script>var dataLayer = [{"dlVersion":1,"page":{"site":"atticaradios.gr","pageType":"Desktop"}}];</script>
38
38<script> 39 (function (w, d, s, l, i) { 40 w[l] = w[l] || []; w[l].push({ 41 'gtm.start': 42 new Date().getTime(), event: 'gtm.js' 43 }); var f = d.getElementsByTagName(s)[0], 44 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = false; j.defer = true; j.src = 45 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 46 })(window, document, 'script', 'dataLayer', 'GTM-KKR6MB2');</script>
46 47 48 49 50 51 52 <meta charset="utf-8"> 53 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 54 <meta name="viewport" content="width=device-width, initial-scale=1"> 55 <title>Rock FM - 96.9 | Oλα Ïα αγαÏημÎνα ÏÎ±Ï rock ÏÏαγοÏδια ÏÎ±Î¯Î¶Î¿Ï Î½ εδÏ! - Listen Live | AtticaRadios</title> 56 <meta name="robots" content="index,follow" /> 57 <meta name="Googlebot" content="index,follow" /> 58 <meta name="MSNbot" content="index,follow" /> 59 <meta name="Slurp" content="index,follow" /> 60 <meta name="description" content="ÎÎºÎ¿Ï online ÏÎ¹Ï Î¼ÎµÎ³Î±Î»ÏÏεÏÎµÏ rock εÏιÏÏ ÏÎ¯ÎµÏ ÏÏο live ÏÏÏγÏαμμα ÏÎ¿Ï Rock FM"/> 61 <link rel="canonical" href="https://www.atticaradios.gr/rockfm969/listenlive/" /> 62 63 64 <meta property="og:locale" content="el_GR" /> 65 <meta property="og:site_name" content="96.9 Rock FM" /> 66 <meta property="og:url" content="https://www.atticaradios.gr/rockfm969" /> 67 <meta property="og:image" content="https://www.atticaradios.gr/content/images/logos/rockfm-facebook-default.jpg" /> 68 <meta property="og:image:type" content="image/jpeg" /> 69 <meta property="og:image:width" content="1500" /> 70 <meta property="og:image:height" content="500" /> 71 <meta property="og:title" content="96.9 Rock FM | AtticaRadios.gr" /> 72 <meta property="og:description" content="ÎÎºÎ¿Ï online ÏÎ¹Ï Î¼ÎµÎ³Î±Î»ÏÏεÏÎµÏ rock εÏιÏÏ ÏÎ¯ÎµÏ ÏÏο live ÏÏÏγÏαμμα ÏÎ¿Ï Rock FM." /> 73 <meta property="og:type" content="website" /> 74 <meta property="fb:app_id" content="259907912599" /> 75<meta property="fb:pages" content="132045200154445" /> 76 77 78 <meta name="twitter:description" content="ÎÎºÎ¿Ï online ÏÎ¹Ï Î¼ÎµÎ³Î±Î»ÏÏεÏÎµÏ rock εÏιÏÏ ÏÎ¯ÎµÏ ÏÏο live ÏÏÏγÏαμμα ÏÎ¿Ï Rock FM." /> 79 <meta name="twitter:image" content="https://www.atticaradios.gr/content/images/logos/rockfm-facebook-default.jpg" /> 80 <link rel="shortcut icon" type="image/x-icon" href="/content/favicons/favicon.ico" /> 81 <link rel="apple-touch-icon" sizes="180x180" href="/content/favicons/apple-touch-icon.png"> 82 <link rel="shortcut icon" type="image/png" sizes="32x32" href="/content/favicons/favicon-32x32.png"> 83 <link rel="shortcut icon" type="image/png" sizes="16x16" href="/content/favicons/favicon-16x16.png"> 84 85 <link rel="mask-icon" href="/content/favicons/safari-pinned-tab.svg" color="#000000"> 86 87 88 <meta name="apple-mobile-web-app-title" content="Attica Radios"> 89 <meta name="application-name" content="Attica Radios"> 90 <meta name="msapplication-TileColor" content="#ffce00"> 91 <meta name="theme-color" content="#ffce00"> 92 93 94 95 96 97 98 ` 99 100 <link href="/Content/sass/style.css?v=15" rel="stylesheet" /> 101 102 103 <style> 104 .bannerlazy { 105 position: absolute; 106 } 107 </style> 108 <meta name="facebook-domain-verification" content="lxbaxbcjsw9aa9jnvobh44a4z5nemu" /> 109 110 111 112
112<script> 113 (function () { 114 var insertProcterAndGambleJs = function (tcData) { 115 resolveProc(); 116 return; 117 if (tcData) { 118 var s = document.createElement('script'); 119 s.type = 'text/javascript'; 120 s.async = false; 121 var x = document.getElementsByTagName('script')[0]; 122 x.parentNode.insertBefore(s, x); 123 s.addEventListener("load", function (event) { 124 //if gdpr is not relevant, null values are passed for gdpr related parameters 125 //if gdpr is relevant, send gdpr and gdpr consent values 126 //if ccpa is not relevant, null values are passed for ccpa related parameters 127 //if ccpa is relevant, send ccpa value 128 //see integration guide for gdpr and ccpa details 129 //bpid = business partner id, this is a unique code for identifying partner data to P&G 130 var metadata = { 131 gdpr: ~~tcData.gdprApplies, 132 gdpr_consent: null, 133 ccpa: null, 134 bp_id: "attica2" 135 }; 136 137 if (tcData.purpose.consents[1] && 138 tcData.vendor.consents[577] && 139 tcData.vendor.consents[89] && 140 (tcData.purpose.consents[2] || tcData.purpose.legitimateInterests[2]) && 141 (tcData.purpose.consents[3] || tcData.purpose.legitimateInterests[3]) && 142 (tcData.purpose.consents[4] || tcData.purpose.legitimateInterests[4]) && 143 (tcData.purpose.consents[5] || tcData.purpose.legitimateInterests[5]) && 144 (tcData.purpose.consents[6] || tcData.purpose.legitimateInterests[6]) && 145 (tcData.purpose.consents[7] || tcData.purpose.legitimateInterests[7]) && 146 (tcData.purpose.consents[8] || tcData.purpose.legitimateInterests[8]) && 147 (tcData.purpose.consents[9] || tcData.purpose.legitimateInterests[9]) 148 ) { 149 metadata.gdpr_consent = tcData.tcString; 150 } 151 152 //required configuration parameters do not change 153 var config = { 154 name: "P&G", 155 pixelUrl: "https://pandg.tapad.com/tag" 156 }; 157 158 //initialize tag object 159 var tagger = Tapad.init(metadata, config); 160 161 //prepare object for passing custom data parameters 162 //object can be empty if passing no custom data parameters 163 //one or more additional parameters can be added - depending on availability 164 var data = { 165 category: dataLayer[0] ? dataLayer[0].page ? dataLayer[0].page.category ?? "" : "" : "" 166 //sample custom parameters 167 //category: "Parenting", 168 //age_range: "26_30", 169 //gender: "female" 170 }; 171 172 //for more information on firing the tag on custom events see the integration guide 173 //fire tag sync when ready 174 tagger.sync(data).then(console.log); 175 }); 176 s.src = 'https://pghub.io/js/pandg-sdk.js'; 177 } 178 }; 179 180 var insertAdsByGoogleJs = function (tcData) { 181 try { 182 insertProcterAndGambleJs(tcData); 183 } catch { }; 184 185 window.googletag = window.googletag || {}; 186 window.vmpbjs = window.vmpbjs || {}; 187 window.vpb = window.vpb || {}; 188 vpb.fastLoad = true; 189 googletag.cmd = googletag.cmd || []; 190 vmpbjs.cmd = vmpbjs.cmd || []; 191 var cmds = googletag.cmd.slice(0) || []; 192 googletag.cmd.length = 0; 193 var ready = false; 194 function exec(cb) { return cb.call(googletag); } 195 googletag.cmd.push(function () { googletag.cmd.unshift = function (cb) { if (ready) { return exec(cb); } cmds.unshift(cb); if (cb._startgpt) { ready = true; for (var k = 0; k < cmds.length; k++) { exec(cmds[k]); } } }; googletag.cmd.push = function (cb) { if (ready) { return exec(cb); } cmds.push(cb); }; }); googletag.cmd.push = function (cb) { cmds.push(cb) }; googletag.cmd.unshift = function (cb) { cmds.unshift(cb); if (cb._startgpt) { ready = true; if (googletag.apiReady) { cmds.forEach(function (cb) { googletag.cmd.push(cb); }) } else { googletag.cmd = cmds; } } }; var dayMs = 36e5, cb = parseInt(Date.now() / dayMs), vpbSrc = '//player.hb.selectmedia.asia/prebidlink/' + cb + '/wrapper_hb_308331_8392.js', pbSrc = vpbSrc.replace('wrapper_hb', 'hb'), gptSrc = '//securepubads.g.doubleclick.net/tag/js/gpt.js', c = document.head || document.body || document.documentElement; function loadScript(src, cb) { var s = document.createElement('script'); s.src = src; s.defer = true; c.appendChild(s); s.onload = cb; s.onerror = function () { var fn = function () { }; fn._startgpt = true; googletag.cmd.unshift(fn); }; return s; } loadScript(pbSrc);
195 loadScript(gptSrc); loadScript(vpbSrc); 196 } 197 198 var insertPubmaticJs = function (tcData) { 199 let pubmaticPromise = new Promise(function (resolveProc, rejectProc) { 200 var PWT = {}; //Initialize Namespace 201 var googletag = googletag || {}; 202 googletag.cmd = googletag.cmd || []; 203 PWT.jsLoaded = function () { //PubMatic pwt.js on load callback is used to load GPT 204 resolveProc(); 205 }; 206 // Failsafe to call gpt. 500 ms timeout can be updated as per publisher preference. 207 setTimeout(resolveProc, 500); 208 209 210 (function () { 211 var purl = window.location.href; 212 var url = '//ads.pubmatic.com/AdServer/js/pwt/161695/7796'; 213 var profileVersionId = ''; 214 if (purl.indexOf('pwtv=') > 0) { 215 var regexp = /pwtv=(.*?)(&|$)/g; 216 var matches = regexp.exec(purl); 217 if (matches.length >= 2 && matches[1].length > 0) { 218 profileVersionId = '/' + matches[1]; 219 } 220 } 221 var wtads = document.createElement('script'); 222 wtads.async = true; 223 wtads.type = 'text/javascript'; 224 wtads.src = url + profileVersionId + '/pwt.js'; 225 var node = document.getElementsByTagName('script')[0]; 226 node.parentNode.insertBefore(wtads, node); 227 })(); 228 }); 229 return pubmaticPromise; 230 } 231 232 var insertAdsByGoogleNoHb = function (tcData) { 233 window.googletag = window.googletag || { cmd: [] }; 234 var gads = document.createElement("script"); 235 var useSSL = "https:" == document.location.protocol; 236 gads.async = false; 237 gads.src = (useSSL ? "https:" : "http:") + "//securepubads.g.doubleclick.net/tag/js/gpt.js"; 238 var node = document.getElementsByTagName("script")[0]; 239 node.parentNode.insertBefore(gads, node); 240 } 241 242 var insertGdprExtras = function (tcData) { 243 if (window.gdprExtras) { 244 for (var i = 0; i < window.gdprExtras.length; i++) { 245 window.gdprExtras[i] = window.gdprExtras[i].toString().replace(/\${GDPR_CONSENT_\d+}/mg, tcData.tcString) 246 .replace("${GDPR}", ~~tcData.gdprApplies) 247 .replace("[timestamp]", Date.now() / 1000 | 0); 248 var fn = eval('(' + window.gdprExtras[i] + ')'); 249 fn(tcData); 250 } 251 } 252 } 253 254 255 var insertGdprScripts = function (tcData) { 256 try { 257 insertPubmaticJs(tcData).then(function () { 258 console.log("%c" + new Date().toLocaleTimeString() + " Pubmatic Promise Resolved", "color: #e7c036; font-weight: bold; font-size: 24px;"); 259 insertAdsByGoogleNoHb(); 260 console.log("%c" + new Date().toLocaleTimeString() + " Google Ad Manager Promise Resolved", "color: #e7c036; font-weight: bold; font-size: 24px;"); 261 }); 262 insertGdprExtras(tcData); 263 } catch { }; 264 }; 265 266 // Run this in an interval (every 0.1s) just in case we are still waiting for consent 267 var cnt = 0; 268 var consentSetInterval = setInterval(function () { 269 cnt += 1; 270 // Bail if we have not gotten a consent response after 60 seconds. 271 if (cnt === 500) { 272 clearInterval(consentSetInterval); 273 //insertAdsByGoogleNoHb(); 274 //insertAdsByGoogleJs();
275 insertGdprScripts(); 276 } 277 if (typeof window.__tcfapi !== 'undefined') { // Check if window.__tcfapi has been set 278 clearInterval(consentSetInterval); 279 window.__tcfapi('addEventListener', 2, function (tcData, listenerSuccess) { 280 if (listenerSuccess) { 281 if (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete') { 282 //insertAdsByGoogleJs(tcData); 283 //insertAdsByGoogleNoHb(tcData); 284 insertGdprScripts(tcData); 285 } 286 } 287 }); 288 } 289 cnt++; 290 }, 100); 291 })(); 292 </script>
292 293 294
294<script> 295 var googletag = googletag || {}; 296 googletag.cmd = googletag.cmd || []; 297 </script>
297 298
298<script> 299 300 function responsiveAdsFn(bannerDivId, adWidth, adHeight) { 301 var container = document.getElementById(bannerDivId); 302 var advWidth = container.clientWidth; 303 var advHeight = container.clientHeight; 304 var iframe = container.querySelectorAll('iframe')[0]; 305 var iframeWidth = iframe.clientWidth; 306 var iframeHeight = iframe.clientHeight; 307 308 var baseBanner = { 309 width: iframeWidth, 310 height: iframeHeight, 311 scale: 1 312 }; 313 314 scaleBanner(iframe, advWidth, advHeight); 315 316 function scaleBanner(iframe, maxWidth, maxHeight) { 317 var scaleX = 1, 318 scaleY = 1; 319 scaleX = maxWidth / baseBanner.width; 320 scaleY = maxHeight / baseBanner.height; 321 baseBanner.scaleX = scaleX; 322 baseBanner.scaleY = scaleY; 323 baseBanner.scale = (scaleX > scaleY) ? scaleY : scaleX; 324 iframe.style.transformOrigin = "left top 0px"; 325 iframe.style.transform = "matrix(" + baseBanner.scale + ", 0, 0, " + baseBanner.scale + ", 0, 0)"; 326 container.style.height = (baseBanner.height * baseBanner.scale) + "px"; 327 } 328 } 329 330 //AD SCRIPTS 331 332 var fadeTimeout = 0; 333 334 var getClosest = function (elem, selector) { 335 for (; elem && elem !== document; elem = elem.parentNode) { 336 if (elem.matches(selector)) return elem; 337 } 338 return null; 339 }; 340 341 function fadeOut(el) { 342 clearTimeout(fadeTimeout); 343 el.style.opacity = 1; 344 345 (function fade() { 346 if ((el.style.opacity -= .1) < 0) { 347 if (el.classList) { 348 el.classList.remove("stickyad"); 349 } 350 el.style.opacity = 1; 351 } else { 352 requestAnimationFrame(fade); 353 } 354 })(); 355 }; 356 357 googletag.cmd.push(function () { 358 359 360 googletag.pubads().addEventListener('impressionViewable', function (event) { 361 var containerId = event.slot.getSlotElementId(); 362 console.log('Impression for slot', containerId, 'became viewable.'); 363 if (window.innerWidth <= 670) { 364 var adunitContainer = document.getElementById(containerId); 365 var parentSection = getClosest(adunitContainer, "section"); 366 if (parentSection && parentSection.classList && parentSection.classList.contains("topbillboard")) { 367 console.log("topbillboard Viewable"); 368 fadeTimeout = setTimeout(function () { 369 console.log("topbillboard hidding"); 370 fadeOut(parentSection); 371 }, 5000); 372 } 373 374 } 375 }); 376 377 378 googletag.pubads().addEventListener('slotRenderEnded', function (event) { 379 var containerId = event.slot.getSlotElementId(); 380 var containsAd = !event.isEmpty; 381 console.log('%c slotRenderEnded: ' + event.slot.getAdUnitPath() + ' Container:' + containerId, 'font-size:15px;font-weight:bold; background: #222; color: #99ccff'); 382 var parentNode = getClosest(document.getElementById(containerId), ".bannerparent"); 383 if (containsAd == true) { 384 console.log('%c AD OK!!! DISPLAYING: ' + event.slot.getAdUnitPath() + ' Container:' + containerId, 'font-size:15px;font-weight:bold;background: #222; color: #009933'); 385 386 if (window.innerWidth <= 670) { 387 var adunitContainer = document.getElementById(containerId); 388 var parentSection = getClosest(adunitContainer, "section"); 389 if (parentSection && parentSection.classList && parentSection.classList.contains("topbillboard")) { 390 console.log("topbillboard Render"); 391 parentSection.classList.add("stickyad"); 392 fadeTimeout = setTimeout(function () { 393 fadeOut(parentSection); 394 }, 6000); 395 } 396 } 397 398 var mobileBottomBanner = document.getElementById(containerId); 399 if (mobileBottomBanner && mobileBottomBanner.classList && mobileBottomBanner.classList.contains("banner-300x50-mobile")) { 400 var cmpButton = document.getElementById("qc-cmp2-persistent-link"); 401 if (cmpButton && cmpButton.classList) { 402 cmpButton.classList.add("fixCmpButtonPosition"); 403 } 404 } 405 406 var skinBanner = document.getElementById(containerId); 407 if (skinBanner && skinBanner.classList && skinBanner.classList.contains("advertising-skin")) { 408 document.body.className += ' skin-layout'; 409 } 410 if (typeof parentNode != 'undefined' && parentNode != null) { 411 // parentNode.style.display = "block"; 412 } 413 } else { 414 415 var adunitContainer = document.getElementById(containerId);
416 var parentSection = getClosest(adunitContainer, "section"); 417 if (parentSection && parentSection.classList && parentSection.classList.contains("topbillboard")) { 418 419 } else { 420 console.log('%c NO AD Hiding: ' + event.slot.getAdUnitPath() + ' Container:' + containerId, 'font-size:15px;font-weight:bold; background: #222; color: #ff4d4d'); 421 document.getElementById(containerId).style.display = "none"; 422 if (typeof parentNode != 'undefined' && parentNode != null) { 423 parentNode.style.display = "none"; 424 } 425 } 426 } 427 428 }); 429 }); 430 431 432 </script>
432 433 434 <style> 435 436 .fixCmpButtonPosition { 437 bottom: 51px; 438 } 439 440 .stickyad { 441 position: sticky; 442 position: -webkit-sticky; 443 /*top: 60px;*/ 444 top: 0; 445 z-index: 10000; 446 } 447 448 .fixedHeightBillboard, .fixedHeightBillboardArticle { 449 height: 312px; 450 } 451 452 453 .fixedHeightBillboard .banner-container { 454 top: 50%; 455 transform: translateY(-50%); 456 } 457 458 @media only screen and (max-width: 600px) { 459 .fixedHeightBillboard { 460 height: 129px; 461 } 462 463 .fixedHeightBillboard, .fixedHeightBillboardArticle { 464 height: 129px; 465 } 466 467 .fixedHeightBillboard .banner-container { 468 top: 50%; 469 transform: translateY(-50%); 470 } 471 /* .fixedHeightBillboardArticle { 472 position: fixed; 473 top: 56px; 474 width: 100vw; 475 height: 130px; 476 z-index: -1 477 } 478 */ 479 .fixedHeightBillboardArticle .banner-container { 480 top: 50%; 481 transform: translateY(-50%); 482 } 483 } 484 485/* @media only screen and (max-width: 650px) { 486 .qc-cmp2-summary-section { 487 height: 70vh !important; 488 overflow-y: scroll !important; 489 zoom: 100% !important; 490 } 491 } 492*/ 493 .footer-membership { 494 position: relative; 495 width: 100%; 496 height: auto; 497 padding: 12px 0; 498 text-align: center; 499 border-top: 1px solid rgba(0, 0, 0, 0.1); 500 } 501 502 .footer-membership p { 503 margin: 10px 0px 5px 0px; 504 font-size: 12px; 505 font-weight: 700; 506 color: #6d6d70; 507 line-height: 35px; 508 } 509 510 .footer-membership img { 511 border: 1px solid rgba(0, 0, 0, 0.1); 512 border-radius: 5px; 513 } 514 </style> 515 516 517 518</head> 519<body data-scroll="false" data-loading="true" data-content="rock">
vendor: 105 bytes, lines 519-526
519 520 521 522 523 524 525 <noscript> 526 <iframe src="https://www.googletagmanager.com/ns.html?id=
526GTM-KKR6MB2
vendor: 104 bytes, lines 526-533
526" height="0" width="0" style="display:none;visibility:hidden"></iframe> 527 </noscript> 528 529 530 531 532 533
533<!-- Stations Marquee --> 534 <div class="stations-marquee"> 535 536 537 538<div class="marquee-inner"> 539 540 <div class="marquee-header"> 541 <h4>Îιαλεξε ÏÏαθμο <span>και Î±ÎºÎ¿Ï live Ïι Ïαιζει</span></h4> 542 <button class="close"> 543 <span class="text">Close</span> 544 <span class="icon"></span> 545 </button> 546 </div> 547 548 <div class="marquee-flex-group"> 549 550 551 552 553 554 555 556 <a href="/rockfm969/listenlive/" target="atticaRadiosPlayerWindow" class="item rock horizontal listen-live-player"> 557 558 <div class="item-image"> 559 <img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/b6/b6fc2ce81c4a49fa8e1229a31b4f5cd7.svg?quality=85&404=default&v=4" alt=""> 560 </div> 561 <div class="item-content"> 562 <span class="station-name">RockFm 969 - Live Now</span> 563 <h4>969 ROCKFM OVERNIGHT</h4> 564 <div class="item-infos"> 565 <span class="time">00:00 - 06:00</span> 566 </div> 567 </div> 568 <div class="play-icon"> 569 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"> 570 <circle fill="#fff" cx="25" cy="25" r="25" /> 571 <path d="m20.3,30.6v-11.2c0-.9,1-1.5,1.8-1l9.1,5.6c.7.5.7,1.5,0,2l-9.2,5.6c-.7.5-1.7-.1-1.7-1Z" /> 572 </svg> 573 </div> 574 </a> 575 576 577 578 579 580 <a href="/best926/listenlive/" target="atticaRadiosPlayerWindow" class="item best horizontal listen-live-player"> 581 582 <div class="item-image"> 583 <img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/be/beacb687958a453286a9bc7d07333915.svg?quality=85&404=default&v=4" alt=""> 584 </div> 585 <div class="item-content"> 586 <span class="station-name">Best 926 - Live Now</span> 587 <h4>Izo Darko</h4> 588 <div class="item-infos"> 589 <span class="time">03:00 - 04:00</span> 590 </div> 591 </div> 592 <div class="play-icon"> 593 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"> 594 <circle fill="#fff" cx="25" cy="25" r="25" /> 595 <path d="m20.3,30.6v-11.2c0-.9,1-1.5,1.8-1l9.1,5.6c.7.5.7,1.5,0,2l-9.2,5.6c-.7.5-1.7-.1-1.7-1Z" /> 596 </svg> 597 </div> 598 </a> 599 600 601 602 603 604 <a href="/athens-deejay-952/listenlive/" target="atticaRadiosPlayerWindow" class="item deejay horizontal listen-live-player"> 605 606 <div class="item-image"> 607 <img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/9d/9d212880d56d43a7bc49cb7e531ecb4c.svg?quality=85&404=default&v=4" alt=""> 608 </div> 609 <div class="item-content"> 610 <span class="station-name">Athens DeeJay 952 - Live Now</span> 611 <h4></h4> 612 <div class="item-infos"> 613 </div> 614 </div> 615 <div class="play-icon"> 616 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"> 617 <circle fill="#fff" cx="25" cy="25" r="25" /> 618 <path d="m20.3,30.6v-11.2c0-.9,1-1.5,1.8-1l9.1,5.6c.7.5.7,1.5,0,2l-9.2,5.6c-.7.5-1.7-.1-1.7-1Z" /> 619 </svg> 620 </div> 621 </a> 622 623 624 625 626 627 <a href="/lampsi923/listenlive/" target="atticaRadiosPlayerWindow" class="item lampsi horizontal listen-live-player"> 628 629 <div class="item-image"> 630 <img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/4f/4fad192c1e40443e9cc9d09532425b69.svg?quality=85&404=default&v=4" alt=""> 631 </div> 632 <div class="item-content"> 633 <span class="station-name">ÎάμÏη 923 - Live Now</span> 634 <h4></h4> 635 <div class="item-infos"> 636 </div> 637 </div> 638 <div class="play-icon"> 639 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"> 640 <circle fill="#fff" cx="25" cy="25" r="25" /> 641 <path d="m20.3,30.6v-11.2c0-.9,1-1.5,1.8-1l9.1,5.6c.7.5.7,1.5,0,2l-9.2,5.6c-.7.5-1.7-.1-1.7-1Z" /> 642 </svg> 643 </div> 644 </a> 645 646 647 </div> 648 649</div> 650 651 652 653 654 655 656 657 </div> 658 659 660 <!-- Header --> 661 <header> 662 663 <div class="header-inner"> 664 665 <a href="/" class="main-logo"> 666 <svg class="icon attica"> 667 <use href="/Content/images/logo/logo.svg#attica" xlink:href="/Content/images/logo/logo.svg#attica" /> 668 </svg> 669 <svg class="icon radios"> 670 <use href="/Content/images/logo/logo.svg#radios" xlink:href="/Content/images/logo/logo.svg#radios" /> 671 </svg> 672 </a> 673 674 <div class="navigation"> 675 676 <div class="navigation-controls"> 677 678 <a href="/rockfm969/listenlive" class="listen-live listen-live-player"> 679 <!-- Το className trigger-stations-marquee Ïο αÏαιÏοÏμε Ïε κάÏÎ¿Î¹ÎµÏ ÏÎµÎ»Î¯Î´ÎµÏ -->
680 <span class="text">Listen Live</span> 681 <span class="play-icon"> 682 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"> 683 <circle fill="#fff" cx="25" cy="25" r="25" /> 684 <path d="m20.3,30.6v-11.2c0-.9,1-1.5,1.8-1l9.1,5.6c.7.5.7,1.5,0,2l-9.2,5.6c-.7.5-1.7-.1-1.7-1Z" /> 685 </svg> 686 </span> 687 </a> 688 689 <button class="trigger-nav"> 690 <div class="icon"> 691 <span class="line"></span> 692 <span class="line"></span> 693 </div> 694 </button> 695 696 <nav class="dropdown"> 697 698<ul class="primary unstyled"> 699 <li><a href="/">Home</a></li> 700 <li><a href="/rockfm969/">RockFm 969</a></li> 701 <li><a href="/athens-deejay-952/">Athens DeeJay 952</a></li> 702 <li><a href="/lampsi923/">ÎάμÏη 923</a></li> 703 <li><a href="/best926/">Best 926</a></li> 704 <li><a href="/producers">Producers</a></li> 705 <li><a href="/diagonismoi">ÎιαγÏνιÏμοί</a></li> 706</ul> 707 708 709 710 711 712 713 714 </nav> 715 716 </div> 717 718 <nav class="stations"> 719 720 721 722<ul class="unstyled"> 723 <li class="homepage"><a href="/"><img src="/Content/images/stations-logos/homepage.svg" alt=""></a></li> 724 <li class="selected"><a href="/rockfm969/"><img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/b6/b6fc2ce81c4a49fa8e1229a31b4f5cd7.svg?quality=85&404=default&v=4" alt="RockFm 969"></a></li> 725 <li class=""><a href="/best926/"><img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/be/beacb687958a453286a9bc7d07333915.svg?quality=85&404=default&v=4" alt="Best 926"></a></li> 726 <li class=""><a href="/athens-deejay-952/"><img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/9d/9d212880d56d43a7bc49cb7e531ecb4c.svg?quality=85&404=default&v=4" alt="Athens DeeJay 952"></a></li> 727 <li class=""><a href="/lampsi923/"><img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/4f/4fad192c1e40443e9cc9d09532425b69.svg?quality=85&404=default&v=4" alt="ÎάμÏη 923"></a></li> 728</ul> 729 730 731 732 733 </nav> 734 735 736 737 738 </div> 739 740 </div> 741 742 </header> 743 744 745 746 <!-- Main Content --> 747 <main id="main"> 748 749 750 751 752 753 754 755 756 757 758<!-- Station Hero --> 759<section> 760 761 762 763 764 765 766 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/openplayerjs@latest/dist/openplayer.min.css" /> 767
767<script src="https://cdn.jsdelivr.net/npm/openplayerjs@latest/dist/openplayer.min.js"></script>
767 768 <style> 769 770 header { 771 display: none !important; 772 } 773 774 .navigation-controls { 775 display: none !important; 776 } 777 778 video { 779 border-radius: 20px; 780 overflow: hidden; 781 } 782 783 .op-player__play { 784 } 785 786 .pulse { 787 border-radius: 50%; 788 animation: pulse-white 2s infinite; 789 } 790 791 @keyframes pulse-white { 792 0% { 793 transform: scale(0.95); 794 box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7); 795 } 796 797 70% { 798 transform: scale(1); 799 box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); 800 } 801 802 100% { 803 transform: scale(0.95); 804 box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); 805 } 806 } 807 </style> 808 <div class="template-sc"> 809 810 811 <div class="left"> 812 <div class="station-player-rock"> 813 <!-- ClassNames ανα ÏÏÎ±Î¸Î¼Ï => station-hero-best | station-hero-rock | station-hero-deejay | station-hero-lampsi --> 814 815 <div class="item-image"> 816 <img id="stationImage" src="/content/images/covers/rock-player.jpg" alt=""> 817 </div> 818 819 <div class="item-content"> 820 821 <a href="/rockfm969/listenlive/" class="station-producer-image listen-live-player"> 822 <img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/b6/b6fc2ce81c4a49fa8e1229a31b4f5cd7.svg?quality=85&404=default&v=4" alt=""> 823 </a> 824 <div class="station-producer-infos"> 825 <span>ON AIR</span> 826 <h3> 827 <a >969 ROCKFM OVERNIGHT</a> 828 </h3> 829 <p>00:00 - 06:00</p> 830 <p> </p> 831 <div class="now-playing-widget" id="now-playing-widget"> 832 <div class="now-title">Playing now</div> 833 <div class="track-info"> 834 <img class="album-cover" id="albumCover" src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/b6/b6fc2ce81c4a49fa8e1229a31b4f5cd7.svg?quality=85&404=default&v=4" alt="Album Cover"> 835 <div class="track-details"> 836 <div class="track-artist" id="track-artist">Black</div> 837 <div class="track-title" id="track-title">Wonderful Life</div> 838 </div> 839 </div> 840 </div> 841 </div> 842 843 <div class="station-footer"> 844 <video class="op-player__media" poster="/content/images/covers/rock-player.gif?v=1" id="player" controls playsinline style="width:100%"> 845 </video> 846 847 848 <a href="/rockfm969/listenlive/" class="listen-live" id="playButton" style="display:none;"> 849 <span class="text" id="playerText">Listen Live</span> 850 <span class="play-icon "> 851 <svg class="pulse" id="playIcon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"> <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" /> <path d="M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445z" /> </svg> 852 <svg id="pauseIcon" style="display:none" xmlns="http://www.w3.org/2000/svg" width="46" height="46" fill="currentColor" viewBox="0 0 16 16" id="IconChangeColor"> <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" id="mainIconPathAttribute" fill="#ffffff"></path> <path d="M5 6.25a1.25 1.25 0 1 1 2.5 0v3.5a1.25 1.25 0 1 1-2.5 0v-3.5zm3.5 0a1.25 1.25 0 1 1 2.5 0v3.5a1.25 1.25 0 1 1-2.5 0v-3.5z" id="mainIconPathAttribute" fill="#ffffff"></path> </svg> 853 </span> 854 </a> 855 856 857 </div> 858 <div class="volume" style="display:none"> 859 860 <form action=""> 861 <fieldset> 862 <button class="volume-controller"> 863
864 <span class="volume-on active"> 865 <svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="500" height="500" viewBox="0 0 75 75"> 866 <path d="M39.389,13.769 L22.235,28.606 L6,28.606 L6,47.699 L21.989,47.699 L39.389,62.75 L39.389,13.769z" style="stroke:#FFF;stroke-width:5;stroke-linejoin:round;fill:#FFF;" /> 867 <path d="M48,27.6a19.5,19.5 0 0 1 0,21.4M55.1,20.5a30,30 0 0 1 0,35.6M61.6,14a38.8,38.8 0 0 1 0,48.6" style="fill:none;stroke:#FFF;stroke-width:5;stroke-linecap:round" /> 868 </svg> 869 </span> 870 871 <span class="volume-off"> 872 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 455.19 359.87"> 873 <path style="stroke:#FFF;stroke-width:5;stroke-linejoin:round;fill:#FFF;" d="m239.26,16.67l-114.36,98.91H16.67v127.29h106.59l116,100.34V16.67Z" /> 874 <line style="fill:none;stroke:#FFF;stroke-width:33.33;stroke-linecap:round" x1="438.53" y1="113.09" x2="314.95" y2="236.66" /> 875 <line style="fill:none;stroke:#FFF;stroke-width:33.33;stroke-linecap:round" x1="438.53" y1="236.66" x2="314.95" y2="113.09" /> 876 </svg> 877 </span> 878 879 </button> 880 881 <div class="range-item"> 882 <input type="range" min="0" max="100" value="50" id="volume-slider"> 883 </div> 884 885 </fieldset> 886 </form> 887 888 889 </div> 890 891 </div> 892 893 </div> 894 895 896 897 </div> 898 <div class="right"> 899 900 <div class="banner-right"> 901 902 <div class="sticky-element"> 903 904 <div class="adv-banner" style="overflow-x:hidden;"> 905 <div id='adv3894f67012274c00bea554108700a84e' class="advert"> 906
906<script> 907 googletag.cmd.push(function() { 908 googletag.defineSlot('/3346429/Attica_Radios_300x250_A', [[320, 100], [300, 50], [320, 50], [320, 80], [300, 100], [300, 80], [300, 250], [300, 600]],'adv3894f67012274c00bea554108700a84e') 909 .addService(googletag.pubads()) 910 .setCollapseEmptyDiv(true); 911 912 googletag.enableServices(); 913 googletag.display('adv3894f67012274c00bea554108700a84e'); 914 }); 915 </script>
915 916 </div> 917 </div> 918 919 </div> 920 921 </div> 922 923 </div> 924 925 </div> 926 927<style> 928 .social { 929 padding: 5.5px 38px; 930 border-radius: 24px; 931 font-size: 17px; 932 background-color: #101010; 933 } 934 935 .social a { 936 display: inline-block !important; 937 height: 27px; 938 margin-top: 5px; 939 padding: 0 5px; 940 } 941 942 .station-contact.empty { 943 display: none; 944 } 945 946 .station-contact.extra { 947 background-color: rgb(16 16 16 / 0%); 948 max-width: 100%; 949 flex-wrap: wrap; 950 } 951</style> 952 953 954 <div class="station-contact extra"> 955 <a href="https://www.atticaradios.gr/Content/relatedfiles/oroi_viber_Rock_18092025.pdf" target="_blank" class="terms-btn"><span class="text">ÎΡÎÎ ÎÎÎÎΩÎÎΣÎÎÎ¥ VIBER</span></a> 956 </div> 957 958<div class="station-contact"> 959 960 <a href="tel:2106821968" class="telephone-btn"> 961 <span class="icon"> 962 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"> 963 <path d="m3.6,7.8c1.4,2.8,3.8,5.1,6.6,6.6l2.2-2.2c.3-.3.7-.4,1-.2,1.1.4,2.3.6,3.6.6.6,0,1,.4,1,1v3.4c0,.6-.4,1-1,1C7.6,18,0,10.4,0,1,0,.4.4,0,1,0h3.5c.6,0,1,.4,1,1,0,1.2.2,2.4.6,3.6.1.3,0,.7-.2,1l-2.3,2.2h0Z" /> 964 </svg> 965 </span> 966 <span class="text">2106821968</span> 967 </a> 968 969 <div class="social"> 970 971 <a href="viber://chat?number=6938969969" target="_blank"> 972 <img src="/content/images/icons/viber.png" style="width:27px" /> 973 </a> 974 975 <a href="https://www.instagram.com/969rockfm/" target="_blank"> 976 <img src="/content/images/icons/instagram_logo.png" style="width:27px" /> 977 </a> 978 979 980 981 982 <a href="https://www.facebook.com/969rockfm" target="_blank"> 983 <img src="/content/images/icons/facebook_logo.png" style="width:27px" /> 984 </a> 985 <a href="https://twitter.com/969rockfm" target="_blank"> 986 <img src="/content/images/icons/twitter_logo.png" style="width:25px" /> 987 </a> 988 </div> 989 990 991 <a href="mailto:[email protected]" class="contact-btn" target="_blank"> 992 <span class="icon"> 993 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.6 14"> 994 <path d="m12.2,7.7l6.9,5.9c-.2.3-.6.4-1,.4H1.4c-.4,0-.7-.1-1-.4l7-5.9,2.4,2.1s2.4-2.1,2.4-2.1Zm-2.4.7L.4.4c.3-.3.7-.4,1-.4h16.8c.4,0,.7.1,1,.4l-9.4,8Zm9.8,4.5l-6.8-5.8,6.8-5.9v11.7Zm-19.6,0V1.2l6.8,5.9S0,12.9,0,12.9Z" /> 995 </svg> 996 </span> 997 <span class="text">contact us</span> 998 </a> 999 1000 1001 1002 1003<link rel="stylesheet" href="/Content/css/cosmote-button.css?v=3" /> 1004 1005<button class="button-default soundtrack-brand-cta" type="button" data-target="on-demand-trigger" aria-describedby="soundtrack-brand-credit"> 1006 <span class="soundtrack-brand-cta__title">Ïο soundtrack ÏÎ·Ï Î¶ÏÎ®Ï ÏÎ¿Ï </span> 1007 <span class="soundtrack-brand-cta__credit" id="soundtrack-brand-credit"> 1008 <span>powered by</span> 1009 <img class="soundtrack-brand-cta__logo" src="/Content/Images/logos/T_logo_carrier_surface_rgb_p.png" width="40" height="40" alt="T"> 1010 </span> 1011</button> 1012 1013 1014<dialog data-content="on-demand-modal"> 1015 1016 <button class="close"> 1017 <span class="text">Close</span> 1018 <span class="icon"></span> 1019 </button> 1020 1021 1022 <div class="soundtrack-modal-sponsor"> 1023 <div class="soundtrack-modal-sponsor__surface"> 1024 <span class="soundtrack-modal-sponsor__by">powered by</span> 1025 <img src="/Content/Images/logos/T_logo_carrier_surface_rgb_p.png" width="40" height="40" alt="T"> 1026 </div> 1027 </div> 1028 1029 1030 <h2> 1031 <p>Ποιο ÏÏαγοÏδι είναι Ïο soundtrack ÏÎ·Ï Î¶ÏÎ®Ï ÏÎ¿Ï ;</p> 1032 Îνα ÏÏαγοÏδι ÏÎ¿Ï ÏÎ¿Ï Î¸Ï Î¼Î¯Î¶ÎµÎ¹ κάÏι Î´Ï Î½Î±ÏÏ⦠Îναν άνθÏÏÏο, μια εÏοÏή, μια ÏÏιγμή ÏÎ¿Ï Î´ÎµÎ½ ξεÏνάÏ.<br /> 1033 Το ΣαββαÏοκÏÏιακο 3 & 4 ÎκÏÏβÏÎ¯Î¿Ï , θα ÏÎ±Î¯Î¾Î¿Ï Î¼Îµ Ïη δική ÏÎ¿Ï Î¹ÏÏοÏία, μÎÏα αÏÏ Ïα ÏÏαγοÏδια ÏÎ¿Ï Î¼Î±Ï ÏημάδεÏαν. 1034 </h2> 1035 <form class="form" method="post" id="onDemandForm"> 1036 <input name="__RequestVerificationToken" type="hidden" value="8MQkg6k31jDf9Dlj1coFMYXeXUn98QRvG7GuP7aLkD25T_QJ6nMKfL_O8L21k32D-WEwg7xdVSoE_vLzV-k4hyISXlY1" /> 1037 <fieldset class="modal-form" id="onDemandData"> 1038 <div class="flex-group"> 1039 <div class="form-item"> 1040 <input type="hidden" value="rockfm969" placeholder="rockfm969" id="Station" name="Station" /> 1041 <label>Το Ïνομα ÏÎ¿Ï </label> 1042 <input autofocus="autofocus" data-val="true" data-val-required="The Name field is required." id="Name" name="Name" pattern="^.{3,500}$" placeholder="First name only" required="required" type="text" value="" /> 1043 </div> 1044 <div class="form-item"> 1045 <label>Το e-mail ÏÎ¿Ï </label> 1046 <input data-val="true" data-val-required="The Email field is required." id="email" name="Email" pattern="^.{3,500}$" placeholder="[email protected]" required="required" type="text" value="" /> 1047 1048 </div> 1049 </div> 1050 1051 <div class="form-item"> 1052 <label>Î£Ï Î¼ÏλήÏÏÏε Ïο ÏÏαγοÏδι ÏÎ¿Ï ÎµÏÎ¹Î¸Ï Î¼ÎµÎ¯Ï ÎºÎ±Î¹ ÏÎ¿Î¹Î¿Ï Î®Ïαν ο λÏγοÏ</label> 1053 <textarea autofocus="autofocus" cols="20" data-val="true" data-val-required="The Song field is required." id="Song" name="Song" pattern="^.{3,700}$" placeholder="Song Name" required="required" rows="2" type="text"> 1054</textarea> 1055 </div> 1056 1057 <!--<div class="form-item"> 1058 <label>ΣÏÏλια/ΣημειÏÏειÏ</label>--> 1059 1060 1061 <!--</div>--> 1062 <div class="form-item"> 1063 <input type="hidden" id="AcceptTerms" name="AcceptTerms" value="false" /> 1064 <label> <input type="checkbox" id="chkAcceptTerms" name="chkAcceptTerms" required style="margin: 4px;" /> Î£Ï Î¼ÏÏÎ½Ï Î½Î± Î»Î±Î¼Î²Î¬Î½Ï ÎµÎ½Î·Î¼ÎµÏÏÏικά email αÏÏ Ïον 969 Rock FM για διαγÏνιÏμοÏÏ, δÏÏα και ÏÏοÏθηÏικÎÏ ÎµÎ½ÎÏγειεÏ.</label> 1065 1066 </div> 1067 <div id="onDemandMessageError" class="form-item" style="display:none;"> 1068 <label style="color: #ffce00; text-align: center; margin-bottom: 0px; line-height: 1.5em; ">ÎÏ ÏÏ! κάÏι δεν Ïήγε καλά! <br /> ÎαναÏÏοÏÏάθηÏε ή εÏικοινÏνηÏε με Ïο [email protected]</label> 1069 </div> 1070 1071 1072 <button class="button-default" type="submit">ÎαÏαÏÏÏηÏη ÏÏÎ±Î³Î¿Ï Î´Î¹Î¿Ï</button> 1073 </fieldset> 1074 1075 <fieldset class="modal-message" style="display:none" id="responseModal"> 1076 <legend>ÎÏ ÏαÏιÏÏοÏμε</legend> 1077 <p>η εÏιλογή ÏÎ¿Ï ÎºÎ±ÏαÏÏÏηθηκε</p> 1078 <div class="flex-group"> 1079 <div class="form-item" style="text-align:right"> 1080 <button class="button-default" type="reset">Îιαλεξε και αλλο ÏÏÎ±Î³Î¿Ï Î´Î¹</button> 1081 </div> 1082 <div class="form-item" style="text-align:left"> 1083 <button class="button-default close" type="button">ÎλειÏιμο ÏαÏÎ±Î¸Ï ÏÎ¿Ï </button> 1084 </div> 1085 </div> 1086 </fieldset> 1087 <input data-val="true" data-val-required="The RecaptchaToken field is required." id="RecaptchaToken" name="RecaptchaToken" type="hidden" value="" /> 1088 </form> 1089</dialog>
vendor: 64 bytes, lines 1089-1091
1089 1090 1091<script src="https://www.google.com/recaptcha/api.js?render=
10916LdAhGYrAAAAAHRch3h3T44HJXzoDZesSUvSZSVa
vendor: 13 bytes, line 1091
1091"></script>
1092<script> 1093 grecaptcha.ready(function () { 1094 grecaptcha.execute('6LdAhGYrAAAAAHRch3h3T44HJXzoDZesSUvSZSVa', { action: 'ondemand' }).then(function (token) { 1095 document.getElementById('RecaptchaToken').value = token; 1096 }); 1097 }); 1098</script>
1098 1099
1100<script> 1101 document.addEventListener("DOMContentLoaded", function () { 1102 1103 1104 const contactForm = document.getElementById("onDemandForm"); 1105 const onDemandModal = document.querySelector('[data-content="on-demand-modal"]') 1106 const openOnDemandModal = document.querySelector('[data-target="on-demand-trigger"]') 1107 const closeOnDemandModal = document.querySelectorAll('[data-content="on-demand-modal"] .close') 1108 var checkbox = document.getElementById('chkAcceptTerms'); 1109 var hiddenField = document.getElementById('AcceptTerms'); 1110 1111 1112 function RefreshOnDemand() { 1113 Array.from(contactForm.elements).forEach((field) => { 1114 if (field.type !== "button" && field.type !== "submit" && field.type !== "hidden") { 1115 field.value = ""; // Clear the value 1116 } 1117 }); 1118 hiddenField.value = "false"; 1119 checkbox.checked = false; 1120 document.getElementById("onDemandData").style.display = "flex"; 1121 document.getElementById("onDemandMessageError").style.display = "none"; 1122 document.getElementById("responseModal").style.display = "none"; 1123 } 1124 1125 1126 checkbox.addEventListener('change', function () { 1127 if (checkbox.checked) { 1128 hiddenField.value = 'true'; 1129 } 1130 }); 1131 1132 1133 1134 openOnDemandModal.onclick = () => { 1135 RefreshOnDemand(); 1136 onDemandModal.showModal() 1137 }; 1138 closeOnDemandModal.forEach(btn => btn.onclick = () => { 1139 RefreshOnDemand(); 1140 onDemandModal.close() 1141 }) 1142 1143 contactForm.addEventListener("reset", function (e) { 1144 RefreshOnDemand(); 1145 }); 1146 1147 contactForm.addEventListener("submit", function (e) { 1148 e.preventDefault(); // Prevent default form submission 1149 const formData = new FormData(contactForm); 1150 fetch('/contact/sendondemandemail/' + "?v=1", { 1151 method: 'POST', 1152 headers: { 1153 'Content-Type': 'application/x-www-form-urlencoded', // Properly set the content type 1154 'X-Requested-With': 'XMLHttpRequest' // Identify as AJAX 1155 }, 1156 body: new URLSearchParams(formData).toString() 1157 }) 1158 .then(response => { 1159 if (!response.ok) { 1160 console.error('Error:', response.status); 1161 document.getElementById("onDemandMessageError").style.display = "block"; 1162 throw new Error(`HTTP error! status: ${response.status}`); 1163 } 1164 return response.json(); // Parse the JSON response 1165 }) 1166 .then(data => { 1167 document.getElementById("onDemandData").style.display = "none"; 1168 document.getElementById("responseModal").style.display = "block"; 1169 document.getElementById("onDemandMessageError").style.display = "none"; 1170 }) 1171 .catch(error => { 1172 // Handle errors 1173 console.error('Error:', error.message); 1174 document.getElementById("onDemandMessageError").style.display = "block"; 1175 }); 1176 1177 1178 }); 1179 1180 console.clear(); 1181 1182 1183 1184 1185 }); 1186 1187 function checkTCFConsent(callback) { 1188 if (typeof window.__tcfapi !== "undefined") { 1189 window.__tcfapi('getTCData', 2, function (tcData, success) { 1190 if (success) { 1191 if (tcData.eventStatus === "useractioncomplete" || tcData.eventStatus === "tcloaded") { 1192 console.log("User has already given consent."); 1193 callback(); // Trigger action 1194 } else { 1195 console.log("Waiting for user to interact..."); 1196 waitForConsent(callback); // Watch for new consent action 1197 } 1198 } 1199 }); 1200 } else { 1201 console.warn("TCF API not available yet. Retrying..."); 1202 setTimeout(() => checkTCFConsent(callback), 1000); 1203 } 1204 } 1205 1206 // Listen for user interaction with the consent banner 1207 function waitForConsent(callback) { 1208 window.__tcfapi('addEventListener', 2, function (tcData, success) { 1209 if (success && tcData.eventStatus === "useractioncomplete") { 1210 console.log("User has now given consent."); 1211 callback(); 1212 } 1213 }); 1214 } 1215 1216 // Function to execute after consent 1217 function afterConsentAction() {
1218 const urlParams = new URLSearchParams(window.location.search); 1219 //OPEN ON DEMAND ME QUERYSTRING 1220 if (urlParams.get('openondemand') === '1') { 1221 document.querySelector('[data-target="on-demand-trigger"]').click(); 1222 } 1223 } 1224 1225 // Run check when page loads 1226 document.addEventListener("DOMContentLoaded", function () { 1227 checkTCFConsent(afterConsentAction); 1228 }); 1229 1230</script>
1230 1231 1232 1233 1234 1235</div> 1236 1237 <!-- Player --> 1238 <aside class="player" style="left:0px; display:none;"> 1239 1240 <div class="player-inner"> 1241 1242 <button class="player-controller"> 1243 1244 <span class="play-icon active"> 1245 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"> 1246 <circle fill="#fff" cx="25" cy="25" r="25" /> 1247 <path d="m20.3,30.6v-11.2c0-.9,1-1.5,1.8-1l9.1,5.6c.7.5.7,1.5,0,2l-9.2,5.6c-.7.5-1.7-.1-1.7-1Z" /> 1248 </svg> 1249 </span> 1250 1251 <span class="stop-icon"> 1252 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"> 1253 <circle fill="#fff" cx="25" cy="25" r="25" /> 1254 <rect x="18.42" y="18.42" width="13.16" height="13.16" rx="1.51" ry="1.51" /> 1255 </svg> 1256 </span> 1257 1258 </button> 1259 1260 <div class="producer"> 1261 <div class="producer-image"> 1262 <img src="https://www.atticaradios.gr/Content/ImagesDatabase/p/crop/both/b6/b6fc2ce81c4a49fa8e1229a31b4f5cd7.svg?quality=85&404=default&v=4" alt=""> 1263 </div> 1264 1265 <div class="producer-infos"> 1266 <h3> <a >969 ROCKFM OVERNIGHT</a></h3> 1267 <p>00:00 - 06:00 </p> 1268 1269 </div> 1270 </div> 1271 1272 </div> 1273 1274 1275 </aside> 1276
1276<script> 1277 1278 function initConsentVast() { 1279 if (typeof window.__tcfapi !== 'function') { 1280 // __tcfapi not ready yet, check again in 100ms 1281 setTimeout(initConsentVast, 100); 1282 } else { 1283 // Now that __tcfapi is available, make your call 1284 window.__tcfapi('getTCData', 2, function (tcData, success) { 1285 if (success) { 1286 var consentString = tcData.tcString; 1287 const id = 'player'; 1288 const player = new OpenPlayerJS(id); 1289 var referrerUrl = encodeURIComponent(window.location.href) 1290 var vastUrl = "https://x.grxchange.gr/videoad/9741?vast=4.2&cmpavail=1&cmpconsent=" + consentString + "&pageurl=" + referrerUrl; 1291 initPlayer(vastUrl); 1292 1293 } else { 1294 initPlayer(""); 1295 } 1296 }); 1297 } 1298 } 1299 1300 initConsentVast(); 1301 1302 function initPlayer(vastUrl = "") { 1303 const id = 'player'; 1304 const player = new OpenPlayerJS(id); 1305 1306 player.init().then(() => { 1307 player.src = 'https://stream.rcs.revma.com/sm9b1svehkcwv'; 1308 player.load(); 1309 if (vastUrl != "") { 1310 player.loadAd(vastUrl); 1311 } 1312 1313 }); 1314 1315 } 1316 1317 1318 </script>
1318 1319
1319<script> 1320 var jazzlerApiName = "rockfm"; 1321 </script>
1321 1322 1323
1324<script> 1325 document.addEventListener("DOMContentLoaded", function () { 1326 document.querySelectorAll("div.station-contact").forEach(div => { 1327 if (!div.textContent.trim()) { 1328 div.classList.add("empty"); 1329 } 1330 }); 1331 }); 1332</script>
1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345</section> 1346 1347 1348 1349 1350 1351 1352 </main> 1353 1354 1355 1356 <!-- Footer --> 1357 <footer> 1358 1359 1360 <div class="footer-header"> 1361 1362 <a href="/" class="footer-logo"> 1363 <svg class="icon attica"> 1364 <use href="/Content/images/logo/logo.svg#attica" xlink:href="/Content/images/logo/logo.svg#attica" /> 1365 </svg> 1366 <svg class="icon radios"> 1367 <use href="/Content/images/logo/logo.svg#radios" xlink:href="/Content/images/logo/logo.svg#radios" /> 1368 </svg> 1369 </a> 1370 1371 1372 1373 </div> 1374 1375 <div class="attica-promos"> 1376 1377 1378 <ul class="unstyled"> 1379 <li> 1380 <a href="https://www.capital.gr" target="_blank"> 1381 <span>Capital</span> 1382 </a> 1383 </li> 1384 <li> 1385 <a href="https://www.thetoc.gr" target="_blank"> 1386 <span>TheTOC</span> 1387 </a> 1388 </li> 1389 <li> 1390 <a href="https://www.harpersbazaar.gr" target="_blank"> 1391 <span>Harper's BAZAAR</span> 1392 </a> 1393 </li> 1394 <li> 1395 <a href="https://www.madamefigaro.gr" target="_blank"> 1396 <span>Madame Figaro</span> 1397 </a> 1398 </li> 1399 <li> 1400 <a href="https://www.shape.gr" target="_blank"> 1401 <span>Shape</span> 1402 </a> 1403 </li> 1404 <li> 1405 <a href="http://www.yupiii.gr" target="_blank"> 1406 <span>Yupiii</span> 1407 </a> 1408 </li> 1409 <li> 1410 <a href="https://esquire.com.gr" target="_blank"> 1411 <span>Esquire</span> 1412 </a> 1413 </li> 1414 <li> 1415 <a href="https://www.missbloom.gr" target="_blank"> 1416 <span>Missbloom</span> 1417 </a> 1418 </li> 1419 <li> 1420 <a href="https://www.tasty-guide.gr" target="_blank"> 1421 <span>Tasty Guide</span> 1422 </a> 1423 </li> 1424 1425 </ul> 1426 1427 1428 1429 </div> 1430 1431 <div class="footer-copyright"> 1432 <p class="copyright footer-text">© 2026 Attica Media Online Network</p> 1433 <nav> 1434 1435 <a href="javascript:window.open("http://www.atticamediagroup.gr/pres/")" target="_blank">Attica Media Online Network</a> 1436 <a href="/about-us" target="_blank">ΣÏεÏικά με εμάÏ</a> 1437 <a href="/contact" target="_blank">ÎÏικοινÏνήÏÏε μαζί μαÏ</a> 1438 <a href="javascript:window.open("http://www.atticamediagroup.gr/pres/")" target="_blank">ÎιαÏημιÏÏείÏε</a> 1439 <a href="/terms-of-use" target="_blank">ÎÏοι ÏÏήÏηÏ</a> 1440 1441 </nav> 1442 </div> 1443 1444 1445 1446 </footer> 1447 1448 1449 1450 1451 1452
1452<script src="/content/atticaradiojs?v=irhKQl_rtkEOiVkdlw170-2KMt_uXUvpaoG46YcItxE1"></script>
1452 1453 1454 <!-- Index --> 1455
1455<script type="module" src="/Content/js/modules/index.js"></script>
1455 1456 1457 1458 1459<!-- Meta Pixel Code -->
1460<script> 1461!function(f,b,e,v,n,t,s) 1462{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 1463n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 1464if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 1465n.queue=[];t=b.createElement(e);t.async=!0; 1466t.src=v;s=b.getElementsByTagName(e)[0]; 1467s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://www.google.com/url?q=https://connect.facebook.net/en_US/fbevents.js'&source=gmail-imap&ust=1737977560000000&usg=AOvVaw0Bw-zeu7bUqJXisF9mfq1t); 1468fbq('init', '592433490201333'); 1469fbq('track', 'PageView'); 1470</script>
1470 1471<noscript><img height="1" width="1" style="display:none" 1472src="https://www.google.com/url?q=https://www.facebook.com/tr?id%3D592433490201333%26ev%3DPageView%26noscript%3D1&source=gmail-imap&ust=1737977560000000&usg=AOvVaw3JQ7guTC7YDpds1iemfhae" 1473/></noscript> 1474<!-- End Meta Pixel Code --> 1475 1476<!--
1476<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
1476--> 1477<!--
1477<script> 1478 setTimeout(function(){ 1479 var adSenseCode = document.createElement('script'); 1480 adSenseCode.type = 'text/javascript'; 1481 adSenseCode.async = false; 1482 adSenseCode.defer = true; 1483 adSenseCode.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'; 1484 var ppNd = document.getElementsByTagName('script')[0]; 1485 ppNd.parentNode.insertBefore(adSenseCode, ppNd); 1486 }, 3100); 1487</script>
vendor: 2 bytes, line 1487
1487
1488<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9354358989096193" 1489 crossorigin="anonymous"></script>
vendor: 2 bytes, line 1489
1489
1490<script defer src="https://static.adman.gr/adman.js"></script>
vendor: 2 bytes, line 1490
1490
1491<script>window.AdmanQueue=window.AdmanQueue||[];AdmanQueue.push(function(){Adman.adunit({id:324,h:'https://x.grxchange.gr',inline:true})});</script>
1491--> 1492 1493 1494 1495 1496
1496<script defer src="/content/js/lazysizes.min.js"></script>
1496 1497 1498
1498<script> 1499 document.addEventListener('lazybeforeunveil', function (e) { 1500 if (e.target && e.target.classList && e.target.classList.contains("infinitelist")) { 1501 var parent = e.target.parentNode; 1502 var itemToReveal = parseInt(e.target.getAttribute('data-itemsettoreveal')) + 1; 1503 dataLayer.push({ 1504 'event': 'GalleryPageView' 1505 }); 1506 setTimeout(function () { 1507 var loadmore = document.getElementsByClassName('loadmore' + (itemToReveal - 1)); 1508 1509 loadmore[0].style.display = "none"; 1510 1511 var itemsset = document.getElementsByClassName('itemsset' + itemToReveal); 1512 while (itemsset.length > 0) { 1513 if (itemsset[0] && itemsset[0].classList) { 1514 itemsset[0].classList.remove('itemsset' + itemToReveal); 1515 } 1516 } 1517 var banner = document.getElementsByClassName('banner' + itemToReveal); 1518 //ÎμÏÎ±Î½Î¯Î¶Ï Ïην ÎιαÏ. μÎÏα ÏÏη λίÏÏα 1519 showBannerInGallery(itemToReveal); 1520 1521 if (banner[0] && banner[0].classList) { 1522 banner[0].classList.remove('banner' + itemToReveal); 1523 } 1524 1525 }, 1500); 1526 } 1527 1528 if (e.target.classList.contains("bannerlazy")) { 1529 //LazyAd Loading 1530 var fnToRun = e.target.getAttribute("data-callbackfunction"); 1531 console.log("LazyAd Loadin", fnToRun); 1532 window[fnToRun](); 1533 } 1534 }); 1535 1536 function showBannerInGallery(itemToReveal) { 1537 var bannerLazyInitiatorSelector = ""; 1538 bannerLazyInitiatorSelector = bannerLazyInitiatorSelector.concat(".banner", itemToReveal, " .bannerlazy"); 1539 var bannerLazyInitiator = document.querySelector(bannerLazyInitiatorSelector); 1540 var fnToRun = bannerLazyInitiator.getAttribute("data-callbackfunction"); 1541 bannerLazyInitiator.parentNode.removeChild(bannerLazyInitiator); 1542 window[fnToRun](); 1543 } 1544 1545 1546 1547 1548 </script>
1548 1549 1550 <div style="position: fixed; bottom: 0px; margin-right: auto; margin-left: auto; left: 50%; transform: translate(-50%, 0);z-index:999" class="bannerparent banner-300x50-mobile"> 1551 <div id='bnre671d9ccf198436ea094227abf10ecbb' class="advert banner-300x50-mobile"> 1552
1552<script> 1553 if(window.innerWidth < 600){ 1554 googletag.cmd.push(function() { 1555 googletag.defineSlot('/3346429/Attica_Radios_Mobile_320x50', [[300, 50], 'fluid', [320, 50], [1, 1]],'bnre671d9ccf198436ea094227abf10ecbb') 1556 .addService(googletag.pubads()) 1557 googletag.pubads().setTargeting('page', ['rockfm969']); 1558 googletag.enableServices(); 1559 googletag.display('bnre671d9ccf198436ea094227abf10ecbb'); 1560 }); 1561 }else{ 1562 document.getElementById("bnre671d9ccf198436ea094227abf10ecbb").style.display="none"; 1563 } 1564 </script>
1564 1565</div> 1566 </div> 1567
1567<script> 1568 document.querySelectorAll(".listen-live-player").forEach((function (e) { 1569 return e.addEventListener("click", (function (t) { 1570 t.preventDefault(); 1571 window.open(e.getAttribute("href"), "atticaRadiosPlayerWindow", "popup=true,toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=1210,height=700,left=50,top=50") 1572 })) 1573 })) 1574 1575 </script>
1575 1576 1577
1577<script> 1578 function fetchNowPlaying() { 1579 fetch('https://playingnow.atticaradios.gr/nowplaying/' + jazzlerApiName) 1580 .then(response => { 1581 if (!response.ok) { 1582 throw new Error(`HTTP error! Status: ${response.status}`); 1583 } 1584 return response.json(); 1585 }) 1586 .then(data => { 1587 console.log(`Station: ${data.radioStation}`); 1588 if (data.artist == '-') { 1589 1590 document.getElementById("track-artist").innerHTML = ""; 1591 document.getElementById("track-title").innerHTML = ""; 1592 document.getElementById("now-playing-widget").style.opacity = 0.3 1593 document.getElementById("now-playing-widget").style.filter = "grayscale(1)" 1594 } 1595 else { 1596 1597 document.getElementById("track-artist").innerHTML = data.artist; 1598 document.getElementById("track-title").innerHTML = data.song; 1599 document.getElementById("now-playing-widget").style.opacity = 1 1600 document.getElementById("now-playing-widget").style.filter = "grayscale(0)" 1601 1602 } 1603 if (data.artistImage == '-') { 1604 document.getElementById("albumCover").src = document.getElementById("stationImage").src; 1605 } else { 1606 document.getElementById("albumCover").src = data.artistImage; 1607 } 1608 1609 }) 1610 .catch(error => { 1611 console.error('Error fetching now playing:', error); 1612 }); 1613 } 1614 1615 if (document.getElementById("now-playing-widget") !== null) { 1616 // ÎÏÏÎ¹ÎºÏ ÎºÎ¬Î»ÎµÏμα 1617 fetchNowPlaying(); 1618 // ÎάλεÏμα κάθε 20 Î´ÎµÏ ÏεÏÏλεÏÏα 1619 setInterval(fetchNowPlaying, 20000); 1620 } 1621 </script>
1621 1622 1623 1624
1624<script async src="https://static.adman.gr/adman.js"></script>
1624 1625
1625<script>window.AdmanQueue = window.AdmanQueue || []; AdmanQueue.push(function () { Adman.adunit({ id: 5836, h: 'https://x.grxchange.gr', inline: true }) });</script>
1625. 1626 1627 1628</body> 1629</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.