function trackMouseOver(row) {
  if (row.className.match(/-highlight$/) == null) {
    row.className = row.className + "-highlight";
  }
  var trackNameDiv = document.getElementById("trackName");
  var trackDetailsDiv = document.getElementById("trackDetails");
  var desc = decodeURIComponent(row.getAttribute('trackDesc'));
  var name = decodeURIComponent(row.getAttribute('trackName'));
  trackNameDiv.innerHTML = name;
  trackDetailsDiv.innerHTML = desc;
}

function trackMouseOut(row) {
  row.className = row.className.replace(/-highlight$/, "");
  var trackNameDiv = document.getElementById("trackName");
  var trackDetailsDiv = document.getElementById("trackDetails");
  trackNameDiv.innerHTML = "";
  trackDetailsDiv.innerHTML = "";
}

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;
};

