|
|
|
function push() {
|
|
|
|
var sub = this.length;
|
|
|
|
for (var i = 0; i < push.arguments.length; ++i) {
|
|
|
|
this[sub] = push.arguments[i];
|
|
|
|
sub++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function pop() {
|
|
|
|
var lastElement = null;
|
|
|
|
if (this.length > 0) {
|
|
|
|
lastElement = this[this.length - 1];
|
|
|
|
this.length--;
|
|
|
|
}
|
|
|
|
return lastElement;
|
|
|
|
}
|
|
|
|
|
|
|
|
Array.prototype.push = push;
|
|
|
|
Array.prototype.pop = pop;
|
|
|
|
|
|
|
|
function getById(id) {
|
|
|
|
if (document.layers){
|
|
|
|
//Netscape 4 specific code
|
|
|
|
pre = 'document.';
|
|
|
|
post = '';
|
|
|
|
}
|
|
|
|
if (document.getElementById){
|
|
|
|
//Netscape 6 specific code
|
|
|
|
pre = 'document.getElementById("';
|
|
|
|
post = '")';
|
|
|
|
} else
|
|
|
|
if (document.all){
|
|
|
|
//IE4+ specific code
|
|
|
|
pre = 'document.all.';
|
|
|
|
post = '';
|
|
|
|
}
|
|
|
|
return eval(pre + id + post);
|
|
|
|
}
|
|
|
|
|
|
|
|
// All this stuff because we want it to be reentrant
|
|
|
|
var animScriptArr = new Object();
|
|
|
|
var nextAnimId = 0;
|
|
|
|
var animate_speed = 90;
|
|
|
|
function animScriptsHelper(index, delay)
|
|
|
|
{
|
|
|
|
if (animScriptArr[index] == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
script = animScriptArr[index].pop();
|
|
|
|
if (script != null) {
|
|
|
|
eval(script);
|
|
|
|
}
|
|
|
|
if (animScriptArr[index].length > 1) {
|
|
|
|
setTimeout("animScriptsHelper(" + index + ", " + delay + ");", delay);
|
|
|
|
} else {
|
|
|
|
if (animScriptArr[index].length == 1) {
|
|
|
|
script = animScriptArr[index].pop();
|
|
|
|
delete animScriptArr[index];
|
|
|
|
if (script != null) {
|
|
|
|
eval(script);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
delete animScriptArr[index];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function setBackgroundColor(r,g,b,rowid)
|
|
|
|
{
|
|
|
|
getById(rowid).style.background = "rgb(" + r + "," + g + "," + b + ")";
|
|
|
|
}
|
|
|
|
|
|
|
|
function setColor(r,g,b, myid)
|
|
|
|
{
|
|
|
|
var i, td_n_elems, td_elems = getById(myid).getElementsByTagName("a");
|
|
|
|
td_n_elems = td_elems.length;
|
|
|
|
|
|
|
|
for (i = 0; i < td_n_elems; i++) {
|
|
|
|
td_elems[i].style.color = "rgb(" + r + "," + g + "," + b + ")";
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function anim(direction)
|
|
|
|
{
|
|
|
|
|
|
|
|
// build color fade
|
|
|
|
var ci;
|
|
|
|
var count = 20;
|
|
|
|
var mult = Math.floor(256 / count);
|
|
|
|
var colorAnimScripts = new Array();
|
|
|
|
var cid = 0;
|
|
|
|
var cid2 = 0;
|
|
|
|
var animid = "nowplaying";
|
|
|
|
|
|
|
|
if (direction == 1) {
|
|
|
|
colorAnimScripts[0] = "anim(0);";
|
|
|
|
} else {
|
|
|
|
colorAnimScripts[0] = "anim(1);";
|
|
|
|
}
|
|
|
|
|
|
|
|
for (ci = 1; ci < count+1; ci++) {
|
|
|
|
if (direction) {
|
|
|
|
cid = count - (ci-1);
|
|
|
|
cid2 = (ci-1);
|
|
|
|
} else {
|
|
|
|
cid = (ci-1);
|
|
|
|
cid2 = count - (ci-1);
|
|
|
|
}
|
|
|
|
colorAnimScripts[ci] =
|
|
|
|
"setBackgroundColor(" + Math.floor(13.0 * (cid*mult/100.0) + 100.0) + ","
|
|
|
|
+ Math.floor(13.0 * (cid*mult/100.0) + 100.0) + ","
|
|
|
|
+ Math.floor(13.0 * (cid*mult/100.0) + 140.0) + ", '" + animid + "');";
|
|
|
|
}
|
|
|
|
|
|
|
|
setColor(255,255,0, "nowplaying");
|
|
|
|
animScriptArr[0] = colorAnimScripts;
|
|
|
|
animScriptsHelper(0, animate_speed+0);
|
|
|
|
// animScriptArr[nextAnimId++] = colorAnimScripts;
|
|
|
|
// animScriptsHelper(nextAnimId-1, animate_speed+0);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var dateobj = -1;
|
|
|
|
var dhours = 0;
|
|
|
|
var dmins = 0;
|
|
|
|
var dsecs = 0;
|
|
|
|
function countdown(value) {
|
|
|
|
|
|
|
|
// all this is done because setTimeout 1000, isn't really a second in js
|
|
|
|
|
|
|
|
if (dateobj == -1) {
|
|
|
|
dateobj = new Date();
|
|
|
|
dhours = dateobj.getUTCHours();
|
|
|
|
dmins = dateobj.getUTCMinutes();
|
|
|
|
dsecs = dateobj.getUTCSeconds();
|
|
|
|
|
|
|
|
// refresh automatically every 20 secs.
|
|
|
|
setTimeout("dateobj=-1;refreshPage();", 20000);
|
|
|
|
}
|
|
|
|
|
|
|
|
dateobj2 = new Date();
|
|
|
|
var hours_now = dateobj2.getUTCHours();
|
|
|
|
var mins_now = dateobj2.getUTCMinutes();
|
|
|
|
var secs_now = dateobj2.getUTCSeconds();
|
|
|
|
|
|
|
|
// difference (assume no number is more that an hour :)
|
|
|
|
|
|
|
|
msecs = ((hours_now == dhours ? 0 : 1) * 60 * 60 +
|
|
|
|
(mins_now - dmins) * 60 +
|
|
|
|
(secs_now - dsecs)) * 1000;
|
|
|
|
|
|
|
|
diff = value * 1000 - msecs;
|
|
|
|
tdo = new Date(diff);
|
|
|
|
|
|
|
|
rhours = tdo.getUTCHours();
|
|
|
|
rmins = tdo.getUTCMinutes();
|
|
|
|
rsecs = tdo.getUTCSeconds();
|
|
|
|
|
|
|
|
var hours_str = (rhours == 0 ? "" : (rhours < 10 ? "0" + rhours : rhours) + ":");
|
|
|
|
var mins_str = rmins < 10 ? "0" + rmins : rmins;
|
|
|
|
var secs_str = rsecs < 10 ? "0" + rsecs : rsecs;
|
|
|
|
|
|
|
|
getById("countdown").innerHTML = hours_str + mins_str + ":" + secs_str;
|
|
|
|
|
|
|
|
setHeaders();
|
|
|
|
|
|
|
|
if (diff > 0) {
|
|
|
|
setTimeout("countdown(" + value + ");", 500);
|
|
|
|
} else {
|
|
|
|
getById("countdown").innerHTML = "00:00";
|
|
|
|
// go refresh this page
|
|
|
|
refreshPage();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function getPageScroll()
|
|
|
|
{
|
|
|
|
var x,y;
|
|
|
|
if (self.pageYOffset) // all except Explorer
|
|
|
|
{
|
|
|
|
x = self.pageXOffset;
|
|
|
|
y = self.pageYOffset;
|
|
|
|
}
|
|
|
|
else if (document.documentElement && document.documentElement.scrollTop)
|
|
|
|
// Explorer 6 Strict
|
|
|
|
{
|
|
|
|
x = document.documentElement.scrollLeft;
|
|
|
|
y = document.documentElement.scrollTop;
|
|
|
|
}
|
|
|
|
else if (document.body) // all other Explorers
|
|
|
|
{
|
|
|
|
x = document.body.scrollLeft;
|
|
|
|
y = document.body.scrollTop;
|
|
|
|
}
|
|
|
|
return y;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setPageScroll(pxs)
|
|
|
|
{
|
|
|
|
window.scrollTo(0, pxs);
|
|
|
|
}
|
|
|
|
|
|
|
|
function setScrollInUrl(newUrl)
|
|
|
|
{
|
|
|
|
|
|
|
|
if (newUrl.match(/scroll=\d*/)) {
|
|
|
|
return newUrl.replace(/scroll=\d*/g, "scroll=" + getPageScroll());
|
|
|
|
} else {
|
|
|
|
if (newUrl.match(/\?/)) {
|
|
|
|
return newUrl + "&scroll=" + getPageScroll();
|
|
|
|
} else {
|
|
|
|
return newUrl + "?scroll=" + getPageScroll();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function refreshPage()
|
|
|
|
{
|
|
|
|
document.location = setScrollInUrl("" + document.location);
|
|
|
|
}
|
|
|
|
|
|
|
|
function rescroll()
|
|
|
|
{
|
|
|
|
regex = new RegExp("scroll=[^\\&]+");
|
|
|
|
var match = regex.exec(document.URL);
|
|
|
|
scrollPos = parseInt((match+"").substring(7));
|
|
|
|
if (match) {
|
|
|
|
setPageScroll(scrollPos);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function dolink(qstr)
|
|
|
|
{
|
|
|
|
document.location = setScrollInUrl("?" + qstr);
|
|
|
|
}
|
|
|
|
|
|
|
|
function setHeaders()
|
|
|
|
{
|
|
|
|
var i, td_n_elems_dest, td_elems_dest = getById("trackheader").getElementsByTagName("th");
|
|
|
|
td_n_elems = td_elems_dest.length;
|
|
|
|
|
|
|
|
var td_n_elems, td_elems;
|
|
|
|
if (getById("trackone")) {
|
|
|
|
td_n_elems, td_elems = getById("trackone").getElementsByTagName("td");
|
|
|
|
} else {
|
|
|
|
td_n_elems, td_elems = getById("nowplaying").getElementsByTagName("td");
|
|
|
|
}
|
|
|
|
|
|
|
|
for (i = 0; i < td_n_elems; i++) {
|
|
|
|
td_elems_dest[i].style.width = td_elems[i].offsetWidth;
|
|
|
|
}
|
|
|
|
}
|