function cdSelect(index) {
  var data = [
    {
      "image" : document.getElementById("cdImage-balance"),
      "tracks" : document.getElementById("cdTracks-balance"),
      "cdSelector" : document.getElementById("cdSelector-balance"),
      "reviews" : document.getElementById("reviews-balance"),
      "featuring" : document.getElementById("featuring-balance"),
      "cdTitle" : document.getElementById("cdTitle-balance")
    },
    {
      "image" : document.getElementById("cdImage-when"),
      "tracks" : document.getElementById("cdTracks-when"),
      "cdSelector" : document.getElementById("cdSelector-when"),
      "reviews" : document.getElementById("reviews-when"),
      "featuring" : document.getElementById("featuring-when"),
      "cdTitle" : document.getElementById("cdTitle-when")
    }
  ];
  for (var i=0; i<data.length; i++) {
    var disp = (i == index) ? "block" : "none";
    data[i]["cdTitle"].style.display = disp;
    data[i]["image"].style.display = disp;
    data[i]["tracks"].style.display = disp;
    data[i]["cdSelector"].style.display = disp;
    data[i]["reviews"].style.display = disp;
    data[i]["featuring"].style.display = disp;
  }
}

function trackMouseOver(row) {
//  var node = row.cells[1].childNodes[0];
//  node.style.visibility = "visible";
  if (row.className.match(/-highlight$/) == null) {
    row.className = row.className + "-highlight";
  }
}

function trackMouseOut(row) {
//  var node = row.cells[1].childNodes[0];
//  node.style.visibility = "hidden";
  row.className = row.className.replace(/-highlight$/, "");
}

function playTrack(row) {
  var sample = row.attributes.getNamedItem("track").value;
  var name = _getAttributeValue(row.attributes, "trackName");
  var desc = _getAttributeValue(row.attributes, "trackDesc");
  var src = "samples/" + sample;
  playFile(src, name, desc);
}

function buyiTunesTrack(href) {
  var win = window.open(href, "itunes", "width=500,height=500");
}

function playFile(file, name, desc) {
  var playerPage = "pages/popup/player.php?src=" + file;
  if (name) {
    playerPage += "&name=" + name;
  }
  if (desc) {
    playerPage += "&desc=" + desc;
  }
//  var height = desc ? 250 : 120;
  var height = 270;
  if (file.endsWith(".mov") || file.endsWith(".swf")) {
    height = 440;
  }
  var playerWindow = window.open(playerPage, "player", "width=340,height="+height);
  playerWindow.focus();
}

function _getAttributeValue(attributes, name) {
  var attr = attributes.getNamedItem(name);
  if (attr == null) {
    return null;
  }
  return attr.value;
}

/**
 *  String convenience method for checking if the
 *  end of this string equals a given string.
 *
 *  @returns boolean
 *  @throws IllegalArgumentException for parameters
 *                          not of type String
 */
String.prototype.endsWith = function (s) {
    if ('string' != typeof s) {
        throw('IllegalArgumentException: Must pass a ' +
            ' string to String.prototype.endsWith()');
    }
    var start = this.length - s.length;
    return this.substring(start) == s;
};

