 // jQuery Month Calendar Plugin 1.0 Copyright 2009 Jarrett Vance http://jvance.com/pages/jQueryMonthCalPlugin.xhtml
 // DONT UPDATE THIS PLUGIN. EVERYTHING WILL BREAK
 // Modified by TomvB
        
        var Calendar_options;
                                               
(function ($) {                    
  $.fn.calendar = function (options) {      
    Calendar_options = $.extend({}, $.fn.calendar.defaults, options);
    return this.each(callCalender);
  }

  
  
function callCalender() {
      var $this = $(this);
        
      $this.find('a[rel=prev], a[rel=next]').click(function () {
        changeMonth($this, Calendar_options, ($(this).attr('rel') == 'next'));
        $('#uitgelicht').html(''); // div#uitgelicht leeg maken
        $('#uitgelicht').css('height', '128px');        
        return false;
      });               
      
      refreshCal($this, Calendar_options);
    }
  
  function changeMonth($cal, opts, next) {
    if (next && opts.month == 11) {
      opts.year = opts.year + 1;
      opts.month = 0;
    } else if (!next && opts.month == 0) {
      opts.year = opts.year - 1;
      opts.month = 11;
    } else {
      opts.month = next ? opts.month + 1 : opts.month - 1;
    }
    importCal($cal, opts);
  }

  function changeDay($cal, $cell, date, opts) {
    opts.current = date;
    opts.year = date.getFullYear();
    opts.month = date.getMonth();
    refreshCal($cal, opts);
    //allow outside cancel
    return opts.dateChanged(date);
  }

  function refreshCal($cal, opts) {
    var monthNames = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'];
    //$cal.find('.month').text(monthNames[opts.month] + ' ' + opts.year);
    $cal.find('.month').text(monthNames[opts.month].toUpperCase() );
    $cal.find('td').removeClass('out').removeClass('today').removeClass('current');
    var days = getDaysInMonthForDate(opts.year, opts.month, opts.current);
    var tds = $cal.find('td');

    for (j = 0; j < 42; j++) {      
      var dagarray = new Array('zondag','maandag','dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag');            
      var dag = dagarray[days[j].date.getDay()]
      var maand = monthNames[days[j].date.getMonth()]
            
      $(tds[j]).find('.tdday').text(days[j].date.getDate())
        .attr('title', dag + ' ' +  days[j].date.getDate() + ' ' + maand + ' ' + days[j].date.getFullYear() )
        .attr('id', days[j].date.getFullYear() + '-' + ( days[j].date.getMonth() +1) + '-' + days[j].date.getDate())
        //.attr('href', getUrl(days[j].date, opts));
      if (days[j].out) $(tds[j]).addClass('out');
      if (days[j].current) $(tds[j]).addClass('current');
      if (days[j].today) {
                      
          $(tds[j]).addClass('today');

            
          // ajax call doen - check voor de agenda items van vandaag 
          $.ajax({
            url: Website.Config.sBaseUrl +'agenda/kalender/agendaitem',
            data: "datum=" + $(tds[j]).find('span.tdday').attr('id'),
            success: function(data) {
                
                if(data != '') {
                                          
                    aData = eval('(' + data + ')');
                                                
                    // vlak uitgelicht vergroten
                    if(aData['aantal'] > 2) {                                                            
                        var iHeight;
                        iHeight = aData['aantal'] * 70;                                                                          
                        $('#uitgelicht').css('height', iHeight+'px');                                                                    
                    }                              
                   
                    $('#uitgelicht').html(aData['html']);                    
                }
                else {
                    $('#uitgelicht').html('');                    
                }
            }
          });           

          
      }
    }
                                       
     $('#cal-event').find('td').each(
            function(){
                $(this).hover(function () { $(this).addClass('hover') }, function () { $(this).removeClass('hover') })
                $(this).click(
                    function(){        

                        // ajax call doen
                        $.ajax({
                          url: Website.Config.sBaseUrl +'agenda/kalender/agendaitem',
                          data: "datum=" + $(this).find('span.tdday').attr('id'),
                          success: function(data) {
                                                          
                              if(data != '') {     
                                      
                                  aData = eval('(' + data + ')');
                                  
                                  // Doorlinken naar item of naar datum overzichtpagina
                                  location.href= Website.Config.sBaseUrl + aData['sUrlQuery'];   
                                  
                                  
                                  
                                  /*                              
                                  // vlak uitgelicht vergroten
                                  if(aData['aantal'] > 2) {                                                            
                                      var iHeight;
                                      iHeight = aData['aantal'] * 70;                                                                          
                                      $('#uitgelicht').css('height', iHeight+'px');                                                                    
                                  }                              
                                  
                                  $('#uitgelicht').html(aData['html']);                                  
                                  */
                              }
                              else {
                                  $('#uitgelicht').html('');
                              }
                              
                          }
                        });                        
                        
                    }
                )                
            }
        );    
  }
  
  function importCal($cal, opts) {
      $.ajax({
        url: "agenda/build/calendar",
        data: opts,
        success: function (html) {
            $('.tbody').empty();
            $(".tbody").append(html);
            refreshCal($cal, opts);
        }
      })
  }
  
  function getUrl(date, opts) {
    var url = opts.templateUrl;
    url = url.replace(opts.templateYear, date.getFullYear());
    url = url.replace(opts.templateMonth, ((date.getMonth() + 1) < 10 ? "0" : "") + (date.getMonth() + 1));
    url = url.replace(opts.templateDay, (date.getDate() < 10 ? "0" : "") + date.getDate());
    return url;
  }


  function getDaysInMonthForDate(year, month, current) {
    var today = new Date();
    var first = new Date(year, month, 1);
    first.setDate(first.getDate() - first.getDay());

    var days = new Array(42);
    for (j = 0; j < 42; j++) {
      var d = new Date(first);
      d.setDate(first.getDate() + j);
      days[j] = {
        date: d,
        out: !(d.getFullYear() == year && d.getMonth() == month),
        today: d.getFullYear() == today.getFullYear() && d.getMonth() == today.getMonth() && d.getDate() == today.getDate(),
        current: d.getFullYear() == current.getFullYear() && d.getMonth() == current.getMonth() && d.getDate() == current.getDate()
      }
    }
    return days;
  }

  $.fn.calendar.defaults = {
    current: new Date(),
    year: new Date().getFullYear(),
    month: new Date().getMonth(),
    templateYear: 'year',
    templateMonth: 'month',
    templateDay: 'day',
    templateUrl: '/year/month/day',
    dateChanged: function (date) { return true; }
  };
})(jQuery);
