var xhttpList = [];
document.body.addEventListener('mousemove', function(e) {
thumbnailDisplayPosition(e);
});
function ajaxLoad(url, func) {
//var d = new Date();
//var n;
var xhttp = new XMLHttpRequest();
xhttpList.push(xhttp);
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
//var d = new Date();
//console.log(d.getTime() - n);
func(this.responseText);
}
};
xhttp.open("GET", url, true);
//n = d.getTime();
xhttp.send();
}
function stopAllXHttpRequest() {
for (var i = 0; i < xhttpList.length; i++) {
xhttpList[i].abort();
}
xhttpList = [];
}
function loadFollowingList() {
document.getElementById("follow_list_content").innerHTML = "";
var edit_link_div = document.createElement("DIV");
edit_link_div.id = "follow_list_edit";
var edit_link = document.createElement("A");
edit_link.href = "../main_frame.php?content=YoutubePlayerEdit";
edit_link.target = "_blank";
edit_link.innerHTML = "Edit channel list";
edit_link.className = "follow_list_edit_a";
edit_link_div.appendChild(edit_link);
document.getElementById("follow_list_content").appendChild(edit_link_div);
stopAllXHttpRequest();
ajaxLoad("getFollowingList.php", completeLoadList);
}
function completeLoadList(value) {
if (value == "") return;
if (value == "NotLogin") {
var please_login = document.createElement("DIV");
please_login.className = "please_login";
please_login.innerHTML = "Please login to use"
document.getElementById("follow_list_content").appendChild(please_login);
return;
}
var list = value.split(",");
for (var i = 0; i < list.length; i++) {
ajaxLoad("getData2.php?link=" + list[i], addFollowingItem);
}
}
item_index = 0;
function addFollowingItem(value) {
value = value.replaceAll("\\\\\\","\\");
var json = JSON.parse(value);
if (json.status == "") {
return;
}
//not show live more than 1 day
if (json.status != "LIVE" && Math.abs((json.startTime * 1000) - Date.now()) > 1000*60*60*24) {
return;
}
var container = document.createElement("DIV");
container.className = "following_item_container";
container.id = "item_" + item_index;
//icon
var icon_name_frame = document.createElement("DIV");
icon_name_frame.className = "icon_name_frame";
var icon = document.createElement("IMG");
icon.src = json.thumbnail + "=s45-c-k-c0x00ffffff-no-rj";
icon.className = "icon_img";
icon.id = "icon_" + json.videoId;
icon_name_frame.appendChild(icon);
//name
var name = document.createElement("SPAN");
name.className = "name_span";
name.innerHTML = json.name;
icon_name_frame.appendChild(name);
container.appendChild(icon_name_frame);
//title
var title_container = document.createElement("DIV");
title_container.className = "title_container";
var title = document.createElement("SPAN");
title.className = "video_title_span";
title.innerHTML = json.title;
title.style.animationDuration = (json.title.length / 5) + "s";
title_container.appendChild(title);
container.appendChild(title_container);
if (json.status != "LIVE") {
var time = document.createElement("SPAN");
time.className = "video_time_span";
time.innerHTML = outputTime(new Date(json.startTime * 1000));
container.appendChild(time);
}
if (json.status == "LIVE") {
container.classList.add("live_container");
icon.classList.add("live_icon");
}
container.onclick = function() {
processAdd(json.videoId);
}
icon.onmouseover = function() {
document.getElementById('thumbnail_display_container').style.display = "block";
document.getElementById("thumbnail_display").src = "https://img.youtube.com/vi/" + json.videoId + "/mqdefault.jpg";
}
icon.onmouseout = function() {
document.getElementById('thumbnail_display_container').style.display = "none";
}
document.getElementById("follow_list_content").appendChild(container);
item_index++;
sortFollowingItem();
}
function sortFollowingItem() {
var list = document.getElementsByClassName("following_item_container");
var container = document.getElementById("follow_list_content");
for (var i = 0; i < list.length-1; i++) {
for (var j = 0; j < list.length-i-1; j++) {
if (!list[j].classList.contains("live_container") && list[j+1].classList.contains("live_container")) {
container.insertBefore(list[j+1], list[j]);
}
if (!list[j].classList.contains("live_container") && !list[j+1].classList.contains("live_container")) {
var time1 = list[j].getElementsByClassName("video_time_span")[0].innerHTML;
var time2 = list[j+1].getElementsByClassName("video_time_span")[0].innerHTML;
if (new Date(time1) > new Date(time2)) {
container.insertBefore(list[j+1], list[j]);
}
}
}
}
}
function outputTime(date) {
var Y = date.getFullYear();
var M = ((date.getMonth()+1) > 9 ? '' : '0') + (date.getMonth()+1);
var D = (date.getDate() > 9 ? '' : '0') + date.getDate();
var H = (date.getHours() > 9 ? '' : '0') + date.getHours();
var m = (date.getMinutes() > 9 ? '' : '0') + date.getMinutes();
var dateString = `${Y}-${M}-${D} ${H}:${m}`
return dateString;
}
function thumbnailDisplayPosition(e) {
var container = document.getElementById('thumbnail_display_container');
var left = e.pageX;
var top = e.pageY;
//var offsetX = -container.clientWidth-10;
var offsetX = -320 -10;
var offsetY = 0;
if (top + container.clientHeight > window.innerHeight - 10) {
offsetY = -container.clientHeight
}
container.style.left = (left + offsetX) + 'px';
container.style.top = (top + offsetY) + 'px';
}
/*function unicodeToChar(text) {
return text.replace(/\\u[\dA-Fa-f]{4}/gi,
function (match) {
return String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16));
});
}*/
/*function test(value) {
var json = JSON.parse(value);
document.getElementById("follow_list_content").innerHTML += json.name + "
";
document.getElementById("follow_list_content").innerHTML += "
";
}*/