PageSourceSearch

https://canlitv.com/js/canlitv.js?ver=1.16

js canlitv.com collected 2026-09-25 06:07:45 UTC 19,703 bytes, 553 lines download raw bytes

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
313function yorum_gonder() {
314    if (getCookie("yorum_zaman") === "1") {
315        alert("Bu kadar sık yorum gönderemezsiniz");
316        return false;
317    }
318
319    const isim   = document.querySelector("#isim");
320    const email  = document.querySelector("#email");
321    const mesaj  = document.querySelector("#mesajj");
322    const form   = document.querySelector("#yorumGonder");
323
324    if (isim.value === "") { alert("İsim alanını doldurmadınız"); isim.focus(); return false; }
325    if (email.value === "") { alert("Email alanını doldurmadınız"); email.focus(); return false; }
326    if (mesaj.value === "") { alert("Mesaj alanını doldurmadınız"); mesaj.focus(); return false; }
327
328    setCookie_seconds("yorum_zaman", "1", 60);
329
330    const formData = new FormData(form);
331
332    fetch("/modul/ajax-yorum.php", {
333        method: "POST",
334        body: formData
335    })
336    .then(response => response.text())
337    .then(data => {
338        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>';
339    });
340
341    return false;
342}
343
344function hata_bildir(id) {
345    if (getCookie("hata_zaman") === "1") {
346        return false;
347    }
348    setCookie_seconds("hata_zaman", "1", 60);
349
350    fetch("/modul/ajax-hata.php?id=" + id, {
351        method: "POST"
352    })
353    .then(response => response.text())
354    .then(data => {
355        const btn = document.querySelector(".button-hata");
356        if (btn) btn.innerHTML = "Bildirildi!";
357    });
358
359    return false;
360}
361
362function yayinAkisiGoster(id) {
363    const kutular = document.querySelectorAll(".yayinAkisiKutu");
364    kutular.forEach(kutu => kutu.classList.add("gizlen"));
365
366    const secilenKutu = document.querySelector(".yayinAkisiKutu_" + id);
367    if (secilenKutu) {
368        secilenKutu.classList.remove("gizlen");
369    }
370	
371    for (let x = 0; x <= 6; x++) {
372        const menuEleman = document.querySelector(".yamenu_" + x);
373        if (!menuEleman) continue;
374
375        if (x === id) {
376            menuEleman.classList.remove("smenuk2");
377            menuEleman.classList.add("smenuk2_a");
378        } else {
379            menuEleman.classList.remove("smenuk2_a");
380            menuEleman.classList.add("smenuk2");
381        }
382    }
383}
384
385kanalRakamla();
386
387if (aktifKanal > 0) {
388    document.getElementById("sitene-ekle").value = 
389        '<iframe title="canli tv" width="560" height="315" src="https://www.canlitv.you/embed/?id=' 
390        + aktifKanal + '" frameborder="0" allowfullscreen></iframe>';
391}
392
393function ListeSonrasi() {
394	// ul>li içindeki linkler
395	const kanalLinks = document.querySelectorAll("#kanal_liste ul li a");
396	// bağımsız .kat linkleri
397	const katLinks = document.querySelectorAll(".kat");
398	const allLinks = [...kanalLinks, ...katLinks];
399
400	allLinks.forEach(link => {
401		// data-tag ile bayrak ekleme
402		const ulke = link.getAttribute('data-tag');
403		if (ulke) {
404			link.style.backgroundImage = "url(/bayraklar/" + ulke + ".png)";
405		}
406
407		// data-kat ile kategori görseli ekleme
408		const kategori = link.getAttribute('data-kat');
409		if (kategori) {
410			link.innerHTML = "<img height='13' width='51' src='/resimler/turler/" + cevir(kategori) +
411							 ".png' alt='" + cevir(kategori) + "'>";
412		}
413
414		const parentLi = link.closest("li"); // li varsa bul
415		const allLiLinks = parentLi ? parentLi.querySelectorAll("a") : [];
416		const kIdClass = parentLi ? Array.from(parentLi.classList).find(cls => cls.startsWith("ft_")) : null;
417		const kId = kIdClass ? kIdClass.split("_")[1] : null;
418
419		// ul>li içindeki 2. ve 3. link
420		if (allLiLinks[1] === link || allLiLinks[2] === link) {
421			link.addEventListener("click", function(event) {
422				event.preventDefault();
423				event.stopPropagation();
424				ListeSayfa(this.href, 0);
425			});
426		}
427		// ul>li içindeki favori ekle (4. link)
428		else if (allLiLinks[3] === link && kId) {
429			link.addEventListener("click", function(event) {
430				event.preventDefault();
431				event.stopPropagation();
432				FavoriEkle(kId);
433			});
434		}
435		// ul>li içindeki favori kaldır (5. link)
436		else if (allLiLinks[4] === link && kId) {
437			link.addEventListener("click", function(event) {
438				event.preventDefault();
439				event.stopPropagation();
440				FavoriKaldir(kId);
441			});
442		}
443		// ul>li dışında kalan kat class'lı linkler
444		else if (link.classList.contains("kat")) {
445			link.addEventListener("click", function(event) {
446				event.preventDefault();
447				event.stopPropagation();
448				ListeSayfa(this.href, 0);
449			});
450		}
451	});
452
453    // Favorilere eklenmiş kanalların buton görünümü
454    const favoriler = getCookie("favori").split(",");
455    favoriler.forEach(fv => {
456        const ftElem = document.querySelector(".ft_" + fv);
457        if (ftElem) {
458            const links = ftElem.querySelectorAll("a");
459            if (links[3]) links[3].style.display = "none";       // 4. link
460            if (links[4]) links[4].style.display = "inline-block"; // 5. link
461        }
462    });
463
464    // DOMContentLoaded yerine burada
465    const aktifElem = document.querySelector(".ft_" + aktifKanal);
466    if (aktifElem) aktifElem.classList.add("aktif");
467
468    const yorumlar = document.querySelector(".yorumlar");
469    const kanalBilgiSol = document.querySelector(".kanal-bilgi-sol");
470    if (yorumlar && kanalBilgiSol) {
471        yorumlar.style.height = (kanalBilgiSol.offsetHeight - 390) + "px";
472    }
473
474    // Kanal liste içi arama
475    function aramaIcinTemizle(kanalAdi) {
476        kanalAdi = kanalAdi.toLowerCase();
477        const chars = {'c':'ç','ı':'i','ğ':'g','ö':'o','ü':'u','ş':'s',' ':'','\.':''};
478        kanalAdi = kanalAdi.replace(/[çığöüş .]/g, m => chars[m] || m);
479        return kanalAdi;
480    }
481
482    const aramaInput = document.querySelector(".arama_text");
483    if (aramaInput) {
484        aramaInput.addEventListener("keyup", function() {
485            const arananKelime = aramaIcinTemizle(this.value);
486
487            document.querySelectorAll("#kanal_liste ul li").forEach(li => {
488                const aElem = li.querySelector("a");
489                let kontrolEdilenKelime = "";
490                if (aElem) {
491                    const dataArama = aElem.getAttribute("data-arama") || "";
492                    kontrolEdilenKelime = aramaIcinTemizle(aElem.innerHTML + " " + dataArama);
493                }
494                li.style.display = (kontrolEdilenKelime.indexOf(arananKelime) === -1) ? "none" : "block";
495            });
496        });
497		aramaInput.addEventListener("change", function() {
498			console.log("Arama tamamlandı, değer: " + aramaInput.value);			
499			fetch("/ajax/arama-data.php?word="+aramaInput.value)
500		});
501		
502		let debounceTimer;
503		aramaInput.addEventListener("input", function() {
504			return 0;
505			clearTimeout(debounceTimer);
506			debounceTimer = setTimeout(() => {
507				if(aramaInput.value.length>1){
508					console.log("Yazım tamamlandı, değer: " + aramaInput.value);
509					fetch("/ajax/arama-data.php?word="+aramaInput.value)
510				}
511			}, 2000);
512		});
513    }
514}
515
516// Fonksiyon çağır
517ListeSonrasi();
518
519// Aktif ziyaretçiler barları
520document.querySelectorAll("#aktif-ziyaretciler ul li span em").forEach(em => {
521    const widthPercent = em.getAttribute("data-width");
522    if (widthPercent) em.style.width = widthPercent + "%";
523    if (em.offsetWidth < 40) em.style.width = "40px";
524});
525
526// Reyting sayfaları yüzde barları
527document.querySelectorAll("li span em").forEach(em => {
528    const yuzde = em.getAttribute("data-yuzde");
529    if (yuzde) em.style.width = yuzde + "%";
530});
531
532// Reyting anasayfa barları yükleme
533function reytingAnasayfaBarlarYukle() {
534    const tvReytingSutun = document.querySelector(".kanal-reytigleri .tv-reyting-sutun");
535    if (!tvReytingSutun) return; // Eğer element yoksa fonksiyondan çık
536
537    let enYuzde = 0;
538    const enFazla = tvReytingSutun.offsetHeight - 70;
539
540    document.querySelectorAll(".kanal-reytigleri .reyting-yuzde-bar").forEach(bar => {
541        const deger = parseInt(bar.getAttribute("data-reyting-degeri")) || 0;
542        if (enYuzde < deger) enYuzde = deger;
543    });
544
545    const oran = enFazla / enYuzde;
546
547    document.querySelectorAll(".kanal-reytigleri .reyting-yuzde-bar").forEach(bar => {
548        const deger = parseInt(bar.getAttribute("data-reyting-degeri")) || 0;
549        bar.style.height = (deger * oran) + "px";
550    });
551}
552
553reytingAnasayfaBarlarYukle();

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.