function link(url) {
  window.location = url;
}

function sample_category_onMouseOver(obj) {
  var catId = obj.getAttribute("categoryId");
  var filmDiv = document.getElementById("filmScore");
  var jazzDiv = document.getElementById("jazz");
  var chamberDiv = document.getElementById("chamber");
  filmDiv.style.display = catId == "filmScore" ? "block" : "none";
  jazzDiv.style.display = catId == "jazz" ? "block" : "none";
  chamberDiv.style.display = catId == "chamber" ? "block" : "none";
  _sample_highlightSampleCategory(obj);
}

function sample_onMouseOver(obj) {
  obj.className = obj.className + " hover";
  _sample_showHint(obj, true);
  _sample_showSampleInfo(obj);
}

function sample_onMouseOut(obj) {
  obj.className = obj.className.replace(" hover", "");
  _sample_showHint(obj, false);
}

function sample_onClick(obj) {
  var sampleId = obj.getAttribute("sampleId");
  playSample(sampleId);
//  playFile(fileNode.innerHTML);
}

function _sample_highlightSampleCategory(obj) {
  var titles = [
    document.getElementById("filmScoreCat"),
    document.getElementById("jazzCat"),
    document.getElementById("chamberCat")
  ];
  for (var i=0; i<titles.length; i++) {
    var elem = titles[i];
    elem.className = elem == obj ? "sampleCategoryName-selected" : "sampleCategoryName";
  }
}

function _sample_showHint(obj, show) {
  var spans = obj.getElementsByTagName("span");
  var visibility = show ? "visible" : "hidden";
  spans[1].style.visibility = visibility;
}

function _sample_showSampleInfo(obj) {
  var id = obj.getAttribute("sampleId");
  var sample = _getSampleNode(id);
  var title = sample.getElementsByTagName("name")[0].firstChild.nodeValue;
  var descriptionElement = sample.getElementsByTagName("description")[0].firstChild;
  var description = descriptionElement ? descriptionElement.nodeValue : "";
  document.getElementById("sampleTitle").innerHTML = title;
  document.getElementById("sampleDescription").innerHTML = description;
}

function playSample(id) {
  if (!xmlDoc) {
    playSampleSimple(id);
    return;
  }
  var sample = _getSampleNode(id);
  if (!sample) {
    alert("sample not found");
  }
  var name = sample.getElementsByTagName("name")[0].firstChild.nodeValue;
  var descriptionElement = sample.getElementsByTagName("description")[0].firstChild;
  var description = descriptionElement ? descriptionElement.nodeValue : "";
  var src = "samples/" + sample.getElementsByTagName("src")[0].firstChild.nodeValue;
  document.getElementById("sampleTitle").innerHTML = name;
  document.getElementById("sampleDescription").innerHTML = description;
  var frame = document.getElementById("playIframe");
  frame.src = src;
  var controlsDiv = document.getElementById("playerControls")
  controlsDiv.style.display = "block";
}

function _getSampleNode(id) {
  var samples = xmlDoc.getElementsByTagName('sample');
  for (i=0; i<samples.length; i++) {
    var sample = samples[i];
    if (sample.getAttribute("id") == id) {
      return sample;
    }
  }
  return null;
}

function stopPlayer() {
  var frame = document.getElementById("playIframe");
  frame.src = "";
  var controlsDiv = document.getElementById("playerControls")
  controlsDiv.style.display = "none";
}
