1//---- Kanal listesi içi kategori seçimi ----- 2function ListeSayfa(sorgu,aktif){ 3 if(sorgu.indexOf("kanal-bilgi")>0){ 4 window.open(sorgu,"_blank"); 5 }else{ 6 donusum = "kanal_liste"; 7 var ss = new Array(); 8 ss = sorgu.replace("-tv-kanallari", ""); 9 ss = ss.replace("-kanallari", ""); 10 ss = ss.split("/").pop() 11 yukleniyor(); 12 if(makeRequest("/modul/liste.php?kat="+ss+"&Kanal_id="+aktif)){return false;} else {return true;}; 13 } 14} 15//--------------------------------------------------------------- 16function YayinSec(yid,tab){ 17 donusum = "yayin"; 18 document.getElementById("ytab_0").className = "mtab"; 19 document.getElementById("ytab_1").className = "mtab"; 20 document.getElementById("ytab_2").className = "mtab"; 21 document.getElementById("ytab_3").className = "mtab"; 22 document.getElementById("ytab_4").className = "mtab"; 23 document.getElementById("ytab_"+tab).className = "mtab_a"; 24 yukleniyor(); 25 if(makeRequest("/modul/ek.yayin.php?yid="+yid+"&rid="+Math.random())){return false;} else {return true;}; 26} 27function ReytingSec(tur){ 28 donusum = "reyting"; 29 document.getElementById("rtab_program_tum").className = "mtab"; 30 document.getElementById("rtab_program_ab").className = "mtab"; 31 document.getElementById("rtab_program_abc").className = "mtab"; 32 document.getElementById("rtab_tv").className = "mtab"; 33 //document.getElementById("rtab_radyo").className = "mtab"; 34 document.getElementById("rtab_gazete").className = "mtab"; 35 document.getElementById("rtab_"+tur).className = "mtab_a"; 36 yukleniyor(); 37 if(makeRequest("/modul/ek.reyting.php?reyting="+tur+"&rid="+Math.random())){return false;} else {return true;}; 38} 39 40 41//---- Kanal listesi tür seçimi (tv, radyo, kamera, favori) ----- 42function TurSec(tur,aktif){ 43 donusum = "kanal_liste"; 44 document.getElementById("tab_tv").className = "tab"; 45 //document.getElementById("tab_radyo").className = "tab"; 46 document.getElementById("tab_kamera").className = "tab"; 47 document.getElementById("tab_favori").className = "tab"; 48 document.getElementById("tab_"+tur).className = "tab_a"; 49 yukleniyor(); 50 if(tur=="favori"){ 51 if(makeRequest("/modul/liste.php?tur="+tur+"&fid="+getCookie("favori")+"&Kanal_id="+aktif)){return false;} else {return true;}; 52 } else { 53 if(makeRequest("/modul/liste.php?tur="+tur+"&Kanal_id="+aktif)){return false;} else {return true;}; 54 } 55} 56//------------------------------------------- 57 58//----- favori ekleme / kaldırma kodu --------- 59function FavoriEkle(id){ 60 //alert(id); 61 var kid = new Array(); 62 kid = getCookie("favori").split(","); 63 if(kid.length<50){ 64 setCookie("favori",getCookie("favori") + (getCookie("favori") != "" ? "," : "") + id,3650); 65 document.querySelector('.ft_' + id + ' a:nth-child(4)').style.display = "none"; 66 document.querySelector('.ft_' + id + ' a:nth-child(5)').style.display = "inline-block"; 67 68 //document.getElementById("fe_"+id).className = "gizle"; 69 //document.getElementById("fk_"+id).className = "goster"; 70 } else { 71 alert("Favorilere en fazla 50 kanal ekleyebilirsiniz"); 72 } 73} 74function FavoriKaldir(id, gizle) { 75 var kid = getCookie("favori").split(","); 76 var nf = ""; 77 for (var k = 0; k < kid.length; k++) { 78 if (kid[k] != id) { 79 if (nf !== "") nf += ","; 80 nf += kid[k]; 81 } 82 } 83 setCookie("favori", nf, 3650); 84 85 var ftElem = document.querySelector('.ft_' + id); 86 if (ftElem) { 87 var linkler = ftElem.querySelectorAll('a'); 88 if (linkler[4]) linkler[4].style.display = "none"; // 5. link (index 4) 89 if (linkler[3]) linkler[3].style.display = "inline-block"; // 4. link (index 3) 90 } 91} 92//------------------------------------------ 93 94//----- Arama fonsiyonu için karakter çevirme ------ 95function cevir(metin){ 96 metin = metin.replace("Ä","G"); 97 metin = metin.replace("Ã","U"); 98 metin = metin.replace("Å","S"); 99 metin = metin.replace("İ","I"); 100 metin = metin.replace("Ã","O"); 101 metin = metin.replace("Ã","C"); 102 metin = metin.replace("Ä","g"); 103 metin = metin.replace("ü","u"); 104 metin = metin.replace("Å","s"); 105 metin = metin.replace("ı","i"); 106 metin = metin.replace("ö","o"); 107 metin = metin.replace("ç","c"); 108 return metin; 109} 110//---------------------------------------------- 111
112//----- Kanal listesi içinde kanal arama ------ 113function KanalAra(){ 114 donusum = "kanal_liste"; 115 document.getElementById("tab_tv").className = "tab"; 116 //document.getElementById("tab_radyo").className = "tab"; 117 document.getElementById("tab_kamera").className = "tab"; 118 document.getElementById("tab_favori").className = "tab"; 119 yukleniyor(); 120 if(makeRequest("/modul/liste.php?ara="+cevir(document.getElementById('ara').value))){return false;} else {return true;}; 121} 122//------------------------------------------ 123 124//----- liste yüklenme animasyonu --------- 125function yukleniyor(){ 126 document.getElementById(donusum).innerHTML = '<div align="center"><br /><br /><br /><br /><br /><br /><br /><br /><br /><img src="temalar/kirmizi/resimler/yukleniyor.gif" /><br /><br /></div>'; 127} 128//------------------------------------------ 129 130function over(satir){ 131 satir.className = "aktif"; 132} 133function out(satir){ 134 satir.className = ""; 135} 136 137 138//-------------cookie------------------------ 139function setCookie(c_name,value,expiredays){ 140 var exdate=new Date(); 141 exdate.setDate(exdate.getDate()+expiredays); 142 document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toUTCString()); 143} 144 145function setCookie_seconds(name,value,seconds) { 146 var expires = ""; 147 if (seconds) { 148 var date = new Date(); 149 date.setTime(date.getTime() + (seconds*1000)); 150 expires = "; expires=" + date.toUTCString(); 151 } 152 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 153} 154 155function getCookie(c_name){ 156 if (document.cookie.length>0) 157 { 158 c_start=document.cookie.indexOf(c_name + "="); 159 if (c_start!=-1) 160 { 161 c_start=c_start + c_name.length+1; 162 c_end=document.cookie.indexOf(";",c_start); 163 if (c_end==-1) c_end=document.cookie.length; 164 return unescape(document.cookie.substring(c_start,c_end)); 165 } 166 } 167 return ""; 168} 169//--------------cookie------------------------ 170 171//-------------veri_al------------------------ 172function makeRequest(url){ 173 http_request = false; 174 if (window.XMLHttpRequest) { // Mozilla, Safari,... 175 http_request = new XMLHttpRequest(); 176 if (http_request.overrideMimeType) { 177 http_request.overrideMimeType('text/xml; charset=utf-8'); 178 } 179 } else if (window.ActiveXObject) { // IE 180 try { 181 http_request = new ActiveXObject("Msxml2.XMLHTTP"); 182 } catch (e) { 183 try { 184 http_request = new ActiveXObject("Microsoft.XMLHTTP"); 185 } catch (e) {} 186 } 187 } 188 if (!http_request) { 189 alert('Hata : XMLHTTP örnegi oluturulamiyor !'); 190 return 0; 191 } 192 http_request.onreadystatechange = alertContents; 193 http_request.open("GET", url, true); 194 http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 195 //http_request.setRequestHeader("Connection", "close"); 196 http_request.send(null); 197 return 1; 198} 199 200function alertContents() { 201 if (http_request.readyState == 4) { 202 if (http_request.status == 200) { 203 if(donusum=="simdi"){ 204 var ds = http_request.responseText; 205 dds = ds.split("|"); 206 SimdiTanimla(dds[0],dds[1],dds[2],dds[3]); 207 } else { 208 document.getElementById(donusum).innerHTML = http_request.responseText; 209 if(donusum=="kanal_liste"){ 210 ListeSonrasi(); 211 kanalRakamla(); 212 } 213 } 214 } else { 215 alert('Hata : Veri aktarimi yapılamıyor !'+'\n'+'Lütfen tekrar deneyiniz.'); 216 } 217 } 218} 219//-------------veri_al------------------------ 220 221//-------------- yayında bandı -------------------- 222var programListesi, serverZaman, hesapliZaman; 223function saniyedenSureye(d) { 224 d = Number(d); 225 var h = Math.floor(d / 3600); 226 var m = Math.floor(d % 3600 / 60); 227 var s = Math.floor(d % 3600 % 60); 228 return ((h > 0 ? h + ":" + (m < 10 ? "0" : "") : "") + m + ":" + (s < 10 ? "0" : "") + s); 229} 230function zamanHesapla(){ 231 hesapliZaman=new Date(new Date().getTime()-zamanFarki); 232 var hours = hesapliZaman.getHours(); 233 var minutes = "0" + hesapliZaman.getMinutes(); 234 var seconds = "0" + hesapliZaman.getSeconds(); 235} 236 237function saniyedenSureye2(ekelnecekSaniye){ 238 var sureZaman = new Date(null); 239 sureZaman.setSeconds(ekelnecekSaniye); 240 var hours = sureZaman.getHours(); 241 var minutes = "0" + sureZaman.getMinutes();
242 var seconds = "0" + sureZaman.getSeconds(); 243} 244 245function yayinBandiIsle() { 246 for (let pl = 0; pl < programListesi.length; pl++) { 247 if (hesapliZaman.getTime() > programListesi[pl].zaman && hesapliZaman.getTime() < programListesi[pl + 1].zaman) { 248 document.querySelector(".ustYazi").innerHTML = programListesi[pl].program + " (" + programListesi[pl].bassaat + ")"; 249 document.querySelector(".altYazi").innerHTML = "(" + programListesi[pl + 1].bassaat + ") " + programListesi[pl + 1].program; 250 let fark = programListesi[pl + 1].zaman - programListesi[pl].zaman; 251 let fark2 = hesapliZaman.getTime() - programListesi[pl].zaman; 252 let widthPercent = Math.round((fark2 / fark) * 10000) / 100; 253 document.querySelector(".bandIc").style.width = widthPercent + "%"; 254 let kalanSaniye = (programListesi[pl + 1].zaman - hesapliZaman.getTime()) / 1000; 255 document.querySelector(".kalanSure em").innerHTML = saniyedenSureye(kalanSaniye); 256 } 257 } 258} 259 260document.addEventListener("DOMContentLoaded", function() { 261 if (aktifKanal){ 262 fetch("/modul/ajax-yayin-akisi.php?kanal_id=" + aktifKanal) 263 .then(response => response.text()) 264 .then(data => { 265 programListesi = JSON.parse(data); 266 serverZaman = new Date(programListesi[0].serverZaman * 1); 267 zamanFarki = Date.now() - serverZaman.getTime(); 268 setInterval(zamanHesapla, 500); 269 setInterval(yayinBandiIsle, 500); 270 }); 271 } 272}); 273 274// kanal numaralandırma 275function kanalRakamla() { 276 let kanalRakam = 0; 277 let kanalGenislik = 255; 278 279 // #kanal_liste içindeki tüm ul > li > ilk çocukları seçiyoruz 280 const items = document.querySelectorAll("#kanal_liste ul li :nth-child(1)"); 281 282 items.forEach(item => { 283 if (item.innerHTML.trim() !== "") { 284 kanalRakam++; 285 286 // GeniÅlik ayarı 287 if (kanalRakam > 99) kanalGenislik = 240; 288 else if (kanalRakam > 9) kanalGenislik = 248; 289 290 item.style.width = kanalGenislik + "px"; 291 292 // EÄer rakam eklemek istersen 293 // item.innerHTML = kanalRakam + ". " + item.innerHTML; 294 } 295 }); 296 297 return false; 298} 299//--------------------------------------------------------------------- 300var yorum_modul=0; 301function yorum_gizle(){ 302 if (yorum_modul==0){ 303 document.getElementById("yorum_yap").style.display="block"; 304 yorum_modul=1; 305 } 306 else{ 307 document.getElementById("yorum_yap").style.display="none"; 308 yorum_modul=0 309 } 310 311} 312 313// Yorum gönderimi (2026-09-30): sunucu doÄrulaması + spam koruması modul/ajax-yorum.php'de, JSON döner. 314function yorum_gonder(tekrar) { 315 if (getCookie("yorum_zaman") === "1") { 316 alert("Bu kadar sık yorum gönderemezsiniz"); 317 return false; 318 } 319 320 const isim = document.querySelector("#isim"); 321 const email = document.querySelector("#email"); 322 const mesaj = document.querySelector("#mesajj"); 323 const form = document.querySelector("#yorumGonder"); 324 const buton = document.querySelector("#gonder"); 325 326 if (isim.value.trim().length < 2) { alert("İsim alanını doldurmadınız"); isim.focus(); return false; } 327 if (!/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(email.value.trim())) { alert("Geçerli bir e-posta adresi yazın"); email.focus(); return false; } 328 if (mesaj.value.trim().length < 3) { alert("Mesaj alanını doldurmadınız"); mesaj.focus(); return false; } 329 if (buton.disabled) return false; 330 331 buton.disabled = true; 332 fetch("/modul/ajax-yorum.php", { 333 method: "POST", 334 body: new FormData(form) 335 }) 336 .then(response => response.json()) 337 .then(v => { 338 buton.disabled = false; 339 if (v.t && form.yorum_t) form.yorum_t.value = v.t; 340 if (v.ok) { 341 setCookie_seconds("yorum_zaman", "1", 60); 342 form.innerHTML = '<div class="yollandi"><b>Yorumunuz baÅarıyla alındı.</b><br>Editörlerimiz tarafından incelendikten sonra yayına alınacaktır.<br>İlginiz için teÅekkür ederiz.</div>'; 343 return; 344 } 345 if (v.alan === "sure" && !tekrar) { buton.disabled = true; setTimeout(() => { buton.disabled = false; yorum_gonder(true); }, 3500); return; } // sayfa uzun süre açık kaldı: yeni belirteç en az 3 sn sonra geçerli, bir kez daha dene 346 alert(v.mesaj || "Yorumunuz gönderilemedi, lütfen tekrar deneyin."); 347 const alan = v.alan && form.elements[v.alan]; 348 if (alan && alan.focus) alan.focus(); 349 }) 350 .catch(() => { 351 buton.disabled = false; 352 alert("Yorumunuz gönderilemedi. BaÄlantınızı kontrol edip tekrar deneyin."); 353 });
354 355 return false; 356} 357 358function hata_bildir(id) { 359 if (getCookie("hata_zaman") === "1") { 360 return false; 361 } 362 setCookie_seconds("hata_zaman", "1", 60); 363 364 fetch("/modul/ajax-hata.php?id=" + id, { 365 method: "POST" 366 }) 367 .then(response => response.text()) 368 .then(data => { 369 const btn = document.querySelector(".button-hata"); 370 if (btn) btn.innerHTML = "Bildirildi!"; 371 }); 372 373 return false; 374} 375 376function yayinAkisiGoster(id) { 377 const kutular = document.querySelectorAll(".yayinAkisiKutu"); 378 kutular.forEach(kutu => kutu.classList.add("gizlen")); 379 380 const secilenKutu = document.querySelector(".yayinAkisiKutu_" + id); 381 if (secilenKutu) { 382 secilenKutu.classList.remove("gizlen"); 383 } 384 385 for (let x = 0; x <= 6; x++) { 386 const menuEleman = document.querySelector(".yamenu_" + x); 387 if (!menuEleman) continue; 388 389 if (x === id) { 390 menuEleman.classList.remove("smenuk2"); 391 menuEleman.classList.add("smenuk2_a"); 392 } else { 393 menuEleman.classList.remove("smenuk2_a"); 394 menuEleman.classList.add("smenuk2"); 395 } 396 } 397} 398 399kanalRakamla(); 400 401if (aktifKanal > 0) { 402 document.getElementById("sitene-ekle").value = 403 '<iframe title="canli tv" width="560" height="315" src="https://www.canlitv.you/embed/?id=' 404 + aktifKanal + '" frameborder="0" allowfullscreen></iframe>'; 405} 406 407function ListeSonrasi() { 408 // ul>li içindeki linkler 409 const kanalLinks = document.querySelectorAll("#kanal_liste ul li a"); 410 // baÄımsız .kat linkleri 411 const katLinks = document.querySelectorAll(".kat"); 412 const allLinks = [...kanalLinks, ...katLinks]; 413 414 allLinks.forEach(link => { 415 // data-tag ile bayrak ekleme 416 const ulke = link.getAttribute('data-tag'); 417 if (ulke) { 418 link.style.backgroundImage = "url(/bayraklar/" + ulke + ".png)"; 419 } 420 421 // data-kat ile kategori görseli ekleme 422 const kategori = link.getAttribute('data-kat'); 423 if (kategori) { 424 link.innerHTML = "<img height='13' width='51' src='/resimler/turler/" + cevir(kategori) + 425 ".png' alt='" + cevir(kategori) + "'>"; 426 } 427 428 const parentLi = link.closest("li"); // li varsa bul 429 const allLiLinks = parentLi ? parentLi.querySelectorAll("a") : []; 430 const kIdClass = parentLi ? Array.from(parentLi.classList).find(cls => cls.startsWith("ft_")) : null; 431 const kId = kIdClass ? kIdClass.split("_")[1] : null; 432 433 // ul>li içindeki 2. ve 3. link 434 if (allLiLinks[1] === link || allLiLinks[2] === link) { 435 link.addEventListener("click", function(event) { 436 event.preventDefault(); 437 event.stopPropagation(); 438 ListeSayfa(this.href, 0); 439 }); 440 } 441 // ul>li içindeki favori ekle (4. link) 442 else if (allLiLinks[3] === link && kId) { 443 link.addEventListener("click", function(event) { 444 event.preventDefault(); 445 event.stopPropagation(); 446 FavoriEkle(kId); 447 }); 448 } 449 // ul>li içindeki favori kaldır (5. link) 450 else if (allLiLinks[4] === link && kId) { 451 link.addEventListener("click", function(event) { 452 event.preventDefault(); 453 event.stopPropagation(); 454 FavoriKaldir(kId); 455 }); 456 } 457 // ul>li dıÅında kalan kat class'lı linkler 458 else if (link.classList.contains("kat")) { 459 link.addEventListener("click", function(event) { 460 event.preventDefault(); 461 event.stopPropagation(); 462 ListeSayfa(this.href, 0); 463 }); 464 } 465 }); 466 467 // Favorilere eklenmiÅ kanalların buton görünümü 468 const favoriler = getCookie("favori").split(","); 469 favoriler.forEach(fv => { 470 const ftElem = document.querySelector(".ft_" + fv); 471 if (ftElem) { 472 const links = ftElem.querySelectorAll("a"); 473 if (links[3]) links[3].style.display = "none"; // 4. link 474 if (links[4]) links[4].style.display = "inline-block"; // 5. link 475 } 476 }); 477 478 // DOMContentLoaded yerine burada 479 const aktifElem = document.querySelector(".ft_" + aktifKanal); 480 if (aktifElem) aktifElem.classList.add("aktif"); 481 482 const yorumlar = document.querySelector(".yorumlar");
483 const kanalBilgiSol = document.querySelector(".kanal-bilgi-sol"); 484 if (yorumlar && kanalBilgiSol) { 485 yorumlar.style.height = (kanalBilgiSol.offsetHeight - 390) + "px"; 486 } 487 488 // Kanal liste içi arama 489 function aramaIcinTemizle(kanalAdi) { 490 kanalAdi = kanalAdi.toLowerCase(); 491 const chars = {'c':'ç','ı':'i','Ä':'g','ö':'o','ü':'u','Å':'s',' ':'','\.':''}; 492 kanalAdi = kanalAdi.replace(/[çıÄöüŠ.]/g, m => chars[m] || m); 493 return kanalAdi; 494 } 495 496 const aramaInput = document.querySelector(".arama_text"); 497 if (aramaInput) { 498 aramaInput.addEventListener("keyup", function() { 499 const arananKelime = aramaIcinTemizle(this.value); 500 501 document.querySelectorAll("#kanal_liste ul li").forEach(li => { 502 const aElem = li.querySelector("a"); 503 let kontrolEdilenKelime = ""; 504 if (aElem) { 505 const dataArama = aElem.getAttribute("data-arama") || ""; 506 kontrolEdilenKelime = aramaIcinTemizle(aElem.innerHTML + " " + dataArama); 507 } 508 li.style.display = (kontrolEdilenKelime.indexOf(arananKelime) === -1) ? "none" : "block"; 509 }); 510 }); 511 aramaInput.addEventListener("change", function() { 512 console.log("Arama tamamlandı, deÄer: " + aramaInput.value); 513 fetch("/ajax/arama-data.php?word="+aramaInput.value) 514 }); 515 516 let debounceTimer; 517 aramaInput.addEventListener("input", function() { 518 return 0; 519 clearTimeout(debounceTimer); 520 debounceTimer = setTimeout(() => { 521 if(aramaInput.value.length>1){ 522 console.log("Yazım tamamlandı, deÄer: " + aramaInput.value); 523 fetch("/ajax/arama-data.php?word="+aramaInput.value) 524 } 525 }, 2000); 526 }); 527 } 528} 529 530// Fonksiyon çaÄır 531ListeSonrasi(); 532 533// Aktif ziyaretçiler barları 534document.querySelectorAll("#aktif-ziyaretciler ul li span em").forEach(em => { 535 const widthPercent = em.getAttribute("data-width"); 536 if (widthPercent) em.style.width = widthPercent + "%"; 537 if (em.offsetWidth < 40) em.style.width = "40px"; 538}); 539 540// Reyting sayfaları yüzde barları 541document.querySelectorAll("li span em").forEach(em => { 542 const yuzde = em.getAttribute("data-yuzde"); 543 if (yuzde) em.style.width = yuzde + "%"; 544}); 545 546// Reyting anasayfa barları yükleme 547function reytingAnasayfaBarlarYukle() { 548 const tvReytingSutun = document.querySelector(".kanal-reytigleri .tv-reyting-sutun"); 549 if (!tvReytingSutun) return; // EÄer element yoksa fonksiyondan çık 550 551 let enYuzde = 0; 552 const enFazla = tvReytingSutun.offsetHeight - 70; 553 554 document.querySelectorAll(".kanal-reytigleri .reyting-yuzde-bar").forEach(bar => { 555 const deger = parseInt(bar.getAttribute("data-reyting-degeri")) || 0; 556 if (enYuzde < deger) enYuzde = deger; 557 }); 558 559 const oran = enFazla / enYuzde; 560 561 document.querySelectorAll(".kanal-reytigleri .reyting-yuzde-bar").forEach(bar => { 562 const deger = parseInt(bar.getAttribute("data-reyting-degeri")) || 0; 563 bar.style.height = (deger * oran) + "px"; 564 }); 565} 566 567reytingAnasayfaBarlarYukle();
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.