Object.extend(Date.prototype, {
    monthnames: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
    daynames: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"]
});
var cal;
var monthData;
var prev;
function calUpdate() {
    $("izda").update("<p>Obteniendo...</p>");
    agenda.getCalendarEvents(cal.currentdate.getMonth()+1,cal.currentdate.getFullYear(),getCalendarEventsResult);
    agenda.getEventsByMonth(cal.currentdate.getMonth()+1,cal.currentdate.getFullYear(),getEventsByDateResult);
    refreshCalendar();
}
function dateUpdate(d) {
    $("izda").update("<p>Obteniendo...</p>");
    agenda.getEventsByDate(d.getDate(),d.getMonth()+1,d.getFullYear(),getEventsByDateResult);
    refreshCalendar();
}
function getCalendarEventsResult(response)
{
    monthData = response.responseJSON;
    for(var i = 0; i < monthData.length ; i++)
    {
        monthData[i].dia.setMinutes(monthData[i].dia.getMinutes()+monthData[i].dia.getTimezoneOffset());
    }
    refreshCalendar();
}
function getEventsByDateResult(response)
{
    $("izda").update(response.responseText);
    refreshCalendar();
}
function refreshCalendar()
{
    if(monthData)
    {
        for(var i = 0; i < monthData.length ; i++)
        {
            var ele = cal.getElementByDate(monthData[i].dia);
            ele.style.backgroundColor = "#E67C19";
        }
    }
    
    var ele = cal.getElementByDate(prev);
    ele.style.backgroundColor = null;
    
    ele = cal.getElementByDate(cal.currentdate);
    ele.style.backgroundColor = "#2C658E";
    prev = cal.currentdate;
    $("mes").selectedIndex = cal.currentdate.getMonth();
    for(var i = 0; i < $("anual").options.length ; i++)
    {
        if($("anual").options[i].value == cal.currentdate.getFullYear())
        {
            $("anual").selectedIndex = i;
            break;
        }
    }
}
function cambioCombo()
{
    cal.setCurrentDate( new Date(
                                parseInt($("anual").getValue()),
                                parseInt($("mes").getValue()),
                                1)
                      );
    calUpdate();
}
function initcal()
{
      var ops = {
              oncalchange: calUpdate,
              daypadding: false,
              titleformat: 'mmmm yyyy',
              updateformat: 'yyyy-mm-dd',
              closebutton: 'X',
              prevbutton: '&laquo;',
              nextbutton: '&raquo;',
              yearnext: '&raquo;&raquo;',
              yearprev: '&laquo;&laquo;',
              exactweeks: false,
              dayheadlength: 1,
              weekdaystart: 1,
              planner: false,
              tabular: true
      };
      cal = new scal('cal', dateUpdate,ops);
      prev = cal.currentdate;
      $('anual').activate();
      $('mes').activate();
      calUpdate();
}
document.observe("dom:loaded", initcal);

