$(function()
{
  var rgEvents = Array();
  $(".clEvent").each(function()
  {
    rgEvents.push({ "elem": $(this).parent(), "sText": $(this).text().toLowerCase(),
      "fVisible": true
    });
  });

  $("#sEventSearch")
    .val("")
    .focus()
    .keyup(function()
    {
      var sSearch = $(this).val().toLowerCase();
      if (sSearch != $(this).data("sPrev"))
      {
        var fCheckHidden = (sSearch.indexOf($(this).data("sPrev")) == -1);
        for (i = 0; i < rgEvents.length; i++)
        {
          if (fCheckHidden || rgEvents[i].fVisible)
          {
            showEvent(rgEvents[i], rgEvents[i].sText.indexOf(sSearch) != -1);
          }
        }
        $(this).data("sPrev", sSearch);
        toggleOlderEvents(true);
      }
    })
    .keypress(function(event)
    {
      if (event.keyCode == 13)
        event.preventDefault(); // prevent submitting form
    })
    .data("sPrev", "");

  $("#older_events_header").click(function()
  {
    toggleOlderEvents();
  });

});

var TriangleLeft = "&#x25BA;";
var TriangleDown = "&#x25BC;";

function toggleOlderEvents(fShow)
{
  var row = $(".cl_events > tbody > tr:last");
  if (fShow === undefined)
    fShow = !row.is(":visible");
  row[(fShow) ? "show" : "hide"]();
  $("#expander").html((fShow) ? TriangleDown : TriangleLeft);
}

function showEvent(evnt, fShow)
{
  if (evnt.fVisible != fShow)
  {
    evnt.elem[(fShow) ? "show" : "hide"]();
    evnt.fVisible = fShow;
  }
}
