function updateArea(id, req, params, resetFn)
{
  var request = new XMLHttpRequest();
  if (request) {
    el = document.getElementById(id);
    request.open("POST", req, true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Content-length", params.length);
    request.setRequestHeader("Connection", "close");
    request.onreadystatechange = function() {
      if (request.readyState==4 && request.status==200) {
        el.innerHTML = request.responseText;
        resetFn();
      }
    };
    request.send(params);
  }
}


function addCalendarListeners()
{
  var cal = document.getElementById("calendar");
  if (cal)
  {
    var rows = cal.getElementsByTagName("tr");
    for (var i=0; i<rows.length; i++)
    {
      if (rows[i].className=="title")
      {
        var links = rows[i].getElementsByTagName("a");
        for (var j=0; j<links.length; j++)
        {
          links[j].onclick = function() {
            var dates = this.id.substring(1).split("-");
            var params = "year="+dates[1]+"&month="+dates[2]+"&gid="+dates[3];
            updateArea("calendar", "/getcalendar", params, addCalendarListeners);
            return false;
          }
        }
      }
    }
  }
  cal = document.getElementById("eventcal");
  if (cal)
  {
    var rows = cal.getElementsByTagName("tr");
    for (var i=0; i<rows.length; i++)
    {
      if (rows[i].className=="title")
      {
        var links = rows[i].getElementsByTagName("a");
        for (var j=0; j<links.length; j++)
        {
          links[j].onclick = function() {
            var details = document.getElementById("details");
            if (details)
                details.parentNode.removeChild(details);
            var dates = this.id.substring(1).split("-");
            var params = "year="+dates[1]+"&month="+dates[2]+"&gid="+dates[3];
            updateArea("eventcal", "/getevents", params, addCalendarListeners);
            return false;
          }
        }
      }
    }
  }
}

function addFeaturedListeners()
{
  $("#featured div").each(function() {
    if ($.cookie('featured-' + $(this).attr('id')) == 'hide')
        $(this).hide();
  });

  $("#featured a.close").css("display", "inline").click(function () {
    var parent = $(this).parents("div.featured");
    parent.hide();
    $.cookie('featured-' + parent.attr('id'), 'hide');
  });
}

$(document).ready(function(){
  addCalendarListeners();
  addFeaturedListeners();
});
