var showBoxes = true;

function setupNotes()
{
  $("#locationNotes .box").hover(function(){
     $(this.parentNode).addClass("over");
   },function(){
     $(this.parentNode).removeClass("over");
   });
}

function setupControls()
{
  var ctlShowBoxes = document.getElementById('showBoxes');
  var ctlHideBoxes = document.getElementById('hideBoxes');
  if (! (ctlShowBoxes && ctlHideBoxes) ) { return; }

  if (! showBoxes)
    ctlHideBoxes.style.display = 'none';
  else
    ctlShowBoxes.style.display = 'none';
  
  ctlShowBoxes.onclick = toggleBoxState;
  ctlHideBoxes.onclick = toggleBoxState;
  
}

function toggleBoxState()
{
  var notesDiv = document.getElementById('locationNotes');
  if (! notesDiv) { return; }
  showBoxes = !showBoxes;
  if (showBoxes)
  {
    notesDiv.style.display = "block";
    document.getElementById('showBoxes').style.display = "none";
    document.getElementById('hideBoxes').style.display = "block";    
  }
  else
  {
    notesDiv.style.display = "none";
    document.getElementById('showBoxes').style.display = "block";
    document.getElementById('hideBoxes').style.display = "none";
  }
}

function addClassName(elm, class_name)
{
  elm.className += " " + class_name;
}

function removeClassName(elm, class_name)
{
  elm.className = elm.className.replace(class_name, "");
}

/* ============================================================= */
/* = Test if an element has a specific class already set on it = */
/* ============================================================= */
function hasClassName(elm, class_name)
{
  var classes = elm.className.split(" ");
  for (var i=0; i<classes.length; i++)
  {
    if (classes[i] == class_name)
      return true;
  }
  return false;
}

/* ==================================== */
/* = Functions to be run on page load = */
/* ==================================== */
$(document).ready(function(){
   setupNotes();
   setupControls();
 });
