diff options
Diffstat (limited to 'bairadio.js')
-rw-r--r-- | bairadio.js | 90 |
1 files changed, 51 insertions, 39 deletions
diff --git a/bairadio.js b/bairadio.js index 4ee1541..b318c1f 100644 --- a/bairadio.js +++ b/bairadio.js @@ -1,4 +1,5 @@ -var radionum = 0; +var selected = ""; +var renderType = 0; function update(first) { var first = first || false; @@ -9,41 +10,47 @@ function update(first) { req.send(); req.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { - if (first) { document.getElementById("status").textContent = ""; } - var resp = JSON.parse(req.response); - resp = resp.icestats.source; + if (resp.icestats.source) { + resp = resp.icestats.source; + } else { + document.getElementById("status").textContent = "*** La radio está OFFLINE ***"; + var o = document.createElement("option"); + o.textContent = "Nadie está transmitiendo..."; + sel.appendChild(o); + selected = ""; + return; + } - if (radionum > resp.length) { radionum = 0; } + if (!resp.length) { resp = [resp]; } + + if (first || !selected) { + document.getElementById("status").textContent = ""; + selected = resp[0].listenurl.replace("http://bienvenidoainternet.org:8000", ""); + } var sel = document.getElementById("server_name"); sel.textContent = ""; - if (resp.length > 1) { - for (var i = -1; ++i < resp.length;) { - var o = document.createElement("option"); - o.value = i; - o.textContent = resp[i].server_name; - if (resp[i].server_description) { - o.textContent += ": " + resp[i].server_description; - } - if (i == radionum) { o.defaultSelected = true; } - sel.appendChild(o); - } - resp = resp[radionum]; - } else { + var selectedPos = 0; + for (var i = -1; ++i < resp.length;) { var o = document.createElement("option"); - o.value = 0; - o.textContent = resp.server_name; - if (resp.server_description) { - o.textContent += ": " + resp.server_description; + resp[i].listenurl = resp[i].listenurl.replace("http://bienvenidoainternet.org:8000", ""); + o.value = resp[i].listenurl; + o.textContent = resp[i].server_name; + if (resp[i].server_description) { + o.textContent += ": " + resp[i].server_description; + } + if (resp[i].listenurl == selected) { + o.defaultSelected = true; + selectedPos = i; } - o.defaultSelected = true; sel.appendChild(o); } + resp = resp[selectedPos]; var audio = document.getElementById("stream"); - resp.listenurl = resp.listenurl.replace("http://bienvenidoainternet.org:8000", "https://bienvenidoainternet.org:8443"); + resp.listenurl = "https://bienvenidoainternet.org:8443" + resp.listenurl; if (audio.src != resp.listenurl) { audio.src = resp.listenurl; if (!first) { playPause(); } @@ -146,7 +153,7 @@ function checkLong() { var ws = strip.clientWidth; var wc = cont.clientWidth if (ws > wc) { - var travel = ws - (wc-5); + var travel = ws - (wc-10); var style = document.createElement("style"); style.id = "marqueeStyle"; var dur = Math.round(travel/10); @@ -165,8 +172,8 @@ function playPause() { radio.play(); stat.setAttribute("class", "playing"); } else { - stat.setAttribute("class", "paused"); radio.pause(); + stat.setAttribute("class", "paused"); } } @@ -194,15 +201,15 @@ function changeVolume(e) { } } -function collapseHistory() { - var box = document.getElementById("box-history"); - var cont = document.getElementById("history").parentElement; - if (box.className == "outer") { - box.classList.add("collapse"); - cont.style.width = (box.clientWidth - document.getElementById("box-history-title").clientWidth - 14) + "px"; - } else { +function collapseWindow(e) { + var box = this.parentElement.parentElement; + var cont = box.getElementsByClassName("content")[0]; + if (box.classList.contains("collapse")) { cont.removeAttribute("style"); box.classList.remove("collapse"); + } else { + box.classList.add("collapse"); + cont.style.width = (box.clientWidth - this.clientWidth - 14) + "px"; } box.scrollTop = box.scrollHeight; removeSel(); @@ -266,7 +273,7 @@ function interpretNewMsg(info) { var msg = unescapeColon(arg[2]); addMsg(msg); } else if (arg[0] == "COUNT") { - document.getElementById("chat-count").textContent = " (Usuarios: " + arg[1] + ")"; + document.getElementById("chat-count").textContent = arg[1]; } } @@ -277,12 +284,12 @@ function checkSend(e) { var msgField = document.getElementById("msg_type"); var msg = msgField.value.trim(); - if (!msg) return; + if (!msg) { return; } if (chatConnected) { sendMsg("MSG:0:" + escapeColon(msg)); addMsg(msg); - } else return; + } else { return; } msgField.value = ""; antiFlood = true; @@ -322,12 +329,17 @@ function addMsg(msg) { document.addEventListener("DOMContentLoaded", function() { document.getElementById("control").addEventListener("click", playPause); document.getElementById("volume").addEventListener("mousedown", changeVolume); - document.getElementById("server_name").addEventListener("change", function(e) { radionum = this.value; }); - document.getElementById("box-history-title").addEventListener("dblclick", collapseHistory); + document.getElementById("server_name").addEventListener("change", function(e) { selected = this.value; }); + var boxt = document.getElementsByClassName("boxtitle"); + for (var i = -1; ++i < boxt.length;) { + boxt[i].addEventListener("click", collapseWindow); + } + document.getElementById("resize").addEventListener("mousedown", resizeChat); document.getElementById("resize").addEventListener("mousedown", resizeChat); + //return; update(true); startVisualization(); - setInterval(update, 1500); + setInterval(update, 2000); connect(); }); |