var domain = window.location.href.split("/").slice(0, 3).join("/"); var focused_item = null; var websocket = null; var session_id = null; var default_settings = {}; var settings_controls = []; var connection_retry = true; var settings = {}; var loading = {}; var dialog = {}; var ajax_running = []; var keychar = { "keyCode": 0, "Time": 0, "Char": "" }; var html = { "dialog": { "select": {} }, "config": {}, "itemlist": {} }; var players = { "play": "Abrir enlace", "vlc_play": "Plugin VLC", "flash_play": "Reproductor Flash", "html_play": "Video HTML" }; var nav_history = { "newRequest": function (url) { if (this.confirmed) { if (this.states[this.current].url == url) { this.states[this.current].url; this.states[this.current].start; } else { this.states[this.current].scroll = document.getElementById("itemlist").scrollTop; this.states[this.current].focus = Array.prototype.indexOf.call(document.getElementById("itemlist").children, focused_item.parentNode); this.current += 1; this.states.splice(this.current, 0, { "start": new Date().getTime(), "url": url }); this.confirmed = false; } } else { if (this.current == -1) { this.current = 0; this.states.push({ "start": new Date().getTime(), "url": url }); } else { this.states[this.current].start = new Date().getTime(); this.states[this.current].url = url; } } }, "newResponse": function (data, category, url) { if (!this.confirmed) { if (this.states[this.current].focus >= 0) { document.getElementById("itemlist").children[this.states[this.current].focus].children[0].focus(); document.getElementById("itemlist").scrollTop = this.states[this.current].scroll; } this.states[this.current].end = new Date().getTime(); this.states[this.current].data = data; this.states[this.current].category = category; this.states[this.current].source_url = url; this.confirmed = true; if (settings.builtin_history && !this.from_nav) { if (this.current > 0) { history.pushState(this.current.toString(), "", "#" + this.states[this.current].url); } else { history.replaceState(this.current.toString(), "", "#" + this.states[this.current].url); } } } else { if (this.states[this.current].focus >= 0) { document.getElementById("itemlist").children[this.states[this.current].focus].children[0].focus(); document.getElementById("itemlist").scrollTop = this.states[this.current].scroll; } this.states[this.current].end = new Date().getTime(); this.states[this.current].data = data; this.states[this.current].category = category; this.states[this.current].source_url = url; this.states = this.states.slice(0, this.current + 1); } this.from_nav = false; }, "go": function (index) { if (!this.confirmed) { this.current -= 1; this.confirmed = true; } this.states[this.current].scroll = document.getElementById("itemlist").scrollTop; this.states[this.current].focus = Array.prototype.indexOf.call(document.getElementById("itemlist").children, focused_item.parentNode); if (this.current + index < 0) { this.current = -1; this.confirmed = false; send_request(""); return; } else if (this.current + index >= this.states.lenght) { this.current = this.states.lenght - 1; } else { this.current += index; } if (this.states[this.current].end - this.states[this.current].start > this.cache) { document.getElementById("itemlist").innerHTML = this.states[this.current].data.join(""); set_category(this.states[this.current].category) set_original_url(this.states[this.current].source_url) if (this.states[this.current].focus >= 0) { document.getElementById("itemlist").children[this.states[this.current].focus].children[0].focus(); } if (this.states[this.current].scroll) { document.getElementById("itemlist").scrollTop = this.states[this.current].scroll; } show_images(); this.confirmed = true; } else { this.confirmed = false; this.from_nav = true; send_request(this.states[this.current].url); } }, "current": -1, "confirmed": false, "from_nav": false, "states": [], "cache": 2000 //Tiempo para determinar si se cargará la cache o se volvera a solicitar el item (el tiempo es el que tarda en responder el servidor) };