$(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);
      }
    })
    .keypress(function(event)
    {
      if (event.keyCode == 13)
        event.preventDefault(); // prevent submitting form
    })
    .data("sPrev", "");
});

function showEvent(evnt, fShow)
{
  if (evnt.fVisible != fShow)
  {
    evnt.elem[(fShow) ? "show" : "hide"]();
    evnt.fVisible = fShow;
  }
}