Files
addon/mediaserver/platformcode/template/js/ui.js
2017-08-15 22:12:36 +02:00

239 lines
8.5 KiB
JavaScript

function dispose() {
var height = document.getElementById("window").offsetHeight;
var header = document.getElementById("header").offsetHeight;
var footer = document.getElementById("footer").offsetHeight;
var panelheight = height - header - footer;
document.getElementById('content').style.height = panelheight + "px";
if (document.getElementById("window").offsetWidth < 800) {
document.getElementById('panel_items').className = "panel_items_vertical";
document.getElementById('panel_info').className = "panel_info_vertical";
}
else {
document.getElementById('panel_items').className = "panel_items";
document.getElementById('panel_info').className = "panel_info";
}
};
function replace_list(data, list) {
for (var key in list) {
var re = new RegExp("%" + key, "g");
data = data.replace(re, list[key]);
};
return data;
};
function play_mode(url, title, player) {
if (!new RegExp("^(.+://)").test(url)) {
url = domain + "/local/" + encodeURIComponent(btoa(Utf8.encode(data.video_url))) + "/video.mp4";
}
else {
var indirect_url = domain + "/proxy/" + encodeURIComponent(btoa(Utf8.encode(url))) + "/video.mp4";
};
if (settings.play_mode == 0 && indirect_url) {
var lista = [];
lista.push(replace_list(html.dialog.select.item, {
"item_title": "Indirecto",
"item_action": player + "('" + indirect_url + "','" + title + "')"
}));
lista.push(replace_list(html.dialog.select.item, {
"item_title": "Directo",
"item_action": player + "('" + url + "','" + title + "')"
}));
dialog.menu("Metodo de reproducción", btoa(lista.join("")));
}
else if (settings.play_mode == 1 && indirect_url) {
eval(player)(indirect_url, title);
}
else {
eval(player)(url, title);
};
};
function play(url, title) {
window.open(url);
}
function vlc_play(url, title) {
var html_code = replace_list(html.vlc_player, {
"video_url": url
});
dialog.player(title, html_code);
}
function flash_play(url, title) {
var html_code = replace_list(html.flash_player, {
"video_url": url
});
dialog.player(title, html_code);
}
function html_play(url, title) {
var html_code = replace_list(html.html_player, {
"video_url": url
});
dialog.player(title, html_code);
}
function set_category(category) {
var el = document.getElementById("header");
if (category) {
el.getElementById("heading").innerHTML = "alfa / " + category;
document.title = "alfa / " + category;
}
else {
el.getElementById("heading").innerHTML = "alfa";
document.title = "alfa";
};
};
function focus_element(element) {
element.focus()
};
function image_error(thumbnail) {
var src = thumbnail.src;
if (thumbnail.src.indexOf(domain) == 0) {
thumbnail.src = "https://github.com/alfa-addon/addon/raw/master/plugin.video.alfa/resources/media/general/default/thumb_folder.png";
}
else {
thumbnail.src = domain + "/proxy/" + encodeURIComponent(btoa(thumbnail.src));
}
if (thumbnail.parentNode == document.activeElement && document.activeElement.className != "item_menu"){
document.activeElement.onfocus();
};
};
function set_original_url(url){
currentWebLink = document.getElementById("current_web_link")
if (currentWebLink) {
if (url) {
currentWebLink.style.display = "block";
currentWebLink.href = url;
}
else {
currentWebLink.style.display = "none";
}
}
}
function show_images(){
var container = document.getElementById("itemlist");
var images = container.getElementsByTagName("img");
var item_height = images[0].parentNode.parentNode.offsetHeight;
var first = Math.floor(container.scrollTop / item_height);
var count = Math.ceil(container.offsetHeight / item_height + (container.scrollTop / item_height - first));
for (var x = first; x < first + count; x++){
var image = images[x]
if (image && !image.src){
image.src = image.parentNode.getElementsByClassName("thumbnail")[1].innerHTML;
if (image.parentNode == document.activeElement){
document.activeElement.onfocus();
};
};
};
};
function load_info(item, viewmode) {
var thumbnail = item.getElementsByClassName("thumbnail")[0];
var fanart = item.getElementsByClassName("fanart")[0];
var title = item.getElementsByClassName("label")[0];
var plot = item.getElementsByClassName("plot")[0];
var el = document.getElementById("media_info");
el.getElementById("media_poster").src = thumbnail.src;
el.getElementById("media_plot").innerHTML = plot.innerHTML.replace(/\n/g, "<br>");
el.getElementById("media_title").innerHTML = title.innerHTML;
if (fanart.innerHTML && settings.show_fanart) {
document.getElementById("content").style.backgroundImage = "linear-gradient(rgba(255,255,255,0.5),rgba(255,255,255,0.5)), url(" + fanart.innerHTML + ")";
document.getElementById("content").children[0].style.opacity = ".9";
document.getElementById("content").children[1].style.opacity = ".9";
}
else {
document.getElementById("content").style.backgroundImage = "";
document.getElementById("content").children[0].style.opacity = "";
document.getElementById("content").children[1].style.opacity = "";
};
if (viewmode == "list") {
el.getElementById("media_poster").style.display = "block";
el.getElementById("media_plot").style.display = "block";
el.getElementById("media_title").style.display = "none";
document.getElementById("version_info").style.display = "none";
}
else if (viewmode == "banner" || viewmode == "channel") {
el.getElementById("media_poster").style.display = "none";
el.getElementById("media_plot").style.display = "none";
el.getElementById("media_title").style.display = "none";
document.getElementById("version_info").style.display = "block";
}
else {
el.getElementById("media_poster").style.display = "block";
el.getElementById("media_plot").style.display = "block";
el.getElementById("media_title").style.display = "block";
document.getElementById("version_info").style.display = "none";
}
auto_scroll(el.getElementById("media_plot"));
};
function unload_info(obj) {
var el = document.getElementById('media_info');
document.getElementById("version_info").style.display = "block";
el.getElementById("media_poster").style.display = "none";
el.getElementById("media_plot").style.display = "none";
el.getElementById("media_title").style.display = "none";
el.getElementById("media_poster").src = "";
el.getElementById("media_plot").innerHTML = "";
el.getElementById("media_title").innerHTML = "";
document.getElementById("content").style.backgroundImage = ""
document.getElementById("content").children[0].style.opacity = "";
document.getElementById("content").children[1].style.opacity = "";
};
function change_category(category) {
var el = document.getElementById('window_settings');
el.getElementById("controls_container").scrollTop = 0;
categories = el.getElementById("controls_container").getElementsByTagName("ul");
for (var x in categories) {
if (categories[x].id == "category_" + category) {
categories[x].style.display = "block";
}
else if (categories[x].style) {
categories[x].style.display = "none";
};
};
};
function auto_scroll(element) {
clearInterval(element.interval);
element.scrollLeft = 0;
element.scrollTop = 0;
if (element.scrollWidth > element.offsetWidth) {
initialscrollWidth = element.scrollWidth;
element.innerHTML = element.innerHTML + " | " + element.innerHTML;
element.interval = setInterval(function () {
element.scrollLeft += 1;
if (element.scrollLeft - 1 >= element.scrollWidth - initialscrollWidth) {
element.scrollLeft = 0;
};
}, 80);
};
if (element.scrollHeight > element.offsetHeight) {
initialscrollHeight = element.scrollHeight;
element.innerHTML = element.innerHTML + "</br>" + element.innerHTML;
element.interval = setInterval(function () {
element.scrollTop += 1;
if (element.scrollTop >= element.scrollHeight - initialscrollHeight) {
element.scrollTop = 0;
};
}, 80);
};
};
function center_window(el) {
el.style.top = document.getElementById("window").offsetHeight / 2 - el.offsetHeight / 2 + "px";
};